Fontspec 幫助,組合字體

Fontspec 幫助,組合字體

我在字體選擇方面遇到了困難。我似乎無法理解這一點。

我正在開發一個文檔類,它使用拉丁現代羅馬、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},
]

您可以提供 Trajan-Pro 字體檔案的完整路徑,例如,正如我在這裡為 FiraGO-Heavy 所做的那樣。 在此輸入影像描述

相關內容