프리앰블에 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}

관련 정보