自动代码列表行号

自动代码列表行号

我想自动化文档中的源代码示例。 Listing 非常接近于实现这一点,因为它允许指定开始和结束行号:

\lstinputlisting[firstline=300,lastline=500]{file.cc}

看:使用 \lstinputlisting 包含文件但仅包含某些行或行范围

然而,源代码往往是一个动态文档。我希望能够用某种类型的标签在注释中标记我的代码,EXAMPLE_BEGINEXAMPLE_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文档

相关内容