![familydefault игнорируется, если sbox определен в преамбуле](https://rvso.com/image/330749/familydefault%20%D0%B8%D0%B3%D0%BD%D0%BE%D1%80%D0%B8%D1%80%D1%83%D0%B5%D1%82%D1%81%D1%8F%2C%20%D0%B5%D1%81%D0%BB%D0%B8%20sbox%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%20%D0%B2%20%D0%BF%D1%80%D0%B5%D0%B0%D0%BC%D0%B1%D1%83%D0%BB%D0%B5.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}