我有一个小问题,我想将 LaTeX 文档的 svn diff 插入到
另一个 LaTeX 文档,目标是显示自修订版 XXX 以来发生的变化。
但是,由于差异包含大量 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 告诉我们的列表,因为它看起来不错。
更新 :
无法让列表在我的情况下工作,我收到一些关于无效字符的奇怪 utf 警告。但是逐字逐句地工作,所以这次我将使用这种方式。
最佳答案
我在对另一个答案的评论中支持 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}
关于latex - 如何在 LaTeX 文档中显示 LaTeX 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1386343/