我想在一个框()内放置一些复杂的命令(例如\section
和) ,以便以后我可以计算包含文本的块的高度。\chapter
\vbox
以下是完整示例:
\documentclass[11pt]{article}
\newsavebox{\samplebox}
\newcommand{\sampleboxcommand}[1]{
\savebox{\samplebox}{#1}
\usebox{\samplebox}
}
\begin{document}
\sampleboxcommand{
\section{Section X}
\subsection{Subsection Y}
}
\end{document}
但它给了我很多错误,例如:
Something's wrong--perhaps a missing \item. }
Missing } inserted. }
Too many }'s. }
我的代码有什么问题?如果我用一个简单的替换\savebox
和,一切都会顺利。\usebox
\vbox{#1}
答案1
尽管\vbox
问题中有,但您使用了\hbox
。章节标题不能在水平模式上下文中使用。
如果将垂直模式材料包裹起来,\vbox
那么它就可以正常工作。
\documentclass[11pt]{article}
\newsavebox{\samplebox}
\newcommand{\sampleboxcommand}[1]{%
\savebox{\samplebox}{\vbox{#1}}%
\noindent\usebox{\samplebox}%
}
\begin{document}
\sampleboxcommand{
\section{Section X}
\subsection{Subsection Y}
}
\end{document}