当 sbox 在序言中定义时,familydefault 被忽略

当 sbox 在序言中定义时,familydefault 被忽略

我想在序言中定义我的全局系列默认值。我还想在序言中定义我的保存框,但不知何故后者似乎与前者不兼容,因为它只是忽略了 sbox 中文本的系列默认值。当 sbox 在 \begin{document} 中定义时,它可以正常工作。

所以我的问题是:为什么这不起作用,我该怎么办?

\documentclass[11pt,a4paper]{scrartcl}
\usepackage[nopar]{lipsum}

\renewcommand{\familydefault}{\sfdefault} % set default font to cmss

\newsavebox{\testbox}
\sbox{\testbox}{
    Hello World!
}

\begin{document}
    \usebox{\testbox}\\
    \lipsum
\end{document}

答案1

改变宏不会改变任何字体,它只会在选择字体时改变默认字体,例如,您可以使用\normalfont

\documentclass[11pt,a4paper]{scrartcl}
\usepackage[nopar]{lipsum}

\renewcommand{\familydefault}{\sfdefault} % set default font to cmss
\normalfont
\newsavebox{\testbox}
\sbox{\testbox}{
    Hello World!
}

\begin{document}
    \usebox{\testbox}\\
    \lipsum
\end{document}

相关内容