tuteurs.ens.fr/logiciels/latex/polices.tml

269 lines
8.5 KiB
Text
Raw Normal View History

2002-11-12 21:04:26 +01:00
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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<73>me de mise en page complet, et <20> ce titre, offre la
possibilit<EFBFBD> de changer de police de caract<63>re. N<>anmoins, les
changements de polices, dans l'esprit de LaTeX, doivent <20>trre
incorpor<EFBFBD>s dans des packages d<>finissant un style de
pr<EFBFBD>sentation. C'est un peu pour <20>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<63>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<74>me</li>
<li>la <em>collection</em> indique tout simplement le poids de la
police, c'est <20> 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, <20> ceci pr<70>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<6E>e (combinaison de tous les
attributs) n'est pas disponible, il risque de faire n'importe-quoi, en
particulier revenir <20> la police par d<>faut. Notons cependant que ceci
est signal<61> 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<74>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<6D>res commandes, <code>\fontencoding</code>,
<code>\fontfamily</code>, <code>\fontseries</code> et
<code>\fontshape</code>, pr<70>parent un changement de police, qui est
ent<EFBFBD>rin<EFBFBD> par <code>\selectfont</code>. L'utilisation normale est de
mettre une ou plusieurs des premi<6D>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<6E> pour tout le reste du texte, jusqu'<27> la fin du
groupe courrant (rappelons qu'un groupe est d<>limit<69> 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<6E>re que les commandes obsol<6F>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<EFBFBD>sentes dans l'installation ici. Diff<66>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 <20>crir<69>:
certaines contiennent des symboles, ou d'autres un jeu restreint de
caract<EFBFBD>res.
</p>
<p>
Toutes les colonnes (sauf la premi<6D>re) indiquent les noms techniques <20>
fournir aux diff<66>rentes commandes LaTeX. Pour le codage, dans le cas
d'une police destin<69>e <20> <20>crire du texte, il vaut mieux choisir le
codage <code>OT1</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<74>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<63> (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<66>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<61>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{OT1}{cmr}{m}{n}
\montrer{OT1}{phv}{m}{sc}
\montrer{OT1}{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<EFBFBD>sentation et le sens. Changer de police peut certes apporter
beaucoup, mais <20>a risque de poser <20>galement des probl<62>mes, au moins
dans le cas d'un document long. Pour l'utiliser efficacement et
facilement, le mieux est de cr<63>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<6D>res d<>limitent la d<>finition, tandis que
les secondes emp<6D>chent le changement de police de s'<27>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<69>
par <code>\begin{<em>nom</em>}</code> et
<code>\end{<em>nom</em>}</code>), <20> l'int<6E>rieur duquel le texte est en
Helvetica.
</p>
<p>
On peut (et m<>me on devrait) incorporer les changements de police <20>
des commandes plus sp<73>cifiques, ayant trait au sens du texte, comme
une commande <code>\titre</code>:
</p>
<pre>
% Les titres sont en Times pench<63>: \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<65>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 <20> utiliser pour du Roman
\newcommand\sfdefault{cmss} % famille <20> utiliser pour du Sans Serif
\newcommand\ttdefault{cmtt} % famille <20> utiliser pour du <20>machine <20> <20>crire<72>
\newcommand\bfdefault{bx} % collection <20> utiliser pour du gras
\newcommand\mddefault{m} % collection <20> utiliser pour du moyen
\newcommand\itdefault{it} % forme <20> utiliser pour de l'italique
\newcommand\sldefault{sl} % forme <20> utiliser pour du pench<63>
\newcommand\scdefault{sc} % forme <20> utiliser pour de petites majuscules
\newcommand\updefault{n} % forme <20> 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 <20> utiliser comme police pour le texte Sans Serif
(<code>\textsc</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<66>rentes variantes.
</p>
<div class="metainformation">
Auteur<EFBFBD>: Nicolas George. Derni<6E>re mise <20> jour<75>: f<>vrier 2001.
</div>
</body>
</html>