更改章节标题时出现 Latexdiff 错误

更改章节标题时出现 Latexdiff 错误

当我尝试对两个章节标题已更改的文档进行 latexdiff 输出编译时,出现以下错误:

! Missing number, treated as zero.
<to be read again> 
\protect 
l.1 ...DIFadd{S}\DIFaddend }

我尝试给出一个最小的例子,但是这次错误出现在不同的地方,所以我可能删除了一些重要的东西:

%DIF LATEXDIFF DIFFERENCE FILE
%DIF DEL kniha.tex      Mon Dec 26 22:18:16 2016
%DIF ADD ../kniha.tex   Mon Dec 26 20:26:53 2016
\documentclass[12pt,a4paper,oneside,openany]{book}

\usepackage[unicode,colorlinks,ocgcolorlinks,breaklinks]{hyperref}

%DIF PREAMBLE EXTENSION ADDED BY LATEXDIFF
%DIF UNDERLINE PREAMBLE %DIF PREAMBLE
\RequirePackage[normalem]{ulem} %DIF PREAMBLE
\RequirePackage{color}\definecolor{RED}{rgb}{1,0,0}\definecolor{BLUE}{rgb}{0,0,1} %DIF PREAMBLE
\providecommand{\DIFaddtex}[1]{{\protect\color{blue}\uwave{#1}}} %DIF PREAMBLE
\providecommand{\DIFdeltex}[1]{{\protect\color{red}\sout{#1}}}                      %DIF PREAMBLE
%DIF SAFE PREAMBLE %DIF PREAMBLE
\providecommand{\DIFaddbegin}{} %DIF PREAMBLE
\providecommand{\DIFaddend}{} %DIF PREAMBLE
\providecommand{\DIFdelbegin}{} %DIF PREAMBLE
\providecommand{\DIFdelend}{} %DIF PREAMBLE
%DIF FLOATSAFE PREAMBLE %DIF PREAMBLE
\providecommand{\DIFaddFL}[1]{\DIFadd{#1}} %DIF PREAMBLE
\providecommand{\DIFdelFL}[1]{\DIFdel{#1}} %DIF PREAMBLE
\providecommand{\DIFaddbeginFL}{} %DIF PREAMBLE
\providecommand{\DIFaddendFL}{} %DIF PREAMBLE
\providecommand{\DIFdelbeginFL}{} %DIF PREAMBLE
\providecommand{\DIFdelendFL}{} %DIF PREAMBLE
%DIF HYPERREF PREAMBLE %DIF PREAMBLE
\providecommand{\DIFadd}[1]{\texorpdfstring{\DIFaddtex{#1}}{#1}} %DIF PREAMBLE
\providecommand{\DIFdel}[1]{\texorpdfstring{\DIFdeltex{#1}}{}} %DIF PREAMBLE
%DIF END PREAMBLE EXTENSION ADDED BY LATEXDIFF

\begin{document}

\pagenumbering{alpha}

\chapter{\DIFdelbegin \DIFdel{P}\DIFdelend \DIFaddbegin \DIFadd{S}\DIFaddend }

\end{document}

当我删除页码行时,错误消失。这是怎么回事?

我应该怎么做才能让 latexdiff 生成正确的文档?

答案1

我仍然不知道上面的例子发生了什么,但在我原来的问题中,解决方案是改变

\titleformat{\chapter}[hang]
%{\normalfont\huge\bfseries\raggedright}{}{0pt}{\thechapter/ }
{\huge\bfseries\raggedright}{\thechapter/ }{0pt}{}

\titleformat{\chapter}[hang]{\huge\bfseries\raggedright}{\thechapter/ }{0pt}{}

我还是不明白为什么前者不适用于--allow-spaces。 为什么前一个版本适用于没有改变章节标题的差异(虽然还有其他变化,但我可能忽略了一些重要的东西)。

答案2

我有类似这样的事情:\subsection{\DIFadd{Experimental results added}},然后 MiKTeX 出现错误。

我将其改为这样:\section*{\DIFadd{Experimental results added}}\subsection*{\DIFadd{Experimental results added}},那么就可以了,但没有章节编号。

于是我再次将其更改:\section[]{\DIFadd{Experimental results added}}\subsection[]{\DIFadd{Experimental results added}}

相关内容