我知道我可以像这样包含一部分代码文件:
\lstinputlisting[language=XML, firstline=37, lastline=45]{source_filename.xml}
但是如果我修改代码文件,行号就会改变。是否可以使用引用来指定第一行和最后一行?基本上我设想的是这样的:
\lstinputlisting[language=XML, firstline=\ref{tag-start}, lastline=\ref{tag-end}, escapeinside={@}{@}]{source_filename.xml}
文件中感兴趣的部分source_filename.xml
如下所示:
<MyTag><!-- @\label{tag-start}@ -->
...
</MyTag><!-- @\label{tag-end}@ -->
答案1
根据@Jubobs 的评论,我最终得到了以下结论:
LaTeX 文件
\lstset{
rangeprefix=<\!--\ ,
rangesuffix=\ -->,
includerangemarker=false
}
\lstinputlisting[language=XML, linerange=tag\-start-tag\-end]{source_filename.xml}
源文件名.xml
<!-- tag-start -->
<MyTag>
...
</MyTag>
<!-- tag-end -->
这是一个技巧,尽管我可能会将标记更改为不包含连字符。