我在使用该软件包时遇到了麻烦listings
。我无法通过编译以下最小示例pdfLaTeX
:
\documentclass[a4paper, 11pt, twoside, openright, english]{memoir}
\usepackage{listings}
\newenvironment{haskellCode}
{%
\begin{lstlisting}%
}
{%
\end{lstlisting}%
}
\begin{document}
\begin{haskellCode}
test
\end{haskellCode}
\end{document}
编译过程就停止了,并要求我输入:
* <The hell? I'll just try pressing ENTER then...>
(Please type a command or say `\end')
*
但是如果我将代码haskellCode
直接移入文档(即lstlisting
直接使用),它可以很好地编译。
知道发生了什么事以及如何解决吗?
答案1
该lstlisting
环境在很多方面与环境相似verbatim
,并且 TeX 必须明确“看到”\end{lstlisting}
才能知道它已完成。
解决方案是使用\lstnewenvironment
:
\lstnewenvironment{haskellCode}{}{}
就是您所需要的;当然,您可以向“开始”和“结束”部分添加许多自定义内容。