tuteurs.ens.fr/logiciels/latex/polices.tml
Marc Mezzarobba cbbe543fce Passage à git des « Dernière modif... »
Remplacement de toutes les phrases du style « Dernière modification le
... [par ...] » par <date value="from git" />, qui produit une phrase du
genre à partir de l'historique du dépôt. Le « from git » n'a pas
d'importance, c'est juste parce que la DTD de TML (que je préfère ne pas
changer) exige un attribut value.

Last-change: ignore this commit
2009-09-27 22:16:43 +02:00

268 lines
8.6 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
"tuteurs://DTD/tml.dtd">
<html>
<head>
<title>Polices</title>
</head>
<body lang="fr">
<h1>Changer de police en LaTeX</h1>
<p class="resume">
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.
</p>
<h2><a name="definition">Définition d'une police</a></h2>
<p>
Pour caractériser une police, LaTeX définit quatre atributs:
</p>
<ul>
<li>la <em>famille</em> 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</li>
<li>la <em>collection</em> indique tout simplement le poids de la
police, c'est à dire, en gros, gras ou pas</li>
<li>la <em>forme</em> définit une variante dans, justement, la forme
globale de la police, comme l'italique par exemple</li>
<li>le <em>codage</em> n'a qu'une influence secondaire, à ceci près
que certaines polices ne sont disponibles que dans certains
codages</li>
</ul>
<p>
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:
</p>
<pre>
LaTeX Font Warning: Font shape `OT1/cmr/bx/sc' undefined
(Font) using `OT1/cmr/bx/n' instead on input line 10.
</pre>
<p>
Notons au passage que LaTeX utilise la notation
<em>codage</em>/<em>famille</em>/<em>collection</em>/<em>forme</em>
pour décrire une police dans ses messages.
</p>
<h2><a name="commandes">Commandes</a></h2>
<p>
Les commandes pour changer de police sont très simples:
</p>
<table class="tableau">
<tr>
<td><code>\fontencoding{<em>codage</em>}</code></td>
<td>change le codage</td>
</tr>
<tr>
<td><code>\fontfamily{<em>famille</em>}</code></td>
<td>change la famille</td>
</tr>
<tr>
<td><code>\fontseries{<em>collection</em>}</code></td>
<td>change la collection</td>
</tr>
<tr>
<td><code>\fontshape{<em>forme</em>}</code></td>
<td>change la forme</td>
</tr>
<tr>
<td><code>\selectfont</code></td>
<td>active la police définie</td>
</tr>
<tr>
<td><code>\usefont{<em>code</em>}{<em>fam.</em>}{<em>col.</em>}{<em>forme</em>}</code></td>
<td>change tout d'un coup et active</td>
</tr>
</table>
<p>
Les quatre premières commandes, <code>\fontencoding</code>,
<code>\fontfamily</code>, <code>\fontseries</code> et
<code>\fontshape</code>, préparent un changement de police, qui est
entériné par <code>\selectfont</code>. L'utilisation normale est de
mettre une ou plusieurs des premières, suivie(s) de
<code>\selectfont</code>. La commande <code>\usefont</code> est un
raccourci pour définir les quatre d'un coup et activer le changement.
</p>
<p>
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
<code>\begin</code>...<code>\end</code>. En ce sens, ces fonctions
fonctionnent de la même manière que les commandes obsolètes
<code>\it</code>, <code>\bf</code>, etc...
</p>
<h2><a name="existantes">Polices existantes</a></h2>
<p>
Voici la <a href="polices_liste.html">table de toutes les polices</a>
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.
</p>
<p>
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 <code>T1</code>. Les collections et les formes les plus
courrantes ont des dénominations standards:
</p>
<ul>
<li>Collections:
<dl>
<dt>m</dt><dd>moyen (medium)</dd>
<dt>b</dt><dd>gras (bold)</dd>
<dt>bx</dt><dd>très gras (extra bold)</dd>
<dt>l</dt><dd>léger (light)</dd>
</dl>
</li>
<li>Formes:
<dl>
<dt>n</dt><dd>normal</dd>
<dt>sl</dt><dd>penché (slanted)</dd>
<dt>it</dt><dd>italique</dd>
<dt>sc</dt><dd>petites majuscules (small caps)</dd>
</dl>
</li>
</ul>
<p>
Par défaut, LaTeX utilise les familles <em>Computer Modern</em>,
celles dont le nom commence par <code>cm</code>. Les différentes
versions qui en existent correspondent aux commandes LaTeX qui
changent radicalement l'apparance du texte: <code>\textsf</code> et
<code>\texttt</code>.
</p>
<h2><a name="exemple">Exemple</a></h2>
<p>
Voici un bout de code LaTeX qui vous permettra d'explorer toutes les polices:
</p>
<pre>
\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}
</pre>
<h2><a name="propre">Utilisation propre</a></h2>
<p>
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.
</p>
<pre>
\newcommand<em>\nom</em>[1]{{\fontfamily{phv}\selectfont #1}}
</pre>
<p>
Ceci permet de définir la commande <code><em>\nom</em></code> change
la police en <em>Helvetica</em> pour son argument. On peut bien sûr
remplacer <code>\fontfamily{phv}</code> 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.
</p>
<pre>
\newenvironment{<em>nom</em>}
{\fontfamily{phv}\selectfont}{}
</pre>
<p>
Ceci définit l'environnement <code><em>nom</em></code> (donc délimité
par <code>\begin{<em>nom</em>}</code> et
<code>\end{<em>nom</em>}</code>), à l'intérieur duquel le texte est en
Helvetica.
</p>
<p>
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 <code>\titre</code>:
</p>
<pre>
% Les titres sont en Times penché: \titre{The \TeX book}
\newcommand\titre[1]{{\fontfamily{ptm}\fontshape{sl}\selectfont #1}}
</pre>
<p>
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:
</p>
<pre>
\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
</pre>
<p>
Les commandes comme <code>\textit</code>, <code>\texttt</code> ou
<code>\textbf</code> sont définies en termes de ces
commandes-ci. Ainsi, il est possible de les modifier proprement:
<code>\renewcommand\sfdefault{phv}</code> définit que la police
<em>Helvetica</em> est à utiliser comme police pour le texte Sans Serif
(<code>\textsf</code>). 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.
</p>
<div class="metainformation">
Auteur : Nicolas George. <date value="from git" />
</div>
</body>
</html>