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

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

我想整理一个 TeX 文档,并且好奇您是否可以使用\lstinputlisting或类似的功能来包含源代码文件的某个部分。

例如,我有一个大约 500 行的源文件,我只想包含第 300 至 400 行。

有没有办法做到这一点?

答案1

每个“列表”环境都了解firstlinelastline键:

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

答案2

listings 不仅支持 和 的行范围firstlinelastline参见 egregs 的回答),甚至还支持 的行范围linerange={<first1>-<last1>,<first2>-<last2> …}。请注意,first2必须大于 等等last1。所以

\lstinputlisting[linerange={1-4,7-9}]{file.cc}

是有效的,但是

\lstinputlisting[linerange={7-9,1-4}]{file.cc}% Don't do this!!!

不允许!

有关详细信息,请参阅第 4.3.3 节“打印范围”。清单手册

答案3

作为 egreg 答案的附录:如果您正在排版行号并希望这些数字反映物理行号,那么关键firstnumber在于帮助您:

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

相关内容