我正在尝试将 C++ 源代码文件中的文档提取到 LaTeX 中。使用提取代码\lstinputlisting
很简单。我遇到的问题是如何正确地从注释中提取文本。
目前我有这样的代码:
/*
//TAG_START
This is some text.
This is some more text.
//TAG_END
*/
我是\lstinputlisting
这样使用的:
\lstinputlisting[linerange=//TAG_START-//TAG_END, language={}, numbers=none, frame=none, includerangemarker=false, breakindent=0pt]{file.cpp}
这种方法可行,但也存在一些问题。
- 它以预格式化的字体输出,对于源代码来说看起来不错,但对于常规文档文本来说则不是。
- 它在输出中保留换行符和缩进,所以我的文本最终看起来很奇怪。
输出内容如下:
但我希望它看起来像这样:
这是我在 .tex 文件中输入的文本,这与文档的其余部分很好地匹配。
我对 LaTeX 没有太多经验,所以也许有更好的方法来实现我想要的效果\lstinputlisting
,如果不使用,我将不胜感激。
答案1
你看过捕捉标签之间的文件? 它似乎能够完成您要查找的操作,但无需使用 \lstinputlisting。
\documentclass[11pt]{article}
\usepackage{catchfilebetweentags} % load the package
\newcommand{\loadFigure}[1]{ % define command to load figures
\ExecuteMetaData[figures.tex]{#1} % call the package macro to load chunk from file
}
\begin{document}
\loadFigure{fig:01} % load figure with tags id: fig:01
\loadFigure{fig:02} % load figure with tags id: fig:02
\end{document}
然后您可以使用标签:
%<*tagID>
...LaTeX code...
%</tagID>
这里有一篇博客文章解释了其用法。
https://texblog.org/2012/12/04/keeping-things-organized-in-large-documents/