# Polices

# Changer de police en LaTeX

LaTeX est un système de mise en page complet, et à ce titre, offre la possibilité de changer de police de caractère. Néanmoins, les changements de polices, dans l'esprit de LaTeX, doivent êtrre incorporés dans des packages définissant un style de présentation. C'est un peu pour ça que le changement de police est un peu complexe. Il est néanmoins abordable, comme nous allons le voir.

## Définition d'une police

Pour caractériser une police, LaTeX définit quatre atributs:

- la famille est celui qui définit le plus l'apparence de la police, tous les autres ne font que définir des variantes autour d'un même thême
- la collection indique tout simplement le poids de la police, c'est à dire, en gros, gras ou pas
- la forme définit une variante dans, justement, la forme globale de la police, comme l'italique par exemple
- le codage n'a qu'une influence secondaire, à ceci près que certaines polices ne sont disponibles que dans certains codages

Normalement, LaTeX est intelligent, et est capable de changer un de ces attributs en conservant les autres constants. Il faut cependant faire attention: si une police donnée (combinaison de tous les attributs) n'est pas disponible, il risque de faire n'importe-quoi, en particulier revenir à la police par défaut. Notons cependant que ceci est signalé par un message assez claire lors de la compilation:

    LaTeX Font Warning: Font shape `OT1/cmr/bx/sc' undefined
    (Font)              using `OT1/cmr/bx/n' instead on input line 10.

Notons au passage que LaTeX utilise la notation codage/famille/collection/forme pour décrire une police dans ses messages.

## Commandes

Les commandes pour changer de police sont très simples:

`\fontencoding{codage}` | change le codage
`\fontfamily{famille}` | change la famille
`\fontseries{collection}` | change la collection
`\fontshape{forme}` | change la forme
`\selectfont` | active la police définie
`\usefont{code}{fam.}{col.}{forme}` | change tout d'un coup et active

Les quatre premières commandes, `\fontencoding`, `\fontfamily`, `\fontseries` et `\fontshape`, préparent un changement de police, qui est entériné par `\selectfont`. L'utilisation normale est de mettre une ou plusieurs des premières, suivie(s) de `\selectfont`. La commande `\usefont` est un raccourci pour définir les quatre d'un coup et activer le changement.

La police est changé pour tout le reste du texte, jusqu'à la fin du groupe courrant (rappelons qu'un groupe est délimité par un couple d'accolades ou une structure `\begin`...`\end`. En ce sens, ces fonctions fonctionnent de la même manière que les commandes obsolètes `\it`, `\bf`, etc...

## Polices existantes

Voici la table de toutes les polices présentes dans l'installation ici. Différentes distributions de LaTeX peuvent en avoir quelques-unes en plus ou en moins parmi les plus exotiques. Ce ne sont pas toutes des polices convenables pour écriré: certaines contiennent des symboles, ou d'autres un jeu restreint de caractères.

Toutes les colonnes (sauf la première) indiquent les noms techniques à fournir aux différentes commandes LaTeX. Pour le codage, dans le cas d'une police destinée à écrire du texte, il vaut mieux choisir le codage `T1`. Les collections et les formes les plus courrantes ont des dénominations standards:

- Collections:
  m
    moyen (medium)
  b
    gras (bold)
  bx
    très gras (extra bold)
  l
    léger (light)
- Formes:
  n
    normal
  sl
    penché (slanted)
  it
    italique
  sc
    petites majuscules (small caps)

Par défaut, LaTeX utilise les familles Computer Modern, celles dont le nom commence par `cm`. Les différentes versions qui en existent correspondent aux commandes LaTeX qui changent radicalement l'apparance du texte: `\textsf` et `\texttt`.

## Exemple

Voici un bout de code LaTeX qui vous permettra d'explorer toutes les polices:

    \documentclass{article}
    % La commande montre prend comme arguments les paramètres d'une police,
    % et en affiche un exemple.
    \newcommand\montrer[4]{Police #1/#2/#3/#4:
      {\usefont{#1}{#2}{#3}{#4}ABCDEF abcdef 123456 ,;:!}\par}
    \begin{document}

    % Vous pouvez changer les valeurs, pour voir d'autres polices
    \montrer{T1}{cmr}{m}{n}
    \montrer{T1}{phv}{m}{sc}
    \montrer{T1}{ptm}{b}{it}
    \montrer{U}{pzd}{m}{n}
    \montrer{U}{yinit}{m}{n}

    \end{document}

## Utilisation propre

Il ne faut pas oublier que la philosophie de LaTeX est de séparer la présentation et le sens. Changer de police peut certes apporter beaucoup, mais ça risque de poser également des problèmes, au moins dans le cas d'un document long. Pour l'utiliser efficacement et facilement, le mieux est de créer une commande ou un environnement.

    \newcommand\nom[1]{{\fontfamily{phv}\selectfont #1}}

Ceci permet de définir la commande `\nom` change la police en Helvetica pour son argument. On peut bien sûr remplacer `\fontfamily{phv}` par autre chose. Notez les doubles accolades: les premières délimitent la définition, tandis que les secondes empêchent le changement de police de s'échapper.

    \newenvironment{nom}
      {\fontfamily{phv}\selectfont}{}

Ceci définit l'environnement `nom` (donc délimité par `\begin{nom}` et `\end{nom}`), à l'intérieur duquel le texte est en Helvetica.

On peut (et même on devrait) incorporer les changements de police à des commandes plus spécifiques, ayant trait au sens du texte, comme une commande `\titre`:

    % Les titres sont en Times penché: \titre{The \TeX book}
    \newcommand\titre[1]{{\fontfamily{ptm}\fontshape{sl}\selectfont #1}}

Enfin, si le but est de changer la police pour tout le document, le mieux est de redéfinir les polices par défaut de LaTeX. Si on regarde dans les fichiers source de LaTeX, on trouve une série de lignes qui contiennent ceci:

    \newcommand\rmdefault{cmr}  % famille à utiliser pour du Roman
    \newcommand\sfdefault{cmss} % famille à utiliser pour du Sans Serif
    \newcommand\ttdefault{cmtt} % famille à utiliser pour du «machine à écrire»
    \newcommand\bfdefault{bx}   % collection à utiliser pour du gras
    \newcommand\mddefault{m}    % collection à utiliser pour du moyen
    \newcommand\itdefault{it}   % forme à utiliser pour de l'italique
    \newcommand\sldefault{sl}   % forme à utiliser pour du penché
    \newcommand\scdefault{sc}   % forme à utiliser pour de petites majuscules
    \newcommand\updefault{n}    % forme à utiliser pour du droit
    \newcommand\encodingdefault{OT1}      % codage normal
    \newcommand\familydefault{\rmdefault} % famille normale: Roman
    \newcommand\seriesdefault{\mddefault} % collection normale: moyen
    \newcommand\shapedefault{\updefault}  % forme normale: droit

Les commandes comme `\textit`, `\texttt` ou `\textbf` sont définies en termes de ces commandes-ci. Ainsi, il est possible de les modifier proprement: `\renewcommand\sfdefault{phv}` définit que la police Helvetica est à utiliser comme police pour le texte Sans Serif (`\textsf`). Bien sûr, toutes les variantes sont possibles. Attention toutefois de bien faire attention que la police choisie existe dans le codage par défaut et les différentes variantes.

Auteur : Nicolas George. Dernière mise à jour : .