Fontspec 帮助,组合字体

Fontspec 帮助,组合字体

我正在为字体选择而苦恼。我似乎无法理解这一点。

我正在开发一个使用 Latin Modern Roman、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。我知道这样做是错误的,但在 5 年多的时间里,我一直在尝试找出更好的方法,但从来没有成功过。

\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},原因请参阅第 4.1 节中的 Fontspec 文档。

此代码在我的系统上使用 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,我都能得到相同的结果:

在此处输入图片描述

另外两个注释可能有用。首先,Will Robertson 最近建议使用显式文件名,而不是“人类可读的”系统名称拖船三十九(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 所做的那样。 在此处输入图片描述

相关内容