我有一个小问题,我想在其中插入一个LaTeX文档的svn diff 另一个LaTeX文档,目标是显示自修订版XXX以来发生的变化。 但是由于diff包含很多LaTeX命令,因此我不能将它直接包含在文档中,因为LaTeX会将它们交错,而不仅仅是“打印”它们。
今天我在Makefile中有这个
DIFF_INFO=diff.info.tex
DIFF_REV=167
diffinfo:
$(shell echo "\n" > $(DIFF_INFO) )
$(shell echo "\\section{diff $(DIFF_REV)} \n" >> $(DIFF_INFO) )
$(shell echo \\\\begin{verbatim} >> $(DIFF_INFO) )
$(shell svn diff --revision $(DIFF_REV) $(N).tex >> $(DIFF_INFO) )
$(shell echo \\\\end{verbatim} >> $(DIFF_INFO) )
在LaTeX文档的最后我有这个:
\IfFileExists{diff.info.tex}
{
\newpage
\input{diff.info.tex}
}
但这很难实现!
我的下一个想法是编写一个perl脚本,用LaTeX可以显示的内容替换所有无效字符,但感觉我冒着重新发明轮子的风险,所以我想我可以问一个人是否有更好的主意?
如何在文档中包含和显示LaTeX代码?
由于 约翰
更新: 感谢“未知(谷歌)”指出逐字,它做了我想要的。
更新: 我看起来也应该尝试las3rjock告诉我们的那些列表,因为它看起来很不错。
更新: 无法让我的案例中的列表工作,我得到一些关于无效字符的奇怪的警告。但是逐字逐句是有效的,所以这次我会用这种方式。
答案 0 :(得分:12)
我第二次提到Boojum,建议您使用listings包来回答另一个答案。对于LaTeX代码清单,我使用了在AndréMiede的classicthesis包中找到的设置。这是一个示例文档(quine.tex
)及其输出:
\documentclass[12pt,letterpaper]{article}
\usepackage{listings}
\usepackage[usenames,dvipsnames]{color}
% listings settings from classicthesis package by
% Andr\'{e} Miede
\lstset{language=[LaTeX]Tex,%C++,
keywordstyle=\color{RoyalBlue},%\bfseries,
basicstyle=\small\ttfamily,
%identifierstyle=\color{NavyBlue},
commentstyle=\color{Green}\ttfamily,
stringstyle=\rmfamily,
numbers=none,%left,%
numberstyle=\scriptsize,%\tiny
stepnumber=5,
numbersep=8pt,
showstringspaces=false,
breaklines=true,
frameround=ftff,
frame=single
%frame=L
}
\begin{document}
\lstinputlisting{quine.tex}
\end{document}
答案 1 :(得分:7)
您可以使用verbatim
包含\usepackage{verbatim}
个包,并使用\verbatiminput{
文件名}
进行访问。