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

269 lines
8.6 KiB
Text
Raw Normal View History

<?xml version="1.0" encoding="UTF-8"?>
2002-11-12 21:04:26 +01:00
<!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.
2002-11-12 21:04:26 +01:00
</p>
<h2><a name="definition">Définition d'une police</a></h2>
2002-11-12 21:04:26 +01:00
<p>
Pour caractériser une police, LaTeX définit quatre atributs:
2002-11-12 21:04:26 +01:00
</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>
2002-11-12 21:04:26 +01:00
<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
2002-11-12 21:04:26 +01:00
globale de la police, comme l'italique par exemple</li>
<li>le <em>codage</em> n'a qu'une influence secondaire, à ceci près
2002-11-12 21:04:26 +01:00
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
2002-11-12 21:04:26 +01:00
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:
2002-11-12 21:04:26 +01:00
</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.
2002-11-12 21:04:26 +01:00
</p>
<h2><a name="commandes">Commandes</a></h2>
<p>
Les commandes pour changer de police sont très simples:
2002-11-12 21:04:26 +01:00
</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>
2002-11-12 21:04:26 +01:00
</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>,
2002-11-12 21:04:26 +01:00
<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
2002-11-12 21:04:26 +01:00
<code>\selectfont</code>. La commande <code>\usefont</code> est un
raccourci pour définir les quatre d'un coup et activer le changement.
2002-11-12 21:04:26 +01:00
</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
2002-11-12 21:04:26 +01:00
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
2002-11-12 21:04:26 +01:00
<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
2002-11-12 21:04:26 +01:00
peuvent en avoir quelques-unes en plus ou en moins parmi les plus
exotiques. Ce ne sont pas toutes des polices convenables pour écriré:
2002-11-12 21:04:26 +01:00
certaines contiennent des symboles, ou d'autres un jeu restreint de
caractères.
2002-11-12 21:04:26 +01:00
</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
2004-04-12 20:03:52 +02:00
codage <code>T1</code>. Les collections et les formes les plus
courrantes ont des dénominations standards:
2002-11-12 21:04:26 +01:00
</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>
2002-11-12 21:04:26 +01:00
</dl>
</li>
<li>Formes:
<dl>
<dt>n</dt><dd>normal</dd>
<dt>sl</dt><dd>penché (slanted)</dd>
2002-11-12 21:04:26 +01:00
<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
2002-11-12 21:04:26 +01:00
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,
2002-11-12 21:04:26 +01:00
% 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
2004-04-12 20:03:52 +02:00
\montrer{T1}{cmr}{m}{n}
\montrer{T1}{phv}{m}{sc}
\montrer{T1}{ptm}{b}{it}
2002-11-12 21:04:26 +01:00
\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
2002-11-12 21:04:26 +01:00
dans le cas d'un document long. Pour l'utiliser efficacement et
facilement, le mieux est de créer une commande ou un environnement.
2002-11-12 21:04:26 +01:00
</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
2002-11-12 21:04:26 +01:00
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.
2002-11-12 21:04:26 +01:00
</p>
<pre>
\newenvironment{<em>nom</em>}
{\fontfamily{phv}\selectfont}{}
</pre>
<p>
Ceci définit l'environnement <code><em>nom</em></code> (donc délimité
2002-11-12 21:04:26 +01:00
par <code>\begin{<em>nom</em>}</code> et
<code>\end{<em>nom</em>}</code>), à l'intérieur duquel le texte est en
2002-11-12 21:04:26 +01:00
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
2002-11-12 21:04:26 +01:00
une commande <code>\titre</code>:
</p>
<pre>
% Les titres sont en Times penché: \titre{The \TeX book}
2002-11-12 21:04:26 +01:00
\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
2002-11-12 21:04:26 +01:00
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
2002-11-12 21:04:26 +01:00
\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
2002-11-12 21:04:26 +01:00
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
2002-11-12 21:04:26 +01:00
possibles. Attention toutefois de bien faire attention que la police
choisie existe dans le codage par défaut et les différentes variantes.
2002-11-12 21:04:26 +01:00
</p>
<div class="metainformation">
Auteur : Nicolas George. <date value="from git" />
2002-11-12 21:04:26 +01:00
</div>
</body>
</html>