XeLaTeX Font wählen mit \fontspec

Linux Libertine
Flickr: Linux Libertine von Peter Killert (CC BY-NC-SA)

Ich sitz (wieder mal …) an meiner Bachelorthesis und fange bei der Gelegenheit (Überarbeitung und Portierung nach XeLaTeX) einmal, sie mit git zu tracken.

Jetzt hab ich bei PDFLaTeX das MathPazo-Paket verwendet, da es sowohl Mediävalziffern als auch Kapitälchen anbietet und sich in mathematischer Umgebung gut bewährt hat. Leider bevorzugt XeLaTeX OpenType Fonts. Nach einigem Hin und Her hab ich jetzt herausgefunden, wie ich Linux Libertine einsetzen kann!Zunächst sucht XeLaTeX im Verzeichnis /usr/share/texlive/texmf-dist/fonts/opentype/public/ nach Schriftarten. Die Dateien dort können aber auch ziemlich kryptisch aussehen. Beispiel?

$ ls /usr/share/texlive/texmf-dist/fonts/opentype/public/
antt            gfscomplutum    mdsymbol       skaknew
Asana-Math      gfsdidot        mnsymbol       stix
cm-unicode      gfsneohellenic  ocr-b-outline  tex-gyre-math
cyklop          gfsporson       oldstandard    umtypewriter
fdsymbol        gfssolomos      phaistos       xits
gfsartemisia    gnu-freefont    philokalia
gfsbaskerville  inconsolata     punknova
gfsbodoni       libertineotf    semaphor

Mit so einer Namensstruktur kommt vielleicht ein Programm zurecht, wir Menschen aber eher weniger.

Wie gut, dass es dafür ein Paket gibt, dass Informationen aus den Dateien extrahieren kann: otfinfo.

$ otfinfo -i /usr/share/texlive/texmf-dist/fonts/opentype/public/cm-unicode/cmunrm.otf
Family:              CMU Serif
Subfamily:           Roman
Full name:           CMU Serif Roman
PostScript name:     CMUSerif-Roman
Version:             Version 0.7.0
Unique ID:           Computer Modern Unicode : CMU Serif Roman : 18-6-2009
Designer URL:        http://cm-unicode.sourceforge.net/
Copyright:           Converted by Andrey V. Panov from TeX fonts. Some glyphs are copied from Blue Sky fonts released by AMS.
License URL:         http://scripts.sil.org/OFL
License Description: This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied together with this font package in OFL.txt,
and is also available with a FAQ at: http://scripts.sil.org/OFL

otfinfo kann auch mit Globbing umgehen, muss aber zu .otf expandierte Pfade entgegennehmen.

Nun wissen wir also, welcher Font sich hinter welcher Datei verbirgt und wo diese OpenType-Fonts zu finden sind. Wie teilen wir nun XeLaTeX mit, welche es benutzen soll? So:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{LinLibertine_R.otf}

\begin{document}
Normaler Text

\emph{Hervorgehobener Text}

\textit{Kursiver Text}

\textbf{Fetter Text}

\textsc{Text in Kapitälchen}

$Mathematische 123$

Textliche 456

\oldstylenums{789}
\end{document}

Was uns entgegenschlägt nach Aufruf von xelatex fontexample.tex sind unter anderem diese Warnungen:

LaTeX Font Warning: Font shape `EU1/LinLibertine_R.otf(0)/m/it' undefined
(Font)              using `EU1/LinLibertine_R.otf(0)/m/n' instead on input line
8.


LaTeX Font Warning: Font shape `EU1/LinLibertine_R.otf(0)/bx/n' undefined
(Font)              using `EU1/LinLibertine_R.otf(0)/m/n' instead on input line
10.

Lies: Kursiv (italic, it) und Fett (bold extended, bx) wurden nicht gefunden und stattdessen die normalen (normal, n) Schriftart benutzt.

Geben wir es also explizit an:

\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX,Numbers=OldStyle}
\setmainfont[
BoldFont          = LinLibertine_RZ.otf,
ItalicFont        = LinLibertine_RI.otf,
BoldItalicFont    = LinLibertine_RZI.otf,
Ligatures=TeX]{LinLibertine_R.otf}

\begin{document}
Normaler Text

\emph{Hervorgehobener Text}

\textit{Kursiver Text}

\textbf{Fetter Text}

\textsc{Text in Kapitälchen}

$Mathematische 123$

Textliche 456

\oldstylenums{789}

\end{document}

XeLaTeX muss leider der Datei-Pfad mitgegeben werden. Von daher ist nach „Regular“ als Unterfamilie Ausschau zu halten. Ich find dafür das Programm fc-list ganz praktisch. Die Ausgabe lässt sich mit ein bisschen awk sogar recht gut filtern und anschließend per sort ordnen:

$ fc-list | awk -F: '{print $(NF-1), "\t", $NF}' | sort

Wer mag, kann ja per grep nach spezielleren Aspekten wie Small Caps fischen 😉

Ein letztes noch! Falls ihr Dateien nicht systemweit bereitstehen habt, sollte XeLaTeX eigentlich auch unter $HOME/.fonts/ suchen. Ich hab das nicht getestet.

Im Großen und Ganzen bin ich bisher zufrieden. Die Befehle erscheinen weniger kryptisch. Wenn ich über andere Probleme stoße, werde ich darüber schreiben.

Edit: Oder aber, man nutzt gleich das Paket libertine, welches libertineotf ablöst. Kann sogar fette Kapitälchen 😀

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s