为什么 \textit 与 \usebox 一起使用时没有产生预期的结果?

为什么 \textit 与 \usebox 一起使用时没有产生预期的结果?
\documentclass[border=3pt]{standalone}

\newsavebox\temp
\newenvironment{definition}
{\begin{lrbox}{\temp}}
{\end{lrbox}\textit{\usebox\temp}}

\begin{document}
\begin{definition}
Hello World!
\end{definition}
\end{document}

生成如下的正常字体,

在此处输入图片描述

为什么\textit在使用时没有产生预期的结果\usebox

答案1

因为\usebox是一个固定的实体,被锁定在混凝土中。它可以缩放,但其内容不能更改(除非从头开始重新定义它)。按照您的设置方式, 会\textit尝试在已经完成的框上工作。\textit需要进入框内。

\documentclass{article}

\newsavebox\temp
\newenvironment{definition}
{\begin{lrbox}{\temp}\begin{itshape}}
{\end{itshape}\end{lrbox}{\usebox\temp}}

\begin{document}
\begin{definition}
Hello World!
\end{definition}
\end{document}

相关内容