
Ich habe einige .ttf
Schriftarten, ~/Library/Fonts
die ich mit XeLaTeX verwenden möchte, aber es scheint, als ob es sie nicht finden kann. Dies wird beispielsweise kompiliert:
\documentclass[]{article}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\begin{document}
The quick brown fox jumps over the lazy dog.
\end{document}
Aber das wird nicht:
\documentclass[]{article}
\usepackage{fontspec}
\setmainfont{Times New Roman.ttf}
\begin{document}
The quick brown fox jumps over the lazy dog.
\end{document}
Und ja, Times New Roman.ttf
ist drin ~/Library/Fonts
.
Antwort1
Sie scheinen ein Missverständnis hinsichtlich der Schriftsuche zu haben xetex
. Die verschiedenen Suchmechanismen werden ausführlich beschrieben inXeTeX-Handbuch, aber ich werde versuchen, die Dinge für eine Antwort etwas einzuschränken.
Wenn Sie einen Schriftnamen angeben, z. B. Times New Roman, wie in Ihrem ersten Beispiel, wo Sie
\setmainfont{Times New Roman}
dann wird XeTeX das Schriftarten-Dienstprogramm Ihres Systems verwenden, um die Schriftart zu suchen. Unter GNU/Linux ist dies normalerweise fontconfig
. XeTeX wird fragen: fontconfig
„Wo ist die Schriftart mit dem Namen «Times New Roman»?“ und fontconfig
etwa antworten wie „Sie befindet sich in .fonts/Times New Roman/Times New Roman.ttf
.“ Dann wird XeTeX mit dem Aufruf fortfahren xdvipdfm
, der die Schriftart aus dieser Datei lädt.
Wenn Sie anstelle eines Schriftnamens einen Dateinamen angeben, z. B. Times New Roman.ttf
, wie in
\setmainfont{Times New Roman.ttf}
Dann übergibt XeTeX sofort an das xdvipdfm
Dienstprogramm, um die Schriftart aus dieser Datei einzubinden, also entweder aus Times New Roman.ttf
dem aktuellen Verzeichnis oder über kpathsea
den texmf
Baum.
Es ist ratsam, Schriftarten als Systemschriftarten zu installieren, damit nicht mehrere Kopien einer Schriftart in Ihren Verzeichnissen herumliegen. Wenn dies aus irgendeinem Grund nicht möglich ist, sollten Sie die Schriftdateien neben Ihrem Dokument im selben Verzeichnis oder, wenn Sie viele Schriftarten verwenden, in einem Unterordner ablegen, der ausschließlich für Schriftarten vorgesehen ist. Sie können die Schriftarten dann über ihre relativen Pfade laden, wie in
\setmainfont{fonts/Times New Roman.ttf}
NB: Ich mag keine Leerzeichen in Dateinamen, da einige Softwareteile dazu neigen, abzubrechen, wenn sie nicht richtig maskiert werden.