Vous vous en souvenez peut-être, mon précédent article portait sur le respect de quelques règles typographiques. Hé bien aujourd'hui je continue dans la typographie, mais cette fois au sujet des polices de caractères, aussi appelée fontes, précisément celles qui sont utilisables avec LaTeX.
Pourquoi ce choix d'article, me demanderez-vous ? Essentiellement pour fournir un nouveau complément intéressant à la série d'articles sur LaTeX, mais aussi pour tordre le coup à une idée reçue. Souvent j'ai entendu dire que les documents produits par LaTeX sont élégants, mais qu'ils se ressemblent tous et que ça en devient lassant. J'ai vite compris pourquoi : bien des utilisateurs de LaTeX pensent qu'on ne peut utiliser que les polices de caractères prévues par défaut, les Computer Modern. Et pourtant il y a un très grand choix de polices avec LaTeX, ce que lesdits utilisateurs ne savent tout simplement pas.
Cette ignorance peut s'expliquer par le fait que la plupart des documentations disponibles sur LaTeX n'évoque guère ses possibilités en matière de polices. Une exception heureuse toutefois : le LaTeX Companion, 2e édition. Le but de cet article est donc de combler cette lacune en donnant une idée de la grande variété de polices de caractères disponibles sous LaTeX, ainsi que les moyens d'y accéder.
On trouvera peu de code LaTeX dans ce qui suit. En effet, sauf en cas de besoins particulièrement pointus et spécifiques, l'activation de fontes en LaTeX se fait de façon très élémentaire, par le chargement des paquets idoines. Quant aux variations de style (romain, sans serif, italique, gras, etc.) et de taille à l'intérieur d'un même ensemble de fontes, on y procède par l'utilisation de quelques commandes que j'ai déjà présentées ici et sur lesquelles je ne reviendrai pas.
Cet article devrait donc être raisonnablement lisible même par ceux qui ne connaissent pas LaTeX, du moment qu'ils s'intéressent aux polices de caractères.
De quel genre de fontes s'agit-il ?
Si l'on utilise le LaTeX standard, c'est-à-dire pdfLaTeX ou LaTeX + dvips — nous écrirons « (pdf)LaTeX » pour simplifier — les fontes auxquelles on peut accéder sont celles livrées avec la distribution TeX utilisée, et elles lui sont spécifiques : elles ne peuvent pas servir à d'autres programmes que ceux contenus dans cette distribution (LaTeX bien sûr, Plain TeX, ConTeXt…).
De plus, il n'est pas possible pour (pdf)LaTeX d'accéder directement aux fontes déjà installées dans votre système d'exploitation, c'est-à-dire, dans le cas de Mac OS X, dans les dossiers « Fontes » des différentes « Bibliothèques ». Quoique des solutions méritoires aient été développées sous Mac OS X pour rendre certaines d'entre elles accessibles (à pdfLaTeX exclusivement), telles les GTAmacfonts disponibles grâce à l'i-installer de Gerben Wierda.
En revanche, si vous utilisez XeLaTeX au lieu de (pdf)LaTeX, alors vous avez accès directement aussi bien à toutes les fontes installées dans votre OS (quel qu'il soit) qu'à celles installées dans votre distribution TeX. Et ce quelle que soit la nature de ces fontes : bitmap, PostScript, TrueType, Opentype, AAT…
Mais les fontes installées dans le système d'exploitation ne satisfont pas à tous les besoins des utilisateurs de LaTeX, particulièrement en ce qui concerne les mathématiques. De plus, XeLaTeX ne dispose pas de capacités typographiques aussi étendues que celles de pdfLaTeX : le paquet microtype, qui permet l'accès à des propriétés dites « microtypographiques », ne peut pas être utilisé avec XeLaTeX.
L'utilisation de (pdf)LaTeX et des fontes contenues dans les distributions TeX est donc toujours d'actualité. En conséquence, je propose ici un aperçu des fontes installées dans TeX Live 2008, qui est la distribution TeX la plus couramment utilisée sur Unix en général et sur Mac OS X en particulier, par le biais de MacTeX. Je réserve à un article ultérieur l'étude des particularités de XeLaTeX et de son traitement des fontes du système d'exploitation.
Dans TeX Live 2008, on trouve essentiellement deux types de fontes : des fontes bitmap créées grâce à METAFONT (un langage de programmation dédié à la conception de fontes), et des fontes PostScript, de la catégorie « type 1 », vectorielles. Ces dernières ont largement pris le pas sur les précédentes. De fait, celles que nous allons voir sont toutes des fontes PostScript type 1, à une exception près.
Les polices standards de LaTeX
À tout seigneur tout honneur, commençons par l'ensemble de fontes emblématique de LaTeX, les Computer Modern.
Computer Modern
Ce sont les polices que LaTeX charge par défaut et donc il n'y a aucun code à entrer pour les obtenir.
Élaborées en 1978 par Donald Knuth, le créateur du programme TeX à la base de LaTeX, elles ont été pendant longtemps les seules fontes utilisables sur TeX comme sur LaTeX. Au départ disponibles seulement dans leur version METAFONT originelle, elles ont été converties en PostScript Type 1 vers le milieu des années 90 et c'est quasi exclusivement dans ce dernier format qu'elles sont utilisées aujourd'hui. Bien entendu, les Computer Modern sont aussi libres et gratuites que le sont TeX et LaTeX eux-mêmes.
Contrairement aux polices couramment utilisées dans les traitements de texte classiques, elles contiennent aussi bien une fonte romaine (utilisée par défaut) qu'une fonte sans empattements (dite aussi sans serif) et une fonte à chasse fixe (le style « machine à écrire »). Tandis que la fonte Times, par exemple, consiste en une seule famille de fonte (romaine) et qu'Helvetica, autre exemple, est « seulement » une fonte sans empattements. De plus, les Computer Modern fournissent un ensemble particulièrement étendu de fontes mathématiques.
C'est pour cela que je préfère parler d'« ensemble de fontes » plutôt que de fonte à proprement parler, quand il s'agit des Computer Modern ou de leurs alternatives complètes étudiées plus loin.
Les Computer Modern sont immédiatement reconnaissables par la finesse de leur trait, du moins pour la famille romaine, les familles sans serif et à chasse fixe ayant un trait plus épais. Prenons un exemple de texte et de formule mathématique entrés en LaTeX (les deux n'ayant aucun rapport ici l'un avec l'autre, elles sont juste là pour donner une idée de l'apparence des polices traitées) :
Le lendemain, Perrine m'avait réservé une surprise de taille. Elle s'était fait accompagner d'un grand garçon dégingandé, long, interminable. Sa présence rendait subitement tout trop petit ; ma bibliothèque s'était tassée, le plafond s'était abaissé et la vieille pendule à gaine avait perdu quelque chose de son intemporelle dignité. % \[ \int_a^b f(x) \, dx = \lim_{n \to \infty} \frac{b-a}{n} \sum_{i=1}^n f\biggl( a + i \cdot \frac{b-a}{n} \biggr). \] |
Voilà ce que cela donne après composition (avec l'inévitable perte de précision due à la nécessaire conversion du PDF au PNG pour pouvoir être lisible sur le web) :
D'expérience, on aime ou on déteste le look des Computer Modern. Toujours est-il que selon les spécialistes, elles sont d'une très haute qualité de conception, quel que soit le point de vue adopté sur leur esthétique. Néanmoins, elles ont un énorme défaut : elles ont avant tout été conçues pour la langue anglaise.
C'est pourquoi elles ne contiennent aucun véritable caractère diacritique (c'est-à-dire à accent ou cédille), ce qui est évidemment un handicap énorme pour quasiment toutes les langues à caractères latins autres que l'anglais. Les caractères diacritiques que vous voyez certes correctement reproduits dans notre exemple sont en fait chacun la superposition verticale de deux caractères, le diacritique et la lettre, et non un caractère en tant que tel. Et cela a deux conséquences fâcheuses :
- dans le PDF de sortie, la recherche d'un mot par Aperçu, Adobe Reader ou tout autre lecteur dédié, ne donnera strictement rien si ce mot contient un caractère diacritique ;
- un mot contenant un ou plusieurs caractères diacritiques ne peut pas être coupé en fin de ligne au-delà du premier caractère diacritique, ce qui fait souvent déborder ce mot dans la marge.
Rappelons en passant qu'on appelle encodage de la fonte la liste, suivant un ordre prédéfini, des caractères proposés par une fonte. Dans le cas des CM, l'encodage est appelé « OT1 » et n'a que 128 caractères. Du fait de ce nombre restreint, il y a la place suffisante pour inclure dans la liste les caractères de l'alphabet (a, b, c,…) et les accents et cédille (« ´ », « ` », …), mais pas les caractères accentués ou à cédille eux-mêmes (é, à, è…).
Heureusement, il existe maintenant des alternatives aux Computer Modern, et nous allons passer en revue les principales.
Computer Modern Super (CM-Super)
En raison des déficiences des CM, a été créé en 90 un nouvel encodage de fontes LaTeX, appelé encodage de Cork ou encodage T1, proposant 256 caractères au lieu de 128. L'encodage T1 contient quasi tous les caractères diacritiques des langues européennes à alphabet latin (dont le français, l'allemand, l'espagnol, etc.), résolvant ainsi les problèmes de recherche PDF et de coupures de ligne.
Dans la foulée, de nouvelles fontes respectant ce codage ont été élaborées, notamment un ensemble de fontes très proche des Computer Modern appelé « European Computer Modern », en abrégé EC, supervisé par Jörg Knappen et achevé en 1997.
Pendant des années, les polices EC n'ont malheureusement été disponibles qu'en METAFONT, si bien que visualisés en PDF, le texte d'un document les utilisant paraissait à l'écran au mieux très flou, au pire horriblement « pixellisé », bien que ressortant parfaitement à l'impression. Il a fallu attendre 2000 pour voir arriver une version des EC en PostScript type 1 remédiant à ce problème : les Computer Modern Super, appelées communément CM-Super.
Pour rédiger un document avec les CM-Super, qui sont installées dans TeX Live 2008, il suffit de spécifier que vous souhaitez utiliser l'encodage T1 :
\usepackage[T1]{fontenc} |
et l'on obtient ceci dans le cas de notre exemple précédent :
Si vous n'utilisez pas TeX Live 2008, il y a des chances que les CM-Super ne soient pas installées. Dans ce cas ce sont les polices METAFONT EC qui sont utilisées, et le texte précédent paraîtra flou ou pixellisé, sauf si c'est Adobe Acrobat/Reader (en version ≥ 6) qui est utilisé pour la visualisation.
Vous pouvez constater que les CM-super et les CM se ressemblent très fortement. Cependant il existe des différences, notamment au niveau des accents, plus « aplatis » chez les CM-super. Certains caractères (non représentés ici) ont été également complètement modifiés, comme le eszett allemand. De plus, alors que les EC était de bonne qualité conceptuelle, ce n'est pas le cas des CM-Super selon les spécialistes (voir par exemple la page 81 de la Not so Short Introduction to LaTeX pour une discussion à ce sujet).
Latin Modern
Tout cela a motivé la mise en chantier d'un nouvel ensemble de fontes PostScript type 1 destinées comme les CM-Super à se substituer aux Computer Modern, tout en étant cette fois-ci d'une qualité indiscutable : les fontes Latin Modern. Elles ont été élaborées par Boguslaw Jackowski et Janusz Nowacki, lesquels ont utilisé une évolution de METAFONT appelée METATYPE 1, qui produit des fontes PostScript de type 1 au lieu de fontes bitmap. La première version des Latin Modern est apparue en 2003, et elles sont aujourd'hui entièrement exploitables. Elles aussi, comme toutes les fontes présentées ici d'ailleurs, sont disponibles avec TeX Live 2008. On les charge ainsi dans un document LaTeX :
\usepackage[T1]{fontenc} \usepackage{lmodern} |
Et le résultat est sans surprise :
Je vous mets au défi de voir une seule différence apparente avec les Computer Modern (bien que les concepteurs des Latin Modern aient corrigé les dessins de certains caractères diacritiques intervenant dans d'autres langues que le français). Comme pour les CM-super, les éventuelles coupures en fin de ligne de mots accentués ou à cédille seront possibles, ainsi que leurs recherches dans un document PDF. Mais c'est le cas à vrai dire de toute police encodée T1, et en particulier le cas de toutes celles que je présenterai dans ce qui suit.
Les Latin Modern ont toutefois une place à part, puisqu'elles seront selon toute vraisemblance les futures polices par défaut de LaTeX. Bref, les adeptes du look Computer Modern ont tout intérêt à prendre de l'avance et utiliser désormais les Latin Modern. C'est mon cas, du reste :-)
À noter qu'il existe une version OpenType des Latin Modern, et que MacTeX 2008 l'installe dans l'arborescence de fontes de Mac OS X, les rendant ainsi accessibles à toute application Aqua (Word, OpenOffice, NeoOffice, Pages, Keynote, Powerpoint…).
Fontes PostScript de base et fontes TeX Gyre
LaTeX est fourni depuis longtemps (mais qui le sait ?) avec des versions libres et gratuites des fontes PostScript de base, c'est-à-dire les fontes obligatoirement présentes dans les imprimantes PostScript et dans tout logiciel de traitement et de visualisation de fichiers écrits en PostScript, par exemple Ghostscript dont j'ai parlé en leçon 6 du cours LaTeX.
Certaines de ces polices sont universellement connues et utilisées : Times, Palatino, Helvetica, Courier… Plusieurs d'entre elles ont été dotées de fontes mathématiques par des paquets LaTeX ; nous verrons à la section suivante lesquels et comment les charger. Dans cette section-ci, nous nous contenterons de lister les paquets standards permettant d'obtenir les fontes PostScript de base elles-mêmes, sans nous préoccuper d'un éventuel complément mathématique.
Dans cette section figurent également les TeX Gyre fonts, conçues par les créateurs des polices Latin Modern avec le même langage de création de fontes (METATYPE 1). Le projet TeX Gyre a vu le jour avec comme objectif premier de compléter et d'étendre les fontes PostScript de base avec autant de symboles diacritiques qu'il est nécessaire pour couvrir toutes les langues européennes à alphabet latin et cyrilliques (cela concerne essentiellement les langues d'Europe centrale et orientale, les langues occidentales comme le français étant déjà correctement couvertes par les fontes de base). Cet objectif ambitieux est maintenant presque atteint, et à terme les concepteurs ont pour but de doter toutes ces fontes d'un complément mathématique adapté. Mais pour cela il faudra être patient et attendre probablement quelques années.
En attendant, toutes les fontes TeX Gyre sont également disponibles en version OpenType, et si vous utilisez MacTeX 2008 comme distribution TeX, ces versions ont été installées de façon à être accessible par n'importe quel logiciel utilisant l'interface Aqua de Mac OS X, comme pour les Latin Modern.
Dans ce qui suit, nous listons les principales fontes PostScript de base supportées par LaTeX, puis nous indiquons leurs équivalents chez TeX Gyre (qui ont des noms différents suite à d'obscurs problèmes de licence), ainsi que les paquets LaTeX permettant de les charger.
Times/Termes
La très célèbre police romaine Times est obtenue en chargeant soit le paquet times (surprise !) :
\usepackage[T1]{fontenc} \usepackage{times} |
soit le paquet tgtermes pour la version TeX Gyre :
\usepackage[T1]{fontenc} \usepackage{tgtermes} |
Le résultat paraîtra le même pour notre fichier-test :
Noter le côté « serré » de l'écriture. Il faut dire que Times a été conçue au début des années 30 pour figurer dans un journal anglais, le Times (ah bon ?), et que celui-ci avait, comme on le comprendra aisément, tout intérêt à utiliser une fonte « chassant » le moins possible.
Le paquet times charge également les polices Helvetica et Courier pour respectivement l'emploi des fontes sans serif (commande \textsf et commande-bascule \sffamily) et à chasse fixe (\texttt et \ttfamily).
Le paquet tgtermes n'en fait pas autant, et donc si on charge ce paquet les fontes sans serif et à chasse fixe appelées par les commandes précédentes sont celles des CM-Super.
Palatino/Pagella
Palatino a été conçue par un grand homme des fontes, Hermann Zapf, comme fonte de titraille, mais son élégance et sa lisibilité l'ont fait « dériver » vers un emploi fréquent dans le texte lui-même.
Pour la charger :
\usepackage[T1]{fontenc} \usepackage{palatino} |
ou
\usepackage[T1]{fontenc} \usepackage{tgpagella} |
Résultat :
Comme pour le paquet times, le paquet palatino charge les polices Helvetica et Courier comme fontes sans serif et à chasse fixe.
Bookman/Bonum
C'est une fonte romaine très ancienne (sa première verse est sortie vers 1860), à « gros œil », conçue pour un usage général, aussi bien en texte courant qu'en titraille.
Chargement :
\usepackage[T1]{fontenc} \usepackage{bookman} |
ou
\usepackage[T1]{fontenc} \usepackage{tgbonum} |
Résultat :
Le paquet bookman charge lui la fonte Avant Garde Gothic comme fonte sans serif, et encore Courier comme fonte à chasse fixe.
New Century Schoolbook/Schola
Elle date du début du 20e siècle et était destinée à figurer dans des manuels scolaires, d'où son nom et sa grande lisibilité.
Chargement :
\usepackage[T1]{fontenc} \usepackage{newcent} |
ou
\usepackage[T1]{fontenc} \usepackage{tgschola} |
Résultat :
Le paquet newcent charge également la fonte Avant Garde Gothic comme fonte sans serif et Courier comme fonte à chasse fixe.
Zapf Chancery/Chorus
Zapf Chancery, créée par Hermann Zapf, est une fonte « manuscrite » particulièrement élégante. J'avoue avoir un faible pour ce type de polices, même si je n'ai jamais eu à l'utiliser pour un de mes documents « officiels ». Elle s'obtient par ce qui suit :
\usepackage[T1]{fontenc} \usepackage{chancery} |
ou
\usepackage[T1]{fontenc} \usepackage{tgchorus} |
Résultat :
Helvetica/Heros
Helvetica, fonte sans serif conçue en 1957 par Max Miedinger pour une fonderie suisse (d'où le nom), est paraît-il la police la plus populaire au monde.
Le paquet LaTeX helvet fonctionne de façon particulière puisque lorsqu'il est chargé, il ne modifie que la police sans serif par défaut. Ainsi lorsqu'on entre en préambule
\usepackage{helvet} |
seul les portions de texte passées en argument de la commande \textsf ou placées dans la portée de la commande-bascule \sffamily seront composées en Helvetica. Le reste demeurera inchangé.
Si l'on souhaite que la police par défaut du document entier soit Helvetica, il faut entrer
\usepackage[T1]{fontenc} \usepackage{helvet} \renewcommand{\familydefault}{\sfdefault} |
ou utiliser la fonte TeX Gyre Heros :
\usepackage[T1]{fontenc} \usepackage{tgheros} |
Le résultat est alors le même pour notre document-test :
Avant Garde Gothic/Adventor
Le paquet avant fonctionne de manière analogue à helvet, pour produire une autre fonte sans serif, Avant Garde Gothic. Les dessins de ses caractères ont la particularité d'être basés sur des cercles et des segments. Son équivalent TeX Gyre s'appelle Adventor. Ainsi
\usepackage[T1]{fontenc} \usepackage{avant} \renewcommand{\familydefault}{\sfdefault} |
ou
\usepackage[T1]{fontenc} \usepackage{tgadventor} |
donneront
Courier/Cursor
Même topo pour le paquet courier que pour les paquets helvet et avant, sauf que courier modifie lui la fonte à chasse fixe par défaut et la remplace bien évidemment par la fonte Courier, très populaire dans ce type de fonte. Ce sera donc les portions de texte en argument de la commande \texttt ou à portée de la commande-bascule \ttfamily qui seront concernées par le chargement de ce paquet :
\usepackage{courier} |
Pour que la police par défaut de tout le document soit Courier, on doit entrer en préambule
\usepackage[T1]{fontenc} \usepackage{courier} \renewcommand{\familydefault}{\ttdefault} |
L'équivalent TeX Gyre s'appelle Cursor :
\usepackage[T1]{fontenc} \usepackage{tgcursor} |
Le résultat est alors le même pour notre document-test :
Noter la difficulté pour justifier correctement le texte avec Courier : c'est le problème de toute police à chasse fixe, c'est-à-dire à espacement fixe, y compris les espaces inter-mots. Mais même pour une fonte de ce type, Courier « chasse » énormément. Ainsi, contrairement aux autres échantillons, il m'a fallu réduire la taille de l'image ci-dessus pour qu'elle ne dépasse pas la largeur de l'article !
Polices complètes alternatives (avec symboles mathématiques)
Les fontes traitées dans cette section proposent des familles de fontes mathématiques en complément des fontes de texte, ce qui en fait des alternatives (plus ou moins) complètes aux Computer Modern ou Latin Modern. Évidemment, rien n'interdit de les utiliser pour un usage sans équation, donc que les non-scientifiques ne passent pas outre ! :-)
Fourier (Utopia)
Ces fontes sont basées sur les polices textes Utopia, créées par Robert Slimbach et propriété d'Adobe, que ce dernier a rendu gratuites et libres d'accès. Michel Bovani y a ajouté des fontes mathématiques de sa conception, et a nommé l'ensemble Fourier, par clin d'œil au nom du célèbre utopiste Charles Fourier.
Elles n'existent qu'en encodage T1, si bien qu'il est inutile de demander cet encodage en préambule. Il suffit d'entrer
\usepackage{fourier} |
et on peut commencer à travailler avec :
Fourier-Utopia est une fonte de famille romaine, avec des variantes grasse, italique, penchée, grasse italique. Elle ne propose pas de famille sans empattement ou à chasse fixe. En raison de cela on les complète souvent par les fontes Helvetica (avec une réduction d'échelle) et Courier.
\usepackage{fourier} \usepackage[scaled=0.875]{helvet} \usepackage{courier} |
Preuve de leur qualité, les fontes Fourier ont été utilisées pour la traduction française du LaTeX Companion, 2e édition.
Fouriernc (New Century Schoolbook)
Ces fontes combinent les New Century Schoolbook comme fontes de texte et les fontes mathématiques de Fourier. On les obtient en entrant
\usepackage[T1]{fontenc} \usepackage{fouriernc} \usepackage[scaled=0.875]{helvet} \usepackage{courier} |
Noter le chargement des fontes Helvetica et Courier en complément, puisque, pas plus que le paquet fourier, fouriernc ne charge lui-même des fontes sans serif et à chasse fixe.
Le rendu du mariage des fontes New Century et Fourier est tout-à-fait convenable. Jugez-en sur notre exemple :
Mathptmx (Times)
Cette fois-ci, il s'agit d'une combinaison de la fonte de texte Times et des fontes mathématiques de Symbol et Computer Modern. Le chargement se fait de façon classique, avec comme précédemment le chargement des fontes Helvetica et Courier en complément :
\usepackage[T1]{fontenc} \usepackage{mathptmx} \usepackage[scaled=0.9]{helvet} \usepackage{courier} |
Le mariage Times-Symbol-Computer Modern est acceptable, comme on le voit :
Attention, certains symboles mathématiques manquent dans ces fontes : les commandes \jmath, \coprod et \amalg ne sont pas disponibles. De plus, il n'y a pas vraiment de symboles mathématiques gras dans Mathptmx. Il est recommandé de charger le paquet bm (pour bold maths) et d'utiliser la commande \bm qu'il définit afin d'obtenir des symboles gras « bricolés ».
Mathpazo (Palatino)
Semblable au paquet précédent, mathpazo marie lui les fontes romanes Palatino à diverses fontes mathématiques (Symbol, Euler, CM maths).
\usepackage[T1]{fontenc} \usepackage{mathpazo} \usepackage[scaled=0.95]{helvet} \usepackage{courier} |
Elles sont cependant bien plus complètes puisque toutes les commandes mathématiques de LaTeX sont accessibles, et que les symboles qu'elles donnent sont disponibles en gras.
Txfonts (Times)
Ce sont d'autres fontes à accompagnement mathématique basées sur Times, créées en 2000 par Young Ryu. Contrairement à Mathptmx, les Txfonts sont très complètes : aucun symbole mathématique n'est manquant, ils sont tous disponibles en version grasse, et Txfonts charge lui-même les fontes Helvetica (à la bonne échelle) pour sa version sans serif et une fonte à chasse fixe de la propre conception de Young Ryu.
Il n'y a donc que les Txfonts à charger pour obtenir un remplacement complet des Computer Modern :
\usepackage[T1]{fontenc} \usepackage{txfonts} |
Attention, pour ceux qui utilisent le paquet amsmath, ce dernier doit être chargé avant les Txfonts.
L'échantillon de notre exemple montre les différences avec mathptmx en ce qui concerne les maths :
Vous pouvez constater, notamment dans la seconde partie de la formule, que les symboles mathématiques sont particulièrement resserrés, à un point que les spécialistes jugent inadéquat. La plupart déconseillent l'emploi des Txfonts pour les articles « officiels ». Cela n'a pas empêché les éditions scientifiques Elsevier de recommander les Txfonts aux auteurs désirant utiliser Times comme fonte de texte.
Pxfonts (Palatino)
Ce sont des fontes « cousines » de Txfonts, développées simultanément par le même auteur, mais pour accompagner cette fois-ci les fontes texte Palatino. Les remarques faites ci-dessus pour Txfonts sont également de rigueur pour Pxfonts.
\usepackage[T1]{fontenc} \usepackage{pxfonts} |
Mathdesign — Charter
Les fontes mathématiques Mathdesign, créées en 2005 par Paul Pichaureau, fournissent des compléments mathématiques à trois polices de texte romaines : Charter, Utopia et Garamond (version du fondeur URW). Malheureusement cette dernière fonte, bien que gratuite, n'est pas disponible dans TeX Live pour des problèmes de licence. Il est cependant possible de la télécharger sur CTAN et de l'installer soi-même, mais cette installation n'est pas triviale. Voir la FAQ LaTeX pour les détails (en anglais) de cette opération, pas très difficile en fait mais fastidieuse, et qui fait appel au Terminal.
Commme pour Mathptmx ou Fourier, Mathdesign ne fournit pas de fonte sans serif ni à chasse fixe. Mais vous savez maintenant comment contourner cette lacune ;-)
Nous commençons ici par Charter, une police que personnellement j'apprécie beaucoup pour son élégance et sa lisibilité, et son complément Mathdesign :
\usepackage[T1]{fontenc} \usepackage[charter]{mathdesign} |
Mathdesign — Utopia
La police Mathdesign servant de complément à Utopia est une alternative à Fourier, présentée plus haut. À vous de voir laquelle vous convient le mieux, si vous avez choisi Utopia comme fonte de texte !
\usepackage[T1]{fontenc} \usepackage[utopia]{mathdesign} |
Kp-fonts (Palatino)
Probablement les fontes LaTeX les plus complètes à ce jour (et elles n'ont pas fini de progresser), les Kp-fonts dont la première version date de 2007, ont été créées par Christophe Caignaert. Elles proposent une fonte romaine librement basée sur Palatino, mais aussi une fonte sans serif et une fonte à chasse fixe, en plus de très nombreuses options pour les mathématiques qui dépassent largement l'offre des Computer Modern/Latin Modern dans ce domaine. Voir la doc pour la description de ces options.
\usepackage[T1]{fontenc} \usepackage{kpfonts} |
Cerise sur le gâteau, l'auteur planche actuellement sur des symboles mathématiques adaptées à la fonte sans serif : ce serait l'idéal pour une présentation faite avec Beamer, par exemple.
Computer Modern Bright
Les Computer Modern Bright (CMBright) forment une fonte sans serif qui est en fait une variante plus fine de la fonte sans serif des Computer Modern, à laquelle ont été adjointes des fontes mathématiques adaptées. Les CMBright sont les fontes que j'utilise pour mes présentations Beamer, en attendant l'accompagnement mathématique de la fonte sans serif des Kpfonts.
\usepackage[T1]{fontenc} \usepackage{cmbright} |
Lxfonts
La partie texte de cette police sans serif date en fait des débuts de LaTeX (1984) pour emploi dans les transparents. Elle est donc également appropriée aux présentations par vidéoprojecteur. Son accompagnement mathématique est tout récent (2007) et a été développé par Claudio Beccari.
\usepackage[T1]{fontenc} \usepackage{lxfonts} |
Concrete — Euler
La fonte romaine Concrete (« béton » en anglais) a été créée en 1989 par Donald Knuth lui-même dans le but d'avoir une fonte de texte s'harmonisant avec les fontes mathématiques Euler du grand homme des fontes Hermann Zapf. L'idéal est donc de charger ces deux fontes ensembles, par exemple par les paquets… beton :-) et euler respectivement.
\usepackage[T1]{fontenc} \usepackage{beton, euler} |
Là non plus, pas de variante sans serif ou à chasse fixe.
Deux fontes particulières
French Cursive
French Cursive est une police cursive METAFONT créée par Emmanuel Beffara il y a quelques années et visant à reproduire l'écriture manuscrite telle qu'elle nous a été enseignée lors de nos années d'enseignement primaire francophone, ainsi que l'explique leur auteur sur son site. On charge French Cursive en appelant le paquet frcursive :
\usepackage[T1]{fontenc} \usepackage{frcursive} |
Mais attention, le texte que l'on veut voir en cursif doit être inclus dans un environnement cursive, c'est-à-dire entre les commandes \begin{cursive} et \end{cursive}. Ce qui donne ceci pour notre exemple (il n'y a pas de fonte mathématique dans Frcursive, ce n'était pas vraiment son but !) :
Pour aller plus loin avec French Cursive, vous pouvez tester ce petit exemple fourni par E. Beffara : il contient toutes les commandes fournies par le paquet frcursive. Notez qu'il vaut mieux visionner le PDF résultant avec Adobe Reader, puisqu'il s'agit d'une police METAFONT.
Marvosym
Pour terminer sur une note plus fantaisiste, sachez qu'il n'y a pas que des fontes de lettres dans LaTeX. On y trouve des fontes de symboles (dites fontes de « casseaux ») de toutes sortes, et le paquet marvosym, par exemple en fournit toute une floppée.
On charge ce paquet très simplement :
\usepackage{marvosym} |
Pour vous donner une idée de la diversité des symboles plus ou moins sérieux accessibles par marvosym, voici quelques-une des commandes qu'il définit :
\Mobilefone{} \Smiley{} \Frowny{} \EUR{} \Bicycle{} \AtForty{} \Coffeecup{} \Football |
Vu les noms de ces commandes, le résultat ne devrait pas vous surprendre :
Vous pouvez vous reporter à la documentation du paquet pour avoir la liste exhaustive des symboles Marvosym.
Pour conclure
Dois-je préciser que cet aperçu des polices de caractères disponibles sous LaTeX, malgré sa longueur, est largement incomplet ? Cela pour donner une idée des réserves de LaTeX en la matière. Si cela vous a donné envie d'en savoir plus, vous pouvez consulter l'une ou l'autre des quatre références suivantes, qui m'ont d'ailleurs servi de base pour cet article.
- Le site de Benoît Rivet sur teTeX, et sa section consacrée aux fontes. En français. Ce site fourmille d'informations qu'on trouve difficilement ailleurs, surtout dans notre langue. Il nécessiterait cependant une mise à jour : Benoît Rivet s'y base en effet sur les fontes disponibles avec teTeX, une distribution TeX aujourd'hui largement obsolète. En particulier les instructions d'installation de fontes qui y sont détaillées sont périmées.
- Aussi sur la toile, l'incontournable LaTeX Font Catalogue. En anglais. Toutes les polices LaTeX y sont répertoriées, avec échantillons et paquets associés. Une vraie caverne d'Ali Baba que les LaTeXiens passionnés de fontes, comme votre serviteur, adorent piller !
- Un livre, que dis-je, une bible ! Le LaTeX Companion, 2e édition (2004), déjà cité, est très riche en information sur les polices utilisables par LaTeX, particulièrement dans son chapitre 7 dédié aux fontes en général et sa section 8.8 consacrée aux fontes mathématiques en particulier.
- Pour votre culture générale en matière de fontes et tout ce qui les concerne en informatique, le merveilleux livre de Yannis Haralambous, Fontes et codages (2004), aux éditions O'Reilly France, malheureusement aujourd'hui disparues. Il semble néanmoins que ce livre soit encore distribué par le biais des éditions Eyrolles. Il a été d'ailleurs traduit en anglais (et non l'inverse) en 2007 pour être distribué dans cette langue par la maison mère américaine O'Reilly, toujours active. En anglais ou français, ne passez pas à côté de ce bijou, même si certaines informations, sur TeX, notamment, ont pris de l'âge ! Ne ratez pas en particulier son chapitre 11, qui retrace l'histoire des fontes en Europe depuis Gutenberg.
Et bien sûr, comme je l'ai dit, il reste XeLaTeX à aborder, et son traitement des polices du système d'exploitation. Patience, c'est pour un prochain article. Il faut également mentionner LuaTeX, un nouveau moteur TeX en plein développement qui pourrait peut-être permettre à un LaTeX basé dessus de bénéficier des possibilités actuelles de XeLaTeX tout en conservant les capacités typographiques très étendues de pdfLaTeX. L'avenir, pas trop lointain j'espère, nous le dira.
, le 23.06.2009 à 07:17
Bravo et merci. C’est bien la première fois que je rencontre un article sur les fontes pour LaTeX qui soit agréable à lire et surtout compréhensible pour un utilisateur non expert.
Je n’ai pas le temps d’en finir la lecture ce matin, travail oblige. Je me sens déjà impatient d’y revenir.
J’ai enfin compris le contenu de quelques lignes des préambules de mes documents.
, le 23.06.2009 à 08:04
Merci pour cet article Franck (avec sans ou si peu de code, mais malgré tout un peu pointu ;-) pour le commun des users) je retiens ce que j’avais déjà cru comprendre des fontes LaTex :
… elles lui sont spécifiques : elles ne peuvent pas servir à d’autres programmes que ceux contenus dans cette distribution (LaTeX bien sûr, Plain TeX, ConTeXt…
Et c’est bien dommage qu’elles ne soit pas utilisables /reconnues par tous les autres programmes comme une fonte traditionnelle (ok, dans l’autre sens LaTex peut employer les fontes présentes dans le système). Donc pour ce qui est des “amateurs de fontes en général” … s’ils n’ont pas envie de se lancer dans une quelconque version “Tex” ils ne pourront profiter des fontes intégrées.
, le 23.06.2009 à 09:01
Merci. Ceci dit, je me rends compte maintenant que cet article est un peu trop long. Si c’était à refaire, je mettrais l’accent sur les fontes complètes et diminuerais la partie consacrée aux fontes PostScript de base.
Ce n’est plus tout-à-fait exact, à vrai dire : aujourd’hui certains concepteurs de fontes TeX pensent aussi aux autres :-) Comme je l’indique dans l’article, les fontes Latin Modern — le standard actuel de TeX — et les fontes TeX Gyre sont disponibles en version OpenType, et MacTeX installe ces versions dans l’arborescence des fontes de Mac OS X (outre le fait qu’elles se trouvent déjà installées dans la distribution TeX). Les autres applications peuvent donc en profiter.
Il est donc possible aujourd’hui de composer un article sous Word, par exemple, avec le look and feel de LaTeX… si on n’est pas trop regardant sur la qualité de mise en page wordienne ! Avec des logiciels sérieux comme InDesign, cependant, le résultat doit être très convenable.
, le 23.06.2009 à 09:25
Informations très intéressantes. Merci.
Que pensez vous des articles de Wikipedia ?
LaTeX et Police d’écriture
, le 23.06.2009 à 09:36
Merci beaucoup pour cet article. Le plus gros défaut de LaTeX est à mon sens de trouver une documentation “synthétique”.
Ce n’est pas dans ce cas que c’est utile. Même s’il y a moyen de faire des choses avec les différents paquets pour les dessins et schémas, il est parfois beaucoup plus commode de travailler avec des programmes plus “graphiques” quand on a des schémas et des graphiques à faire. Avoir une police “de type LaTeX” permet donc de les utiliser sans compromettre l’homogéniété du document.
, le 23.06.2009 à 10:10
Très bon article! Beaucoup plus agréable à lire qu’un listing interminable sans aucune saveur.
, le 23.06.2009 à 11:20
L’article sur LaTeX de Wikipédia est très bien, très clair et précis sans être trop fouillé, avec d’excellents liens et références, je le recommande.
L’article sur les polices me paraît bien incomplet, pour autant que je puisse en juger, n’étant pas vraiment un spécialiste. Où parle-t-on des fontes OpenType, par exemple, ou des codages ? Et de fait, comme le dit le bandeau, il ne cite pas suffisamment ses sources. À retravailler, sûrement.
, le 23.06.2009 à 11:37
C’est puissant ce LaTeX, quand je vois les formules qu’il sort… Terrible! Tous ce codage… Wazahhh! :)
Merci pour cet article, très sympathique!
, le 23.06.2009 à 12:08
Rien que pour le lien sur The LaTeX Font Catalogue cet article vaut son pesant de cacahouètes ;)
Sinon, la philosophie de LaTeX, fait qu’une fonte = un document pas défaut, c’est cela?
Si par exemple je veux écrire un paragraphe en Times puis le suivant en Palatino, j’inclue les usepackage en préambule pour les deux polices et après je fais un \begin{times} \end{times} sur mes blocs concernés par exemple? ou ce n’est pas comme ça?
Super article et merci pour le paquet Marvosym!
, le 23.06.2009 à 13:08
Oui. Ou plutôt, c’est : un document = un ensemble cohérent de fontes. On pourrait appeler cela une « méta-famille » de fontes. Selon LaTeX, un ensemble cohérent de fontes pour un document proposerait en un seul package les trois familles de fontes classiques : une fonte romaine, une fonte sans serif et une fonte à chasse fixe se mariant correctement ensemble (et sur lesquelles viennent ensuite se greffer les variations habituelles, normale/grasse, droite/italique/petites capitales, etc.). Sans oublier des fontes mathématiques.
Mais il n’y a pas beaucoup de « méta-familles » complètes comme cela : parmi celles que j’ai citées, il y a les Computer Modern, les CM-Super, les Latin Modern, les KPfonts, les Txfonts et les Pxfonts. Les autres packages que j’ai listés sont plus ou moins incomplets selon cette optique. Par exemple,
fourier
a bien une fonte romaine et des fontes mathématiques, mais il n’a pas de fontes sans serif et à chasse fixe, c’est à l’utilisateur de s’en choisir pour compléter.Hélas (ou plutôt heureusement) non, ce n’est pas comme ça… Tout d’abord, Times et Palatino sont deux fontes romaines, et passer d’une fonte d’une famille donnée (ici, romaine) à une autre fonte de même famille dans le même document est une hérésie typographique. Donc LaTeX le décourage.
Ainsi, si dans le même document tu charges le paquet
times
, puis le paquetpalatino
, qui changent chacun la fonte romaine par défaut de LaTeX, le second écrasera le premier et tu n’auras que du Palatino pour finir.Par contre, on peut appeler parallèlement les packages
helvet
etcourier
, parce que l’un modifie la fonte sans serif par défaut de LaTeX, et l’autre la fonte à chasse fixe.Si tu tiens vraiment à juxtaposer deux fontes de même famille, tu peux entrer des commandes dites « de bas niveau » de sélection de fontes. Par exemple, à l’endroit à partir duquel tu veux du Times, entre
\fontfamily{ptm}\selectfont
puis à l’endroit à partir duquel tu veux du Palatino :
\fontfamily{ppl}\selectfont
Les noms « ptm » et « ppl » sont les noms « LaTeXiens » de Times et Palatino, qui ne les rappellent que de loin. Tu peux te référer à cet article ou au LaTeX Companion pour les détails, mais franchement, à mon avis, ça n’en vaut guère la peine pour un usage courant.
, le 23.06.2009 à 15:00
Franck, bravo et merci !!!
J’ai beau n’utiliser que le petit 1% des capacités immenses de LaTeX, cela permet de faire déjà beaucoup de choses. Et grâce à vos articles, je vais passer à 2% ;-))
, le 23.06.2009 à 23:16
Merci pour ce super article sur LaTeX. J’utilise le plus souvent la fonte Latin Modern pour mes documents, mais aussi quelquefois Palatino…
Je ne connaissais pas les Kp-Fonts ni l’écriture French Cursive, qui m’a l’air sympa ! A essayer prochainement…
Si certains d’ente vous veulent se lancer dans la programmation, je recommande – en complément des articles de Franck Pastor – LaTeX pour l’impatient. (c’était mon cas d’ailleurs…)
, le 24.06.2009 à 08:25
Merci, Franck, grâce à toi, j’ai un peu compris certains trucs.
z (par contre, la police me fait toujours plus peur, je répêêêêêêêête : et sinon, pour les majuscules accentuées, tu n’aurais pas un lien vers les raccourcis ? ;o)
, le 24.06.2009 à 08:54
Merci à tous pour vos compliments !
Très bonne référence en effet, d’ailleurs chaudement recommandée en fin de l’article 6 sur LaTeX de Fabien Conus and myself. C’est jusqu’à présent le meilleur livre d’introduction à LaTeX que je connaisse.
Heu, j’ai peut-être mal saisi (c’était un simple clin d’œil ou une vraie question ?), mais pour la forme, et à défaut de lien, je me lance dans la piqûre de rappel (pour clavier azerty) : pas vraiment besoin de raccourci si on n’est pas sur l’abominable Windows.
— Pour les caractères avec accent grave `, accent circonflexe ^ ou tréma ¨, on tape l’accent puis la lettre majuscule ;
— pour le c cédille majuscule Ç, c’est alt-ç ;
— pour le É, c’est le plus compliqué : alt-shift-& pour obtenir l’accent aigu, puis E.
On peut aussi actionner la touche de blocage des majuscules puis taper la lettre minuscule accentuée si on est sur le clavier français non numérique.
, le 24.06.2009 à 12:36
Non, non, c’était bien une vraie question ;^), et merci pour la prompte réponse. En fait, je n’avais jamais remarqué l’accent grave, sur le clavier !
z (merci, Franck, je répêêêêêêêêêêête : merci cuk !)
, le 25.06.2009 à 04:23
J’ai enfin le temps de lire cet article. Superbe.
Mais tout de même, moi qui n’ai pas besoin de formules mathématiques, je me dis que tout cela reste tout de même compliqué et très peu souple.
Même si ce manque de souplesse nous amène à des documents certainement plus cohérents que ce que l’on peut faire avec un Pages ou un inDesingn, qui nous laissent faire n’importe quoi.
, le 25.06.2009 à 11:15
Compliqué, sans doute, et certainement selon ton point de vue et ceux des adeptes du wysiwyg en général. Mais « peu souple », absolument pas ! Au contraire, si on se plonge dans les commandes de bas niveau dont j’ai parlé dans le message 10, on peut faire une infinité de choses, même les plus horribles, et on peut certainement aller plus loin dans les manipulations de fontes que n’importe quel wysiwyg. Évidemment, le prix à payer, ce sont ces commandes supplémentaires à apprendre, parfois loin d’être évidentes.
Pour ceux que ça intéresse, je viens de voir que le site de l’ENS proposait une page claire et concise sur ces commandes de bas niveau, ainsi qu’une liste (incomplète) de noms « LaTeXiens » de quelques polices disponibles. La référence ultime là-dessus restant le LaTeX Companion.
Mais tant qu’on reste dans un usage standard et « typographiquement correct », les commandes simples, dites « de haut niveau », que Fabien et moi avions détaillées ici suffisent largement.
, le 26.06.2009 à 10:06
À propos de la technique de calcul utilisée pour afficher des courbes sur écran, notamment celles qui définissent les polices de caractères, la limpide (donc géniale) méthode de Monsieur Bézier.
L’idée est très simple : une composition binaire de trajectoires. Soit un point A de trajectoire A(t), pour le temps t variant de 0 à1. Soit un point B de trajectoire B(t), pour le temps t variant de 0 à1. Alors, les trajectoires de A et B sont composées de la manière suivante pour donner la trajectoire d’un point M(t) : à chaque temps t, un point M est intérieur au segment AB, de manière telle que t soit le rapport des distances de M à B et A, soit t=MA/BM . Autrement dit, le point M coïncide avec A au temps 0, avec B au temps 1, il est au milieu du segment AB au temps 1/2, etc… Nous avons M=(1-t)A+tB=f(A,B), ce que vous pouvez considérer comme le paramétrage de la trajectoire du point M, et donc le programme de calcul à chaque instant des positions du point M comme combinaison (de type barycentrique) des positions des points A et B. Si les points A et B sont fixes, le point M décrit un segment. Le procédé compose donc deux courbes, pour en produire une troisième. Le procédé peut-être itéré, évidemment. Par exemple, soit P=(1-t)B+tC=f(B,C), et ensuite Q=(1-t)M+tP. En résumé, Q=f(M,P)=f(f(A,B),f(B,C)). Si A,B,C sont fixes, la trajectoire du point Q est un arc de parabole (ou la parabole entière, si l’on ne cantonne pas le paramètre t entre 0 et 1).
Sur Wikipedia anglais, vous trouverez de petites animations qui illustrent ça, descendez dans la page.
, le 26.06.2009 à 16:57
Je n’avais jamais vu les courbes de Bézier présentées comme tu le fais, c’est peut-être ma formation qui a été lacunaire.
J’ajouterais quand même que dans ta présentation, A et B ne décrivent pas deux courbes quelconques, mais des courbes de Bézier elles-même, de degré immédiatement inférieur, paramétrées par des « point de contrôles » (deux pour un courbe linéaire (segment), trois pour une quadratique, quatre pour une cubique, etc.).
Quel bel article que celui dont tu donnes le lien, Wikipédia propose décidément quelques trésors de vulgarisation !
À mettre en exergue, en particulier, ces deux citations :
TrueType fonts use Bézier splines composed of quadratic Bézier curves.
Modern imaging systems like PostScript, Asymptote and Metafont use Bézier splines composed of cubic Bézier curves for drawing curved shapes.
Ce qui est paradoxal dans le cas de METAFONT, c’est que le concept même des fontes qu’il produit est vectoriel (courbes de Bézier cubiques), mais qu’au final leur pixellisation se fait avant même le passage aux périphériques de sortie. C’est ce qui a perdu ces polices par rapport aux PostScript ou TrueType : si on ne communique pas à l’avance à METAFONT la résolution du périphérique de sortie, le résultat n’est pas satisfaisant. Que faire alors si le même fichier est destiné à la visualisation ou l’impression sur des tas de périphériques différents ?
Je me permets de citer, pour rester dans les maths, l’algorithme de de Casteljau, sans lequel les courbes de Bézier perdraient beaucoup d’intérêt pratique.
, le 26.06.2009 à 18:30
L’évaluation se fait absolument trivialement à partir de la suite des n points de contrôle que l’on peut imaginer placés au fond d’un réseau: pour chaque valeur du temps t, l’on compose comme dit ci-dessus les couples successifs, ce qui donne une suite de n-1 points ; ce faisant, on remonte d’un étage dans le réseau; itérer jusqu’à l’obtention d’un unique point (la racine). Ainsi, pas d’appel récursif, ça coule de source. Il n’y a pas de vulgarisation dans Wikipedia; c’est la définition même, c’est l’idée même, rien de plus, rien de moins. Les animations illustrent ça, en couleur.
edit : c’est juste parce que l’on a défini la courbe à partir des points de contrôle a(1)…a(i)…a(n) par
f(a(1)…a(i)…a(n))=f(f(a(1)…a(i)…a(n-1)),f(a(2)…a(i)…a(n)))