Vincent Zoonekynd
1998 -- juillet 2000
Ce document explique comment utiliser LaTeX avec d'autres fontes que les sempiternelles Computer Modern. Le début s'efforce d'être compréhensible par tous, mais les manipulations plus compliquées exposées par la suite sont vivement déconseillées aux utilisateurs non avertis de LaTeX.
Je tiens à préciser que je ne comprends pas toujours ce dont je parle : ce document contient probablement des erreurs ou de mauvais conseils. Ne l'utilisez qu'avec un oeil critique et n'hésitez pas à me signaler ces problèmes.
Comme il s'agit en fait de la liste de mes divers essais d'utilisation de fontes avec LaTeX, ce document risque de paraître un peu brouillon.
De plus, ce document reste incomplet et je ne sais pas si j'aurai le temps de le compléter.
1 Introduction
1.1 Où trouver la dernière version de ce document ?
1.2 Quels sont les autres documents sur le sujet ?
1.3 Où trouver des fontes Métafont, PostScript ou TTF ?
2 Choses simples
2.1 Quelles sont les commandes de changement de fontes ?
2.2 Comment écrire plus grand ?
2.3 Comment changer de fontes pour tout le document ?
2.4 Où trouver les caractères textuels manquants ?
2.5 Comment avoir un symbole Euro ?
2.6 Comment avoir des « chiffres elzéviriens » ?
2.7 Où trouver les caractères mathématiques manquants ?
2.8 Comment avoir une fonte mathématique manuscrite ?
2.9 Comment avoir une fonte mathématique gothique ?
2.10 Comment avoir des lettres mathématiques avec une double barre ?
2.11 Comment avoir des symboles mathématiques en gras ?
3 Généralités
3.1 Vocabulaire
3.2 Quels sont tous ces fichiers ?
3.3 Comment passer de l'un de ces format de fichier à un autre ?
3.4 Où LaTeX va-t-il chercher tous ces fichiers ?
3.5 Quelle est la différence entreinputenc etfontenc ?
3.6 Comment taper les lettres accentuées « normalement » ?
3.7 Comment taper le oe normalement ?
3.8 Qu'est-ce que le codage ?
3.9 Quels sont les différents codages d'entrée ?
3.10 Quels sont les différents codages de fontes ?
3.11 Est-il vrai que le codageOT1 pose des problèmes de césure ?
3.12 Pourquoi les fontes ont-elles des noms aussi illisibles ?
3.13 Pourquoi y a-t-il plein de chiffres dans certains noms de fontes :ecrm1000.tfm ?
4 NFSS (New Font Selection Scheme)
4.1 Qu'est-ce que NFSS ?
4.2 Quelles sont les caractéristiques d'une fonte ?
4.3 Comment changer de fonte (commandes de « bas niveau ») ?
4.4 Comment avoir des petites capitales italiques ?
4.5 Comment utiliser ponctuellement une fonte ?
4.6 Comment utiliser ponctuellement une fonte (bis) ?
4.7 Quel est le dernier argument des commandes\DeclareFontFamily et\DeclareFontShape ?
4.8 Quelles autres choses peut-on mettre dans un fichier*.fd ?
4.9 Comment accéder à un caractère d'une fonte en connaissant juste son numéro ?
4.10 Comment changer la fonte par défaut du document ?
4.11 Comment utiliser plusieurs codages de fonte en même temps ?
4.12 Comment utiliser une fonte texte en mode mathématique ?
4.13 Comment utiliser une fonte texte comme si c'était une fonte mathématique ?
4.14 Comment utiliser une fonte texte comme fonte mathématique par défaut ? Comment modifier certains caractères mathématiques ?
4.15 Comment utiliser une fonte mathématique différente ?
4.16 Comment (et pourquoi) utiliser différentes versions mathématiques ?
4.17 Quelles sont les différentes dimensions présentes dans une fonte ? Comment les modifier ?
5 Au delà des caractères latins
5.1 Comment utiliser l'alphabet phonétique ?
5.2 Comment écrire des partitions musicales ?
5.3 Comment écrire quelques mots en russe ? Comment utiliser un caractère russe en mode mathématique ?
5.4 Comment écrire quelques mots en grec ancien ?
5.5 Pourquoi n'y a-t-il pas de béta interne ?
5.6 Comment écrire quelques mots en japonais ?
5.7 Comment écrire quelques mots en Chinois ? en Coréen ?
5.8 Comment inclure quelques mots dans une autre langue ?
5.9 Qu'est-ce qu'Unicode ? Comment utilise-t-on Omega ?
6 Métafont
6.1 Qu'est-ce que métafont ?
6.2 Comment utiliser Métafont ? Comment visualiser des fichiers Métafont ?
6.3 Comment réaliser un catalogue de fontes Métafont ?
6.4 Comment utiliser une fonte Métafont de manière ponctuelle dans un document LaTeX ?
6.5 Comment utiliser une fonte MF comme fonte par défaut dans un document LaTeX ?
6.6 Comment utiliser plusieures fontes MF comme fonte par défaut dans un document LaTeX ?
6.7 Comment peut-on modifier une fonte Métafont ?
6.8 Peut-on transformer une fonte Métafont en une fonte PostScript ?
6.9 Peut-on transformer une fonte Métafont en une fonte PostSCript de type 1 ?
6.10 Peut-on convertir une fonte Métafont en fonte True Type ? Peut-on utiliser les fontes Computer Modern avec d'autres logiciels que TeX ?
7 Fontes PostScript
7.1 Qu'est-ce que le PostScript ?
7.2 Qu'est-ce qu'une fonte PostScript ?
7.3 Comment créer soi-même une fonte PostScript de type 3 ?
7.4 Comment créer soi-même une fonte PostScript de type 1 ?
7.5 Comment avoir les contours d'une fonte de type 1 ?
7.6 Comment transformer une fonte de type 1 en une fonte de type 3 ?
7.7 Comment changer le codage d'une fonte PostScript ?
7.8 Comment mettre des commandes PostScript dans un fichier LaTeX ?
7.9 Comment visualiser une fonte PostScript ?
7.10 Comment réaliser un catalogue de fontes PostScript ?
7.11 Y a-t-il des versions PostScript des fontes Computer Modern ?
7.12 Comment dire à dvips quelles sont les fontes PostScript ?
7.13 Comment utiliser une fonte PostScript de manière ponctuelle dans un document LaTeX ?
7.14 Comment utiliser une fonte PostScript de manière ponctuelle dans un document LaTeX (en tenant compte du codage) ?
7.15 Comment utiliser plusieures fontes PostScript de manière ponctuelle dans un document LaTeX ?
7.16 Comment utiliser une fonte PostScript comme fonte par défaut dans un document LaTeX ?
7.17 Comment utiliser une fonte PostScript de manière ponctuelle dans un document LaTeX (vieille version de la même question --- à effacer) ?
7.18 Comment pencher une fonte PostScript ?
7.19 Comment élargir ou condenser une fonte PostSCript ?
7.20 Comment récupérer une fonte PostScript utilisée dans un fichier PDF ?
7.21 Comment récupérer une fonte PostScript utilisée dans un fichier PostScript ?
8 Fontes True Type (TTF)
8.1 Qu'est-ce qu'une fonte True Type ?
8.2 Comment créer une fonte True Type ? Comment modifier une fonte True Type existante ?
8.3 Comment visualiser une fonte True Type ?
8.4 Comment réaliser un catalogue de fontes True Type ?
8.5 Comment utiliser une fonte True Type de manière ponctuelle dans un document LaTeX ?
8.6 Comment utiliser une fonte True Type de manière ponctuelle dans un document LaTeX ?
8.7 Comment utiliser plusieures fontes True Type de manière ponctuelle dans un document LaTeX ?
8.8 Comment utiliser plusieures fontes True Type comme fontes par défaut dans un document LaTeX ?
8.9 Comment pencher une fonte True Type ?
8.10 Comment condenser ou élargir une fonte True Type ?
8.11 Comment avoir des petites capitales à l'aide d'une fonte TTF ?
8.12 Comment épaissir une fonte TTF ?
8.13 Comment automatiser les réponses à toutes les questions précédentes ?
8.14 Comment faire pour que LaTeX/xdvi/dvips soit capable de calculer les fontes bitmaps tout seul ?
8.15 Y a-t-il un moyen plus simple d'utiliser des fontes TrueType ? Est-il possible d'utiliser des fontes True Type avec pdfTeX ?
8.16 Comment obtenir les caractères manquants ?
9 Fontes virtuelles
9.1 Qu'est-ce qu'une fonte virtuelle ? Que fait-on avec ?
9.2 Y a-t-il un moyen SIMPLE d'utiliser des fontes virtuelles ?
9.3 Qu'est-ce que fontinst ?
9.4 Comment utilise-t-on fontinst avec des fontes Métafont ?
9.5 Comment utilise-t-on fontinst avec des fontes PostScript ?
9.6 Comment utilise-t-on fontinst avec des fontes True Type ?
9.7 Comment changer le codage d'une fonte ? Comment pencher une fonte ?
9.8 Exemples simples avec fontinst
9.9 Comment intervertir deux caractères dans une fonte ?
9.10 Comment aller chercher un caractère dans une autre fonte ?
9.11 Comment modifier les métriques d'un caractère ?
9.12 Quelles sont les dimensions d'une fonte ? Comment les changer ?
9.13 Comment ajouter un trait ?
9.14 Comment ajouter des instructions PostScript ?
9.15 Peut-on ajouter n'importe quelle instruction PostScript ?
9.16 Peut-on ajouter n'importe quelle instruction PostScript ?
9.17 Comment avoir des caractères gras quand il n'y en a pas ?
9.18 Comment ajouter un caractère ?
9.19 Comment ajouter une ligature ?
9.20 Comment avoir des ligatures ct et st ?
9.21 Comment changer l'espace entre deux caractères ?
9.22 Comment appliquer une même transformation à tous les caractères d'une fonte ? À toutes les majuscules ? À toutes les minuscules ?
9.23 Comment avoir les caractères manquants ?
9.24 Comment avoir une fonte soulignée ?
9.25 Comment avoir un j sans point quand il n'y en a pas ?
9.26 Peut-on manipuler des familles de fontes(plutôt que des fontes isolées) avec fontinst ?
9.27 Comment avoir une fonte grasse quand il n'y en a pas (sans fontes virtuelles) ?
9.28 Comment avoir une fonte grasse quand il n'y en a pas (avec des fontes virtuelles, premier essai, infructueux --- A EFFACER) ?
9.29 Comment avoir une fonte grasse quand il n'y en a pas (avec des fontes virtuelles --- A EFFACER) ?
9.30 Comment avoir une fonte « petites capitales » quand les caractères sont là ?
9.31 Comment avoir une fonte « petites capitales » quand les caractères ne sont pas là ?
9.32 Comment utiliservfinst ?
9.33 Comment créer une fonte mathématique qui se marrie bien avec une fonte texte donnée (1) ?
9.34 Comment créer une fonte mathématique qui se marrie bien avec une fonte texte donnée (2) ?
9.35 Comment avoir des majuscules mathématiques droites avec des fontes virtuelles ?
9.36 Comment créer une fonte mathématique qui se marrie bien avec une fonte texte donnée (3) ?
9.37 Comment créer une fonte mathématique qui se marrie bien avec une fonte texte donnée (3) ?
10 Divers
10.1 Effets graphiques divers
10.2 Divers (réponses sans questions et questions sans réponses à classer)
Les utilisateurs de « mauvais » traitements de texte commerciaux ont l'habitude de changer très souvent de fonte et d'en avoir un choix très vaste. Les choses sont différentes sous LaTeX : on donne essentiellement à l'ordinateur la structure logique d'un document (« voici un titre de chapitre », « voici un titre de sous-chapitre », etc.) plutôt que la manière de formatter les choses (« je veux du times gras 20 points, centré », « je veux de l'helvética 15 points, justifié à droite, suivi d'un filet horizontal »). La puissance de LaTeX réside dans la possibilité de définir une fois pour toutes comment traduire la structure du document en instructions typographiques et ainsi de séparer le travail de la forme (la typographie) et du fond (le contenu sémantique du texte que vous tapez). Nous nous intéresserons à un point particulier de cette transformation : le choix et l'utilisation des fontes.
Probablement surma page Web. L'original est ensgml et est est convertit enhtml entexte et enpostScript (ces conversions ne sont pas toujours très satisfaisantes).
Ce qu'a écritD. Wright sur l'utilisation des fontes PS,
Le livre d'A. Hoenig, « TeX unbound », explique la plupart des manipulations possibles avec des fontes virtuelles.
Using TrueType fonts with (La)TeX and pdf(La)TeX (Damir Rakityansky)
TrueType with teTEX : Quick and Dirty (Nguyên-Ðai Quý)
Using TrueType fonts with teTeX and dvips (Harald Harders)
La page Web defontinst et la mailing list correspondante.
Divers documents sur la typographie, par exemple laFAQ de la mailing list du même nom.
fntguide pour les commandes NFSS
Le source de LaTeX, en particulier les répertoiresbase,mfnfss etpsnfss
LeMetafont book ou la documentation deMetapost.
Certains articles desCahiers GUTenberg, par exemple sur lesfontes mathématiques, sur lesformats de fichiers dvi, gf, tfm et vf, surhz.
Le texte de D.E. Knuth sur lesfontes virtuelles
La documentation defontinst,vfinst,mathkit etmathinst.
Les livres d'Adobe, en particulier le Blue Book, leRed Book, sur le langage PostScript et leBlack Book sur les fontes PostScript de type 1. La documentation deghostscript, et tout ce que vous pouvez trouver sur le langagePostScript.
La documentation dedvips.
Les forum de discussioncomp.fonts,comp.text.pdf,comp.text.tex,fr.comp.text.tex, leurFAQ etcertaines listes de discussion du même genre,
Pour les fontes en général, voir aussi la page deLuc Devroye.
Pour les fontes Métafont, il suffit de regarder surCTAN, dans les répertoiresfonts etlanguages. Il y a quelque temps, j'en ai réalisé uncatalogue, qui est n'est probablement plus à jour.
Pour les fontes Postscript, je suggère d'utiliser unmoteur de recherche. On en trouve peu : il semblerait que la plupart des fontes PostScript soient commerciales.
Pour les fontes TTF, je suggère, encore une fois, d'utiliser unmoteur de recherche. On en trouve beaucoup plus.
Certains de ces liens renvoient sur des fichiers compressés dans des formats assez bizarres (pour machintoshes). Vous pouvez trouver des outils de décompression un peupartout, mais ne vous attendez pas à des miracles.
Pour trouver des fontes sur le Web sans perdre trop de temps, je suggère d'utiliser un aspirateur de pages Web, comme par exemplewget. On peut le paralléliser de la manière suivante.
Commencer par récupéer une liste de pages Web suceptibles de contenir des fontes.
Lancerwget, en parallèle, sur cette liste.
On récupère ensuite les fichiers*.zip qui sont suceptibles de contenir des fontes, puis, à l'intérieur, les fichiers*.ttf.
Enfin, on fabrique un catalogue de fontes, comme expliqué plus loin ()
Rappelons, c'est nécessaire, que les commandes LaTeX sont de deux types, les macros, telles que
En mode mathématique (dès que l'on parle de mathématique, je suppose que l'on utilise les extensionsamsmath etamssymb), il existe des macros\mathnormal,\mathit,\mathrm,\mathbf,\mathfrak,\mathsf,\mathsl,\mathcal,\mathbb, etc.\pmb,\bm (dans l'extensionbm, qui remplace désormais\boldsymbol)
Vous vous demandez peut-être quelle est la différence entre\mathit et\mathnormal. La commande\mathnormal correspond à la fonte généralement utilisée en mode mathématique, ie, une fonte italique avec des espacements un peu spéciaux : les lettres que l'on tape sont considérées comme des symboles mathématiques distincts et sont donc un peu plus espacés, en particulier, il n'y a pas de ligarure. Au contraire, la fonte\mathit est une fonte italique normale, dans laquelle les lettres ne sont pas isolées mais formentdans leur ensemble un symbole mathématique. On utilise généralement une fonte droite.
![]() |
Dans certains castrès rares, on peut néanmoins utiliser de l'italique, avec un espacement normal.
![]() |
Pour que tout le mode mathématique soit en gras, on peut utiliser (avant de passer en mode mathématique) la commande\mathversion{bold}. Pour revenir à une épaisseur normale, la commande est\mathversion{normal}. C'est pertinent dans les titres (i.e., quand vous redéfinissez vous-même des commandes du genre\chapter ou\section.
Si vous voulez écrire plus grand pour faire des transparents, regardez les classes du genreseminar oufoiltex.
Si vous voulez écrire plus grand pour faire un poster, une affiche, vous pouvez utiliser l'extensiona0poster.
Si vous voulez écrire un document avec la classarticle oubook et des fontes plus grosses, vous pouvez utiliser les options « 14pt » ou « 17pt » ; elles ne sont pas définies par défaut, mais vous pouvez récupérer les fichiers correspondants sur leWeb.
Vous pouvez avoir envie d'écrire plus grand de manière ponctuelle. Par exemple, pour le titre du document, ou le titre des chapitres. Vous connaissez déjà les environementshuge,LARGE,Large,large,footnotesize,small ettiny. Vous avez peut-être envie de les utiliser ainsi (ne riez pas, l'exemple est authentique -- c'était même souligné).
Passons au dernier point sur la taille des fontes. Vous voulez peut être des caractères encore plus grands que\huge : est-ce possible ? Avant de répondre par l'affirmative, remarquons que c'est souvent une mauvaise idée : on risquerait de se retrouver avec des caractères de taille comparables, presque égales, mais différentes. Cela nuirait à l'homogénéité du document. Voyons maintenant comment faire. En feuilletant la suite de ce document, vous avez peut-être constaté qu'il y avait une commande\fontsize. Essayons de l'utiliser.
![]() |
![]() |
Dans cette partie, nous ne traiterons que des réponses simples à cette question : nous supposerons que tout le travail difficile a déjà été fait et se trouve réuni dans une extension (fichier*.sty). Il suffit alors de la charger à l'aide de la commande\usepackage. Contrairement à des idées répandues, LaTeX n'est pas limité aux fontes Computer Modern : il peut utiliser les mêmes fontes que ses concurrents, sous à peu près n'importe quel format (Métafont, PostScript, True Type, hbf, etc.). Il faut toutefois prendre garde à ce que les fontes que l'on choisit comportent tous les caractères dont on a besoin : d'une part, les caractères accentués, d'autre part (selon la nature du document à taper), tous les symboles mathématiques. C'est justement là que le bât blesse : il n'y a qu'une demi-douzaine de fontes comportant ces caractères. (Nous signalerons beaucoup plus loin qu'il est possible de contourner ce problème en créant plus ou moins automatiquement des fontes mathématiques qui se marrient bien à une fonte texte donnée).
Voici tout d'abord les fontes gratuites possibles.
Les fontes Computer Modern sont celles par défaut : il n'y a rien à préciser pour les utiliser.
![]() |
Les fontes Concrete (pour le texte) et Euler (pour les mathématiques) ont été dessinées par D. Knuth pour son livre « concrete mahtematics ». Pour les utiliser, il suffit de rajouter les lignes suivante dans le préambule de votre document.
![]() |
Il y a aussi les fontescmbright.
![]() |
Voici maintenant quelques alternatives commerciales.
Les fontes Mathtimes sont commerciales : il s'agit des fontes PostScript Times (qui sont gratuites) accompagnées d'une fonte mathématique correspondante. Si vous les avez achetées, vous pouvez les utiliser en mettant la ligne suivante dans le préambule de votre document.
Lucida est une fonte commerciale. C'est par exemple elle qui est utilisée dans leLaTeX Companion.
BAMath est une fonte mathématique commerciale complétant la fonte texte Baskerville.
Informal Math est une fonte mathématique (manuscrite) commerciale.
Hvmath est une fonte mathématique sans sérif commerciale (Micropress Inc) basée sur Helvética et bien adaptée à la réalisation de transparents. Signalons que les fichiers bitmap*.pk sont diffusésgratuitement. C'est peut-être un peu compliqué à installer : j'ai procédé ainsi. Renommer tous les fichiers, de manière qu'ils soient en minuscules.
![]() |
Voici maintenant quelques solutions incomplètes, mais qui peuvent s'avérer acceptables (la liste n'est sûrement pas exhaustive).
Il existe un équivalent gratuit de Mathtimes : on prend les fontes Times, Helvética et Courrier pour le texte et on essaye de fabriquer une fonte mathématique à l'aide du Times italique et de la fonte Symbol. Il manque néanmoins certains caractères mathématiques importants, comme le coproduit.
![]() |
Les extensionmathptm etmathptmx sont comparables àpslatex, avec quelques différences. Voir le fichierpsnfss2e.dvi pour les détails. ***** DONNER UN EXEMPLE *****
On peut aussi utiliser la fonte Palatino. Les caractères mathématiques sont encore pris dans la fonte Symbol.
![]() |
Pandora
![]() |
![]() |
![]() |
![]() |
Les symboles les plus courrants sont définis danstextcomp.sty.
\textcircled | ![]() | \textquotestraightbase | ![]() | \textquotestraightdblbase | ![]() |
\texttwelveudash | ![]() | \textthreequartersemdash | ![]() | \textleftarrow | ![]() |
\textrightarrow | ![]() | \textblank | ![]() | \textdollar | ![]() |
\textquotesingle | ![]() | \textasteriskcentered | ![]() | \textdblhyphen | ![]() |
\textfractionsolidus | ![]() | \textzerooldstyle | ![]() | \textoneoldstyle | ![]() |
\texttwooldstyle | ![]() | \textthreeoldstyle | ![]() | \textfouroldstyle | ![]() |
\textfiveoldstyle | ![]() | \textsixoldstyle | ![]() | \textsevenoldstyle | ![]() |
\texteightoldstyle | ![]() | \textnineoldstyle | ![]() | \textlangle | ![]() |
\textminus | ![]() | \textrangle | ![]() | \textmho | ![]() |
\textbigcircle | ![]() | \textohm | ![]() | \textlbrackdbl | ![]() |
\textrbrackdbl | ![]() | \textuparrow | ![]() | \textdownarrow | ![]() |
\textasciigrave | ![]() | \textborn | ![]() | \textdivorced | ![]() |
\textdied | ![]() | \textleaf | ![]() | \textmarried | ![]() |
\textmusicalnote | ![]() | \texttildelow | ![]() | \textdblhyphenchar | ![]() |
\textasciibreve | ![]() | \textasciicaron | ![]() | \textgravedbl | ![]() |
\textacutedbl | ![]() | \textdagger | ![]() | \textdaggerdbl | ![]() |
\textbardbl | ![]() | \textperthousand | ![]() | \textbullet | ![]() |
\textcelsius | ![]() | \textdollaroldstyle | ![]() | \textcentoldstyle | ![]() |
\textflorin | ![]() | \textcolonmonetary | ![]() | \textwon | ![]() |
\textnaira | ![]() | \textguarani | ![]() | \textpeso | ![]() |
\textlira | ![]() | \textrecipe | ![]() | \textinterrobang | ![]() |
\textinterrobangdown | ![]() | \textdong | ![]() | \texttrademark | ![]() |
\textpertenthousand | ![]() | \textpilcrow | ![]() | \textbaht | ![]() |
\textnumero | ![]() | \textdiscount | ![]() | \textestimated | ![]() |
\textopenbullet | ![]() | \textservicemark | ![]() | \textlquill | ![]() |
\textrquill | ![]() | \textcent | ![]() | \textsterling | ![]() |
\textcurrency | ![]() | \textyen | ![]() | \textbrokenbar | ![]() |
\textsection | ![]() | \textasciidieresis | ![]() | \textcopyright | ![]() |
\textordfeminine | ![]() | \textcopyleft | ![]() | \textlnot | ![]() |
\textcircledP | ![]() | \textregistered | ![]() | \textasciimacron | ![]() |
\textdegree | ![]() | \textpm | ![]() | \texttwosuperior | ![]() |
\textthreesuperior | ![]() | \textasciiacute | ![]() | \textmu | ![]() |
\textparagraph | ![]() | \textperiodcentered | ![]() | \textreferencemark | ![]() |
\textonesuperior | ![]() | \textordmasculine | ![]() | \textsurd | ![]() |
\textonequarter | ![]() | \textonehalf | ![]() | \textthreequarters | ![]() |
\texteuro | ![]() | \texttimes | ![]() | \textdiv | ![]() |
\textsterling | ![]() | \textdollar | ![]() | \textperthousand | ![]() |
Il y a d'autres fontes contenant des symboles. Voici les caractères de l'extensionwasy.
\HF | ![]() | \Square | ![]() | \astrosun | ![]() | \APLinv | ![]() |
\APLminus | ![]() | $\mho$ | ![]() | $\Join$ | ![]() | $\Box$ | ![]() |
$\Diamond$ | ![]() | $\leadsto$ | ![]() | $\sqsubset$ | ![]() | $\sqsupset$ | ![]() |
$\lhd$ | ![]() | $\unlhd$ | ![]() | $\LHD$ | ![]() | $\rhd$ | ![]() |
$\unrhd$ | ![]() | $\RHD$ | ![]() | $\apprle$ | ![]() | $\apprge$ | ![]() |
$\wasypropto$ | ![]() | $\invneg$ | ![]() | $\ocircle$ | ![]() | $\logof$ | ![]() |
$\varint$ | ![]() | $\iint$ | ![]() | $\iiint$ | ![]() | $\varoint$ | ![]() |
$\oiint$ | ![]() |
Voici les caractères de l'extensionpifont obtenus à l'aide de la commande\Pisymbol{pzd}{???}, où il faut remplacer??? par un nombre.
\Pisymbol{pzd}{33} | ![]() | \Pisymbol{pzd}{34} | ![]() | \Pisymbol{pzd}{35} | ![]() | \Pisymbol{pzd}{36} | ![]() |
\Pisymbol{pzd}{37} | ![]() | \Pisymbol{pzd}{38} | ![]() | \Pisymbol{pzd}{39} | ![]() | \Pisymbol{pzd}{40} | ![]() |
\Pisymbol{pzd}{41} | ![]() | \Pisymbol{pzd}{42} | ![]() | \Pisymbol{pzd}{43} | ![]() | \Pisymbol{pzd}{44} | ![]() |
\Pisymbol{pzd}{45} | ![]() | \Pisymbol{pzd}{46} | ![]() | \Pisymbol{pzd}{47} | ![]() | \Pisymbol{pzd}{48} | ![]() |
\Pisymbol{pzd}{49} | ![]() | \Pisymbol{pzd}{50} | ![]() | \Pisymbol{pzd}{51} | ![]() | \Pisymbol{pzd}{52} | ![]() |
\Pisymbol{pzd}{53} | ![]() | \Pisymbol{pzd}{54} | ![]() | \Pisymbol{pzd}{55} | ![]() | \Pisymbol{pzd}{56} | ![]() |
\Pisymbol{pzd}{57} | ![]() | \Pisymbol{pzd}{58} | ![]() | \Pisymbol{pzd}{59} | ![]() | \Pisymbol{pzd}{60} | ![]() |
\Pisymbol{pzd}{61} | ![]() | \Pisymbol{pzd}{62} | ![]() | \Pisymbol{pzd}{63} | ![]() | \Pisymbol{pzd}{64} | ![]() |
\Pisymbol{pzd}{65} | ![]() | \Pisymbol{pzd}{66} | ![]() | \Pisymbol{pzd}{67} | ![]() | \Pisymbol{pzd}{68} | ![]() |
\Pisymbol{pzd}{69} | ![]() | \Pisymbol{pzd}{70} | ![]() | \Pisymbol{pzd}{71} | ![]() | \Pisymbol{pzd}{72} | ![]() |
\Pisymbol{pzd}{73} | ![]() | \Pisymbol{pzd}{74} | ![]() | \Pisymbol{pzd}{75} | ![]() | \Pisymbol{pzd}{76} | ![]() |
\Pisymbol{pzd}{77} | ![]() | \Pisymbol{pzd}{78} | ![]() | \Pisymbol{pzd}{79} | ![]() | \Pisymbol{pzd}{80} | ![]() |
\Pisymbol{pzd}{81} | ![]() | \Pisymbol{pzd}{82} | ![]() | \Pisymbol{pzd}{83} | ![]() | \Pisymbol{pzd}{84} | ![]() |
\Pisymbol{pzd}{85} | ![]() | \Pisymbol{pzd}{86} | ![]() | \Pisymbol{pzd}{87} | ![]() | \Pisymbol{pzd}{88} | ![]() |
\Pisymbol{pzd}{89} | ![]() | \Pisymbol{pzd}{90} | ![]() | \Pisymbol{pzd}{91} | ![]() | \Pisymbol{pzd}{92} | ![]() |
\Pisymbol{pzd}{93} | ![]() | \Pisymbol{pzd}{94} | ![]() | \Pisymbol{pzd}{95} | ![]() | \Pisymbol{pzd}{96} | ![]() |
\Pisymbol{pzd}{97} | ![]() | \Pisymbol{pzd}{98} | ![]() | \Pisymbol{pzd}{99} | ![]() | \Pisymbol{pzd}{100} | ![]() |
\Pisymbol{pzd}{101} | ![]() | \Pisymbol{pzd}{102} | ![]() | \Pisymbol{pzd}{103} | ![]() | \Pisymbol{pzd}{104} | ![]() |
\Pisymbol{pzd}{105} | ![]() | \Pisymbol{pzd}{106} | ![]() | \Pisymbol{pzd}{107} | ![]() | \Pisymbol{pzd}{108} | ![]() |
\Pisymbol{pzd}{109} | ![]() | \Pisymbol{pzd}{110} | ![]() | \Pisymbol{pzd}{111} | ![]() | \Pisymbol{pzd}{112} | ![]() |
\Pisymbol{pzd}{113} | ![]() | \Pisymbol{pzd}{114} | ![]() | \Pisymbol{pzd}{115} | ![]() | \Pisymbol{pzd}{116} | ![]() |
\Pisymbol{pzd}{117} | ![]() | \Pisymbol{pzd}{118} | ![]() | \Pisymbol{pzd}{119} | ![]() | \Pisymbol{pzd}{120} | ![]() |
\Pisymbol{pzd}{121} | ![]() | \Pisymbol{pzd}{122} | ![]() | \Pisymbol{pzd}{123} | ![]() | \Pisymbol{pzd}{124} | ![]() |
\Pisymbol{pzd}{125} | ![]() | \Pisymbol{pzd}{126} | ![]() | \Pisymbol{pzd}{161} | ![]() | \Pisymbol{pzd}{162} | ![]() |
\Pisymbol{pzd}{163} | ![]() | \Pisymbol{pzd}{164} | ![]() | \Pisymbol{pzd}{165} | ![]() | \Pisymbol{pzd}{166} | ![]() |
\Pisymbol{pzd}{167} | ![]() | \Pisymbol{pzd}{168} | ![]() | \Pisymbol{pzd}{169} | ![]() | \Pisymbol{pzd}{170} | ![]() |
\Pisymbol{pzd}{171} | ![]() | \Pisymbol{pzd}{172} | ![]() | \Pisymbol{pzd}{173} | ![]() | \Pisymbol{pzd}{174} | ![]() |
\Pisymbol{pzd}{175} | ![]() | \Pisymbol{pzd}{176} | ![]() | \Pisymbol{pzd}{177} | ![]() | \Pisymbol{pzd}{178} | ![]() |
\Pisymbol{pzd}{179} | ![]() | \Pisymbol{pzd}{180} | ![]() | \Pisymbol{pzd}{181} | ![]() | \Pisymbol{pzd}{182} | ![]() |
\Pisymbol{pzd}{183} | ![]() | \Pisymbol{pzd}{184} | ![]() | \Pisymbol{pzd}{185} | ![]() | \Pisymbol{pzd}{186} | ![]() |
\Pisymbol{pzd}{187} | ![]() | \Pisymbol{pzd}{188} | ![]() | \Pisymbol{pzd}{189} | ![]() | \Pisymbol{pzd}{190} | ![]() |
\Pisymbol{pzd}{191} | ![]() | \Pisymbol{pzd}{192} | ![]() | \Pisymbol{pzd}{193} | ![]() | \Pisymbol{pzd}{194} | ![]() |
\Pisymbol{pzd}{195} | ![]() | \Pisymbol{pzd}{196} | ![]() | \Pisymbol{pzd}{197} | ![]() | \Pisymbol{pzd}{198} | ![]() |
\Pisymbol{pzd}{199} | ![]() | \Pisymbol{pzd}{200} | ![]() | \Pisymbol{pzd}{201} | ![]() | \Pisymbol{pzd}{202} | ![]() |
\Pisymbol{pzd}{203} | ![]() | \Pisymbol{pzd}{204} | ![]() | \Pisymbol{pzd}{205} | ![]() | \Pisymbol{pzd}{206} | ![]() |
\Pisymbol{pzd}{207} | ![]() | \Pisymbol{pzd}{208} | ![]() | \Pisymbol{pzd}{209} | ![]() | \Pisymbol{pzd}{210} | ![]() |
\Pisymbol{pzd}{211} | ![]() | \Pisymbol{pzd}{212} | ![]() | \Pisymbol{pzd}{213} | ![]() | \Pisymbol{pzd}{214} | ![]() |
\Pisymbol{pzd}{215} | ![]() | \Pisymbol{pzd}{216} | ![]() | \Pisymbol{pzd}{217} | ![]() | \Pisymbol{pzd}{218} | ![]() |
\Pisymbol{pzd}{219} | ![]() | \Pisymbol{pzd}{220} | ![]() | \Pisymbol{pzd}{221} | ![]() | \Pisymbol{pzd}{222} | ![]() |
\Pisymbol{pzd}{223} | ![]() | \Pisymbol{pzd}{224} | ![]() | \Pisymbol{pzd}{225} | ![]() | \Pisymbol{pzd}{226} | ![]() |
\Pisymbol{pzd}{227} | ![]() | \Pisymbol{pzd}{228} | ![]() | \Pisymbol{pzd}{229} | ![]() | \Pisymbol{pzd}{230} | ![]() |
\Pisymbol{pzd}{231} | ![]() | \Pisymbol{pzd}{232} | ![]() | \Pisymbol{pzd}{233} | ![]() | \Pisymbol{pzd}{234} | ![]() |
\Pisymbol{pzd}{235} | ![]() | \Pisymbol{pzd}{236} | ![]() | \Pisymbol{pzd}{237} | ![]() | \Pisymbol{pzd}{238} | ![]() |
\Pisymbol{pzd}{239} | ![]() | \Pisymbol{pzd}{240} | ![]() | \Pisymbol{pzd}{241} | ![]() | \Pisymbol{pzd}{242} | ![]() |
\Pisymbol{pzd}{243} | ![]() | \Pisymbol{pzd}{244} | ![]() | \Pisymbol{pzd}{245} | ![]() | \Pisymbol{pzd}{246} | ![]() |
\Pisymbol{pzd}{247} | ![]() | \Pisymbol{pzd}{248} | ![]() | \Pisymbol{pzd}{249} | ![]() | \Pisymbol{pzd}{250} | ![]() |
\Pisymbol{pzd}{251} | ![]() | \Pisymbol{pzd}{252} | ![]() | \Pisymbol{pzd}{253} | ![]() | \Pisymbol{pzd}{254} | ![]() |
\Pisymbol{psy}{33} | ![]() | \Pisymbol{psy}{34} | ![]() | \Pisymbol{psy}{35} | ![]() | \Pisymbol{psy}{36} | ![]() |
\Pisymbol{psy}{37} | ![]() | \Pisymbol{psy}{38} | ![]() | \Pisymbol{psy}{39} | ![]() | \Pisymbol{psy}{40} | ![]() |
\Pisymbol{psy}{41} | ![]() | \Pisymbol{psy}{42} | ![]() | \Pisymbol{psy}{43} | ![]() | \Pisymbol{psy}{44} | ![]() |
\Pisymbol{psy}{45} | ![]() | \Pisymbol{psy}{46} | ![]() | \Pisymbol{psy}{47} | ![]() | \Pisymbol{psy}{48} | ![]() |
\Pisymbol{psy}{49} | ![]() | \Pisymbol{psy}{50} | ![]() | \Pisymbol{psy}{51} | ![]() | \Pisymbol{psy}{52} | ![]() |
\Pisymbol{psy}{53} | ![]() | \Pisymbol{psy}{54} | ![]() | \Pisymbol{psy}{55} | ![]() | \Pisymbol{psy}{56} | ![]() |
\Pisymbol{psy}{57} | ![]() | \Pisymbol{psy}{58} | ![]() | \Pisymbol{psy}{59} | ![]() | \Pisymbol{psy}{60} | ![]() |
\Pisymbol{psy}{61} | ![]() | \Pisymbol{psy}{62} | ![]() | \Pisymbol{psy}{63} | ![]() | \Pisymbol{psy}{64} | ![]() |
\Pisymbol{psy}{65} | ![]() | \Pisymbol{psy}{66} | ![]() | \Pisymbol{psy}{67} | ![]() | \Pisymbol{psy}{68} | ![]() |
\Pisymbol{psy}{69} | ![]() | \Pisymbol{psy}{70} | ![]() | \Pisymbol{psy}{71} | ![]() | \Pisymbol{psy}{72} | ![]() |
\Pisymbol{psy}{73} | ![]() | \Pisymbol{psy}{74} | ![]() | \Pisymbol{psy}{75} | ![]() | \Pisymbol{psy}{76} | ![]() |
\Pisymbol{psy}{77} | ![]() | \Pisymbol{psy}{78} | ![]() | \Pisymbol{psy}{79} | ![]() | \Pisymbol{psy}{80} | ![]() |
\Pisymbol{psy}{81} | ![]() | \Pisymbol{psy}{82} | ![]() | \Pisymbol{psy}{83} | ![]() | \Pisymbol{psy}{84} | ![]() |
\Pisymbol{psy}{85} | ![]() | \Pisymbol{psy}{86} | ![]() | \Pisymbol{psy}{87} | ![]() | \Pisymbol{psy}{88} | ![]() |
\Pisymbol{psy}{89} | ![]() | \Pisymbol{psy}{90} | ![]() | \Pisymbol{psy}{91} | ![]() | \Pisymbol{psy}{92} | ![]() |
\Pisymbol{psy}{93} | ![]() | \Pisymbol{psy}{94} | ![]() | \Pisymbol{psy}{95} | ![]() | \Pisymbol{psy}{96} | ![]() |
\Pisymbol{psy}{97} | ![]() | \Pisymbol{psy}{98} | ![]() | \Pisymbol{psy}{99} | ![]() | \Pisymbol{psy}{100} | ![]() |
\Pisymbol{psy}{101} | ![]() | \Pisymbol{psy}{102} | ![]() | \Pisymbol{psy}{103} | ![]() | \Pisymbol{psy}{104} | ![]() |
\Pisymbol{psy}{105} | ![]() | \Pisymbol{psy}{106} | ![]() | \Pisymbol{psy}{107} | ![]() | \Pisymbol{psy}{108} | ![]() |
\Pisymbol{psy}{109} | ![]() | \Pisymbol{psy}{110} | ![]() | \Pisymbol{psy}{111} | ![]() | \Pisymbol{psy}{112} | ![]() |
\Pisymbol{psy}{113} | ![]() | \Pisymbol{psy}{114} | ![]() | \Pisymbol{psy}{115} | ![]() | \Pisymbol{psy}{116} | ![]() |
\Pisymbol{psy}{117} | ![]() | \Pisymbol{psy}{118} | ![]() | \Pisymbol{psy}{119} | ![]() | \Pisymbol{psy}{120} | ![]() |
\Pisymbol{psy}{121} | ![]() | \Pisymbol{psy}{122} | ![]() | \Pisymbol{psy}{123} | ![]() | \Pisymbol{psy}{124} | ![]() |
\Pisymbol{psy}{125} | ![]() | \Pisymbol{psy}{126} | ![]() | \Pisymbol{psy}{161} | ![]() | \Pisymbol{psy}{162} | ![]() |
\Pisymbol{psy}{163} | ![]() | \Pisymbol{psy}{164} | ![]() | \Pisymbol{psy}{165} | ![]() | \Pisymbol{psy}{166} | ![]() |
\Pisymbol{psy}{167} | ![]() | \Pisymbol{psy}{168} | ![]() | \Pisymbol{psy}{169} | ![]() | \Pisymbol{psy}{170} | ![]() |
\Pisymbol{psy}{171} | ![]() | \Pisymbol{psy}{172} | ![]() | \Pisymbol{psy}{173} | ![]() | \Pisymbol{psy}{174} | ![]() |
\Pisymbol{psy}{175} | ![]() | \Pisymbol{psy}{176} | ![]() | \Pisymbol{psy}{177} | ![]() | \Pisymbol{psy}{178} | ![]() |
\Pisymbol{psy}{179} | ![]() | \Pisymbol{psy}{180} | ![]() | \Pisymbol{psy}{181} | ![]() | \Pisymbol{psy}{182} | ![]() |
\Pisymbol{psy}{183} | ![]() | \Pisymbol{psy}{184} | ![]() | \Pisymbol{psy}{185} | ![]() | \Pisymbol{psy}{186} | ![]() |
\Pisymbol{psy}{187} | ![]() | \Pisymbol{psy}{188} | ![]() | \Pisymbol{psy}{189} | ![]() | \Pisymbol{psy}{190} | ![]() |
\Pisymbol{psy}{191} | ![]() | \Pisymbol{psy}{192} | ![]() | \Pisymbol{psy}{193} | ![]() | \Pisymbol{psy}{194} | ![]() |
\Pisymbol{psy}{195} | ![]() | \Pisymbol{psy}{196} | ![]() | \Pisymbol{psy}{197} | ![]() | \Pisymbol{psy}{198} | ![]() |
\Pisymbol{psy}{199} | ![]() | \Pisymbol{psy}{200} | ![]() | \Pisymbol{psy}{201} | ![]() | \Pisymbol{psy}{202} | ![]() |
\Pisymbol{psy}{203} | ![]() | \Pisymbol{psy}{204} | ![]() | \Pisymbol{psy}{205} | ![]() | \Pisymbol{psy}{206} | ![]() |
\Pisymbol{psy}{207} | ![]() | \Pisymbol{psy}{208} | ![]() | \Pisymbol{psy}{209} | ![]() | \Pisymbol{psy}{210} | ![]() |
\Pisymbol{psy}{211} | ![]() | \Pisymbol{psy}{212} | ![]() | \Pisymbol{psy}{213} | ![]() | \Pisymbol{psy}{214} | ![]() |
\Pisymbol{psy}{215} | ![]() | \Pisymbol{psy}{216} | ![]() | \Pisymbol{psy}{217} | ![]() | \Pisymbol{psy}{218} | ![]() |
\Pisymbol{psy}{219} | ![]() | \Pisymbol{psy}{220} | ![]() | \Pisymbol{psy}{221} | ![]() | \Pisymbol{psy}{222} | ![]() |
\Pisymbol{psy}{223} | ![]() | \Pisymbol{psy}{224} | ![]() | \Pisymbol{psy}{225} | ![]() | \Pisymbol{psy}{226} | ![]() |
\Pisymbol{psy}{227} | ![]() | \Pisymbol{psy}{228} | ![]() | \Pisymbol{psy}{229} | ![]() | \Pisymbol{psy}{230} | ![]() |
\Pisymbol{psy}{231} | ![]() | \Pisymbol{psy}{232} | ![]() | \Pisymbol{psy}{233} | ![]() | \Pisymbol{psy}{234} | ![]() |
\Pisymbol{psy}{235} | ![]() | \Pisymbol{psy}{236} | ![]() | \Pisymbol{psy}{237} | ![]() | \Pisymbol{psy}{238} | ![]() |
\Pisymbol{psy}{239} | ![]() | \Pisymbol{psy}{240} | ![]() | \Pisymbol{psy}{241} | ![]() | \Pisymbol{psy}{242} | ![]() |
\Pisymbol{psy}{243} | ![]() | \Pisymbol{psy}{244} | ![]() | \Pisymbol{psy}{245} | ![]() | \Pisymbol{psy}{246} | ![]() |
\Pisymbol{psy}{247} | ![]() | \Pisymbol{psy}{248} | ![]() | \Pisymbol{psy}{249} | ![]() | \Pisymbol{psy}{250} | ![]() |
\Pisymbol{psy}{251} | ![]() | \Pisymbol{psy}{252} | ![]() | \Pisymbol{psy}{253} | ![]() | \Pisymbol{psy}{254} | ![]() |
Il y a encore d'autres symboles dansmarvosym.
\Stopsign | ![]() | \Beam | ![]() | \Bearing | ![]() |
\Loosebearing | ![]() | \Fixedbearing | ![]() | \Lefttorque | ![]() |
\Righttorque | ![]() | \Force | ![]() | \Lineload | ![]() |
\Snowflake | ![]() | \Kross | ![]() | \Circles | ![]() |
\MVZero | ![]() | \MVOne | ![]() | \MVTwo | ![]() |
\MVThree | ![]() | \MVFour | ![]() | \MVFive | ![]() |
\MVSix | ![]() | \MVSeven | ![]() | \MVEight | ![]() |
\MVNine | ![]() | \Corresponds | ![]() | \MVAt | ![]() |
\Pickup | ![]() | \Letter | ![]() | \CEsign | ![]() |
\Lightning | ![]() | \FHBOlogo | ![]() | \Mobilefone | ![]() |
\Industry | ![]() | \Coffeecup | ![]() | \Yingyang | ![]() |
\Vectorarrowhigh | ![]() | \Rightscissors | ![]() | \Kutline | ![]() |
\Leftscissors | ![]() | \Telefon | ![]() | \Clocklogo | ![]() |
\Checkedbox | ![]() | \Crossedbox | ![]() | \Pointinghand | ![]() |
\Writinghand | ![]() | \EURhv | ![]() | \EURcr | ![]() |
\EURtm | ![]() | \FHBOLOGO | ![]() | \Info | ![]() |
\Football | ![]() | \Vectorarrow | ![]() | \Cutright | ![]() |
\Cutline | ![]() | \Cutleft | ![]() | \fax | ![]() |
\FAX | ![]() | \Faxmachine | ![]() | \Cross | ![]() |
\Celtcross | ![]() | \Ankh | ![]() | \Heart | ![]() |
\Flatsteel | ![]() | \Squarepipe | ![]() | \Rectpipe | ![]() |
\Lsteel | ![]() | \TTsteel | ![]() | \Circpipe | ![]() |
\Tsteel | ![]() | \EUR | ![]() | \Frowny | ![]() |
\Smiley | ![]() | \Bicycle | ![]() | \Sun | ![]() |
\Moon | ![]() | \Mercury | ![]() | \Venus | ![]() |
\Mars | ![]() | \Jupiter | ![]() | \Saturn | ![]() |
\Uranus | ![]() | \Neptune | ![]() | \Pluto | ![]() |
\Womanside | ![]() | \Manside | ![]() | \Womanfront | ![]() |
\Manfront | ![]() | \Aries | ![]() | \Taurus | ![]() |
\Gemini | ![]() | \Cancer | ![]() | \Leo | ![]() |
\Virgo | ![]() | \Libra | ![]() | \Scorpio | ![]() |
\Sagittarius | ![]() | \Capricorn | ![]() | \Aquarius | ![]() |
\Pisces | ![]() | \MVA | ![]() | \MVp | ![]() |
\Squaredot | ![]() | \Bat | ![]() | \Womanface | ![]() |
\MartinVogel | ![]() |
Il y a un nombre incroyable de fontes comportant des symboles euro et un nombre encore plus grand d'extensions pour les utiliser. Je choisis (de manière tout à fait arbitraire) l'extensioneurofont, qui permet d'utiliser le symbole euro provenant de diverses fontes.
Si on ne précise rien, il essaye d'utiliser le symbole Euro dans les fontes qu'il trouve, généralement Text Companion.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
(Les anglais parlent deoldstyle numbers.) Pour une utilisation ponctuelle, on peut recourrit à la commande\oldstylenums. L'extensioneco.sty répond permet de les utiliser par défaut (pour les fontes Computer Modern, sous le codage T1).
![]() |
La plupart des symboles mathématiques dont on a besoin sont dans les extensionsamssymb etstmaryrd.
$\boxdot$ | ![]() | $\boxplus$ | ![]() | $\boxtimes$ | ![]() |
$\square$ | ![]() | $\blacksquare$ | ![]() | $\centerdot$ | ![]() |
$\lozenge$ | ![]() | $\blacklozenge$ | ![]() | $\circlearrowright$ | ![]() |
$\circlearrowleft$ | ![]() | $\rightleftharpoons$ | ![]() | $\leftrightharpoons$ | ![]() |
$\boxminus$ | ![]() | $\Vdash$ | ![]() | $\Vvdash$ | ![]() |
$\vDash$ | ![]() | $\twoheadrightarrow$ | ![]() | $\twoheadleftarrow$ | ![]() |
$\leftleftarrows$ | ![]() | $\rightrightarrows$ | ![]() | $\upuparrows$ | ![]() |
$\downdownarrows$ | ![]() | $\upharpoonright$ | ![]() | $\downharpoonright$ | ![]() |
$\upharpoonleft$ | ![]() | $\downharpoonleft$ | ![]() | $\rightarrowtail$ | ![]() |
$\leftarrowtail$ | ![]() | $\leftrightarrows$ | ![]() | $\rightleftarrows$ | ![]() |
$\Lsh$ | ![]() | $\Rsh$ | ![]() | $\rightsquigarrow$ | ![]() |
$\leftrightsquigarrow$ | ![]() | $\looparrowleft$ | ![]() | $\looparrowright$ | ![]() |
$\circeq$ | ![]() | $\succsim$ | ![]() | $\gtrsim$ | ![]() |
$\gtrapprox$ | ![]() | $\multimap$ | ![]() | $\therefore$ | ![]() |
$\because$ | ![]() | $\doteqdot$ | ![]() | $\triangleq$ | ![]() |
$\precsim$ | ![]() | $\lesssim$ | ![]() | $\lessapprox$ | ![]() |
$\eqslantless$ | ![]() | $\eqslantgtr$ | ![]() | $\curlyeqprec$ | ![]() |
$\curlyeqsucc$ | ![]() | $\preccurlyeq$ | ![]() | $\leqq$ | ![]() |
$\leqslant$ | ![]() | $\lessgtr$ | ![]() | $\backprime$ | ![]() |
$\risingdotseq$ | ![]() | $\fallingdotseq$ | ![]() | $\succcurlyeq$ | ![]() |
$\geqq$ | ![]() | $\geqslant$ | ![]() | $\gtrless$ | ![]() |
$\sqsubset$ | ![]() | $\sqsupset$ | ![]() | $\vartriangleright$ | ![]() |
$\vartriangleleft$ | ![]() | $\trianglerighteq$ | ![]() | $\trianglelefteq$ | ![]() |
$\bigstar$ | ![]() | $\between$ | ![]() | $\blacktriangledown$ | ![]() |
$\blacktriangleright$ | ![]() | $\blacktriangleleft$ | ![]() | $\vartriangle$ | ![]() |
$\blacktriangle$ | ![]() | $\triangledown$ | ![]() | $\eqcirc$ | ![]() |
$\lesseqgtr$ | ![]() | $\gtreqless$ | ![]() | $\lesseqqgtr$ | ![]() |
$\gtreqqless$ | ![]() | $\Rrightarrow$ | ![]() | $\Lleftarrow$ | ![]() |
$\veebar$ | ![]() | $\barwedge$ | ![]() | $\doublebarwedge$ | ![]() |
$\angle$ | ![]() | $\measuredangle$ | ![]() | $\sphericalangle$ | ![]() |
$\varpropto$ | ![]() | $\smallsmile$ | ![]() | $\smallfrown$ | ![]() |
$\Subset$ | ![]() | $\Supset$ | ![]() | $\Cup$ | ![]() |
$\Cap$ | ![]() | $\curlywedge$ | ![]() | $\curlyvee$ | ![]() |
$\leftthreetimes$ | ![]() | $\rightthreetimes$ | ![]() | $\subseteqq$ | ![]() |
$\supseteqq$ | ![]() | $\bumpeq$ | ![]() | $\Bumpeq$ | ![]() |
$\lll$ | ![]() | $\ggg$ | ![]() | $\circledS$ | ![]() |
$\pitchfork$ | ![]() | $\dotplus$ | ![]() | $\backsim$ | ![]() |
$\backsimeq$ | ![]() | $\complement$ | ![]() | $\intercal$ | ![]() |
$\circledcirc$ | ![]() | $\circledast$ | ![]() | $\circleddash$ | ![]() |
$\lvertneqq$ | ![]() | $\gvertneqq$ | ![]() | $\nleq$ | ![]() |
$\ngeq$ | ![]() | $\nless$ | ![]() | $\ngtr$ | ![]() |
$\nprec$ | ![]() | $\nsucc$ | ![]() | $\lneqq$ | ![]() |
$\gneqq$ | ![]() | $\nleqslant$ | ![]() | $\ngeqslant$ | ![]() |
$\lneq$ | ![]() | $\gneq$ | ![]() | $\npreceq$ | ![]() |
$\nsucceq$ | ![]() | $\precnsim$ | ![]() | $\succnsim$ | ![]() |
$\lnsim$ | ![]() | $\gnsim$ | ![]() | $\nleqq$ | ![]() |
$\ngeqq$ | ![]() | $\precneqq$ | ![]() | $\succneqq$ | ![]() |
$\precnapprox$ | ![]() | $\succnapprox$ | ![]() | $\lnapprox$ | ![]() |
$\gnapprox$ | ![]() | $\nsim$ | ![]() | $\ncong$ | ![]() |
$\diagup$ | ![]() | $\diagdown$ | ![]() | $\varsubsetneq$ | ![]() |
$\varsupsetneq$ | ![]() | $\nsubseteqq$ | ![]() | $\nsupseteqq$ | ![]() |
$\subsetneqq$ | ![]() | $\supsetneqq$ | ![]() | $\varsubsetneqq$ | ![]() |
$\varsupsetneqq$ | ![]() | $\subsetneq$ | ![]() | $\supsetneq$ | ![]() |
$\nsubseteq$ | ![]() | $\nsupseteq$ | ![]() | $\nparallel$ | ![]() |
$\nmid$ | ![]() | $\nshortmid$ | ![]() | $\nshortparallel$ | ![]() |
$\nvdash$ | ![]() | $\nVdash$ | ![]() | $\nvDash$ | ![]() |
$\nVDash$ | ![]() | $\ntrianglerighteq$ | ![]() | $\ntrianglelefteq$ | ![]() |
$\ntriangleleft$ | ![]() | $\ntriangleright$ | ![]() | $\nleftarrow$ | ![]() |
$\nrightarrow$ | ![]() | $\nLeftarrow$ | ![]() | $\nRightarrow$ | ![]() |
$\nLeftrightarrow$ | ![]() | $\nleftrightarrow$ | ![]() | $\divideontimes$ | ![]() |
$\varnothing$ | ![]() | $\nexists$ | ![]() | $\Finv$ | ![]() |
$\Game$ | ![]() | $\mho$ | ![]() | $\eth$ | ![]() |
$\eqsim$ | ![]() | $\beth$ | ![]() | $\gimel$ | ![]() |
$\daleth$ | ![]() | $\lessdot$ | ![]() | $\gtrdot$ | ![]() |
$\ltimes$ | ![]() | $\rtimes$ | ![]() | $\shortmid$ | ![]() |
$\shortparallel$ | ![]() | $\smallsetminus$ | ![]() | $\thicksim$ | ![]() |
$\thickapprox$ | ![]() | $\approxeq$ | ![]() | $\succapprox$ | ![]() |
$\precapprox$ | ![]() | $\curvearrowleft$ | ![]() | $\curvearrowright$ | ![]() |
$\digamma$ | ![]() | $\varkappa$ | ![]() | $\Bbbk$ | ![]() |
$\hslash$ | ![]() | $\hbar$ | ![]() | $\backepsilon$ | ![]() |
$\shortleftarrow$ | ![]() | $\shortrightarrow$ | ![]() | $\shortuparrow$ | ![]() |
$\shortdownarrow$ | ![]() | $\Yup$ | ![]() | $\Ydown$ | ![]() |
$\Yleft$ | ![]() | $\Yright$ | ![]() | $\varcurlyvee$ | ![]() |
$\varcurlywedge$ | ![]() | $\minuso$ | ![]() | $\baro$ | ![]() |
$\sslash$ | ![]() | $\bbslash$ | ![]() | $\moo$ | ![]() |
$\varotimes$ | ![]() | $\varoast$ | ![]() | $\varobar$ | ![]() |
$\varodot$ | ![]() | $\varoslash$ | ![]() | $\varobslash$ | ![]() |
$\varocircle$ | ![]() | $\varoplus$ | ![]() | $\varominus$ | ![]() |
$\boxast$ | ![]() | $\boxbar$ | ![]() | $\boxdot$ | ![]() |
$\boxslash$ | ![]() | $\boxbslash$ | ![]() | $\boxcircle$ | ![]() |
$\boxbox$ | ![]() | $\boxempty$ | ![]() | $\lightning$ | ![]() |
$\merge$ | ![]() | $\vartimes$ | ![]() | $\fatsemi$ | ![]() |
$\sswarrow$ | ![]() | $\ssearrow$ | ![]() | $\curlywedgeuparrow$ | ![]() |
$\curlywedgedownarrow$ | ![]() | $\fatslash$ | ![]() | $\fatbslash$ | ![]() |
$\lbag$ | ![]() | $\rbag$ | ![]() | $\varbigcirc$ | ![]() |
$\leftrightarroweq$ | ![]() | $\curlyveedownarrow$ | ![]() | $\curlyveeuparrow$ | ![]() |
$\nnwarrow$ | ![]() | $\nnearrow$ | ![]() | $\leftslice$ | ![]() |
$\rightslice$ | ![]() | $\varolessthan$ | ![]() | $\varogreaterthan$ | ![]() |
$\varovee$ | ![]() | $\varowedge$ | ![]() | $\talloblong$ | ![]() |
$\interleave$ | ![]() | $\obar$ | ![]() | $\obslash$ | ![]() |
$\olessthan$ | ![]() | $\ogreaterthan$ | ![]() | $\ovee$ | ![]() |
$\owedge$ | ![]() | $\oblong$ | ![]() | $\inplus$ | ![]() |
$\niplus$ | ![]() | $\nplus$ | ![]() | $\subsetplus$ | ![]() |
$\supsetplus$ | ![]() | $\subsetpluseq$ | ![]() | $\supsetpluseq$ | ![]() |
$\Lbag$ | ![]() | $\Rbag$ | ![]() | $\llparenthesis$ | ![]() |
$\rrparenthesis$ | ![]() | $\binampersand$ | ![]() | $\bindnasrepma$ | ![]() |
$\trianglelefteqslant$ | ![]() | $\trianglerighteqslant$ | ![]() | $\ntrianglelefteqslant$ | ![]() |
$\ntrianglerighteqslant$ | ![]() | $\llfloor$ | ![]() | $\rrfloor$ | ![]() |
$\llceil$ | ![]() | $\rrceil$ | ![]() | $\arrownot$ | ![]() |
$\Arrownot$ | ![]() | $\Mapstochar$ | ![]() | $\mapsfromchar$ | ![]() |
$\Mapsfromchar$ | ![]() | $\leftrightarrowtriangle$ | ![]() | $\leftarrowtriangle$ | ![]() |
$\rightarrowtriangle$ | ![]() | $\bigtriangledown$ | ![]() | $\bigtriangleup$ | ![]() |
$\bigcurlyvee$ | ![]() | $\bigcurlywedge$ | ![]() | $\bigsqcap$ | ![]() |
$\bigbox$ | ![]() | $\bigparallel$ | ![]() | $\biginterleave$ | ![]() |
$\bignplus$ | ![]() | $\llbracket$ | ![]() | $\rrbracket$ | ![]() |
$\varcopyright$i | ![]() | $\longarrownot$ | ![]() | $\Longarrownot$ | ![]() |
$\Mapsto$ | ![]() | $\mapsfrom$ | ![]() | $\Mapsfrom$ | ![]() |
$\Longmapsto$ | ![]() | $\longmapsfrom$ | ![]() | $\Longmapsfrom$ | ![]() |
L'extensionyhmath définit des commandes\widetilde,\widehat,\widetriangle,\wideparen et\widering.
$\widering{A\cap B}$ | ![]() | $\widetilde{A+B}$ | ![]() | $\widehat{A+B}$ | ![]() |
$\widetriangle{A+B}$ | ![]() | $\wideparen{A+B}$ | ![]() |
Plusieures possibilités s'offrent à vous.
La commande\mathcal (c'est probablement ce que vous avez essayé et qui ne vous satisfait pas).
![]() |
![]() |
La commande\mathscr avec l'extensioneuler
![]() |
![]() |
La commande\mathscr avec l'extensionmathrsfs (c'est probablement cette réponse que voulez)
![]() |
![]() |
![]() |
Pour les fontes gothiques, il suffit d'utiliser la commande\mathfrak avec l'extensionamssymb oueuler. On remarquera qu'on peut avoir à la fois du gothique maigre et du gothique gras.
![]() |
![]() |
Un problème demeure : il s'agit de fontes mathématiques, il n'y a donc pas d'accents. Que se passe-t-il si, par exemple, on veut appelerGroupoïdes, en gothique gras (et avec un tréma sur le i), la 2-catégorie des groupoïdes ? Une solution consiste à trouver une fonte gothiquetextuelle, à l'installer comme nous le verrons plus loin (,) et à l'utiliser en mode mathématique à l'aide de la commande\text d'amsmath.
![]() |
On parle souvent de « gras du tableau noir » pour désigner ces lettres : c'était la manière de retranscrire au tableau la fonte grasse utilisée dans les livres.
La manière la plus simple d'obtenir ces lettres est donc d'utiliser du gras, à l'aide de la commande\mathbf.
![]() |
On peut aussi utiliser du gras non étendu.
![]() |
Les caractères qui ressemblent le plus à ceux que l'on trace au tableau, en France (par exemple, la double barre du N est sur le trait vertical de gauche et pas sur le trait en biais au milieu) et dont le gris est comparable à celui des fontes Computer Modern sont celles de la fontedoublestroke. On les obtient à l'aide de la commande\mathds avec l'extensiondsfont.
![]() |
Néanmoins, la fonte la plus utilisée est celle de l'extensionamssymb, obtenue par la commande\mathbb.
![]() |
On peut aussi utiliser la commande\mathbb avec l'extensionbbold.
![]() |
On peut aussi utiliser la commande\mathbbm avec l'extensionbbm.
![]() |
Ces caractères sont aussi présents danschina2e (très laid).
![]() |
La commande\bm, dans l'extensionbm, met son argument en gras. (Cette commande remplace la commande\boldsymbol d'amsmath.)
![]() |
On peut aussi vouloir quetout ce qui est en mode mathématique soit en gras. La commande\mathversion (voir) permet de choisir entre plusieurs ensembles de fontes mathématiques : par défaut, il y juste le maigre (normal) et le gras (bold). C'est juste pertinent dans les titres. Il faut etre conscient que cela ne permet plus de faire la différence entre une quantité mathématique notée en maigre (par exemple, un réel) et une quantité mathématique notée par la même lettre, mais en gras (par exemple, un vecteur).
![]() |
![]() |
C'est une fonte dans laquelle les caractères sont décrits par des points, des pixels. À une taille assez basse, c'est très correct, mais si on tente de grossir les caractère, les pixels deviennent visibles.
![]() |
Une fonte est un tableau de caractères. Le codage est la donnée de l'emplacement des caractères dans le tableau. On ne confondra pas avec la notion de codage d'entrée, qui est le codage dans lequel le texte a été tapé (latin1 sur une machine Unix, applemac sur un Mac) et qui n'a rien à voir avec les fontes.
Abréviation anglaise de « dots per inch », ie, « points par pouce ». C'est la résolution d'une fonte bitmap ou d'une imprimante. Ainsi, TeX a besoin de connaître la résolution de l'imprimante avant de transformer les fontes Métafont en fichiers bitmaps.
Dessin d'un caractère
Quand on regarde une page imprimée de loin, de manière à ne plus pouvoir distinguer les caractères individuels, la page semble grise. Si les caractères utilisés appartiennent tous à la même fonte et si cette fonte est homogène, ce gris semblera uniforme. La profondeur de ce gris s'appelle justement le gris de la fonte. Quand on mélange plusieures fontes (en particulier une fonte texte et une fonte mathématique), il faut prendre garde à ce que ces fontes aient le même gris, de manière que la page reste uniforme. Le gris dépend, entre autres, de la taille des caractères et de l'épaisseur des traits.
C'est un ensemble de caractères, chacun étant identifié par son nom (par exempleLATIN LETTER A), indépendemment de tout codage.
Les caractères ne sont pas juxtaposés les uns aux autres en ne tenant compte que de la taille des caractères : selon la forme des lettres, il peut être nécessaire de rapprocher certaines lettres. C'est le cas par exemple d'un A suivi d'un V.
![]() |
Quand deux caractères sont proches, on choisit parfois de les dessiner un peu différemment : c'est par exemple le cas duf et dui, le point se mélangeant à la boucle. Les fontes True Type comportent souvent les ligaturesfi etfl.
![]() |
Une fonte ne contient pas que le dessin des caractères, mais aussi leur taille (hauteur, largeur, profondeur). On pourrait croire que cette information est supperflue, que l'on peut la retrouver en prenant juste la taille du dessin des caractères, mais il n'en est rien. Par exemple, la largeur d'un caractère italique est inférieure à celle du dessin de ce caractère.
![]() |
Les fontes Métapost utilisées par LaTeX changent selon la taille, de manière à être homogènes (si on se contentait de les grossir, les traits deviendraient plus épais ou plus fins, ce qui n'est pas souhaitable) et plus lisibles (les caractères de petite taille sont relativement plus larges) ; voir. C'est ce que l'on appelle en anglais lametaness d'une fonte : à partir d'un seul fichier on peut créer toute une famille de fontes, simplement en changeant certains paramètres.
Les fontes PostScript ne permettent pas vraiment ce genre de chose (avec des fontes de type 3, c'est toutefois possible). C'est là qu'interviennent les fontesmultimaster : c'est un nouveau standard qui permet de définir en une seule fois tout une famille de fontes, qui dépendra de plusieurs paramètres (par exemple la taille, la graisse, l'inclinaison, et pourquoi pas la taille des empatements).
Il semble que les fontes Multimaster aient été un échec commercial.
C'est une fonte vectorielle dans laquelle les caractères sont définis par un contour : les caractères ne sont pas définis par des instructions « tracer une ligne, une courbe », mais simplement par « colorier l'intérieur d'une courbe fermée ». Les fontes Outline sont des fontes vectorielles, mais les fontes vectorielles ne sont pas toutes des fontes outline (c'est le cas des fontes MétaFont). Elles permettent divers effets graphiques : on peut ne tracer que le contour des caractères (sans colorier l'intérieur), on peut aussi utiliser la commande PostScriptclip sur ce contour.
![]() |
![]() |
![]() |
Se dit d'une fonte dont les glyphes n'ont pas d'empatement. Dans la figure suivante, la lettre de droite est sans sérif, contrairement à celle de gauche.
![]() |
C'est une fonte dans laquelle les caractères sont décrits non pas par des pixels, mais par des instrucations graphiques (tracer une ligne, une courbe, colorier l'intérieur d'une courbe fermée, etc.) On peut donc afficher une telle fonte en n'importe quelle taille sans problème de pixellisation, contrairement aux fontes bitmap.
Métriques d'une fonte PostScript (c'est un fichier texte) Voici un extrait d'un tel fichier : c'est compréhensible à peu près directement. Après l'en-tête, qui contient des paramètres relatifs à la fonte dans son ensemble (le codage, la « bounding box » (une boite dans laquelle on peut mettre n'importe quel glyphe de la fonte, utilisée lors de la rastérisation), l'angle des caractères italiques, la hauteur des majuscules, des minuscules, la profondeur à laquelle les caractères qui s'étendent en dessous de la ligne de base (tels que y, p, q, g ou j) s'enfoncent, etc.), viennent les caractèrtes eux-même : leur numéro, leur largeur, leur nom, leur « bounding box » (une boite dans laquelle on peut mettre le glyphe correspondant). On remarquera que certains caractères n'ont pas de numéro, mais juste un nom : ils sont absents du codage ; si on veut les utiliser, il faut donc de changer le codage de la fonte. Le fichier s'achève sur le crénage (kerning) et les caractères obtenus en combinant plusieurs autres caractères (généralement, une lettre et un accent).
Ce sont des fichiers décrivant des codages d'entrée (pas le codage d'une fonte, mais le codage d'un texte) :ascii,latin1,applemac,ansinew,cp850, etc. Un tel fichier contient des lignes du genre
Ces fichiers sont lus par LaTeX, par exemple quand on lui dit
Codage d'une fonte (i.e., correspondance entre le nom des caractères et leur position dans la fonte), sous une forme compréhensible par LaTeX. Voici un extrait du fichiert1enc.def.
Fichier décrivant le codage d'une fonte (utilisé pardvips). Il s'agit d'un fichier PostScript qui contient la liste des caractères dans une fonte, dans l'ordre. Voici un extrait du fichiercork.enc.
Fichier décrivant un codage (utilisé parfontinst, voir). On trouve essentiellement deux types de fichiers. Tout d'abord, les normaux, par exemple,OT1.etx, dont voici un extrait.
Le nom de ces fichiers est constitué par : le nom du codage (U, T1, OT1, etc.), en minuscules, suivi du nom d'une famille de fontes. Il est chargé automatiquement par LaTeX quand on cherche à utiliser une fonte de cette famille. Il contient la correspondance entre le nom d'une fonte (par exemple « Computer Modern, droit, gras étendu, 10pt ») et le nom du fichier la contenant. Il peut aussi préciser ce qu'il faut faire si une fonte n'existe pas (par exemple : « s'il n'y a pas de gras étendu, alors prendre du gras normal » --- mais la plupart de ces substitutions sont automatiques). Voici un exemple de tel fichier.
Fonte au format bitmap (non compressé) provenant d'un fichier Métafont et calculée pour une certaine imprimante (plus la résolution de votre imprimante est élevée, plus il faudra utiliser une résolution élevée). On peut en rendre le contenu compréhensible à l'aide de la commandegftype et le visualiser à l'aide de la commandegftodvi.
Fonte Bitmap pour les langues asiatiques, que l'on peut convertir en fichiers *.pk pour les utiliser sous LaTeX, par exemple à l'aide de CJK (voir).
Fichier source d'une fonte (vectorielle) au format Métafont à partir duquel on peut calculer les métriques et créer les fichiers bitmaps utilisés parxdvi oudvips. Voir le chapitre sur Métafont. Voici un exemple d'un tel fichier. Ça n'a pas l'air très lisible comme cela, mais c'est quand-même très puissant. Je profite de l'occation pour signaler que Métafont a donné naissance à un logiciel de dessin,Métapost.
Fichier utilisé parfontinst () décrivant une fonte (virtuelle ou non) ou des opérations pour en créer une nouvelle. Le premier cas est celui de la description d'une fonte : ce fichier est créé automatiquement parfontinst à partir du fichier*.afm ou*.pl correspondant. Voici un extrait d'un tel fichier.
L'autre type de fichier*.mtx ne contient pas la description d'une fonte entière mais juste des modifications à effectuer sur des caractères, par exemple intervertir des caractères, les remplacer par d'autres d'une autre fonte, etc. Ce sont les fichiers avec lesquels on programme sousfontinst. Voici par exemple un extrait du fichieruline.mtx. Comme nous reviendrons très longuement sur ces fichiers dans la partie surfontinst (), nous ne donnons pas plus d'explications ici.
FichierPDF ; le PDF est le format qui va peut-être bientôt remplacer le PostScript.
Fonte PostScript au format ASCII. C'est un programme en PostScript, presque humainement lisible. Voici un extrait d'un tel fichier
Fonte postScript au format binaire (c'est comme une fonte postScript au format ASCII*.pfa, mais un peu compressé). C'est un fichier binaire, qui n'est donc plus lisible. On peut convertir une fonte*.pfa en*.pfb à l'aide de la commandet1binary et réciproquement à l'aide det1ascii oupfb2pfa.
Métriques d'une fonte PostScript pour Windaube, contenant (je crois) un peu moins d'informations que les fichiers*.afm. Il n'est pas humainement lisible.
Fonte au format bitmap (compressé, contrairement aux*.gf) provenant souvent d'un fichier Métafont (mais parfois aussi d'une fonte PostScript (pour pouvoir l'utiliser avecxdvi) ou TTF). La résolution est indiquée juste avant, par exemplecmr17.518pk pour la fontecmr17 à 518dpi. On peut passer du format*.pk au format*.gf à l'aide depktogf et réciproquement à l'aide degftopk. La commandepktype convertit un fichier*.pk en un fichier humainement lisible.
Fichier « property list » : c'est la version humainement lisible d'un fichier de métriques*.tfm, obtenue à l'aide detftopl. On l'utilise comme point de départ quand on joue avec des fontes virtuelles. Le contenu d'un tel fichier ressemble à du Lisp : voici un extrait d'un tel fichier.
Fichier prologue pourdvips : ce sont des commandes PostScript à mettre au début d'un fichier pour faire certaines initialisations (par exemple, définir des commandes). Voici un extrait d'un tel fichier.
FichierPostScript, souvent le résultat final de la compilation d'un fichier LaTeX (après passage pardvips). Nous y reviendrons plus loin ().
Métriques d'une fonte, sous une forme lisible par LaTeX mais pas par un humain. On peut les convertir en fichiers*.pl, humainement lisibles, à l'aide detftopl.
Fonte True Type Unicode (cela dit, la seule fonte True Type Unicode que j'aie jamais vue s'appelait*.ttf)
Fonte True Type (voir chapitre). Ce sont des fontes vectorielles essentiellement utilisée sous Windaube. Pour les utiliser sous LaTeX, on peut les convertir en fontes bitmap (*.pk) à l'aide dettf2pk ou en fontes PostScript à l'aide dettf2pt1.
Fonte virtuelle, créée par la commandevptovf, que l'on peut convertir en une forme lisible grace à la commandevftovp.
« Virtual property list » : c'est une fonte virtuelle rendue humainement lisible par la commandevftovp. Son contenu ressemble beaucoup aux fichier*.pl, mais il contient des informations supplémentaires : il nous dit comment créer chaque caractère de la fonte. Par exemple « aller chercher tel caractère dans telle autre fonte » ou « superposer ces deux caractères ». Voici quelques exemples de ce que l'on peut y trouver (en vrac, en provenance de différentes fontes). Nous n'utiliserons pas directement ce genre de fichier, nous verrons plus loin commentfontinst permet de manipuler des fontes virtuelles plus facilement.
Fichier indiquant la correspondance entre les noms de fontes PostScript utilisées par LaTeX (premier champ), le nom PostScript de ces fontes (second champ) et éventuellement le nom des fichiers les contenant ou des noms d'autres fichiers à inclure (par exemple, pour changer le codage). Les lignes peuvent correspondre à des fontes connues par l'imprimante (on ne précise pas de fichier*.pfa ou*.pfb)
On peut mettre ses ajouts au fichierpsfonts.map dans un fichiermypsfonts.map et l'appeler en ajoutant les lignes suivantes dans le fichier~/.dvipsrc/ (seule la ligne commençant parp est importante).
Fichiers que l'on peut rajouter àpsfonts.map
Il a d'autres fichiers*.map (dans le répertoirefontname) qui indiquent la correspondance entre les noms de fonte lisibles, les noms de fonte illisibles utilisés par TeX et les noms de fontes illisibles utilisés par OuinDaube.
Fichier indiquant la correspondance entre le nom des fontes TTF utilisées par LaTeX et le nom des fichiers les contenant. C'est l'analogue du fichierpsfonts.map pour les fontes TTF. Voici un exemple d'un tel fichier : on précise le nom de la fonte pour LaTeX, le nom du fichier TTF, et on peut rajouter le codage désiré (sous forme de fichier*.enc, qui est un fichier PostScript) et l'inclinaison.
Transforme une fonte bitmap*.gf en un fichier*.dvi.
Pour compresser un fichier*.gf en un fichier*.pk.
Transforme une fonte bitmap*.gf en un fichier humainement lisible.
Transforme des métriques pour OuinDaube*.pfm en métriques _< normales ». Comme il y a un peu moins d'information dans les fichiers*.pfm, le résultat ne sera pas toujours satisfaisant. On trouve ce programme surCTAN
Transforme des fontes PostScript binaires*.pfb en fontes PostScript ASCII*.pfa. On trouve ce programme surCTAN. Voir aussit1utils.
Idem, toujours surCTAN, mais à un autre endroit. Voir aussit1utils.
Pour décompresser un fichier*.pk et obtenir un fichier*.gf
Pour rendre humainement lisible le contenu d'un fichier*.pk.
Pour convertir un fichier*.pfb en*.pfa.
Pour compresser le contenu d'un fichier*.pfa humainement lisible.
Pour convertir un fichier*.pfa en*.pfb.
Pour rendre le contenu d'un fichier*.pfa humainement illisible.
Ensemble de commandes (t1asm,t1disasm,t1ascii,t1binary,unpost) pour manipuler des fontes PostScript Type 1.
Transforme un fichier*.tfm en*.pl. Par exemple
Transforme une fonte*.ttf en fonte bitmap utilisable pardvips, voir chapitre
Extrait les métriques d'un fichier*.ttf
Pour convertir des fontes PostScript pour Mac (fichiers POST) en fontes PostScript utilisables sur des machines normales.
Transforme une fonte virtuelle*.vf (et ses métriques*.tfm) en*.vpl.
Transforme un fichier*.vpl en*.tfm et*.vf.
La structure de l'arborescence d'une installation de LaTeX est décrite dans leTDS (TeX Directory Structure. Rappelons-en les grandes lignes. La racine de l'arborescence peut être/usr/local/lib/texmf/. Dans la situation qui nous intéresse (une distribution basée surweb2c, utilisantdvips), ce répertoire contient
un répertoiretex qui contient les fichiers inclus par LaTeX,
un répertoirefonts qui contient les fontes : plus précisément, il contient les sous-répertoires
tfm pour les métriques
source pour les sources métafont
truetype pour les fontes True Type et le fichierttfonts.map
type1 pour les fontes PostScript Type 1
afm pour les métriques des fontes PostScript Type 1
vf pour les fontes virtuelles
pk pour les fontes bitmap (dans certaines distributions, la résolution des bitmaps n'est plus indiquée dans le nom de fichier,toto10.300pk, mais dans le nom du répertoire le contenant,dpi300/toto.pk)
un répertoiremetafont qui contient les fichiers lus par métafont qui ne sont pas des fontes (par exemple, des macros),
un répertoiredvips qui contient les fichiers de configuration dedvips
un répertoireweb2c qui contient les formats et le fichier de configurationtexmf.cnf (en particulier, la liste des répertoires à chercher)
un fichierls-R qui contient la liste des fichiers contenus dans ce répertoire et qui est utilisé parkpsearch. on peut le remettre à jour à l'aide de la commandemktexlsr (outexhash, selon la distribution).
La recherche des fichiers par TeX, MetaPost, dvips, etc. est réalisée par la bibliothèquekpsearch. Pour savoir où elle va chercher un certain fichier, on peut utiliser la commandekpsewhich.
Quand on installe une nouvelle fonte (ou un nouveau paquetage), on peut soit le rajouter dans l'arborescence, soit créer une nouvelle arborescence : cela permet de bien séparer les fichiers qui proviennent de la distribution que l'on a choisie (par exemple teTeX) et ceux que l'on a rajoutés soi-même ; en particulier, on peut réinstaller cette distribution (ou même une autre) sans rien changer à ce que l'on avait rajouté soi-même. Pour ce faire, il suffit d'éditer le fichiertexmf.cnf (si vous ne savez pas où il se trouve, utilisez la commandekpsewhich). Il contient des choses comme
Dans le préambule d'un document, on conseille souvent de mettre
La première ligne demande d'utiliser des fontes avec le codageT1 (si on voit une fonte comme un tableau de caractères, le codage est juste l'emplacement des caractères). Il s'agit du codage de la fonte.
La seconde ligne indique le codage du texte : une machine Unix et Ouindoze ne codent pas les lettres accentuées de la même manière. Préciserlatin1 revient à dire que l'on a utilisé une machine Unix pour taper le texte : on peut après le compiler sur un Machintosh sans que les lettres accentuées soient corrompues (voir).
Tout d'abord, si LaTeX est bien installé, on peut les taper normalement, i.e., «é » au lieu de «\'e ». Néanmoins, cela risque de poser un problème de portabilité : en effet, les caractères accentués sont codés différemment selon le type de plateforme (Unix, MacOS, WinDaube). Il faut donc dire quel est le codage utilisé. Si on est sur une machine Unix, il suffit de rajouter
On peut aussi vouloir utiliser plusieurs codages dans un même document : le problème se pose si, par exemple, plusieures personnes écrivent les différentes parties d'un même document, mais sur des machines différentes. On précise alors le codage par la commande\inputencoding.
Cela dépend de l'éditeur de texte que l'on utilise. Pour (X)Emacs sous Unix, je n'ai pas de solution, à part Unicode.
Si l'on voit une fonte comme une tableau de dessins de caractères, son codage est la correspondance entre le nom d'un caractère et l'emplacement de son dessin. Il convient de bien distinguer le codage de la fonte et le codage d'entrée (ie, celui dans lequel on a tapé notre texte, par exemple latin1 sur une machine Unix). La question précédente tentait déjà de préciser cette distinction. On peut se demander pourquoi il y a différents codages. Si on a besoin juste des lettres latines, il semble très naturel d'utiliser des caractères ASCII. Mais si on a besoin d'autres lettres ? Si on a besoin de caractères accentués ? Si on a besoin de certains symboles mathématiques ? Si on a besoin de caractères cyrriliques ? Si on a besoin de caractères grecs ? Pour chaque problème, on peut apporter une solution, c'est-à-dire concevoir un codage adéquat. Mais comme on se limite à 256 caractères par fontes, on ne parvient pas tout mettre dans une même fonte. Pire encore, si différentes personnes tentent de résoudre le même problème, elles vont le résoudre de manières différentes, ie, aboutir à des codages différents pour le même jeu de caractères (il y a par exemple un nombre incroyable de codages pour le russe). La situation se complique encore pour les écritures qui requièrent plus de 256 caractères...
Voici une liste (non exhaustive) de codages reconnus par LaTeX
Uniquement les caractères ASCII
Texte européen sur une machine UNIX (il manque le caractère OE)
À peu près pareil (mais il doit y avoir un OE)
Texte européen sous MacOS
Europe de l'est
Europe du sud
Turc
Codage de OuinDaube
Codage de MSDOS
Voici quelques exemples de codages (la liste n'est pas du tout exhaustive).
C'est le codage actuellement utilisé par LaTeX. Il est aussi connu sous le nom de Cork ou8t.
C'est le codage initialement utilisé par TeX. Il posait des problèmes de césure pour les mots accentués et tend à être supplanté par T1. On le préfère parfois à T1 car il reste plein de place libre pour rajouter des caractères dont on aurait besoin.
C'est le codage utilisé par LaTeX pour les fontes PostScript. Il est aussi connu sous le nom de8r.
Codage utilisé par la plupart des fontes PostScript. Il est aussi connu sous le nom de8a. Quand on utilise de fontes PostScript, on se ramène généralement du codage8a au codage8r.
Codage mathématique utilisé par TeX (Math Italics)
Codage mathématique utilisé par TeX (Math Symbols)
Codage mathématique utilisé par TeX (Math Large Symbols)
Codage utilisé pour les symboles en mode texte (textcomp.sty et les fontes TC, « Text Companion »)
Washington University Cyrillic encoding.
Le codage cyrillique utilisé par défaut parrussianb dabsbabel. Il y a plein d'autres codages cyrilliques : OT2, LWN, LCY, X2, T2, T2C, T2B, T2A.
IPA (alphabet phonétique international), sur 7 bits (128 caractères).
IPA, 256 caractères. Voirtipa.sty.
Polonais
Polonais
Un codage grec.
l'un des codages de Y&Y.
Il y a aussi un codage propre àdvips...
Codage inconnu.
Codage local, normalement non diffusé
Codage expérimental (comme le codage local, mais il est destiné à être diffusé).
Oui, parfois. Dans le codageOT1, les lettres accentuées ne sont pas des caractères mais sont construites par LaTeX à partir d'une lettre et un accent. Le problème, c'est que TeX ne sais pas couper les mots contenant de telles constructions. Pour y remédier, il y a deux solutions :
Utiliser une fonte utilisant le codageT1, par exemple les fontesEC (fontes Métafont fabriquées à partir des fontes Computer Modern) ou les fontesae (aeguill.sty) (fontes virtuelles utilisant les fontes Computer Modern : on y a recours quand on est contraint d'utiliser les fontes CM, par exemple avec pdfTeX qui veut des fontes PostScript -- les fontes CM existent en PostScript mais pas les fontes EC) : les lettres accentuées sont alors des caractères comme les autres.
Utiliser MlTeX (avec les distributions récentes de (La)TeX, il suffit de donner l'option-mltex quand on crée un nouveau format). C'est la solution la plus simple.
Cela résulte de l'utilisation répandue d'un certain système d'exploitation qui limite le nombre de caractères d'un nom de fichier à 8 caractères. Pour que les fontes aient le même nom sur toutes les machines, on s'efforce d'utiliser ces noms réduits sur toutes les machines. La signification exacte de ces nom est expliquée dansfontname. En voici une présentation (incomplète et) simplifiée.
Première lettre : Nom de l'entreprise qui commercialise la fonte. Voici quelques exemples.
inconnu
petites entreprises, particuliers, public
Adobe
le nom de la fonte ne satisfait pas à fontname.
Deux lettres suivantes : nom de la fonte Voici quelques exemples.
Adobe Garamond
ITC Garamond (distribué par Adobe) [Il y a encore plein d'autres fontes Garamond.]
Times (il y a aussi plein de fontes Times)
Lettre suivante : le poids. Quelques exemples :
gras
normal
Lettres suivantes : variantes (italique, SC, sans sérif, codage)
italique
penché (o comme oblique)
sans sérif
SC
manuscrit
codage sur 8 bits
TeXBase1Encoding
CorkEncoding
Lettre suivante : largeur (généralement omise)
Pourquoi s'embéter avec tout cela ? Si on est sûr de ne jamais utiliser de ces systèmes d'exploitation archaïques n'autorisant pas plus de 8 caractères dans les noms de fichiers, pourquoi ne pas utiliser des noms plus explicites ?
Bonne question. Le plus simple est souvent de ne pas s'en préoccuper. Mais on ne peut alors plus utiliser de logiciels qui permettent de manipuler des fontes en supposant qu'elles sont installées en respectant ces conventions (vfinst,mathkit,mathinst). Une autre solution consiste à ne pas chercher à comprendre fontname et à utiliser des noms arbitraires, conformes à fontname. Par exemple
créateur inconnu
le nom de la fonte (les deux lettres « pi » sont conformes à fontinst, elles sont suivies de trois chiffres --- cela nous fait dépasser des 8 caractères généreusement accordés par B. Gates, mais ce n'est pas grave)
codage utilisé par TeX pour les fontes PS ou TTF
Cela n'apparait pas dans toutes les fontes, mais juste dans certaines fontes Métafont récentes, par exemple, les fontes EC. La fonte Computer Modern maigre droite était présente en plusieures versions différentes, correspondant à des tailles différentes (cmr5,cmr10,cmr17, etc.). Il s'agissait vraiment de fontes différentes car, pour des raisons de lisibilité, les fontes de petites tailles sont relativement plus larges que des fontes de grande taille. Ainsi, sur la figure suivante, on a utilisé la fonte Computer Modern à 6 point et è 35 points, avec la même graisse.
![]() |
Certains de ces fichiers peuvent d'ailleurs être crés automatiquement parmktexmf. À DÉTAILLER
Initialement, les fontes sous (La)TeX étaient considérées comme complètement distinctes les unes des autres : il y avait par exemple une fonte droite, une fonte grasse, une fonte italique, une fonte italique grasse, mais le logiciel ne connaissait pas leurs attributs et n'était pas conscient qu'elles faisaient partie d'une même famille. Ainsi, si on demandait du gras au début d'un paragraphe, puis, pour un mot à l'intérieur du paragraphe, de l'italique, il fallait explicitement demander de l'italique maigre ou de l'italique gras : on ne pouvait pas dire, simplement, « de l'italique avec la même graisse ». En d'autres termes, les changements de fontes n'étaient pas orthogonaux.
LeNFSS (New Font Selection Scheme) permet de spécifier séparément certaines des caractéristiques des fontes : inclinaison (droit, penché, italique, petites capitales, etc.), graisse (normal, gras, gras condensé, gras étendu), taille. Cela permet à peu près toutes les combinaisons (sauf les petites capitales italiques).
Son codage : OT1 (vieilles fontes TeX, dans lesquelles les caractères accentués sont construits à partir de deux caractères, l'accent et la lettre), T1 (fontes TeX plus récentes : les caractères accentués sont directement présents), OML (italique mathématique), OMS (symboles mathématiques), OMX (grands symboles), etc. ;
Sa famille : cmr (Computer Modern), cmss (Computer Modern Sans Sérif), cmtt (Computer Modern Typewriter), cmm (math italics), cmsy (math symbols), cmex (math large symbols), ptm (Times), phv (Helvetica), pcr (Courrier), etc. ;
Sa série : médium (m), gras (b), gras étendu (bx), semi-gras (sb), condensé (c) ;
Sa forme : droit (n), italique (it), penché (sl), petites capitales (sc), etc.
Nous avons déjà vu les commandes de « haut niveau » :\rmfamily,\sffamily,\ttfamily,\mdseries,\bfseries,\upshape,\itshape,\slshape,\scshape. Les commandes de bas niveau sont les suivantes (attention, elles supposent que les fontes sont décrites quelque part, voir) :
La question est problématique, car italique (ou penché) et petites capitales sont tous deux des « formes » de la fonte : on les sélectionne par les commandes\ifshape,\slshape ou\scshape. Il s'ensuit qu'on ne peut pas avoir de petites capitales penchées si l'on s'en tient strictement à NFSS.
Néanmoins, ces fontes existent, par exemple dans la famille EC (si elles n'existaient pas, on pourrait les fabriquer, voir,,,) :ecsc*.mf pour les petites capitales penchées maigres etecoc*.mf pour les grasses. Pour les utiliser, il faut court-circuiter NFSS : on peut le faire salement, en reprenant les commandes TeX (qui ne tiennent pas compte de la taille courrante, ni de la graisse courrante).
![]() |
Sélectionner la fonte à l'aide de la commande\selectfont ne suffit pas, car le nom de la fonte pour TeX et le nom des fichiers correspondants n'est pas nécessairement le même (en fait, une même fonte peut avoir une demi-douzaine de noms différents : celui pour TeX, celui pour fontname, celui pour le système de fichier, celui pour l'interpréteur PostScript --- je suis sûr que j'en oublier, mais lesquels ?). Pour utiliser une fonte appeléetoto10 de manière ponctuelle, il suffit de mettre les lignes suivantes dans l'en-tête du fichier et d'utiliser la commande\texttutu.
Le dernier argument (très souvent vide) contient des commandes à exécuter juste après avoir sélectionné la fonte : il peut par exemple s'agir d'ajustements des dimensions. Nous y reviendrons plus loin ()
La deuxième ligne stipule que pour la fonteU/tutu/m/n, seules les tailles 5, 6, 7, 8, 9, 10, 10.95, 12, 14.4, 17.28 et 24.88 points sont disponibles et qu'il faut aller les chercher dans les fichierstoto5.tfm,toto7.tfm ettoto10.tfm. Rappelons à cette occasion que les seuls fichiers concernant une fonte dont TeX a besoin sont les métriques*.tfm. Il n'a pas besoin du dessin des caractères (c'estxdvi oudvips qui s'en chargent). Remarquons aussi que le nom de la fonte pout LaTeX (tutu) peut être différent des noms de fichiers (toto).
Les dernières lignes définissent une macro\texttutu et un environementtutufamily permettant d'utiliser notre fonte de manière ponctuelle.
Signalons aussi qu'il existe des commandes pour définir de telles macros.
En fait, l'exemple précédent n'est pas très propre : normalement, la description de la fonte est cachée dans un fichier*.fd qui est chargé automatiquement par LaTeX quand il en a besoin. Dans un fichiertoto.sty, mettons les lignes suivantes :
Le dernier argument de ces commandes est généralement vide, mais pas toujours. On l'utilise pour changer les valeurs par défaut de\skewchar (par défaut -1) ou\hyphenchar (le caractère utilisé pour effectuer la césure, par défaut le tiret). Ainsi, on peut inhiber la césure
On peut indiquer une taille unique.
La primitive TeX permettant d'obtenir un caractère dans la fonte courrante à partir de son numéro est\char. La commande LaTeX correspondante s'appelle\symbol, simplement définie comme
Il existe néanmoins une manière un peu plus propre d'effectuer cela, à l'aide de la commande\DeclareTextSymbol (voirfntguide pour les détails)
Très souvent, les symboles en question seront utilisés en mode mathématique : c'est alors un peu plus compliqué, car LaTeX doit savoir de quel type de symbole il s'agit : une lettre, une relation binaire, un délimiteur gauche, etc. Cette information est nécessaire pour avoir un espacement correct de chaque côté du symbole. Les commandes suivantes peuvent s'utiliser directement et prennent alors le caractère voulu (ou n'importe quoi d'autre) en argument et s'occuppent de ces espaces.
\mathalpha : une lettre ;
\mathop : un opérateur (unaire), comme par exemple\sin ou\hom ;
\mathbin : un opérateur binaire, comme par exemple+ ;
\mathrel : une relation binaire, comme par exemple=,\neq ou\mid ;
\mathopen : un délimiteur ouvrant, par exemple( ou\langle ;
\mathclose : un délimiteur fermant, comme par exemple) ou\rangle ;
\mathpunct : une ponctuation ;
\mathord : n'importe quoi d'autre, qui sera traité à peu près comme une lettre, par exemple\hbar,\alpha ou\bigstar.
Nous avons déjà vu plus haut comment faire s'il y avait déjà un fichier*.sty qui chargeait la fonte : nous regarderons donc ici ce que l'on peut faire si l'on est laissé à soi-même. Il s'agit essentiellement de redéfinir une ou plusieures des commandes suivantes (il faut toutefois que LaTeX parvienne à trouver les fichiers*.fd et les métriques correspondantes) :\rmdefault,sfdefault,ttdefault,bfdefault,mddefault,\itdefault,\sldefault,\scdefault,\updefault,\encodingdefault,\familydefault,\seriesdefault,\shapedefault. Voire même l'une des commandes suivantes :
Voici un exemple plus compliqué : on cherche à imiter une machine à écrire. Il n'y a donc plus qu'une seule fonte, qu'une seule taille. (Nous verrons plus loin () comment nous occuper des fontes en mode mathématique.)
Cette question n'a pas grand sens : quand on demande à LaTeX d'utiliser une fonte, cela implique un certain codage. Si à un autre endroit du texte on demande une autre fonte, elle impliquera un autre codage. Ces différents codages correspondent à différentes parties du texte (éventuellement incluses les unes dans les autres) : cela ne pose donc aucun problème.
La question peut quand même avoir un sens dans le cas de fontes possédant plusieurs codages. Le premier exemple qui vient à l'esprit est celui des fontes Computer Modern, qui existent sous les codages OT1 et T1. On peut demander explicitement à LaTeX d'utiliser l'un ou l'autre de ces codages, par exemple à l'aide de la commande
On a aussi besoin de plusieurs codages pour une même fonte si cette fonte comporte plus de 256 caractères : ainsi, pour écrire un document en Computer Modern à la fois en français et en russe, on pourra utiliser la même fonte, tantôt avec le codageT1, tantôt avec le codageOT2. Ainsi, la ligne suivante
Le plus simple est d'utiliser la commande\text définie dansamsmath, qui permet de mettre du texte en mode mathématique en respectant la taille courrante de l'écriture (taille des indices et des indices d'indice). La commande\text respecte les caractéristiques du texte alentours, par exemple, dans une formule mathématique au milieu d'un texte en gras italique, elle va prendre du gras italique. Ce n'est pas toujours désiré. Si on n'en veut pas, on peut revenir à la fonte par défaut grace à\text{\normalfont ...}. Il ne faut pas utiliser la commande\mbox, car elle ne respecte pas la taille des indices ou des exposants.
Comme il s'agit d'une fonte texte, on peut utiliser des caractères accentués : ce n'est pas le cas des fontes mathématiques. Si on désire appelerHoméo(X,Y) (dans une fonte maigre droite) l'ensemble des homéomorphismes entre des espaces topologiquesX etY, ouGroupoïdes (dans une fonte gothique grasse) la 2-catégorie des groupoïdes, cela ne pose pas de problème. Avec les commandesDeclareMathOperator oumathfrak, on ne pouvait pas mettre d'accents...
D'après la réponse à la question précédente, on voit que ce n'est peut-être pas une très bonne idée : d'une part il est plus simple d'utiliser une fonte texte et la commande\text, d'autre part, on perdrait la possibilité d'utiliser des accents.
Toutefois, si on insiste, il suffit de rajouter les deux lignes suivantes, qui définissent une commande\mathTOTO.
On peut aussi vouloir changer la fonte utilisée en mode mathématiquepar défaut. Si l'on essaye les lignes suivantes (qui tentent d'utiliser une fonte sans sérif), tout semble marcher parfaitement.
![]() |
![]() |
On peut ne changer que les caractères alphanumériques, comme suit. Les autres caractères (lettres grecques, symboles) seront pris dans la fonte mathématique précédente.
![]() |
![]() |
Le lecteur désirant d'autres exemples est invité à regarder comment les extensionspslatex oumathpple sont programmées.
Commençons par quelques révisions : nous avons déjà vu des commandes permettant de changer ponctuellement la fonte mathématique :
***** A REVOIR ***** (Cette question est très pertinente : si on désire unstaller une nouvelle fonte textuelle, ne comportant pas tous les caractères mathématiques dont on aura besoin, on peut créer des fontes mathématiques virtuelles à partir des caractères mathématiques présents dans la fonte et en allant chercher les caractères manquants dans les fontes COmputer Modern ou Euler.)
(ANCIENNE REPONSE --- A EFFACER) La question de l'utilisation d'une autre fonte mathématique ne se pose pas vraiment, car il y en a très peu et elles sont toutes accompagnées d'un fichier*.sty permettant de les utiliser. Pour que le problème se pose, il faudrait que l'on écrive soi-même une telle fonte ou alors que l'on modifie soi-même certains des paramètres des fontes CM ou Euler correspondantes pour qu'elles se marrient bien avec une fonte texte que l'on aurait choisie, ou bien que l'on utilise des fontes virtuelles pour modifier une fonte mathématique existante, ou encore que l'on utilise des fontes virtuelles pour récupérer des caractères dans diverses fontes des symboles. Le lecteur intéressé devrait trouver son bonheur dans les fichierseuler.sty,mathpple etpslatex.sty. Nous allons quand même essayer d'expliquer comment on procèderait.
A FAIRE PRENDRE UN EXEMPLE : avec des fontes virtuelles (en modifiant tous les caractères d'une fonte mathématique postscript de la même manière) ou en changeant les paramètres des fontes CM.
Imaaginons que nous ayions écrit une nouvelle fonte mathématique, comportant tous les symboles dont on pourrait avoir besoin. Comment dire à LaTeX de l'utiliser ? Nous prendrons l'exemple de la fonteeuler, i.e., nous allons réécrireeuler.sty. Commençons par demander à LaTeX d'utiliser notre fonte pour les caractères textuels utilisés en mode mathématique. La première ligne définit un nouvel alphabetletters (plus exactement, on le redéfinit). Pour l'instant, il n'est définit que pour la versionnormal. Mais comme la fonte existe à la fois en maigre et en gras, on peut définir une nouvelle version,bold.
![]() |
![]() |
![]() |
![]() |
![]() |
(REPONSE ENCORE PLUS ANCIENNE --- A EFFACER) Tout cela, c'était pour les fontes « normales », pas celles contenant des symboles.
On peut vouloir utiliser plusieures versions mathématiques (i.e., plusieurs jeux de fontes mathématiques) car ils apparaissent à des endroits différents : par exemple dans le texte (versionnormal) et dans les titres, en gras (versionbold). C'est l'utilisation la plus courrante, et ces deux versions sont déjà définies --- il n'y a donc rien d'autre à faire que de les utiliser, à l'aide des commandes\mathversion{bold} et\mathversion{normal}.
On utilise aussi différentes versions quand on désire comparer, dans un même document, différentes fontes mathématiques : on peut ainsi mettre une page en Mathtimes, une autre en Computer Modern et une dernière en Lucida. Il faut alors créer soi-même de nouvelles versions mathématiques. Mais cette utilisation reste marginale. Voir par exempleSur la diversité des fontes mathématiques (Thierry Bouche)
A FAIRE : pour que tout le document soit en gras
\fontdimen 1 : inclinaison de l'italique
\fontdimen 2 : espace entre les mots
\fontdimen 3 : étirement de l'espace entre les mots
\fontdimen 4 : contraction de l'espace entre les mots
\fontdimen 5 : hauteur dux minuscule
\fontdimen 6 : quadratin
\fontdimen 7 : espace après un point.
\fontdimen 8 : hauteur des capitales
\fontdimen 9 : hauteur des lettres « qui montent » (comme lel)
\fontdimen 10 : hauteur des capitales accentuées
\fontdimen 11 : profondeur des lettres « qui descentent » (comme lep)
\fontdimen 12 : hauteur maximale
\fontdimen 13 : profondeur maximale
\fontdimen 14 : largeur des chiffres
\fontdimen 15 : cap_stem ???
\fontdimen 16 : espace entre les lignes (baselineskip, par exemple 12 points pour une fonte à 10 points)
\fontdimen 17 et après : uniquement pour les fontes mathématiques.
Il suffit d'utiliser l'extensiontipa.
![]() |
C'est bien expliqué danscyrguide.dvi. Ici, nous allons simplement expliquer comment utiliser des symboles russes, de manière ponctuelle, en mode mathématique. Les fontes en question,wncyr*.mf, comptent parmi celles de l'AMS : elles sont probablement déjà là. Il y a néanmoins un problème supplémentaire : le codage d'entrée est différent. Heureusement, les fontes viennent avec un fichier décrivant ce codage,cyracc.def.
![]() |
Le plus simple est probablement d'utiliserbabel avec l'optiongreek. Il n'y a aucune raison pour que Babel soit déjà installé pour la langue grecque. Nous allons procéder comme suit.
Installer les fontes defonts/greek/cb/
Prendre les fichiers nécessaires defonts/greek/package-babel (c'est à direfonts/greek/package-babel/hyphenation/* etfonts/greek/package-babel/encodings/*)
Dansmacros/latex/required/babel/, faire compiler, avectex, les fichiersgr*.ins (en profiter pour installer la dernière version de Babel, si elle n'est pas déjà là -- si elle était déjà là, le fichier de césure était probablement aussi déjà là et il n'était pas nécessaire de le recréer).
Rajouter une ligne dans le fichierlanguage.dat
Recréer les formats. Pour certaines distributions (tetex), il suffit de taper
Vérifier que cela marche en tentant de compiler les fichiers defonts/greek/
Car il n'est pas utilisé outre-atlantique. Si vous en avez vraiment besoin, voici plusieures solutions :
Ce caractère existe dans les fontes d'Omega.
![]() |
Il y a quelques années, j'en ai eu besoin pour lejournal mathématique de l'ENS de Cachan et je l'avais dessiné : vous pouvez le récupérer sur lapage web du journal.
![]() |
E. Riga en a dessiné un autre.
![]() |
Je suggère d'utiliserCJK. D'autres solutions conviennent mieux à un environement entièrement japonais ; mais ce que nous voulons ici, c'est écrire des documents qui mélangent du japonais et des langues occidentales, ou écrire quelques documents en japonais au milieu de plein d'autres en langues européennes. De surcroît, CJK est documenté en anglais, ce qui est souhaitable si la personne qui va l'installer n'est pas celle qui va l'utiliser.
CJK est juste un ensemble de macros pour utiliser les langues asiatiques sous LaTeX. Il ne contient pas de fontes. Pour le japonais, j'ai essayé de trois manières différentes.
La manière facile, avec des fontes Postscript (que l'on peut donc utiliser à n'importe quelle taille sans aucun problème de pixellation).Procéder ainsi : récupérer les fontes Wadalab (on les trouve souvent à côté deGhostscript et lireDNP.doc. Les instructions sont suffisemment détaillées et claires (je signale toutefois que j'ai eu un problème pour appliquer un patch : il avait visiblement été corrompu lors d'un passage DOS/Unix et j'ai dû le réparer avecrecode).
![]() |
![]() |
![]() |
La manière compliquée, utilisant des fontes bitmap (que l'on ne peut donc pas grossir arbitrairement).Je copie textuellement ce que j'ai dans mes notes quant à son installation, sans plus d'explications. Ce n'est ni très simple, ni très court. Pour le chinois ou le coréen, c'est pareil, mais la fonte ne s'appelle pluskanji48.tar.gz.
![]() |
On peut aussi taper le texte en Unicode et utiliser une fonte True Type, par exemplecyberbit.ttf. Créer les métriques*.tfm,
![]() |
Vous pouvez utiliser CJK, comme suggéré dans la question précédente. Je ne connais pas du tout ces langues, je ne donne donc pas d'exemple.
En général, je ne sais pas :
Regarder si cette langue est reconnue parbabel.
Regarder dansCTAN/languages/
Regarder dansCTAN/fonts/
S'il s'agit de la langue principale du document, on peut se renseigner auprès du groupe d'utilisateurs de TeX des pays concernés.
Les codages (d'entrée) sont très variés : il en faut généralement un par langue, ce qui rend très pénible la création de documents multilingues.Unicode est un jeu de caractères sensé couvrir toutes les langues actuelles.
Néanmoins, Unicode soulève certaines critiques, du même genre que l'absence du oe dans le codage latin1. Ainsi, Unicode ne distingue pas entre des caractères japonais et chinois de même origine. Par contre, il distingue le A majuscule latin du Alpha majuscule...
Unicode n'est qu'unjeu de caractères : il y a plusieurs codages possibles, le plus courrant étant UTF-8 (les caractères ASCII sont inchangés, les autres sont codés sur 2 octets, ou plus).
Précisons le vocabulaire
Universal Character Set : jeu de caractères (31 bits) qui vise à couvrir toutes les langues « connues » (y compris les hiéroglyphes ou le Klingon).
Voir UCS.
Basic Multilingual Plane : Un morceau de UCS (16 bits), comprenant les langues actuellement utilisées.
Voir BMP.
Caractère numéro0041 (en hexadécimal) d'UCS (il s'agit d'unLatin capital letter A).
Codage Latin 1, utilisé pour les langues d'Europe de l'Ouest (il manque toutefois les trois caractères oe OE et
Unicode tel qu'il est utilisé au Japon
Unicode tel qu'il est utilisé en Corée
Unicode tel qu'il est utilisé en Chine
Il y avait initialement deux tentatives de créer un je de caractères exhaustif : Unicode et ISO 10646-1. Elles sont toujours disjointes, mais compatibles. Ainsi, Unicode 3 etISO 10646-1:2000 coïncident.
Codage d'UCS sur 2 octets : pour transformer un caractère ASCII en UCS-2, il suffit de rajouter un0x00 devant (certains logiciels n'aiment pas, car ils utilisent0x00 pour indiquer la fin des chaînes de caractères).
Codage d'UCS sur 4 octets : pour transformer un caractère ASCII en UCS-2, il suffit de rajouter trois 0x00 devant (certains logiciels n'aiment pas).
Codage d'UCS sur un à six octets (en pratique, ça ne dépasse pas trois).
Omega est une implémentation de TeX qui reconnait naturellement Unicode. On le lance en tapantomega (si on utilise Plain TeX) oulambda (si on utilise LaTeX). Les programmesxdvi etdvips sont remplacés paroxdvi etodvips. Pour l'utilisateur, il n'y a rien de changé. Ce n'est pas obligatoire, mais on peut taper le texte en Unicode (tous les éditeurs de texte ne reconnaissent pas encore Unicode). Voici un exemple avec du grec (je ne parle pas du tout cette langue --- l'exemple n'est donc pas de moi) mais pas Unicode.
C'est un langage de description de fontes et un programme, écrit par D. Knuth, pour être utilisé avec (La)TeX. C'est un vrai langage de programmation, dont l'utilisation est décrite dans leMetafont book Vous pouvez aussi regarder la documentation accompagnantMétaPost. Nous avons déjà vu un exemple de fichier Métafont plus haut (3.2)
Il suffit généralement de l'invoquer avec en argument le nom du fichier que l'on désire compiler.
Généralement, vous n'avez pas un seul fichier Métafont, mais une ribambelle (parfois un par lettre). Il ne faut pas les compiler tous : ils ne sont pas faits pour être compilés de manière isolée, mais pour l'être ensemble. Il y a un (ou plusieurs) fichiers Métafont qui va charger tous les autres : généralement ceux dont le nom se termine par un chiffre (c'est à peu près la même différence qu'entre les fichiers*.c et*.h si vous programmez en C).
![]() |
La situation est la suivante : vous avez récupéré quelques dizaines de fontes au format Métafont et vous aimeriez en choisir une pour votre prochain document. Pour cela, il faudrait pouvoir les visualiser toutes en même temps. Comment faire ?
La première solution consiste à regarder si lecatalogue que l'ai réalisé en 1998 n'est pas devenu trop obsolète.
Une autre solution consiste à utiliser le mêmescript que moi.(Attention, il ne marche pas toujours très bien : restez à côté et surveillez-le.)
Après avoir récupéré (ou écrit) une fonte, vous ne disposez que de fichiers Métafont. LaTeX a aussi (surtout) besoin des métriques : si votre version de LaTeX n'est pas trop récente, il faut les créer vous-même. On peut procéder ainsi. C'est Métafont qui crée les métriques en même temps que les fichiers*.gf.
Si vous désirez installer ces fontes, vous pouvez mettre les fichiers*.mf quelque part dans dans$TEXMF/fonts/ ou$TEXMF/mf/ (???) et les métriques*.tfm dans$TEXMF/fonts/tfm/. (L'arborescence est détaillée dans le fichier$TEXMF/web2c/texmf.cnf (voir3.4) Mais si les fichiers sont dans le répertoire courrant, LaTeX et Métafont vont les trouver sans problème.
Il faut maintenant utiliser ces fontes. Premier cas : il y a une extension, ie, un fichier*.sty, qui accompagne la fonte. Il définit des commandes permettant de l'utiliser. Il faut mettre ce fichier, ainsi qu'un éventuel fichier*.fd, là où LaTeX saura le trouver, par exemple dans$TEXMF/tex/latex/local/.
Mais souvent, ce fichier n'existe pas : il faut le créer (voir4.6). Un exemple valant mieux qu'un long discours, supposons que nous ayons récupéré des fichierstoto5.mf,toto7.mf,toto10.mf, correspondant respectivement aux dessins des caractères en 5 points, 7 points et 10 points. (Les fichiers *.mf dont le nom ne se termine pas par un chiffre sont généralement des fichiers inclus par les trois fichiers précédents et ne sont pas utilisables seuls.) Les lignes suivantes définissent des commandes\texttutu et\mathtutu pour utiliser cette fonte en mode texte et en mode mathématique respectivement (voir4.13).
Il suffit de redéfinir les commandes\encodingdefault,\rmdefault,\itdefault,\sfdefault et\bfdefault dans le fichier*.sty que l'on a créé.
Supposons maintenant que nous ayons des fontestoto_maigre_droit.mf,toto_maigre_italique.mf,toto_gras_droit.mf,toto_gras_italique.mf : comment en faire les fontes par défaut du document ?
Dans le fichiert1toto.fd :
Cela dépend bien évidemment de la fonte. Prenons l'exemple de la fontecmr10. Le début du fichier est une liste de paramètres que l'on peut modifier. Cette liste est vraiment très longue et je n'ai jamais eu le courrage de la modifier. Pour des exemples de fontes Computer Modern Modifiées, vous pouvez regarder les fontes CMBright (le fichierbr10pt.mf),cmff10.mf, ou les fontes accompagnantmathkit.
Oui, avecmf2ps (je n'ai pas regardé comment cela marchait) A FAIRE ou avecmf2pt3 (un petit script en Perl qui utilise MétaPost).
Pas vraiment : les fontes Métafont sont décrites comme le chemin parcourru par un « crayon » de forme ellipsoïdale, alors que les fontes PostScript sont décrites par uncontour qui est ensuite remplis. Le passage de l'un à l'autre est, parait-il, un problème de géométrie algorithmiquenon trivial. Néanmoins,Métafog (logiciel commercial) permet cette conversion.
Pour la conversion, je ne sais pas trop (regardez du côté deMétafog). Il existe des versionsPostScript etTrue Type des fontes Computer Modern, qui sont donc utilisables par d'autres logiciels.
LePostScript est un langage de description de page, conçu parAdobe et reconnu par certaines imprimantes. C'est un vrai langage de programmation (avec des variables, éventuellement locales, des fonctions, de la récursivité, des boucles, des conditionnelles, etc.). Il n'est pas nécessaire de le connaître pour utiliser des fontes PostScript, mais nous allons quand même présenter brièvement le langage. Le lecteur « normal » est prié de passer à la question suivante.
Pour que l'ordinateur reconnaisse facilement un fichier PostScript, ses deux premiers caractères doivent être%!.
Le caractère% est utilisé pour annoncer un commentaire, qui s'étend jusqu'à la fin de la ligne. Cela nous permet de comprendre le comprendre le début de la plupart des fichiers PostScript.
Pour nos premiers essais en PostScript, nous utiliserons l'interpréteur PostScriptghostscript.
Nous pouvons maintenant commencer à programmer un peu en PostScript. C'est un langage à pile : quand on lui donne des données, par exemple, des nombres, il les met sur une pile. Quand on lui donne une commande, qui attend des arguments, il les prend sur la pile. Ainsi, pour calculer « 1 + 1 », on tapera1 1 add et le résultat se retrouvera sur la pile. la commandepstack demande àghostscript d'afficher la pile. Les opérations élémentaires sontadd,sub,mul,div,mod,idiv (division entre entiers),abs,neg,ceiling,floor,round,truncate,sqrt,atan,cos,sin,ln,log,exp (deux arguments : la base, puis l'exposant),rand (entier aléatoire),srand. On remarquera que la notion de pile permet de se débarasser complètement des parenthèses. L'exemple suivant calcule « (1+2)*3 » et « 9*(1+2) ».
![]() |
Expliquons maintenant comment dessiner en PostScript. On commence par définir un « chemin », i.e., un morceau de dessinnon encore dessiné. On peut ensuite tracer de chemin, le colorier, écrire du texte le long de ce chemin, s'en servir comme d'un pochoir, etc. Il importe de bien comprendre que ces deux opérations, la description du chemin et son tracé, sont distinctes. La commandenewpath commence un nouveau chemin. La commandemoveto permet de se déplacer sans rien ajouter au chemin. La commandelineto permet de se déplacer en ajoutant un segment au chemin courrant. Ces deux commandes prennent deux coordonnées en argument (i.e., sur la pile). La commandeclosepath referme le chemin courrant (c'est nécessaire si on veut un chemin fermé, par exemple pour colorier la zône entourrée par le chemin). Enfin, la commandestroke trace le chemin alors que la commandefill remplit la surface qu'il délimite.
![]() |
![]() |
![]() |
La commandearc permet de tracer des cercles ou des arcs de cercle. Ses deux premiers arguments définissent le centre du cercle, le suivant, son rayon et les deux derniers les angles (en degrés) entre lesquels l'arc sera tracé, dans le sens trigonométrique. Si jamais il y a un point courrant, l'interpréteur tracera aussi un segment de ce point vers le premier point de l'arc --- mais si on trace l'arc juste après la commandenewpath, il n'y a pas de point courrant.
![]() |
La commandecurveto prend six arguments et trace des courbes de Bézier : les quatre points de contrôle sont le point courrant et les trois points dont les coordonnées sont prises sur la pile.
![]() |
Pour utiliser une fonte, on commence par la commandefindfont, qui attend un nom de fonte sur la pile et qui renvoie une structure de donnée (on parle dedictionnaire) décrivant cette fonte (en particulier les métriques et le code PostScript pour dessiner chaque caractère). On remarquera que le nom de la fonte est précédé d'un slash (c'est comme cela que l'on indique lenom des variables ou des fonctions, par opposition à leur valeur). La commandescalefont transforme cette structure de donnée pour que la fonte soit à la taille désirée. Finalement, la commandesetfont prend cette structure de donnée et fait de la fonte qu'elle décrit la fonte courrante : on peut maintenant l'utiliser. Les chaînes de caractères sont entre parenthèses (et non pas entre guillemets, comme dans beaucoup de langages de programmation). On utilise la commandeshow pour dessiner les caractères.
![]() |
![]() |
![]() |
L'état graphique désigne l'ensemble des caractéristiques du prochain élément qui sera dessiné : le chemin courrant, la position courrante, le niveau de gris (ou la couleur), le type de pointillés, l'orientation (plus généralement, la matrice de passage entre les coordonnées de la page et celles de l'utilisateur), la fonte courrante, le pochoir courrant, etc. La commandetranslate permet de déplacer le dessin (elle s'utilise avant que le chemin ne soit défini).
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Les commandesgsave etgrestore permettent de sauvegarder l'état graphique courrant (en le plaçant sur une pile) et de le récupérer. Cela permet par exemple de changer les coordonnées à grands coups detranslate,rotate ouscale sans que cela ait de conséquence sur le reste du dessin. En d'autres termes, les modifications effectuées à l'état graphique entregsave etgrestore sont locales.
![]() |
![]() |
On définit une fonction PostScript de la manière suivante :/toto { ... } def, oùtoto est le nom de la fonction (quand on veut donner à l'interpréteur lenom d'une fonction, on le fait précéder d'un slash) et les pointillés contiennent le corps de la fonction. Voici un exemple de fonction qui trace un cercle de rayon 50.
![]() |
![]() |
L'une des manières d'écrire des fonctions qui prennent des paramètres consiste à savoir manipuler les éléments sur la pile. La commandepop permet de se débarasser du premier élément de la pile. La commandedup permet de le dupliquer (pour les cas où on en aurait besoin à plusieures reprises). La commandeexch permet d'échanger les deux premiers éléments de la pile. La commandeindex prend un argument,n, et duplique le (n+1)ième élément de la pile.
La commanderepeat répète une procédure un nombre de fois fixé.
![]() |
![]() |
![]() |
![]() |
Passons maintenant aux conditionnelles : la commandeif attend un booléen et un bloc sur la pile ; la commandeifelse attend un booléen et deux blocs sur la pile. Les différentes opérations booléennes sonteq (égalité),ne (non égalité),lt (inférieur à),gt (supérieur à),le (inférieur ou égal à),ge (supérieur ou égal à),and,or,not,xor,true,false.
![]() |
Il est possible de définir destableaux et de les manipuler avec les commandes[,],array,length,get,put,forall, etc.
Lesdictionnaires sont une autre structure de donnée très utile : ce sont des tables de hachage. On définit un nouveau dictionnaire en donnant sa taille (nombre d'entrées) à la commandedict. Le dictionnaire vide est alors sur la pile. Comme on en aura besoin par la suite, on peut le mettre dans une variable (c'est juste un pointeur). Pour mettre des choses dedans, on va l'ouvrir, avec la commandebegin : il disparait alors de la pile (et s'en va sur une autre pile, celle des dictionnaires). on peut alors rajouter des entrées dedans, à l'aide de la commandedef. Quand on en a fini avec, on le ferme, à l'aide de la commandeend.
Les dictionnaires permettent aussi de créer des variables locales. Par exemple, si vous voulez utiliser des variables qui ont un nom très simple, du genre/a,/b, alors que des variables de même nom sont utilisées dans une autre partie du programme, vous pouvez créer un dictionnaire qui contiendra les variables locales de cette partie du programme : pour d'autre langages de programmation, on parlerait d'espaces de noms. Par exemple,dvips fait cela automatiquement quand il inclut des fichiers PostScript --- car ils sont parfois mal programmés...
Il est aussi possible de manipuler les chaines de caractères, des fichiers, mais nous n'en parlerons pas (voir le manuel).
La commandeclip prend le chemin courrant et l'utilise commepochoir : lors des tracés suivants, seules les parties du dessin qui sont dans le pochoir seront tracées.
![]() |
![]() |
À partir du niveau 2, les pochoirs peuvent être un peu plus compliqués. Je donne juste un exemple et je renvoie au manuel pour les détails.
![]() |
***** A FAIRE : Images bitmap *****
Unefonte PostScript est un dictionnaire (au sens PostScript) contenant des procédures permettant de dessiner les différents caractères. ***** A FAIRE : donner une liste de quelques unes des entrées de ce dictionnaire. ***** Il y a plusieurs types de fontes PostScript :
La plupart des fontes PostScript sont de type 1. Elles comportent au plus 256 caractères. Les procédures PostScript qui décrivent les glyphes ne sont pas quelconques : elles ne peuvent utiliser qu'une partie du langage PostScript, de manière que l'on puisse être sûr que le caractère sera toujours tracé de la même manière, sans qu'il utilise des variables extérieures, sans qu'il produise d'erreur, sans qu'il entraine des effets de bord. De surcroît, ces prodédures sont codées (un peu comme les chemins utilisateurs peuvent l'être). Dernier point, les procédures qui décrivent les glyphes le définissent que leur contour, mais ne le remplissent pas.
Les fontes de type 3 sont comme les fontes de type 1 sans toutes ces restrictions : les procédures tracent vraiment les caractères, elles ne sont pas codées et peuvent contenir absolument n'importe quoi (on supposera quand même qu'elles ne provoquent pas d'erreurs, mais on n'en est pas sûr). Les fontes bitmap utilisées par TeX sont de type 3
Les fontes de type 0 sont des fontes composites : il ne s'agit pas d'une unique fonte mais d'un ensemble de fontes. Cela permet de dépasser la limite des 256 caractères par fonte et ainsi d'imprimer facilement du texte dans des langues idéographiques. Pour de plus amples renseignements, voir CJK (5.6).
C'est une fonte True Type légèrement modifiée pour être reconnue par l'interpréteur PostScript.
Fonte CFF (Compact Font Format)
CID-keyed fonts
Fonte Chameleon
Voici un exemple de fonte PostScript de type 3 (tiré du manuel).
***** J'ai oublié de parler des métriques *****
***** A FAIRE *****
Il suffit de modifier l'entréePaintType de son dictionnaire (mettre 2 à la place de 0) et de rajouter une entréeStrokeWidth. L'essai naïf suivant ne marche pas, car le dictionnaire que l'on essaie de modifier n'est accessible qu'en lecture. C'est le cas de toutes les fontes, même celles que l'on aurait définies soi-mêmes : tant qu'on n'a pas transformé le dictionnaire en fonte à l'aide de la commandedefinefont, on peut en faire ce que l'on veut, mais après, tout est figé.
![]() |
***** A FAIRE ***** Je suggère de procéder ainsi : partir d'une fonte*.pfa, la décoder à l'aide det1disasm,
On procède comme précédemment, avec la variableEncoding de la fonte. L'exemple suivant intervertit les lettres A et B.
![]() |
On peut par exemple utiliser PSTricks. (Normalement, on n'utilise pas PSTricks ainsi : il y a déjà plein de commandes déjà définies qui permettent de faire à peu près tout ce que l'on veut, plus simplement et plus sûrement que si on devait programmer soi-même en PostScript.)
![]() |
![]() |
![]() |
Bonne question. J'imagine deux solutions : soit utiliser directement ghostscript pour visualiser la fonte, soit passer par LaTeX pour créer un fichier PostScript l'utilisant puis utiliser ghostscript pour le visualiser. Regardons la première solution (pour la deuxième, voir la question suivante). Si Ghostscript connait déjà la fonte, on peut simplement lui dire
Il y a aussi un programme en PostScript, qui vient avec Ghostscript et qui fait cela. On lance Ghostscript avec le nom de la fonte et le nom du programme,
On peut par exemple procéder ainsi (je suppose que le codage des fontes est celui d'Adobe : avec des fontes T1 ou autres, le résultat sera bizarre). [Question : le codage n'est-il pas indiqué dans la fonte elle-même ? S'il n'est pas indiqué, il n'y a pas trop d'espoir de parvenir à un script qui permette de faire les choses automatiquement, par contre, si le codage est précisé, cela ne devrait pas poser de problème.]
Oui, ce sont celles utilisées par défaut parpdftex. Si on veut les utiliser avec TeX, il suffit de demander àdvips de lire le fichiercm.map (voir). Toutefois, ces fontes n'existent qu'avec le codageOT1 : si on préfère le codageT1, on peut utiliser les fontes virtuellesae.
La liste des correspondances entre les noms de fontes utilisés par LaTeX, le nom des fontes PostSCript et le nom des fichiers les contenant est stockée dans des fichiers*.map. Le fichierpsfonts.map contient la liste des fontes PostScript standard. Si on crée un fichierpsfonts.map dans le répertoire courrant, c'est lui qui sera lu et pas celui par défaut (c'est ce que l'on peut faire si on veut essayer uen fonte sans vraiment l'installer). Pour rajouter des fontes à cette liste, il suffit de modifier le fichier de configuration général dedvips,config.ps ou le fichier de configuration propre à chaque utilisateur, par défaut~/.dvipsrc. Par exemple, pour demander àdvips d'utiliser les fontes PostSCript mentionnées dans le fichiertoto.map, il suffit de rajouter la ligne suivante à la fin de son~/.dvipsrc.
Tout d'abord, ne nous préoccupons pas du codage des fontes. (Si vous voulez tout de suite la bonne réponse, passez à la question suivante.)
Prenons une fonte PostScript : deux fichiers,toto.afm ettoto.pfb. (Si ce n'est pas le cas, vous risquez d'avoir des problèmes : Sur PC, on trouve parfois un fichier*.pfm à la place, que l'on peut convertir grace àpfm2afm (je n'ai pas essayé). Si vous n'avez rien, on peut en obtenir grace à la commandepf2afm (c'est un programme en PostScript), mais le résultat sera de pauvre qualité : tout ce que l'on peut faire, c'est prétendre que la taille des caractères est exactement celle de la plus petite boite qui les contient ; pour des caractères très penchés, l'effet est desastreux (j'ai déjà essayé)) LaTeX a besoin des métriques au format*.tfm :
(Suite de la question précédente)
Cette fois-ci, il va falloir utiliser la commandeafm2tfm de manière plus pertinente : on peut lui demander de changer le codage. [Question : pourquoi ne demande-t-on pas à LaTeX d'utiliser le codage de la fonte ? À cause des problèmes de césure pour les lettres accentuées ?] La documentation deafm2tfm est dans le manuel dedvips.
Cette fois, il ne s'agit pas d'une unique fonte PostScript, mais plusieures, une fonte normale, une fonte grasse, une fonte italique et une fonte italique grasse. Par exemple des fichiersbg3r.pfb,bg3b.pfb,bg3ri.pfb etbg3bi.pfb, avec les métriques*.afm correspondantes. On procéde comme dans la question précédente, pour créer les fontes virtuelles et on peut les utiliser ainsi. (Il manque un exemple. Prendre le même que pour les fontes MF.)
Comme pour la question précédente.
Pour plus de détails sur l'utilisation des fontes PostScript sous LaTeX, on peut consulter la page de????.
Pour certaines fontes, il y a déjà une extension toute faite : c'est le cas des fontes Times ou Helvetica évoqués plus haut. Sinon, c'est un peu plus compliqué.
Attention : je n'ai pas encore essayé ce qui suit.
Supposons que vous ayez une fonte postscript, ie, deux fichier appelés par exempletoto.afm ettoto.pfa.
Si vous n'avez pas de fichier*.afm, ça ne va pas marcher : ce sont les métriques, ie, la taille des caractères. Sur PC, on trouve parfois un fichier*.pfm à la place, que l'on peut convertir grace àpfm2afm (je n'ai pas essayé). Si vous n'avez rien, on peut en obtenir grace à la commandepf2afm, mais le résultat sera de pauvre qualité : tout ce que l'on peut faire, c'est prétendre que la taille des caractères est exactement celle de la plus petite boite qui les contient ; pour des caractères très penchés, l'effet est desastreux (j'ai déjà essayé).
Si vous avez un fichier*.pfb à la place d'un fichier*.pfa, ce n'est pas grave, ils contiennent exactement la même chose, sous des formats légèrement différents. On peut passer de l'un à l'autre à l'aide des commandespfb2pfa oupfb2pfa (je sais, elles ont toutes deux le même nom). (je n'ai jamais essayé.)
Tapons maintenant
On peut dès lors déclarer la fonte de la manière suivante (on peut mettre les lignes suivantes dans un fichiert1toto.fd)
On peut utiliser notre fonte de deux manières différentes : soit comme la fonte principale du document,
Voici le même exemple, complet (non, testé).
Rajouter l'option-s .3 (avec éventuellement un autre chiffre --- c'est la tangente de l'angle d'inclinaison désiré) quand on lanceafm2tfm.
Rajouter l'option-e 1.5 (avec éventuellement un autre chiffre --- c'est le facteur d'élargissement) quand on lanceafm2tfm.
Une manière simple de procéder consiste à le convertir préalablement en PostScript, à l'aide de Ghostview (pdf2ps) ou d'Acrobat.
***** A FAIRE ***** Avant tout, il convient de rappeler que si les fontes sont commerciales, c'est bien évidemment illégal et que les fontes présentes dans un fichier PostScript sont souvent incomplètes et ne comportent que les caractères effectivement utilisés dans le fichier.
Je suppose que le fichier est bien structuré, avec des commentaires indiquant le début des fontes. On le coupe alors en morceaux :
Voir lemanuel de référence, chez Adobe, ou la documentation deMiniMou.
Après avoir lu le manuel de référence, vous pouvez vous tourner versttf_edit (logiciel commercial) ou certains produitsMiniMou.
Je suppose queFreeType a été installé :
Pour pouvoir utiliser les fontes TTF de manière presque transparente, sans avoir à lancer soi-mêmettf2pk, on peut modifier le scriptmktexpk (j'utilise web2c 7.2), à l'aide du patch qui se trouve dansfreetype-current/contrib/ttf2pk/scripts/web2c-7.2/. (Sur certaines distributions récentes, ce n'est pas nécessaire, car cela a déjà été fait.)
On peut maintenant visualiser des fontes TrueType à l'aide de la commandeftview.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
La situation est la suivante : vous avez récupéré quelques dizaines de fontes TTF et vous aimeriez pouvoir les comparer les unes aux autres. On peut utiliser le script suivant (à lancer dans le répertoire contenant les fontes) qui crée des images GIF pour chacune des fontes et un fichier HTML les reliant. Il ne tient pas compte des fontes ne comportant pas de lettres accentuées et indique les fontes sans crénage (kerning), donc a priori de moindre qualité.
Voici une autre manière de procéder, plus simple et plus rapide : l'utilitaireftstrpnm permet de créer des fichiers*.pnm (c'est un format d'image) avec les caractères d'une fonte.
Si vous voulez tout de suite une bonne réponse, passez à la question suivante. Nous allons procéder très lentement, en commettant quelques erreurs, que nous corrigerons plus loin.
On part d'un fichiertoto.ttf. Pour se mettre en confiance, on peut regarder ce qu'il contient (ce n'est pas nécessaire, mais néanmoins rassurant).
Toujours pour se rassurer, on peut regarder la forme des lettres, à l'aide de la commandeftview
Créons maintenant les métriques et le fichier de configurationttf2pk. Je suppose ici que la fonte contient en fait des caractères latins (pas d'idéogrammes asiatiques).
On crée maintenant le fichiertoto.300pk.
Pour se rassurer, on peut vérifier que les caractères sont bien là et les visualiser.
On essaie maintenant de les utiliser...
![]() |
Cela semble correct : on a même les lettres accentuées. Mais il n'y a pas de crénage (kerning). Dans beaucoup de fontes True Type, il n'y a pas ces informations : c'est le cas de l'exemple ci-dessus (c'est une fonte Microsoft). Mais dans l'exemple ci-dessous, ces informations sont présentes : dans la première ligne, LaTeX utilise les informations de crénage dont il dispose, mais pas dans la seconde.
![]() |
Il y a en fait un autre problème, beaucoup plus visible : il manque certains caractères, certaines ligatures, plus précisément. Dans l'exemple suivant, on devrait voir un trait d'union, un tiret moyen et un tiret long ; à la fin, on devrait dicerner des différences entre les ligatures fi ou fl et ces même lettres bien séparées.
![]() |
Nous allons maintenant voir comment utiliser correctement des fontes True Type, sans perdre d'information, comme par exemple le crénage de l'exemple précédent.
On demande àttf2tfm de créer des fontes virtuelles, en utilisant le codageT1-WGL4 (qui correspond à une traduction Unicode-->TTF (???)). Ces fontes virtuelles sont crées sous forme de fichiers*.vpl, qu'il faut encore traduire à l'aide devptovf. On peut automatiser les choses de la manière suivante.
![]() |
![]() |
C'est exactement comme pour les fontes Métafont. Voici un exemple. Je suppose que l'on a des fichiersgalirdn.ttf,galirdi.ttf,galirdb.ttf etgalirdbi.ttf
![]() |
C'est comme dans la question précédente, mais il faut rajouter les lignes suivantes.
![]() |
Il suffit donner l'option-s 0.25 (ou toute autre valeur) àttf2tfm et de le préciser dans le fichierttfonts.map, de la manière suivante.
![]() |
Comme toutes les fontes que nous avons demandées ne sont pas là, LaTeX a été amené à effectuer certaines substitutions. Par exemple, en bas à gauche, nous voulions du gras italique. Comme il n'y en a pas, il a commencé par chercher du gras droit. Comme il n'y en a pas non plus, il a pris du maigre droit. À l'aide de la commandesub (et passsub : la différence, c'est que les messages d'erreur s'affichent), nous pouvons contrôler ces substitutions, en demandant à LaTeX de remplacer le gras italique par de l'italique (et non plus du gras).
![]() |
Il suffit donner l'option-e 0.7 (ou toute autre valeur) àttf2tfm et de le préciser dans le fichierttfonts.map, de la manière suivante.
![]() |
Il s'agit ici d'obtenir de fausses petites capitales : on prend simplement des capitales plus petites. Cette solution n'est pas entièrement satisfaisante, car l'épaisseur des traits, l'espace entre les lettres, le gris de la fonte vont correspondre avec ceux d'un corps inférieur et risquent de mal se marrier avec ceux de la fonte de départ. Nous verrons plus loin comment tenter de remédier à ce problème.
Pour obtenir ces fausses petites capitales, il suffit d'utiliser l'option-V dettf2tfm à la place de-v. On peut automatiser cela de la manière suivante.
![]() |
Une première solution consiste à l'étendre, horizontalement (8.10).
![]() |
Pour une fonte isolée, si on choisit d'utiliser une version étendue à la place du gras, on peut procéder ainsi.
Pour une fonte composée de deux variantes, maigre et grasse, on peut procéder ainsi.
Pour une fonte un peu plus complète, avec maigre, gras, italique et gras italique, on peut procéder ainsi.
Il y a deux problèmes dans ce que nous venons de voir : d'une part, il manque toujours certains caractères, comme le W majuscule avec un point dessus, d'autre part, quand il n'y a pas de fonte grasse, on aimerait pouvoir en bricoler une en « épaississant » les caracatères et pas en les dilatant comme nous l'avons fait. Nous allons voir que les fontes virtuelles eprmettent ce genre de chose. Il y a un autre problème, plus grave : l'absence de fonte mathématique. Il y a aussi un problème avec ces scripts : ils mettent tout dans le répertoire courrant. Idéalement, il faudrait mettre les fichiers dans $TEXMF/fonts/{truetype:vf:tfm}/ et $TEXMF/tex/generic/, modifier le fichier $TEXMF/fonts/truetype/ttfonts.map et relancer texhash.
Il suffit d'installer FreeType correctement, en lui demandant d'utiliser kpathsea.
$TEXMF/fonts/truetype : les fontes*.ttf et le fichierttfonts.map
$TEXMF/fonts/tfm : les métriques*.tfm
$TEXMF/fonts/vf : les fontes virtuelles*.vf
$TEXMF/tex/generic ou$TEXMF/tex/latex : les fichiers*.sty et*.fd.
Remarque : mettre la même question pour les fontes PostScript. On peut avoir plusieurs fichierspsfonts.map : comment ? Mettre cette question plus haut, avec la TDS.
Oui. Une première solution consiste à transformer les fontes True Type en fontes PostScript, par exemple à l'aide dettf2pt1. On utilise ici la commandettf2pt1 avec l'option-b pour qu'elle produise un fichier*.pfb. (Je crois qu'il faut une option du genre-l adobestd ou-l latin1, mais vus les problèmes qui apparaitrons, ce n'est pas grave.)
Une autre solution, beaucoup plus satisfaisante, consiste à utiliser pdfTeX --- le format PDF reconnait les fontes TrueType. On commence exactement comme pourttf2pk.
A FAIRE Il s'agit généralement de certaines lettres accentuées (le Z majuscule accent aigu -- cela dit, je ne sais pas du tout à quoi il pourrait servir...), qui ne sont pas présentes dans la fonte, ou de certaines ligatures (ct, st), qui sont présentes dans la fonte (mais visiblement pas dans le codage).
Une idée pour obtenir les caractères manquants est d'utiliser des fontes virtuelles, avecfontinst etlatin.mtx, qui va par exemple construire les lettres accentuées manquantes à l'aide des accents (s'il y en a) et des lettres non accentuées.
[Donner un exemple, modifier le script plus haut qui créait un catalogue de fontes TTF.]
On peut constater que dans la fontecomic.ttf, il y a un tiret moyen, des ligatures fl et fi : comment les obtenir ?
Avertissement : Je ne manipule pas encore très bien les fontes virtuelles, il y a probablement des erreurs et des manques dans ce qui suit. En particulier, je ne me suis jamais préoccupé des métriques des fontes que je modifiais (par exemple, quand on fait du faux gras, il faut éloigner un peu les caractères). Je ne parle pas non plus de l'utilisation de fontes PostScript (et de leurs métriques,*.afm). Je ne parle pas non plus des différents programmes qui existent sous fontinst, par exemplelatin1.mtx outextcomp.mtx. Je ne parle pas non plus des fichiers de codage*.etx.
C'est une fonte qui n'existe pas vraiment, qui est construite à partir d'autres fontes, auxquelles on prend certains caractères, après d'éventuelles modifications.
Les fontes virtuelles premettent de
changer le codage d'une fonte
construire une fonte à partir d'autres fontes, par exemple, prendre les majuscules dans une fontes, les minuscules dans une autres, les chiffres dans une troisième.
construire des caractères qui ne sont pas là : par exemple, rajouter un accent sur une lettre, enlever un point sur un i ou un j, souligner ou barrer certains caractères, etc.
construire des fontes qui ne sont pas là : s'il n'y a pas de gras ou pas de petites capitales, on peut les imiter à l'aide de fontes virtuelles (mais c'est du bricolage).
Les fontes virtuelles ne sont pas reconnues par TeX (qui ne connait que des métrique) mais au niveau des programmes qui lisent les fichiers*.dvi telsdvips ouxdvi. Les fontes virtuelles sont présentes sous forme de métriques*.tfm et de fichiers*.vf qui indiquent comment fabriquer les caractères. Ces fichiers*.vf ne sont pas humainement lisibles, on peut les décoder à l'aide devftovpl, qui les transforme en*.vpl, comme nous l'avons déjà vu plus haut (3.2).
Non. On peut utiliser directement les fichiers*.vpl (c'est très compliqué) ou passer parfontinst (c'est compliqué) mais ce n'est jamais simple.
C'est un programme en TeX permettant de manipuler, modifier, créer des fontes virtuelles. C'est ce dont nous allons parler à partir de maintenant.
Tout d'abord Fontinst a besoin de connaître les métriques (de manière plus générale la description) des fontes qu'il va manipuler. Il les attend sous la forme de fichiers*.afm ou*.pl créés à partir des métriques*.tfm par la commandetftopl.
Dès lors, il ne reste plus qu'à compiler ce fichier et à construire les fontes virtuelles*.vf et leurs métriques*.tfm.
C'est comme pour les fontes MétaFont, à la seule différence que les métriques ne sont pas attendues sous la forme de fichiers*.pl provenant de*.tfm, mais directement sous la forme de*.afm.
Si on utilisettf2pk, on peut procéder comme pour les fonte Métafont, si on les a traduites en PostScript, on procède comme pour les fontes PostScript. Dans le permier cas, il arrive que le fichier*.pl obtenu à partir des métriques contienne la ligne
Je reprends cet exemple de la documentation defontinst.
fontinst part d'une ou plusieures fontes (décrites par des fichiers*.pl ou*.afm) et leur applique différentes transformations, décrites dans des fichiers*.mtx. La syntaxe d'un fichier*.mtx est la suivante.
![]() |
L'exemple suivant (qui n'est pas de moi) crée un nouveau caractère@ à partir d'unO majuscule et d'una.
![]() |
Nous allons intervertir les caractèresA etB de la fonteecrm1000.
![]() |
Il suffit de charger la première fonte, d'effacer le caractère dont on ne veut plus, et enfin de charger la fonte dans laquelle se trouve la nouvelle version du caractère. Nous allons par exemple remplacer le A de la fonteecrm1000 par celui de la fonteectt1000. Le fichiertoto.mtx est le suivant.
![]() |
Nous avons déjà vu () que les différentes choses que l'on rajoutait dans un caractère contribuaient à ses dimensions, à moins que l'on utilise les commandes\push et\pop. Si cela ne suffit pas, les commandes\resetdepth,\resetwidth,\resetitalic et\resetheight permettent de changer la taille d'un caractère. Il y a un exemple dansdotlessj.mtx (voir).
Les dimensions sont (parmi) les suivantes :ascender,capheight,descender,xheight,italicslant,minimumkern,monowidth,underlinethickness,designsize,interword,acccapheight,maxheight,maxdepth,digitwidth,capstem,baselineskip,interword. Dans le cas des fontes mathématiques, on peut aussi accéder aux dimensionsfontdimen(??), où il faut remplacer?? par le numéro de la dimension désirée. On peut changer ces dimensions à l'aide de la commande\resetint.
La commande\glyphrule permet de traver un trait, ses arguments sont la largeur et la hauteur. Il faut préalablement s'être placé au bon endroit à l'aide des commande\moveup (déplacement vers le haut) et\movert (déplacement vers la droite). L'exemple suivant souligne le caractère A. Les unités sont des milièmes.
![]() |
![]() |
On peut compliquer l'exemple précédent en encadrant le caractère au lieu de le souligner. La commande\add permet d'effectuer une addition de dimensions. On remarquera qu'il faut faire attention à la largeur du caractère (pour l'augmenter, on a simplement rajouté\movert{150} au début et à la fin) et à l'épaisseur des traits (certaines des barres ont une longueur de 340 pour cette raison). Pour généraliser cela à d'autres caractères, il faudrait aussi tenir compte de leur profondeur.
![]() |
Lors de la définition d'un caractère, on peut rajouter des instructions PostScript grace à la commande\glyphspecial. Essyons par exemple de mettre un caractère en rouge.
![]() |
Oui, mais certains problèmes peuvent se poser. En voici un. Essayons par exemple de faire tourner les lettres de 30 degres.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Voici un autre exemple de problème : le corps d'une boucle PostScript est entouré d'accolades, or ces caractères sont interprétés particulièrement par LaTeX. Une manière de les utiliser consiste à changer le catcode des accolades.
![]() |
***** A FAIRE ***** Il suffit d'utiliser la question précédente.
***** A FAIRE *****
C'est là qu'interviennent les fichiers*.etx. Comme le codageT1 est déjà bien remplis, nous allons partir du codageOT1 dans lequel il y a beaucoup plus de place libre. Nous allons reprendre le fichierot1.etx et modifier les choses suivantes (attention à l'endroit où on le met !). À l'endroit où la lettrec est définie :
![]() |
Il faut tout d'abord trouver une fonte qui contienne ces glyphes : par exemple, les fontes d'Omega. Pour les utiliser, il suffit de préciser, dans le codage, qu'il y a des ligaturesct etst. On crée un fichierot1_ctst.etx à partir deot1.etx en rajoutant les lignes suivantes à la fin.
![]() |
On peut changer la table de crénage. Ainsi, l'exemple suivant va espace un peu moins le i et le j quand ils se suivent, sans rien changer sinon.
![]() |
Il suffit d'écrire une macro qui prenne en argument un nom de caractère et qui effectue la modification sur ce caractère. L'exemple suivant souligne toutes les majuscules
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Lorsque l'on utilise une fontes TTF (ou autre), il peut manquer certains caractères : par exemple des lettres accentuées (le Z majuscule avec un point au dessus est rarement là --- mais je ne sais pas à quoi il peut servir). Le fichierlatin.mtx s'occuppe de créer les caractères manquants quand c'est possible. C'est pourquoi on l'utilisera de manière quasi-systématique. [S'il est absent des exemples qui figurent dans ce document, c'est parce que je ne les ai pas encore corrigés.] Prenons par exemple la fonte True Typecomic : il manque le Z majuscule accent aigu. On crée les métrique comme nous l'avons vu dans un chapitre précédent.
![]() |
Il existe déjà un fichier uline.mtx, qui contient les lignes suivantes (voir9.13 et9.22)
Mais on peut vouloir que la barre de soulignement se poursuive aussi entre les mots. On doit pouvoir le faire en rendant le caractère espace actif et en le faisant agir comme\leaders.... Attention à ne pas inhiber la césure... ***** EXERCICE *****
On peut aussi vouloir que la barre de soulignement passe derrière les caractères : quand un caractère descend en dessous de la ligne de base, la barre de soulignement ne devrait pas couper ce caractère mais s'arréter un peu avant la partie qui descent et reprendre un peu après. Une solution, pas entièrement satisfaisante, consiste à tracer la barre de soulignement ; puis le caractère, en blanc, légèrement décalé sur la droite et sur la gauche, ce qui efface certaines parties de la ligne ; et, enfin, le caractère avec la couleur normale. Ne pas utiliser sur un fond coloré...
![]() |
Il y a un fichierdotlessj.mtx qui contient :
![]() |
Oui, par exemple à l'aide de la commande\latinfamily, mais il faut impérativement que le nom des fontes soit compatible àfontname, donc illisible. Je ne l'ai jamais utilisé.
On peut utiliser la commande\pmb d'amsmath. Elle prend un (ou plusieurs) caractères et les superpose à eux-même après un léger décalage. Le résultat est à peu près correct, mais LaTeX est incapable de couper les mots, les lignes ou les pages à ces endroits-là). Voici un exemple, en mode mathématique (on remarquera que l'on utilise des fontes texte en mode mathématique pour ne pas avoir de problème avec les lettres accentuées).
Nous présentons ici divers essais, infructueux, pour tenter de mettre des caractères en gras. Au cours de ces différents échecs, nous verrons comment utiliser les différentes commandes de fontinst. Le lecteur désirant voir une bonne solution tout de suite peut passer à la question suivante. Le fichier toto.tex contient :
Les essais précédents étaient presque acceptables, mais on ne déplaçait mes caractères qu'horizontalement : les traits verticaux étaient bien épaissis, les traits obliques moins et les traits horizontaux pas du tout. Nous allons donc déplacer les caractères en cercle, pour que l'apaississement soit plus uniforme. Je ne trouve pas la solution que je présente entièrement satisfaisante : pour savoir de combien il faut déplacer le caractère, j'utilise un petit script en Perl. On devrait pouvoir, soit faire ces calculs en TeX (si, si), soit en PostScript (beaucoup plus raisonable).
Pour les petites capitales : il semblerait que vfinst suppose qu'elles existent dans la fonte, avec des glyphes ayant pour noms Asmall, Bsmall, etc. Même chose pour les vieux chiffres, qui ont pour noms oneoldstyle, twooldstyle, etc.
***** A REVOIR *****
**** Que fait le fichiert1c.etx ???
L'idée est de prendre une majuscule mais à une taille différente. On a donc besoin descouples majuscule/minuscule.
![]() |
On peut rafiner un peu et prendre comme hauteur des petites capitales, la hauteur des minuscules. La hauteur des minuscules est dans la variablexheight et la hauteur des majuscules danscapheight. On veut le quotient des deux.
![]() |
Nos fausses petites capitales ont les défauts habituels des fausses petites capitales : elles sont trop maigres et trop rapprochées. On peut tenter de les épaissir en reproduisant plusieures fois le même caractère, avec de légers décalages.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
On peut améliorer le bricolage précédent en utilisant un nombre plus grand de copies du caractère.
![]() |
vfinst permet d'installer une famille de fontes PostScript. Supposons que nous voulions installer la familleAmericanGaramondBT, ie, les fichiersbg3b.afm,bg3b.pfb,bg3bi.afm,bg3bi.pfb,bg3i.afm,bg3i.pfb,bg3r.afm,bg3r.pfb, On commence par installervfinst et mettre les fontes que l'on veut installer dans un répertoire temporaire.
![]() |
Nous avons déjà vu une solution partielle (4.14) : prendre les caractères textuels dans la fonte texte et les autres dans la fonte mathématique Computer Modern ou Euler.
On peut le faire avec des fontes virtuelles. On a besoin de trois fontes mathématiques, de codages respectifsOMS,OMX etOML et d'une fonte texte au codageOT1. Nous allons partir d'une fonte textetoto et des trois fontes mathématiques par défautcmmi10 (OML)cmmib10 (OML)cmsy10 (OMS)cmbsy10 (OMS)cmex10 (OMX) (à mettre avec sfixed*cmex10). Les lettres grecques majuscules sont attendues dans la fonte texte (OT1) : nous irons les chercher danscmr10. Voici le programmefontinst.
![]() |
***** A FAIRE *****
On peut faire la même chose, mais avec d'autres fontes mathématiques : Euler, Lucida, MathTimes, Mathematica ; c'est ce que faitmathinst. Il suppose que les fontes sont installées en respectantfontname (génant, mais normal), que tous les fichiers sont dans la même arborescence (car le script n'utilise paskpsewhich) et qu'on a le droit d'écrire dedans. Pour cette raison, je ne l'utiliserai pas. (Il se plaint aussi de l'absence de certains répertoires.)
Une manière beaucoup plus satisfaisante de procéder consiste à créer une nouvelle fonte mathématique, en prenant les caractères de la fonte texte là où c'est possible et en prenant des caractères provenant de Computer Modern pour les autres, mais avec des paramètres choisis afin qu'elle se marrie bien avec la fonte texte. C'est ce que faitmathkit. Ce script présente les mêmes limitations quemathinst : il se refuse à utiliserkpsewhich, si bien que l'utilisateur doit lui dire exactement où se trouve chaque fichier, il suppose que tous les fichiers sont installés dans une arborescence unique et suppose que l'utilisateur a le droit d'y écrire. Je ne l'utiliserai donc pas.
On peut transformer un fichier LaTeX en une image bitmap, que l'on utilise ensuite dans un logiciel de dessin, par exemple PoVRay ou Gimp.
![]() |
![]() |
![]() |
![]() |
![]() |
Il est possible d'extruder une telle image bitmap dans un logiciel de dessin en 3D afin d'obtenir du texte en relief. ****** A FAIRE ********
Les exemples suivants n'on plus rien à voir avec LaTeX.
![]() |
![]() |
![]() |
![]() |
![]() |
Essayer d'obtenir des versions texte et postscript de ce document.
Essayer de trouver des fontes PostScript gratuites.
NFSS : donner un exemple d'utilisation de plusieures versions mathématiques.
Parler de Babel pour écrire dans d'autres langues. Essayer de regarder dans certains cas particuliers (grec, russe).
Mettre des images illustrant des fontes non latines.
Catalogue de fontes MF : revoir le script.
MF : revoir où mettre les fichiers *.mf *.tfm
Utilisation d'une fonte texte en mode mathématique : donner un exemple.
Modification des fontes mathématiques : images.
Catalogue de fontes PS : après avoir troivé de telles fontes.
Corriger les « ECEncoding ReEncodeFont » : ce devrait être T1 à la place de EC. (Vérifier que cela marche.)
Enlever mon nom du fichier Template.tex
Mettre des liens sur les répertoires contenant les exemples.
Comment pencher une fonte PS (comme pour les fontes TTF) (D'ailleurs, en PostScript, on doit pouvoir faire d'autres choses, plus compliquées, avec les fontes. Essayer de donner des exemples.)
xdvi et les fontes ttf : où mettre le fichier ttfonts.map et les fontes TTF (ou alors, corriger le fichier mktexpk patché par freetype --- regardé si cela n'a pas changé dans la dernière version de freetype.
Peut-on utiliser des fontes TTF avec pdftex ?
Donner un exemple d'utilisation de fontes TTF avec latin.mtx.
Utilisation de fintinst avec des fichiers *.afm
Utilisation des fichiers *.etx.
Utiliser systématiquement latin.mtx. Que contient textcomp.mtx ?
Syntaxe d'un fichier *.mtx
Les arguments de la commande \installfint. Pourquoi le codage doit-il être précisé deux fois ?
Aller chercher un caractère dans une autre fonte
Changer le codage d'une fonte : exemple de ae.
Pour faire des essais simples avec fontinst, quelles fontes prendre (c'est une question très simple : quelles sont les fontes par défaut de LaTeX ? Depuis qu'elles portent des noms évocateurs comme ecrm1728.mf, avec encore plus de numéros qu'avant, je suis un peu perdu.)
Fonte penchée
Fonte soulignée (avec du blanc)
Lettres bicolores
Lettres dégradées (verticalement, ou centralement)
faked SC : utiliser la hauteur des lettres lue dans la fonte.
Quelles sont les différentes dimensions spécifiées dans une fonte ? Comment les modifier (sous LaTeX) ? (Où mettre cette question ?)
Dans une question séparée : que contiennent les fichiers t1.etx ou ot1.etx ? Comment extraire cette information ? (plus loin, nous avons besoin de la liste des glyphes et de la liste des majuscules, avec les minuscules correspondantes.
Soulignement continu : rendre l'espace actif.
vfinst
Essayer de comprendre mathinst et mathkit (pas tout de suite).
Utiliser la version PS des fontes CM (par exemple, pour les avoir à n'importe quelle taille).
utiliser hyperref dans la version LaTeX de ce document
Les fontes sans sérif sont-elles plus lisibles ?
Comment changer l'espacement des caractères en mode mathématique ? (par exemple, s'il y a plein de $Diff$ dans un fichier que l'on aimerait compiler mais que l'on n'a pas le courrage de corriger). Procéder comme pour avoir les majuscules droites, mais avec une fonte italique.
Comment obtenir une foncte manuscrite dont la hauteur des majuscules et des minuscuiles soit correcte ? Utiliser des fontes virtuelles uniquement sur les minuscules (pour les aggrandir) ou uniquement sur les majuscules (non conseillé : il faudrait faire des calculs plus compliqués). On prendra garde à la graisse des caractères résultants.