包裹乳胶环境

包裹乳胶环境

我是一名 Latex 新手。我的文档中有一些编程代码,我使用软件包列表中的 lstlisting 环境对其进行格式化。

然而,当放置在页面末尾附近时,这仍然允许代码段被分成两部分。

为了解决这个问题,我还在代码中使用了图形环境。这会导致经常重复出现的模式:

\begin{figure}[H]
\begin{lstlisting}
..code..
\end{lstlisting}
\end{figure}

我该如何为这个模式定义一个新的环境?我试过:

\newenvironment{mylisting}
{
\begin{figure}[H]
\begin{lstlisting}
}
{
\end{lstlisting}
\end{figure}
}

然而使用这个环境到处都出现错误。

答案1

问题是,为了以非 LaTeX 方式listings评估环境内容,该包需要对 LaTeX 的内部结构进行各种更改。特别是,它关闭了以 开头的控制序列的扩展,因此环境的最终代码会直接传递。lstlisting\mylisting

如果你只想在浮动列表中列出,你可以这样做

\begin{lstlisting}[float=h]
...
\end{lstlisting}

你可能会发现关于 TeX SE 上的 listings 包的一些问题同样有用。

相关内容