Apprivoiser LaTeX - 2 - Mise en forme de caractères

Cette série d'articles a pour but de démontrer que LaTeX est accessible au plus grand nombre, que LaTeX n'est pas élitiste et qu'avec un peu de bonne volonté et un coup de pouce, tout le monde peut s'en sortir. Ces articles assurent le coup de pouce aux débutants, à vous de fournir la volonté.

Le mois dernier vous avez conçu votre premier document avec LaTeX. Jusqu'à présent vous n'avez pu éloborer qu'un document basique, mais correctement structuré. Nous allons maintenant nous atteler à « enrichir » les caractères composant votre texte.

Lors de vos premières tentatives du mois dernier vous avez peut-être eu envie de mettre en valeur certaines parties du texte. Nous allons aujourd'hui remédier à cela avec les propriétés des caractères.

Par défaut LaTeX justifie le texte ; c'est à dire que le texte est aligné à gauche et à droite. Nous étudierons les différentes dispositions de texte.

Dans le précédent article, je vous avais prévenu que vous risquiez d'avoir quelques problèmes avec certains caractères non alphanumériques. Nous verrons cette fois-ci comment utiliser ces caractères spéciaux et comment les afficher normalement.

Propriétés des caractères

Corps du texte

Le corps du texte est la taille de base des caratères. Il peut prendre l'une de ces trois valeurs : 10, 11 ou 12 points. Cela ne signifie que le texte de votre document va être limité à ces tailles-là. Non, c'est simplement la taille de base. C'est à partir d'elle que sont calculées toutes les tailles relatives (titre de document, de section, etc.). Ainsi, si vous modifiez le corps du texte, tout le texte de votre document sera affecté, pas seulement le texte qui se trouve être à cette taille (texte simple). Enfin, presque « tout » le texte, il est en effet possible de donner des tailles absolues, mais nous n'en sommes pas là.

Reprenons la toute première ligne de notre source du mois dernier :

\documentclass[a4paper,10pt]{article}

Cette ligne nous dit que nous composons un « article » sur du papier de taille « a4 » et avec un corps de base de « 10pt » (pt pour point : il s'agit là du point d'imprimeur qui vaut 0,3515 mm). C'est là que vous devez indiquer le corps du texte. Si vous ne le faites pas, la valeur de 10 sera prise par défaut.

Familles de police

Le style d'un caractère décrit la forme, l'aspect visuel de ce dernier ainsi que ses variantes. Commençons par la notion de police (le terme de fonte est également utilisé : police de caractère se dit font en anglais). Toute personne ayant déjà utilisé un outil de traitement de texte sait ce qu'est une police de caractère. Pour donner une définition simple : il s'agit de la description visuelle de chacun des caractères d'un ensemble comprenant généralement l'alphabet en majuscules, en minuscules, les chiffres, des caractères de ponctuation.

LaTeX regroupe les polices de caractères (celles contenant des chiffres et des lettres, on ne parlera pas ici des polices « exotiques » ne contenant que des symboles peu utiles à la réalisation d'un document) en trois familles :

Par défaut si vous ne précisez aucun changement de police vous écrivez en roman. Voici, dans cet exemple, les commandes pour passer en sans sérif et en typewriter :

Un \textsf{mot} en sans sérif et un \texttt{mot} en typewriter.
Un mot en sans sérif et un mot en typewriter.

La commande pour passer en roman est donc \textrm{}.

Cependant cette syntaxe n'est pas très adaptée si le texte dont la police doit être changée est long comme un paragraphe, voire tout le document. Pour cela on va utiliser des commandes de modification à long terme :

Ces commandes ne prennent aucun paramètre ; à partir d'elles tout le texte qui suit est affecté. On peut limiter le rayon d'action de ces commandes en encerclant le texte par une paire d'accolades ainsi :

{\sffamily
Tout le paragraphe et uniquement ce paragraphe utilise une police
sans empattements.
}
Evidemment pour que votre document soit entièrement rendu avec une police particulière, il suffit d'insérer la commande à long terme adéquate en début de l'environnement document (juste après \begin{document}).

Par exemple :

\begin{document}
\sffamily
Et maintenant tout votre texte est en police sans sérif. Tout le texte ? Regardez bien. En fait les titres de sections n'ont pas été modifiés. En fait, les commandes citées ci-dessus n'affecte que le texte de base et les commandes traitant les titres de sections ont leurs propres paramètres. Cela vous laisse donc la liberté d'utiliser deux styles de caractères différents pour les titres et le texte.

En pratique il existe une commande de modification de police pour chaque type de section ; son nom est obtenu en rajoutant « font » au nom de la commande de section. Exemples :

Et cela s'utilise ainsi :

\sectionfont{\sffamily}
Il suffit de donner la commande de modification à long terme en paramètre.

Simple. Mais un peu dangereux. Cela peut vous amener à faire des bétises typographiques. C'est à dire que vous pouvez briser l'homogénéité de la structure en place en définissant un peu n'importe quoi. Donc à utiliser avec parcimonie.

Cela peut donc devenir contraignant si vous voulez modifier la police de tous les titres de section. Il y a toutefois une solution si la modification de police est la même pour tous les titres :

\allsectionsfont{\sffamily}

Là où ça devient un peu compliqué, c'est que c'est fonctions de modification de police de titre de section ne sont pas disponibles de base dans LaTeX. Si vous compilez maintenant après les avoir insérées dans votre source, vous aurez un beau message d'erreur où l'on vous annonce que \allsectionsfont n'est pas définie :

ERROR: Undefined control sequence.

--- TeX said ---
<recently read> \allsectionsfont 
                                 
l.8 \allsectionsfont
                    {\sffamily}

Un des avantages de LaTeX est sa modularité ; c'est à dire que ses fonctionnalités peuvent facilement être étendues grâce à des modules d'extension (des sources qui définissent de nouvelles commandes). C'est dans le module sectsty que se trouvent les commandes que l'on cherche, et il faut indiquer à LaTeX que l'on souhaite l'inclure à notre source. Pour cela rajouter la ligne suivante dans l'en-tête du source :

\usepackage{sectsty}

Séries

Nous venons de voir tout le mécanisme de modification de styles de caractères en utilisant comme exemple les commandes de changement de famille de police. Suivant le même principe il est possible de changer aussi la série (ou graisse) et la forme (en anglais shape. Dans un premier temps je ne vous donne que les commandes à court terme (de la forme \textxx{}) puis vous trouverez les équivalences dans le tableau récapitulatif qui suit.

Pour afficher du texte en gras utilisez la commande \textbf{}, bf signifiant en anglais bold face. L'opération inverse se fait à l'aide de \textmd{}, md pour medium. Cela vous permet de passer en graisse normale si vous avez choisi un style de caractère gras.

Formes

Vous pouvez donner différentes formes à vos caractères, la plus utilisée étant la forme italique. Le texte est penché et sa typographie diffère du mode normal. Observez la différence pour la lettre a :

Pour mettre du texte en italique, utilisez la commande \textit{}.

La forme appelée « penchée » est différente de l'italique. Le texte est penché comme en italique, mais il garde la typographie de la forme normale. La commande est \textsl{}, sl pour slanted (penché).

Enfin, une dernière forme est disponible : les petites capitales (ou petites majuscules). Cela consiste à remplacer les minuscules par des majuscules de taille inférieure aux majuscules de base. Un exemple s'impose :

\textsc{Petites Capitales}
donne ceci PETITES CAPITALES. La terminologie sc provient de small caps.

La forme par défaut (caractères droits) est obtenue par la commande \textup{}.

La commande \emph{} a un usage un peu particulier. Elle sert à mettre en évidence (en emphase) une partie du texte en :

Cela permet de passer tout un paragraphe en italique sans ce soucier de savoir s'il contient du texte en emphase.
\textit{Ce dernier sera donc \emph{droit} à l'intérieur d'un
paragraphe en italique.}
Ce dernier sera donc droit à l'intérieur d'un paragraphe en italique.

Pour en finir avec les commandes sachez qu'il existe \textnormal{}. Elle permet de revenir au style caractère par défaut. Pour cela elle affecte à la fois, la famille de police, la série et la forme. C'est l'équivalent d'un appel combiné de \textrm{}, \textmd{} et \textup{}.

Voici maintenant le tableau d'équivalence entre les commandes à courte et à long portée :

Court terme Long terme
Familles de police
\textrm{} \rmfamily
\textsf{} \sffamily
\texttt{} \ttfamily
Séries (graisse)
\textmd{} \mdseries
\textbf{} \bfseries
Formes (shape)
\textup{} \upshape
\textit{} \itshape
\textsl{} \slshape
\textsc{} \scshape
Police par défaut
\textnormal{} \normalfont
Emphase
\emph{} \em

Ces commandes sont combinables entre elles. C'est à dire que pour obtenir un mot en gras sans sérif vous écrirez :

\textsf{\textbf{Mot}}
ou bien
\textbf{\textsf{Mot}}

Cependant, il y a certaines incompatibilités. Le tableau ci-dessous résume les mélanges de styles que vous pouvez effectuer. Dans les autres cas, vous n'aurez pas le résultat voulu. A noter le mélange sans sérif avec italique vous donnera du sans sérif penché.

  rm sf tt md bf up it sl sc
rm       * * * * * *
sf       * * * (*) *  
tt       *   * * * *
md * * *     * * * *
bf * *       * * * *
up * * * * *        
it * (*) * * *        
sl * * * * *        
sc *   * * *        

Disposition du texte

Par défaut LaTeX justifie le texte ; cela signifie qu'il est aligné à gauche et à droite. C'est le cas, par exemple, du corps des articles de ce magazine : les extrémités gauche et droite de chaque ligne de texte sont sur une même ligne verticale (sauf, bien sûr, la ligne terminant un bloc de texte). Par contre, le titre est centré : chaque ligne de texte s'étend de part et d'autre d'une verticale centrale au bloc texte, mais chacune des lignes de texte n'a pas la même largeur. Le texte introductif juste en dessous du titre est aligné à gauche : l'extrémité droite varie en fonction de la taille des mots pouvant entrer sur une ligne. De même pour la signature, à la fin de l'article, qui, elle, est alignée à droite.

Cela signifie que pour justifier le texte, LaTeX doit opérer certaines modifications pour faire rentrer le texte pile poil dans la ligne. Elles consistent à jouer de façon minime sur la taille des espaces mais surtout à couper les mots de fin de ligne (on appelle cela la césure). Nous reparlerons de la césure et de ses particularités en langue française dans un prochain article consacré à la rédaction de documents en français.

Mais pour l'heure intéressons-nous aux moyens de changer l'alignement du texte. Nous allons utiliser des environnements. Si vous vous souvenez bien, le mois dernier, nous avions déjà eu affaire à un environnement, celui nécessaire à tout document LaTeX, l'environnement document. Un petit exemple résumera bien la situation :

\begin{flushleft}
  Tout d'abord, du texte aligné à gauche. Pour bien se rendre compte
  de la chose je fais du remplissage intentionnel afin d'avoir
  plusieurs lignes.
\end{flushleft}
\begin{center}
  Et nous voici maintenant au centre. Au centre de quoi ? Et bien du
  bloc de texte bien sûr !
\end{center}
\begin{flushright}
  Et nous finissons cette visite du bloc de texte à droite.
\end{flushright}

Tout d'abord, du texte aligné à gauche. Pour bien se rendre compte de la chose je fais du remplissage intentionnel afin d'avoir plusieurs lignes.
Et nous voici maintenant au centre. Au centre de quoi ? Et bien du bloc de texte bien sûr !
Et nous finissons cette visite du bloc de texte à droite.

Caractères spéciaux

Vous avez peut-être constaté des erreurs de compilation dues à certains caractères un peu spéciaux ($, %, _, &, \ par exemple). Ces caratères ont chacun une fonction dans LaTeX. Si l'on veut les utiliser comme simple caractère, il faut le préciser à LaTeX. Voici dans ce tableau pour chaque caractère spécial, la commande à utiliser pour le déspécialiser :

Commandes pour LaTeX de base
% \%
& \&
_ \_
$ \$
{ } \{ \}
# \#
Commandes avec le module babel
\ \boi
~ \tild
^ \circonflexe
° \degres
No, no \No, \no

Les six premières commandes sont utilisables quelque soit le type de document LaTeX que vous rédigez, elles font partie de la base de LaTeX. Les six dernières appartiennent au module babel. Sa mission est de gérer les spécificités de chaque langue qu'il gère (la liste des langues gérées est assez conséquente). Si vous utilisez l'exemple du mois dernier alors vous utilisez babel et plus particulièrement son option française comme l'indique cette ligne dans l'en-tête de votre source :

\usepackage[french]{babel}

Nous reviendrons sur babel plus en détails dans un article consacré à la langue française.

Compilez, imprimez

Nous terminons par un petit rappel de la procédure qui va transformer votre source LaTeX en un superbe document sur papier. J'avais oublié de le préciser le mois dernier mais le symbole $ en début de ligne de commande symbolise votre prompt, vous n'avez pas à le taper.

Compiler (invoquer LaTeX pour qu'il mette en forme votre document) :

$ latex document.tex

Visionner votre document mis en forme :

$ xdvi document.dvi

Imprimer votre document :

$ dvips document.dvi -o document.ps
$ lpr document.ps

Voilà, c'est tout pour aujourd'hui. Le mois prochain nous parlerons de listes et de tableaux. N'hésitez pas à me faire part de vos questions, remarques, reproches concernant cet article.

Dimitri Robert
dimitri-robert CHEZ wanadoo.fr

Liens

Sur Internet

Sur la table de chevet