Le mpg-blog

LaTeX et autres geekeries

Minion Pro sous XeLaTeX

without comments

Il y a déjà quelques temps, j’expliquais comment utiliser Minion Pro sous pdfTeX. Comme je le disais, il est en fait bien plus naturel de vouloir utiliser XeTeX, qui prend en charge nativement les fontes OpenType et toutes leurs spécificités. Voyons ici comment procéder.

Pour des documents « normaux » (lire : de classe autre que beamer), c’est au fond assez simple. La seule difficulté concerne les math : XeTeX ne prend pas encore totalement en charge les polices OpenType mathématiques, et de toutes façons il n’y a pas de tables mathématiques dans le Minion Pro d’Adobe. (Les deux seules polices OpenType mathématiques à l’heure actuelle à ma connaissance sont Asana math (libre) et Cambria math (inclus dans MS-Office 2007).)

C’est là qu’entre en jeu le travail effectué la dernière fois : on va pour les math utiliser des polices PostScript Type 1 à l’ancienne. Pour éviter les problèmes, il faut juste préciser au module MinionPro (qui gère Minion Pro en Type 1) de ne s’occuper que des math, et à fontspec (l’interface utilisateur LaTeX pour les fonctionnalités de fontes de XeTeX) de ne s’occuper que du texte. Par exemple, voici ce que j’utilise pour mes documents en Minion Pro contenant des math :

\usepackage[onlymath,mathlf,frenchmath]{MinionPro}
\usepackage{mathrsfs}
\usepackage[no-math]{fontspec}
\defaultfontfeatures{Scale=MatchLowercase, Mapping=tex-text, Numbers=OldStyle}
\setmainfont{Minion Pro}
\setsansfont[BoldFont={%
  Myriad Pro Semibold}, BoldItalicFont={%
  Myriad Pro Semibold Italic}]{Myriad Pro}
\setmonofont{Luxi Mono}

La première ligne s’assure que la police mathématique est Minion Pro avec ses compléments mathématiques ; les options permettent de ne rien changer à la police de texte, d’utiliser des chiffres majuscules en math, et de composer les math à la française (lettres grecques et majuscules romaines en police droite). On charge ensuite une police anglaise supplémentaire. Il faut faire attention par contre à ne pas chargé amssymb : sinon, cela fait trop de fontes mathématiques chargées simultanément, et TeX explose (nous y reviendrons).

Ensuite, on choisit tranquillement ses polices de texte avec fontspec« comme d’habitude ». Ici, j’utilise Myriad Pro comme police sans empattements, et je prends la version semi-grasse pour le gras (j’aime particulièrement ce semi-gras avec les classez Koma-Script qui utilisent du gras sans empattements pour les titres), et enfin Luxi Mono comme fonte à chasse fixe.

Luxi Mono est une des fontes à chasse fixe les plus utilisables, surtout avec d’autres polices que CM ou LM : les autres sont soit trop fines, soit chassent beaucoup trop. La façon la plus simple de l’installer, sous TeX Live du moins, est d’utiliser getnonfreefonts-sys --all (avec les privilèges suffisants). Pour qu’elle soit accessible à XeTeX (c’est-à-dire à fontconfig, du moins sous Linux), ainsi que les autres polices type 1 de TEXMFLOCAL, on peut par exemple faire un lien symbolique de ~/.fonts/tex/type1 vers TEXMFLOCAL/fonts/type1, puis lancer fc-cache pour régénérer le cache de fontconfig.

Pour des documents de classe beamer, c’est un poil plus compliqué. En effet, beamer insiste pour charger amssymb (pour disposer de la commande blacktriangleright). Or ceci cause une erreur causée par le nombre limité de fontes mathématiques que TeX peut gérer simultanément (problème documenté dans MinionPro.pdf). Le seul contournement de j’ai trouvé pour le moment est de rajouter dans le répertoire de travail où je prépare mes documents beamer un fichier nommé amssymb.sty ayant le contenu suivant :

\ProvidesPackage{amssymb}[2008/10/10 Dummy package for bad hack]
\endinput

C’est moche, mais ça marche©®. Je vais sans doute prochainement signaler ceci sur le BTS de beamer et demander par exemple une option de classe empêchant le chargement d’amssymb.

Enfin, beamer ayant l’habitude de faire des trucs à sa façon avec les fontes, si l’on utilise un thème de fontes avec la police à empattements pour les math, on a la mauvaise surprise (à mon goût) de se retrouver avec des chiffres elzéviriens en mode math. Pour éviter cela, il convient d’appeler, en plus du thème de fonte voulu (avant ou après, ça ne change rien d’après mes expériences) le thème de fonte professionalfonts. Par exemple :

\usefonttheme[onlymath]{serif}
\usefonttheme{professionalfonts}

Par contre, contrairement à ce qui indiqué page 16 de la documentation, utiliser professionalfonts en option de classe ne semble pas changer grand chose.

Written by mpg

novembre 30th, 2008 at 3:48

Posted in TeX et compagnie

Tagged with ,