我想自动化文档中的源代码示例。 Listing 非常接近于实现这一点,因为它允许指定开始和结束行号:
\lstinputlisting[firstline=300,lastline=500]{file.cc}
看:使用 \lstinputlisting 包含文件但仅包含某些行或行范围
然而,源代码往往是一个动态文档。我希望能够用某种类型的标签在注释中标记我的代码,EXAMPLE_BEGIN
并EXAMPLE_END
以此定义列表的界限。
如果当前软件包无法实现这一点,我并不反对编写一个可以实现这一点的软件包。如果是这样,有没有好的起点?(例如修改列表?修改 Minted?使用宏进行解析?)
答案1
引自listings
文档:。
除了使用
linerange
行号,还可以使用文本标记。每个这样的标记由 、 和 组成。您可以定义一次(或多次)前缀和后缀,然后使用标记文本代替行号。
\documentclass{article}
\usepackage{filecontents}
\usepackage{listings}
\begin{filecontents*}{livingdocument.txt}
Here some text which will not be included
EXAMPLE_BEGIN
1. All these texts will be included
2. All these texts will be included
3. All these texts will be included
EXAMPLE_END
Here some text as well which will not be included
\end{filecontents*}
\begin{document}
\lstinputlisting[linerange=EXAMPLE\_BEGIN-EXAMPLE\_END,includerangemarker=true]{livingdocument.txt}
\end{document}
(这些转变必须来自默认语言设置。)
有关详细信息,请参阅第 6.8 节“多列列表”listings
文档。