Ich habe Probleme mit der Schriftartauswahl. Ich kriege das einfach nicht in den Griff.
Ich entwickle eine Dokumentklasse, die Latin Modern Roman, Trajan Pro und Trajan Pro Bold verwendet. Meine Anforderungen sind, die Trajan-Schriftarten auf Kapitälchen und fette Kapitälchen zu definieren und für alles andere LRM zu verwenden.
Ich kann nicht herausfinden, warum das Folgende [options]
einen Fehler verursacht oder wie ich ihn umgehen kann.
\documentclass[11pt]{article}
\usepackage{geometry} %for page layout
\geometry{hmargin={1in,1in},vmargin={0.75in,0.75in},marginparwidth={0.8in},marginparsep={0in}}
\usepackage{fontspec} %for xelatex unicode
\setmainfont{Latin Modern Roman}[
UprightFeatures = {SmallCapsFont=TrajanPro-Regular.otf},
BoldFeatures = {SmallCapsFont=TrajanPro-Bold.otf},
]
\begin{document}
Here is some {\bfseries\scshape Boldface SmallCaps} text
Here is some {\bfseries\uppercase{Boldface Uppercase}} text
Here is some {\bfseries Boldface} text
Here is some {\scshape SmallCaps} text
Here is some \uppercase{Uppercase} text
Here is some {Regular} text
\end{document}
Als Bearbeitung habe ich den folgenden Workaround-Code hinzugefügt, den ich seit fast 5 Jahren verwende. Das funktioniert einwandfrei. Überall, wo ich etwas eingeben wollte, \scshape
habe ich stattdessen einfach Folgendes eingegeben \sffamily
. Ich weiß, dass es falsch ist, das zu tun, aber in über 5 Jahren, in denen ich versucht habe, einen besseren Weg zu finden, ist mir das nie gelungen.
\RequirePackage{fontspec} %for xelatex unicode
\setmainfont{Latin Modern Roman}
% BoldFont = ⟨font name⟩
% ItalicFont = ⟨font name⟩
% BoldItalicFont = ⟨font name⟩
% SlantedFont = ⟨font name⟩
% BoldSlantedFont = ⟨font name⟩
% SmallCapsFont = ⟨font name⟩
\setsansfont{TrajanPro-Regular.otf}[
BoldFont=TrajanPro-Bold.otf
% ItalicFont = ⟨font name⟩
% BoldItalicFont = ⟨font name⟩
% SlantedFont = ⟨font name⟩
% BoldSlantedFont = ⟨font name⟩
% SmallCapsFont = ⟨font name⟩
]
Noch eine Änderung: LRM ist eine systeminstallierte Schriftart, die Trajan-Schriftarten sind zwei Dateien, die ich mit meinen Projekten im Stammverzeichnis aufbewahre. Ich möchte sie gerne in einen Schriftartenordner im Stammverzeichnis legen können, aber eins nach dem anderen.
Antwort1
Ich habe Trajan-Pro nicht, also habe ich es durch etwas anderes ersetzt, das sich offensichtlich von LMR (TexGyreHeros) unterscheidet.
\documentclass[11pt]{article}
\usepackage{geometry} %for page layout
\geometry{hmargin={1in,1in},vmargin={0.75in,0.75in},marginparwidth={0.8in},marginparsep={0in}}
\usepackage{fontspec} %% running under LuaLaTeX
\setmainfont{Latin Modern Roman}[
SmallCapsFeatures={Letters=SmallCaps}, % <=== See Section 4.1 of Fontspec documentation.
UprightFeatures = {SmallCapsFont=texgyreheros-regular.otf},
BoldFeatures = {SmallCapsFont=texgyreheros-bold.otf},
]
\begin{document}
Here is some {\bfseries\scshape Boldface SmallCaps} text
Here is some {\bfseries\uppercase{Boldface Uppercase}} text
Here is some {\bfseries Boldface} text
Here is some {\scshape SmallCaps} text
Here is some \uppercase{Uppercase} text
Here is some {Regular} text
\end{document}
Die einzige vorgenommene Änderung besteht im Hinzufügen der Zeile SmallCapsFeatures={Letters=SmallCaps},
aus den in der Fontspec-Dokumentation in Abschnitt 4.1 beschriebenen Gründen.
Dieser Code funktioniert auf meinem System unter LuaLaTeX, aber nicht unter XeLaTeX – vielleicht, weil ich LMR nicht als Systemschriftart installiert habe; für LuaLaTeX ist LMR die Standardschriftart. Um diese Idee zu testen, ersetzt der folgende Code LMR durch eine meiner Systemschriftarten (TeX Gyre Termes):
%% using the free Tex Gyre fonts, which I have installed as system fonts
\setmainfont{TeXGyreTermesX}[
SmallCapsFeatures={Letters=SmallCaps}, % <=== See Section 4.1 of Fontspec documentation.
UprightFeatures = {SmallCapsFont=texgyreheros-regular.otf},
BoldFeatures = {SmallCapsFont=texgyreheros-bold.otf},
]
Mit dieser Änderung erhalte ich für LuaLaTeX oder XeLaTeX dasselbe Ergebnis:
Zwei zusätzliche Hinweise können hilfreich sein. Erstens hat Will Robertson kürzlich empfohlen, explizite Dateinamen anstelle der „menschenlesbaren“ Systemnamen zu verwendenSchlepper39(2018). Zweitens SmallCapsFeatures
kann es in die anderen Funktionen eingebettet werden, sodass Sie zusätzliche Kontrolle über die Schriftgröße „Aufrecht“ oder „Fett“ haben:
\setmainfont{texgyretermes}[
Extension = {.otf},
UprightFont = {*-regular},
ItalicFont = {*-italic},
BoldFont = {*-bold},
BoldItalicFont = {*-bolditalic},
UprightFeatures = {SmallCapsFont=texgyreheros-regular.otf, SmallCapsFeatures={Letters=SmallCaps, Color=992211}},
BoldFeatures = {SmallCapsFont=/Users/John/Library/Fonts/FiraGO-Heavy.otf, SmallCapsFeatures={Letters=SmallCaps, Color=112299}, Color = FF4422},
]
Sie können den vollständigen Pfad zu Ihren Trajan-Pro-Schriftdateien angeben, wie ich es beispielsweise hier für FiraGO-Heavy getan habe.