我在 中有一些emph
斜体字母\textbf{}
,即\textbf{\emph{abc}}
,以粗体斜体形式显示这些字母。但是,文本只是变成斜体,而不是粗体斜体。\emph
当我必须\emph
在 中使用 时,如何重新定义以获得粗体斜体字母\textbf{}
?
我还必须使用XeLaTeX
和fontspec
。
平均能量损失
\documentclass[
a4paper]{article}
\usepackage{fontspec}
\setmainfont[Scale = MatchUppercase,BoldFont = Libertinus Sans Bold]{Libertinus Serif}
\setsansfont[Scale = MatchUppercase,BoldFont = LinBiolinum_RB.otf,ItalicFont = LinBiolinum_RI.otf,BoldItalicFont = LinBiolinum_RBO.otf]{LinBiolinum_R.otf}
\begin{document}
I want to make \textbf{\emph{abc}} bold italic,
like
{\sffamily\bfseries\emph{abc}}.
\end{document}
我的环境中的 MWE 输出
答案1
问题中的示例对于我来说使用 LuaLaTeX 时可以按原样运行,但使用 XeLaTeX 时会引发错误(dvipdfmx:fatal: Invalid font: -1 (1)
)。
根据我的经验,使用文件名而不是字体名加载文件通常更可靠。
因此,如果我们复制你在 Biolinum 中为\setsansfont
Libertinus 所做的工作,\setmainfont
我们最终会得到
\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont[
Scale = MatchUppercase,
BoldFont = LibertinusSerif-Bold.otf,
ItalicFont = LibertinusSerif-Italic.otf,
BoldItalicFont = LibertinusSerif-BoldItalic.otf,
]{LibertinusSerif-Regular.otf}
\setsansfont[
Scale = MatchUppercase,
BoldFont = LinBiolinum_RB.otf,
ItalicFont = LinBiolinum_RI.otf,
BoldItalicFont = LinBiolinum_RBO.otf,
]{LinBiolinum_R.otf}
\begin{document}
I want to make \textbf{\emph{abc}} \textbf{bold} \textit{italic},
like
{\sffamily\bfseries\emph{abc}}.
\end{document}
与 XeLaTeX 和 LuaLaTeX 配合良好