我是一名 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 包的一些问题同样有用。