如何使标题在新定义的监听环境中可见?

如何使标题在新定义的监听环境中可见?

我有一个lstenvironment像这样的新定义:

\lstnewenvironment{xml}
{\lstset{language=xml, basicstyle=\ttfamily, frame=single, captionpos=b}}
{}

然后我想在我的代码中应用它:

\begin{xml}[label=base,caption=A configuration XML file.]
<?xml version="1.0" encoding="UTF-8" ?>
<config>
    <connecting>
        <url>something</url>
        <user>username</user>
        <password>password</password>
    </connecting>
</config>
\end{xml} 

在输出中,我期望标题打印在列表底部,但事实并非如此。有什么建议吗?我需要在其中添加更多内容吗\lstset

答案1

您对环境的定义xml需要一个可选参数。

\documentclass{article}

\usepackage{listings}
\lstnewenvironment{xml}[1][]
{\lstset{language=xml, basicstyle=\ttfamily, frame=single, captionpos=b,#1}}
{}
\begin{document}
\begin{xml}[label=base,caption=A configuration XML file.]
<?xml version="1.0" encoding="UTF-8" ?>
<config>
    <connecting>
        <url>something</url>
        <user>username</user>
        <password>password</password>
    </connecting>
</config>
\end{xml}
\end{document}

相关内容