让 fontspec 自动处理粗体字体

让 fontspec 自动处理粗体字体

我最近安装了一种名为等宽字体 821。字体是 ttf 格式的,我像往常一样在 Linux 机器上安装它。

问题是当我使用

\textbf{Bold}

生成的文本未以粗体打印。为了获得粗体,我使用以下解决方法:

\newfontfamily\mybold{Monospace821BTBold}
\newcommand{\mytextbf}[1]{\mybold #1}

我的问题是:这是正常的吗?或者有没有办法在使用时自动获取粗体字体\textbf{...}

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}
\newfontfamily\monobt{Monospace821BT}
\newfontfamily\mybold{Monospace821BTBold}
\newcommand{\mytextbf}[1]{\mybold #1}
\begin{document}

{\monobt \textbf{this is not bold}}

\mytextbf{this is bold}
\end{document}

等宽字体不用作tt字体,我已设置另一种字体,\setmonofont{...}因此无法将 Monospace 821 放在那里。

答案1

如果fontspec无法找到与中等系列字体相关的粗体字体,您也可以使用正常选项\newfontfamily

\newfontfamily{\monobt}{Monospace821BT}[
  BoldFont={Monospace821BTBold}
]

进而

{\monobt\textbf{This is bold}}

应该管用。

请注意,选项应该字体名称与旧版本的fontspec

相关内容