![使用 fontspec 为粗体和斜体指定不同的字体](https://linux22.com/image/241559/%E4%BD%BF%E7%94%A8%20fontspec%20%E4%B8%BA%E7%B2%97%E4%BD%93%E5%92%8C%E6%96%9C%E4%BD%93%E6%8C%87%E5%AE%9A%E4%B8%8D%E5%90%8C%E7%9A%84%E5%AD%97%E4%BD%93.png)
我用于 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 配合良好。
编辑:改为 ,\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 种指定的字体。