我正在使用latexdiff
一个使用该listings
包的文件,更具体地说是它的lstMakeShortInline
宏,它允许以简洁的方式编写内联代码。如果我从以下orig.tex
文件开始:
\documentclass{standalone}
\usepackage{listings}
\lstset{basicstyle=\tt}
\lstMakeShortInline"
\begin{document}
Test short inline: "this is a listing"
\end{document}
并想要进行差异分析new.tex
(包含一个带有简短形式的内联列表的新行):
\documentclass{standalone}
\usepackage{listings}
\lstset{basicstyle=\tt}
\lstMakeShortInline"
\begin{document}
Test short inline: "this is a listing"
Test short inline: "this is another listing"
\end{document}
然后latexdiff orig.tex new.tex | pdflatex -jobname=diff
就会报错:
*! Argument of \lst@temp has an extra }.
<inserted text>
\par
<*> }
\DIFaddend\end{document}
?
\lstinline
如果我使用而不是快捷方式,情况就不会如此"
,因此一个粗略的解决方法是使用 形式的过滤器sed -e 's/"\([^"]*\)"/\\lstinline"\1"/g'
,但这似乎有点脆弱(即使它在我的实际用例中起到了作用)。 有没有更好的选择?