奇怪的列表、小页面和新命令交互

奇怪的列表、小页面和新命令交互

我喜欢定义以下命令:

\newcommand{\page}[2]{\begin{minipage}{#1\textwidth} #2 \end{minipage}}

这样我就可以做类似的事情

\page{0.1}{blabla}\page{0.3}{lalala}

我最近发现了这个包裹listings,并注意到了一个非常奇怪的互动。

此代码不会触发任何错误:

\begin{minipage}{0.5\textwidth}
\begin{lstlisting}  
    bla bla
\end{lstlisting}
\end{minipage}

但是这个 :

\page{0.5}{
\begin{lstlisting}  
    bla bla
\end{lstlisting}
}

抛出:Emergency stop. [...] job aborted, no legal \end found

我必须说我很困惑,因为我看不出这两者之间有什么区别。

答案1

如果您直接使用原始命令(或)定义我们的\page宏,那么您将不会遇到参数内的逐字环境的问题:\vtop\vbox\page

\documentclass{article}

\def\page#1{\vtop\bgroup \hsize=#1\hsize \let\next}

\begin{document}

\page{0.5}{
\begin{verbatim}
bla bla
\end{verbatim}
}

\end{document}

相关内容