![프리앰블에 sbox가 정의되면 familydefault가 무시됩니다.](https://rvso.com/image/330749/%ED%94%84%EB%A6%AC%EC%95%B0%EB%B8%94%EC%97%90%20sbox%EA%B0%80%20%EC%A0%95%EC%9D%98%EB%90%98%EB%A9%B4%20familydefault%EA%B0%80%20%EB%AC%B4%EC%8B%9C%EB%90%A9%EB%8B%88%EB%8B%A4..png)
서문에서 전역 가족 기본값을 한 번 정의하고 싶습니다. 또한 서문에서 저장 상자를 정의하고 싶지만 후자가 전자와 작동하지 않는 것 같습니다. 단순히 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}