Problem bei der Verwendung von .ttf-Schriftarten mit XeLaTeX

Problem bei der Verwendung von .ttf-Schriftarten mit XeLaTeX

Ich habe einige .ttfSchriftarten, ~/Library/Fontsdie 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.ttfist 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 fontconfigetwa 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 xdvipdfmDienstprogramm, um die Schriftart aus dieser Datei einzubinden, also entweder aus Times New Roman.ttfdem aktuellen Verzeichnis oder über kpathseaden texmfBaum.

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.

verwandte Informationen