我在字體選擇方面遇到了困難。我似乎無法理解這一點。
我正在開發一個文檔類,它使用拉丁現代羅馬、Trajan Pro 和 Trajan Pro Bold。我的需求是將 Trajan 字體定義為小型大寫字母和粗體小型大寫字母,同時使用 LRM 處理其他內容。
我無法弄清楚為什麼以下[options]
會導致錯誤,或如何解決它。
\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}
作為編輯,我圍繞著我已經使用了近 5 年的程式碼添加了以下工作。這很好用。我想輸入的所有地方\scshape
我都直接輸入了\sffamily
。我知道這樣做是錯的,但在五年多的時間裡我一直在嘗試找出更好的方法。
\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⟩
]
作為另一項編輯,LRM 是系統安裝的字體,Trajan 字體是我與專案一起保存在根目錄中的兩個檔案。我希望能夠將它們放入根目錄內的字體資料夾中,但一次一步。
答案1
我沒有 Trajan-Pro,所以我用其他東西代替了與 LMR (TexGyreHeros) 明顯不同的東西。
\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}
所做的一項變更是新增這一行,SmallCapsFeatures={Letters=SmallCaps},
原因在 Fontspec 文件第 4.1 節中討論。
這段程式碼在我的系統上運行 LuaLaTeX,但不能運行在 XeLaTeX 下——也許是因為我沒有安裝 LMR 作為系統字體;對於 LuaLaTeX,LMR 是預設字體。為了測試這個想法,以下程式碼將我的系統字體之一替換為 LMR (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},
]
透過此更改,我對 LuaLaTeX 或 XeLaTeX 得到相同的結果:
另外兩個註釋可能會有所幫助。首先,威爾·羅伯遜最近建議使用明確文件名,而不是“人類可讀”的系統名稱拖船39(2018)。其次,SmallCapsFeatures
可以嵌入到其他功能中,以便您對直立或粗體有額外的控制:
\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},
]