Page suivantePage précédenteTable des matières

3. Commandes TeX

Préparer des documents pour que TeX en fasse la composition, c'est facile. Assurez-vous qu'une ligne blanche se trouve entre les paragraphes d'un fichier purement textuel, et faites passer le fichier au travers de la moulinette TeX avec la commande

tex votre_fichier_texte
Le résultat sera un fichier dont le nom possède la même racine, mais portant l'extension .dvi. TeX formate le texte en mode 10 points, Computer Modern Roman, avec un interligne simple et justifié aussi bien à gauche qu'à droite. Si vous obtenez des messages d'erreur au sujet de symboles spéciaux, comme le dollar, enlevez-leur leur caractère particulier en les faisant précéder par la barre de fraction inversée (backslash), \, et lancez TeX une deuxième fois sur votre fichier. Vous devez pouvoir traiter le fichier résultat avec le traducteur de .dvi de votre choix (cf. ci-dessus) pour obtenir une sortie imprimée.

Une particularité des entrées pour TeX est que vous devez utiliser des guillemets ouvrants et fermants, qui figurent dans le fichier d'entrée sous forme d'accents graves et d'apostrophes. Le mode TeX d'Emacs le fera pour vous automatiquement

NdT. : en français, les guillemets s'écrivent « et ». Si votre clavier en dispose vous pouvez les saisir tels quels, sinon, ils peuvent être composés en doublant les symboles < et >.
.
"Voici des guillemets de type ASCII"
``Voici des guillemets `à la TeX'.''

3.1 Survol des commandes

En TeX, les commandes commencent par une barre de fraction inversée (« \ »). Par exemple, la commande pour changer l'interligne est

\baselineskip=24pt

La ligne de base est la limite inférieure des symboles sur une ligne, sans compter les jambages inférieurs. La distance entre les lignes de base de deux lignes consécutives est le \baselineskip, auquel est affecté une valeur de 24 points.

En TeX, les mesures ou les dimensions sont souvent données dans les unités suivantes :

pt                % Point :      1/72 in.
pc                % Pica :       12 pt.
in                % Pouce :      72.27 pt.
cm                % Centimetre : 2.54 cm = 1 in.
mm                % Millimetre : 10 mm = 1 cm.

Quelques unes des commandes ne prennent pas d'affectation. Par exemple :

\smallskip        % Environ 3 pt.
\medskip          % Deux \smallskips.
\bigskip          % Deux \medskips.

Un \smallskip insère dans le document un espacement vertical de 3 pt. Les mesures sont approximatives car TeX a besoin d'ajuster les dimensions pour les sauts de page, les en-têtes et d'autres éléments d'espacement vertical. Cela vaut également pour l'espacement horizontal.

\hsize=6.5in
Cette commande positionne la largeur de la ligne à 6,5 pouces. TeX essaie de remplir la ligne en ajustant l'espacement entre les mots, et certains caractères. Si TeX est incapable de remplir une ligne en respectant ses tolérances, il produit un message d'avertissement, et ajuste l'espacement horizontal au sein de la ligne du mieux qu'il peut. Les tolérances de formatage sont exposées dans la section Tolérances. /export/home/mh/Docs/HOWTOS/TeTeX-HOWTO/ Il existe beaucoup d'autres commandes qui spécifient les dimensions et les tolérances horizontales et verticales, et les plus répandues sont décrites plus loin.

3.2 Commandes de polices

En TeX, la police par défaut est la Computer Modern Roman en 10 pt. Pour préciser un style typographique, comme l'italique, le gras, ou l'espacement fixe, utilisez les commandes suivantes :

\rm          % Roman (par defaut).
\it          % Italiques.
\bf          % Gras.
\tt          % Espacement fixe (machine a ecrire).
\sl          % Oblique (slanted : incline).
Ces commandes modifient le style typographique à l'endroit où elles apparaissent dans le texte, comme dans cet exemple.
Ce texte est en Roman, \it et ce texte est en italiques. \bf Ce texte
est en gras et \rm ce texte est a nouveau en Roman.

Pour spécifier une police pour votre document, utilisez la commande \font.

\font\romantwelve=cmr12
Cela crée la commande de police \romantwelve, qui, lorsqu'elle est utilisée dans le texte, active la police Computer Modern Roman en 12 points.
\romantwelve
Voici la police Computer Modern Roman en 12 points.
Pour plus d'informations au sujet des polices de la distribution teTeX, consultez le fichier :
/usr/lib/teTeX/texmf/doc/fonts/fontname/fontname.dvi

Si vous voulez imprimer un échantillon d'une police, lancez TeX sur le fichier

/usr/lib/teTeX/texmf/tex/plain/base/fontchart.tex
et, à l'invite, renseignez le nom de la police que vous voulez imprimer.

Vous pouvez également modifier la taille d'une police pour obtenir des effets variés. L'agrandissement des polices est exponentiel, et est défini par la commande scaled \magstep, placée après la spécification de la police.

\font\sfmedium=cmss12 scaled \magstep 1
Cette commande vous donnera une police sans sérif d'une taille de 120 pourcent celle de la police sans sérif Computer Modern Roman de 12 points. Les agrandissements de polices peuvent aller de 0 à 5. Chaque échelle donne un agrandissement de 120 pourcent.

3.3 Styles et dimensions des paragraphes

Comme mentionné ci-dessus, TeX compose le texte en Computer Modern roman 10 points par défaut. La largeur d'une ligne est donnée par \hsize, qui s'élève à 6,5 in. par défaut. Si vous voulez changer la valeur de \hsize en 5,5 in. par exemple, utilisez cette commande.

\hsize=5.5in

En TeX, une dimension est une unité de longueur ajustable, soit horizontale, soit verticale. La quantité dont on peut augmenter ou diminuer une dimension peut être spécifiée dans sa définition. En relation étroite avec une dimension, il existe un pas (skip), qui est une dimension placée dans l'un des registres internes de TeX. Les pas sont définis avec la commande \newskip. La dimension \smallskip, telle que définie par TeX est :

\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt
La commande \smallskip est un raccourci pour :
\vskip\smallskipamount

Il existe un certain nombre de dimensions qui contrôlent la mise en page. Elles sont résumées dans la section Mise en page.

TeX compose les paragraphes en les justifiant aussi bien à gauche qu'à droite. Si vous souhaitez que le texte ne soit justifié qu'à gauche, utilisez cette commande :

\raggedright

Pour composer une ligne qui doit être justifiée à droite, utilisez la commande \rightline :

\rightline{Voici la ligne a composer.}

La commande \line compose le texte de son argument pour qu'il remplisse l'intégralité de la ligne.

\line{Ce texte sera espace pour remplir toute la ligne.}

La commande \hfil ajoute de l'espace là où elle apparaît pour remplir toute la ligne. Ainsi, par exemple, la commande \rightline est équivalente à :

\line{\hfil Cette ligne sera justifiee a droite.}

Pour composer une ligne centrée, utilisez la commande \centerline.

\centerline{Voici la ligne a centrer.}

Pour modifier la marge gauche, positionnez la valeur de \hoffset, comme dans cet exemple :

\hoffset=1.5in

La commande \parindent spécifie la quantité dont la première ligne de chaque paragraphe sera indentée.

\parindent=.5in

Deux autres dimensions, \leftskip et \rightskip, indenteront respectivement les marges gauche et droite des paragraphes qui les suivent.

\leftskip=.5in
\rightskip=.5in
La commande \narrower est l'équivalent de :
\leftskip=\parindent
\rightskip=\parindent
En fait, \narrower rétrécit les marges des paragraphes avec la valeur de \parindent.

Comme mentionné dans la section précédente, \baselineskip spécifie la distance entre les lignes. Sa valeur par défaut est de 12 pt. Pour obtenir une approximation d'un double interlignage, utilisez la commande suivante :

\baselineskip=\baselineskip*1.6

La commande \parskip spécifie une distance qui s'ajoute à \baselineskip entre deux paragraphes. Aucun espace supplémentaire n'est ajouté par défaut, mais la distance entre paragraphes peut s'étirer jusqu'à 1 pt. pour remplir la page correctement. Pour insérer une ligne blanche entre les paragraphes, utilisez cette commande :

\parskip=\baselineskip

Tolérances. (C'est quoi ces rectangles noirs à la fin dechaque ligne ?)

Normalement, TeX compose le texte dans le strict respect des tolérances. Si, pour une raison quelconque, le texte ne peut être composé en respectant ces tolérances, TeX produit un message d'erreur et compose le texte du mieux qu'il peut. Si le texte doit être trop étiré pour s'adapter à la ligne, TeX vous avertit que la \hbox n'est pas assez remplie (underfull). Tout texte qui doit être comprimé produit un avertissement de débordement (overfull \hbox).

Pour chaque overfull \hbox, TeX place un slug, un rectangle noir, en fin de ligne. Ce rectangle indique que la ligne n'a pu être formatée avec les contraintes imposées par le paramètre \hbadness.

L'ajustement du texte à l'intérieur de ses dimensions imposées est mesuré par sa « mauvaise qualité » (badness), qui est un nombre entre 0 et 10000. Une badness de 0 correspond à un ajustement parfait, et une badness de 1000 indique que la ligne ne sera probablement jamais ajustée. La valeur par défaut de \hbadness est 1000. Si vous mettez \hbadness à 10000, TeX ne réclamera plus à propos des lignes pas assez remplies.

TeX autorise quelquefois une ligne à déborder dans la marge droite. Il s'agit d'une décision esthétique de la part de l'auteur de TeX. La quantité autorisée pour ce débordement est déterminée par le paramètre \hfuzz, dont la valeur par défaut est de 0,1 pt. Si le texte ne peut s'adapter à la ligne, le paramètre de \tolerance détermine la façon dont TeX va gérer le dépassement. La valeur par défaut de \tolerance est 200. Positionner \tolerance à 1000 supprime les avertissements à propos des overfull \hbox et l'affichage des rectangles noirs.

3.4 Mise en page

En plus des dimensions de marge gauche et de longueur de ligne décrites dans la section précédente, TeX vous permet de spécifier les marges supérieure et inférieure, ainsi que l'espacement vertical.

À l'instar des dimensions \hsize et \hoffset décrites dans la section ci-dessus, TeX dispose des commandes \vsize et \voffset. Par défaut, \vsize vaut 8,9 in. et \voffset vaut 0.

En temps normal, teTeX place le début de la première ligne de texte à 1 in. sous le bord supérieur de la feuille et à 1 in. du bord gauche. Il vous est possible de commencer le texte plus près du haut de la page avec la commande :

\voffset=-0.5in

Si vous voulez ajouter de l'espacement vertical dans un document, les commandes \smallskip, \medskip et \bigskip ajouteront environ 3, 6 et 12 points d'espace vide vertical. Ces mesures sont des approximations : TeX fera des ajustements pouvant aller jusqu'à 1 pt. pour remplir correctement la page.

La commande \vfill ajoute un espacement vertical ajustable entre paragraphes d'une même page. Son étirement peut aller jusqu'à l'infini, ainsi elle ajoutera de l'espacement vertical pour remplir au maximum le restant de la page. Si vous voulez spécifier une dimension, utilisez \vskip, comme dans :

\vskip 10pt

Les commandes \hss et \vss sont similaires à \hfill et \vfill, mais elles fournissent des dimensions pouvant être rétrécies ou étirées à l'infini.

Les commandes \vskip et \vfill produisent des longueurs flexibles. Elles n'ajoutent pas d'espace là où il n'y a aucun texte ; par exemple en haut de la page. Utilisez \vglue si vous voulez ajouter un espacement absolu.

TeX remplit la dimension \vsize avec le plus possible de texte avant de commencer une nouvelle page. Pour forcer un saut de page, utilisez la séquence \vfill \eject. Si \vfill n'est pas utilisé, le texte avant le \break sera disposé de façon à remplir la page.

Si vous voulez que TeX soit plus flexible pour ce qui est des espacements verticaux sur la page, placez la commande \raggedbottom dans votre document. TeX ajustera alors légèrement la marge inférieure de chaque page pour rendre l'espacement vertical plus cohérent.

3.5 Numéros de page, en-têtes et pieds de page

Par défaut, TeX place le numéro de page au centre du pied de page. Si vous souhaitez changer l'emplacement et le style du numéro de page, il vous est possible de spécifier d'autres en-têtes et pieds de page en changeant les définitions de \headline et \footline. La valeur par défaut pour \footline contient la commande \folio, qui imprime le numéro de page. La valeur par défaut pour \headline est \hfill ; ce qui imprime donc une ligne blanche.

La commande \pageno est un synonyme du compteur de pages interne de TeX. Vous pouvez changer le numéro de page en changeant la valeur de \pageno. Si \pageno est négatif, les nombres sont imprimés en chiffres romains.

\pageno=10
\pageno=-1

La commande \nopagenumbers est un raccourci pour :

\headline={\hfil}
\footline={\hfil}

La ligne de pied de page par défaut contient également la commande pour police \tenrm, qui spécifie une police Roman 10 points pour le numéro de page. Si vous désirez imprimer le numéro de page en Roman 12 points par exemple, vous devez d'abord définir une commande pour positionner la police en Roman 12 points, et utiliser celle-ci dans la définition de \footline. Les commandes pour les polices sont abordées dans la section Commandes pour les polices.

\font\twelvrm=cmr12
\footline={\hss\twelvrm\folio\hss}

Vous pouvez insérer une ligne horizontale ou rule, en haut de chaque page en redéfinissant \headline comme suit :

\headline={\hrulefill}

Pour spécifier des en-têtes différents pour les pages paires et impaires, utilisez la commande \ifodd, qui a la forme :

\ifodd[condition][action-si-vrai]\else[action-si-faux]
Un exemple de \headline utilisant des en-têtes différents pour les pages paires et impaires est :
\headline={\ifodd\pageno en-tete-page-impaire \else en-tete-page-paire}
L'expression \ifodd utilise le premier argument si le numéro de page est impair, et le deuxième argument sinon.

3.6 Titres et macros

TeX ne fournit que la macro \beginsection pour les en-têtes de section. Elle laisse un espace au-dessus de son argument, imprime le texte de l'en-tête en gras, ajoute un \smallskip après le texte de l'en-tête, et commence le paragraphe suivant sans indentation.

Les commandes de chapitre et de section décrites plus loin ajoutent la numérotation des sections, impriment les titres et les numéros des sections dans les en-têtes de pages et ajoutent automatiquement les sections à la table de matières.

En TeX pur, c'est à vous d'écrire ces commandes. La commande \def vous permet de définir de nouvelles commandes. Supposons que vous souhaitiez imprimer le titre d'un chapitre. En premier, vous définissez la police que vous voulez utiliser. Une police de grande taille et sans sérif pour les titres de chapitres peut être définie ainsi :

\font\chapterfontsans=cmss12 scaled \magstep 4
Vous pouvez utiliser la commande \chapterfontsans à n'importe quel endroit où vous voulez adopter cette police, dont la hauteur approximative est de 24 points. Toutefois, dans cet exemple, son utilisation principale sera dans la commande \chaptertitlesans. Voici sa définition :
\def\chaptertitlesans#1{\hbox{}\bigskip\bigskip
 \noindent{\leftline{\chapterfontsans#1}}
 \par\bigskip\bigskip\noindent}
La première ligne, \hbox{}\bigskip, fixe un espacement de 12 points en haut de la page en y plaçant une \hbox{} vide. La ligne comportant le titre du chapitre n'est pas indentée, comme le paragraphe qui le suit immédiatement. Si vous placez une ligne vide entre la macro \chaptertitlesans et le paragraphe suivant, le \noindent final s'appliquera à la ligne vide, et non pas au texte du paragraphe qui suit. Pour un formatage correct, utilisez \chaptertitlesans, comme dans cet exemple :

L'expression #1 dans la définition est remplacée par le premier argument de \chaptertitlesans qui sera en fait le titre du chapitre. Dans les définitions en TeX, les paramètres sont déclarés par #1, #2, #3 et ainsi de suite. Un exemple d'utilisation de \chaptertitlesans serait :

\chaptertitlesans{Chapitre 1}
Cela est le texte commençant le premier paragraphe du chapitre.
Le paragraphe ne sera pas indente. Le titre du chapitre est
"Chapitre 1."


Page suivantePage précédenteTable des matières