
Я хотел бы определить свое глобальное значение по умолчанию для семейства один раз в преамбуле. Я также хотел бы определить свои поля сохранения в преамбуле, но почему-то последнее не работает с первым, так как оно просто игнорирует значение по умолчанию для семейства для текста в 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}