\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}