Koma-Script

Fleuron

LaTeX & KOMA-Script: Présentation de KOMA-Script et mise en page avec typeaera

Pourquoi utiliser KOMA-Script

LaTeX a été écrit par un américain (Leslie Lamport) et est particulièrement adapté à cette langue. Pour qu'il puisse s'adapter à notre langue (césures, ponctuation. . .) tu es obligé de charger le package babel et son option french.

Mais ce package ne règle pas le problème de la mise en page. En effet les classes standards (report, book, article, letter) ont été conçues pour être imprimées sur le format de papier américainletter (279 x 216 mm) et legal (356 x 216 mm) et non notre format européen a4 (210 x 297 mm). C'est pour cette raison que les marges LaTeX nous paraissent toujours trop grandes. Pour adapter la mise en page de LaTeX à nos standards européens, un allemand Markus Kohm à développé KOMA-Script, qui est un ensemble de paquets et de classes.

Les classes KOMA-Script

KOMA-Script introduit 4 nouvelles classes en remplacement des classes standards :

classes standardsclasse KOMA-Script
articlescrartcl
reportscrreprt
bookscrbook
letterscrlttr2

Les packages KOMA-Script

KOMA-Script introduit également de nouveaux packages :

typearea : qui permet de régler la mise en page ;

scrpage2 : qui permet de régler les entêtes et les pieds de pages. C'est un équivalent du package fancyhdr ;

scrdate et scrtime : qui gèrent les dates et les heures ;

scraddr et adrconv : qui permettent de créer un fichier d'adresse et de l'utiliser avec scrlttr2 un peu à la manière de BibTeX.

Tu n'est pas obligé d'utiliser les packages KOMA-Script avec les classes KOMA-Script. Par exemple tu peux très bien utiliser le package fancyhdr avec scrreprt, de même tu peux utiliser scrpage2 avec les classes standards.

Un peu de typographie

La typographie est une science ancienne, dont les premières règles ont été élaborées par les moines copistes et qui s'est développée avec l'invention de l'imprimerie par Gutenberg. N'étant pas typographe et ne maîtrisant pas cette science je me bornerais à évoquer quelques notions.

La fatigue visuelle

Le but de la typographie est de rendre le document beau et agréable à lire. Il ne faut pas que des éléments typographique détournent le lecteur du fond, ni que la mise en page n'entraîne de fatigue visuelle.

Par exemple une règle couramment admise est que la longueur d'une ligne de texte (en typographie on dit la justification) ne doit pas dépasser 60 à 70 caractères (espace compris). Au-delà l'oeil fatigue et il est plus difficile de localiser la prochaine ligne. Pour un texte écrit sur une seule colonne, une justification de 65 caractères est considérée comme idéale. C'est pour éviter la fatigue visuelle que les journaux, qui cherchent pour des raisons d'économie à mettre le plus de texte par page, sont écrit en colonnes pour conserver une justification acceptable.

Donc si tu cherches à modifier la taille de ton texte essaye de respecter le plus possible cette règle.

Le gris typographique

Le gris typographique est l’apparence grise que prend le corps de texte, quand tu le regardes de loin ou si tu plisses les yeux pour voir le texte flou. Plus ce gris est homogène plus la lecture du texte sera facile et agréable. Au contraire quand l’homogénéité de ce gris est rompue par par un mauvais interlignage, des rivières ou des lézardes, (les lignes blanches composées d'espaces, les unes sous les autres, qui traversent les textes mal fichus), l'attention portée au texte diminue car ces défauts détournent du texte et rendent la lecture difficile

Obtenir un bon gris n'est pas facile, il dépand de la police utilisée de sa taille de la justification, de l'interligne. . .

Un peu de typographie : suite et fin

On pourrait encore parler de la taille des marges avec leurs modes de calcul (le canon de l'atelier, au neuvième). Toutes ces règles concourent à la conception d'un document agréable à lire permettant au lecteur de rester concentré sur sa lecture. Si j'ai tenu à évoquer (assez maladroitement, je le reconnais) ces questions d'ordre typographique, c'est pour essayer de te faire comprendre que l'on ne s'improvise pas typographe et que dans la plupart des cas vouloir modifier les réglages proposés par défaut par LaTeX ou KOMA-Script, n'est pas une bonne idée.

KOMA-Script utilise pour fabriquer ton texte des algorithmes qui respectent les règles typographiques. Même si, par la suite, on verra comment régler tous les paramètres de la mise en page, je te conseille de le faire avec parcimonie et plutôt de faire confiance à KOMA-Script.

Attention toutes les commandes utilisées dans cette fiche concernent la version 3.00 de KOMA-Script.

Les options KOMA-Script

Elles sont de deux types

option=valeur

ou

option=oui/non

Dans ce dernier cas, tu as plusieurs façons pour activer une option :

pour les désactiver :

Si tu n'assignes pas de valeur à l'option, c'est la valeur true qui est utilisée par KOMA-Script.

La mise en page

C'est le package typearea qui permet de régler la mise en page sous KOMA-Script. Si tu utilises les classes KOMA-Script (scrartcl, scrreprt, scrbook, scrlttr2) typearea est chargé automatiquement. Par contre si tu veux faire la mise en page avec typearea et les classes classiques (article, report, book et letter) alors il faut explicitement charger le package :

\usepackage{typearea}

Il y a plusieurs façon de de passer des options de mise en page (comme par exemple, la taille du papier, de la police ou des marges) à KOMA-Script. Soit dans le documenclass :

\documentclass[a4paper,10pt,DIV=12]{scrreprt}

soit avec la commande :

\KOMAoptions{option=valeur}

(attention au majuscules et au s final), par exemple :

\KOMAoptions{paper=a4,DIV=12}

soit avec le package typearea :

\usepackage[a4paper,10pt,DIV=12]{typearea}

Attention cette dernière commande doit être réservée au cas où tu n'utilises pas les classes KOMA-Script, celles-ci chargeant automatiquement le package typearea, il ne faut pas le recharger.

Le choix du papier

Tu peux choisir tous les formats internationaux de la norme ISO 216. Ils sont notés aXpaper, bXpaper, cXpaper et dXpaper, X variant de 1 à 10. La valeur par défaut, quand tu charges une classe KOMA-Script est le format a4, le format le plus utilisé, donc tu n'est pas obligé de le préciser dans ton source. Il existe aussi l'option landscape, pour le format à l'italienne ou paysage. Par exemple pour utiliser un format a3 (29,7 x 42 cm) à l'italienne :

\documentclass[a3paper,landscape]{scrartcl}

et avec la commande suivante :

\documentclass{scrartcl}

tu utilises un format a4 en mode portrait.

Le choix de la taille de la fonte du document

Avec KOMA-Script tu n'es pas obligé de te limiter au 3 fontes reconnues par les classes standards, 10pt, 11pt, 12pt. Mais attention dans le cas où tu utiliserais d'autres valeurs (14pt par exemple) tu peux rencontrer des problèmes de compatibilité avec les autres packages.

\documentclass[14pt]{scrartcl}

Les marges

KOMA-Script utilise la méthode des divisions pour calculer les marges. Le principe consiste à quadriller la page, après avoir enlevé la partie réservée à la reliure, si nécessaire, avec le même nombre de cases en longueur et en largeur. Pour les documents en recto-verso, les marges intérieure et du haut (marge de tête) auront une dimension de 1 case et les marges extérieure et du bas(marge de pied) une dimension de 2 cases. Pour les documents en verso simple les marges internes et externes on la même dimension. Si le nombre de cases est égal à 9, on obtient la mise en page classique dite au neuvième.

Les marges : DIV=n

Si tu utilises les classes KOMA-Script ce diviseur DIV est calculé automatiquement en fonction de la taille du papier et de la fonte utilisées. Tu n'es donc pas obligé de l'indiquer. Voici quelques valeurs pour un papier a4, en recto-verso. En couleur les valeurs par défaut pour les tailles de fontes classique 10pt, 11pt et 12pt. Plus DIV augmente plus les marges diminuent.

DIV Taille fonte Corps du texte Marge
largeur (cm) hauteur (cm) de tête (cm) intérieure (cm)
6 10,50 14,85 4,95 3,50
7 12,00 16,97 4,24 3,00
8 10pt 13,12 18,56 3,71 2,62
9 14,00 19,80 3,30 2,33
10 11pt 14,7 20,79 2,97 2,10
11 5,27 21,60 2,70 1,90
12 12pt 15,75 22,27 2,47 1,75
13 16,15 22,84 2,28 1,61
14 16,50 23,33 2,12 1,50
15 16,80 23,73 1,98 1,40

Les marges

Tu n'es pas obligé de suivres les standards de la mise en page. Tu peux choisir n'importe quelle valeur pour DIV. Ci-dessous en reprenant notre exemple précédent (texte en lmodern 12pt en recto-verso) avec des valeurs de DIV respectivement à gauche à droite et en dessous, 6, 15 et 20'' :

\documentclass[12pt,twoside,DIV=6]{scrartcl}

Les marges : DIV=calc, DIV=classic

DIV accepte deux autres valeurs, calc et classic. calc calculera les marges en fonction de la fonte utilisée afin d'avoir approximativement 60 à 70 caractères par lignes et un nombre entier de lignes, dans le cas d'un format à la française. classic donne une mise en page proche des canons du Moyen Âge. Ci-dessous la première page pour un même texte en lmodern 12pt en recto-verso avec des valeurs de DIV respectivement de haut en bas et de gauche à droite12, calc et classic :

Les marges : DIV=calc

DIV=calc, qui crée une page avec 60 à 70 signes par ligne, dépend bien évidemment de la fonte choisie. L'exemple ci-dessous montre la première page d'un même texte recto-verso en lmodern 12pt à gauche et en bookman 12pt à droite (bookman est une fonte avec des caractères très larges) :

Les marges : DIV=last

Si tu utilises DIV=calc il faut donc déclarer l'option DIV=calc après la déclaration de fonte. Il y a 2 manières de faire. Voici par exemple les façons de procéder pour la fonte bookman :

\documentclass[12pt,twoside=yes,DIV=calc]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{bookman}
\KOMAoptions{DIV=last}
...
\documentclass[12pt,twoside=yes]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{bookman}
\KOMAoptions{DIV=calc}
...

DIV=last demande à KOMA-Script de recalculer la mise en page avec la dernière valeur de DIV utilisée. Je préfère la première méthode (avec DIV=last) car j'aime mieux avoir toutes les déclarations de mise en page au même endroit dans le documentclass, et j'insère un \KOMAoptions{DIV=last}, si besoin, avant le \begin{document}, car il n'y a pas que la fonte qui nécessite de recalculer la mise en page, d'autres modifications comme l'inter-lignage, l'exigent aussi.

La reliure : BCOR

Pour t'expliquer de quoi il s'agit je vais reprendre l'exemple du manuel de KOMA-Script. Supposons que tu doives réaliser un rapport en verso simple, qui doit être relié par une pince en métal de 7,5 mm et que tu perdes 0,75 mm, dû à l'épaisseur du papier. Tu as donc une zone de papier inutilisable de 8,25 mm. Si tu n'en tiens pas compte tu risques de te retrouver avec une marge inférieure trop petite rendant la lecture des premiers mots de chaque ligne, difficile. L'option BCOR=8.25mm permet à KOMA-Script de retirer cette mesure des dimensions du papier et d'effectuer les calculs de mise en page avec cette nouvelle valeur. Voici un exemple :

\documentclass[12pt,DIV=calc,BCOR=8.25mm]{scrartcl}

Une autre solution est d'utiliser des reliures spirales

Recto-verso

Pour avoir un document en recto-verso on utilise l'option twoside qui prend 3 valeurs :

true : active le recto-verso (autres valeurs yes, on ou bien twoside tout seul sans valeur)

false : verso simple (équivalent à l'absence d'option ; autres valeurs no et off)

semi : un recto-verso avec des marges identiques pour le recto et pour le verso semblable à celles du verso simple.

Pour avoir un document en recto-verso tu peux écrire :

\documentclass[12pt,DIV=calc,twoside]{scrartcl}
\documentclass[12pt,DIV=calc,twoside=on]{scrartcl}

Pour avoir un document en verso simple :

\documentclass[12pt,DIV=calc]{scrartcl}
\documentclass[12pt,DIV=calc,twoside=no]{scrartcl}

Deux colonnes

Pour avoir un document en 2 colonnes on utilise twocolumn qui prend 2 valeurs :

true : active le recto-verso (autres valeurs yes, on ou bien twocolumn tout seul sans valeur)

false : verso simple (équivalent à l'absence d'option ; autres valeurs no et off)

Pour avoir un document en 2 colonnes tu peux écrire :

\documentclass[12pt,DIV=calc,twocolumn]{scrartcl}
\documentclass[12pt,DIV=calc,twocolumn=true]{scrartcl}

Pour avoir un document en 1 colonne :

\documentclass[12pt,DIV=calc]{scrartcl}
\documentclass[12pt,DIV=calc,twocolumn=off]{scrartcl}

Conclusion

Pour finir cette présentation de KOMA-Script voici la première page d'un document en recto-verso avec la fonte lmodern et un corps de 12pt, à gauche avec la classe standard article et à droite avec scrartcl de KOMA-Script sans aucune option :

\documentclass[12pt,twoside]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\begin{document}
...
\end{document}

\documentclass[12pt,twoside]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\begin{document}
...
\end{document}

Tu vas trouver que j'insiste lourdement, mais comme le rappelle Markus Kohm, la typographie est une science difficile. Il aurait été plus facile d'écrire un package laissant à l'utilisateur le choix des réglages des marges. Mais les résultats sont souvent calamiteux, car les typographes improvisés que nous sommes ne savent pas se qui est important ou incorrect, d'autant plus que nous nous sommes habitués à une typographie pauvre.

Ceci est particulièrement vrai quand on lit des thèses. La plupart des codes sont issus de l'époque ou elles étaient rédigées avec des machines à écrire aux possibilités typographiques limitées (marges étroites, interligne de 1,5 pour inscrire les corrections. . .).

Avec l'avènement des ordinateurs et des traitements de texte on voit fleurir dans les textes tout un tas de fioritures (changement de fontes, de corps, de casse,. . .) censées faire beau. Mais c'est oublier que la typographie est avant tout au service du texte, que le lecteur doit rester concentré, sans fatiguer.

Même si dans les fiches à Bébert qui vont suivre, on verra comment modifier beaucoup de paramètres, ce sera toujours pour des documents particuliers (cartes de visite, pdf animés,. . .). Le travail de Markus Kohm est fantastique, alors laisse KOMA-Script faire le travail. Ça te demandera moins de boulot, avec un résultat bien meilleur, et tu seras plus concentré sur ton texte, ce qui est l'esprit de LaTeX. L'entête idéal est celui où tu indiques seulement la taille du papier et de la police, le recto-verso, les doubles colonnes, une épaisseur de reliure et la classe KOMA-Script. Éventuellement un DIV=calc si tu veux te rapprocher des 65 caractères par lignes et d'un DIV=last si tu as choisi une fonte particulière.

Avec les commandes suivantes tu obtiendras un très bon document (typographiquement parlant, il faudra quand même faire un effort pour le fond :

Pour un article au verso simple, en a4, 1 colonne :

\documentclass[a4paper,10pt]{scrartcl}

Le même en recto-verso :

\documentclass[a4paper,10pt,twoside]{scrartcl}

On ne peut plus simple !