使用 fontspec 为粗体和斜体指定不同的字体

使用 fontspec 为粗体和斜体指定不同的字体

我用于 LuaLaTeX 文档的主要字体缺少粗体和斜体变体。我想使用该fontspec包为这些变体指定不同的字体。

我最初在序言中是这样的:

\usepackage{fontspec}
\setmainfont{GFS Elpis}
\setmonofont{Courier}

为了使用不同的字体来表示斜体和粗体,比如 Minion Pro,我尝试在上面显示的行之后的序言中放入以下行:

\fontspec[BoldFont={Minion Pro}, ItalicFont={Minion Pro}]{GFS Elpis}

不幸的是,它似乎没有任何效果。文档中的斜体和粗体段落仍保持直立字体。

有人能帮我解决这个问题吗?

答案1

如果声明粗体/斜体/粗斜体形状,则需要具体说明,因为 fontspec 不会自动扩展字体名称:

\documentclass{article}
\usepackage{fontspec}
\setmainfont[
 BoldFont={Minion Pro Bold}, 
 ItalicFont={Minion Pro Italic},
 BoldItalicFont={Minion Pro Bold Italic}
 ]{Linux Libertine O}

\begin{document}
normal \emph{italic}, \textbf{bold} and \textbf{\emph{bold italic}}.
\end{document}

与 Minion/Linux Libertine O 配合良好。

带有 Linux Libertine O 和 minion 的示例图像

编辑:改为 ,\setmainfont以便\fontspec有一个正确且好的示例。感谢 Ulrike 指出这一点。

答案2

不要使用\fontspec。这是一个本地更改为另一种字体的命令,如果切换字体,其设置将丢失。如果您想设置整个文档字体,则应使用可选参数\setmainfont

\documentclass{article}
\usepackage{fontspec}
\setmainfont[ItalicFont=Arial]{Linux Libertine O}
\begin{document}

abc {\itshape abc}
\end{document}

答案3

对我来说,这在 Overleaf 上使用 XeLaTex 编译器和 Minion Pro 字体作为文件上传时效果最好.otf

\usepackage{fontspec}
\setmainfont{MinionPro-Regular.otf}[
   BoldFont       = MinionPro-Bold.otf,
   ItalicFont     = MinionPro-It.otf,
   BoldItalicFont = MinionPro-BoldIt.otf
]

注意:我的 overleaf 项目的顶层(所以不在文件夹内)有 4 种指定的字体。

来源:https://texdoc.org/serve/fontspec/0

相关内容