![更改章节标题时出现 Latexdiff 错误](https://linux22.com/image/346693/%E6%9B%B4%E6%94%B9%E7%AB%A0%E8%8A%82%E6%A0%87%E9%A2%98%E6%97%B6%E5%87%BA%E7%8E%B0%20Latexdiff%20%E9%94%99%E8%AF%AF.png)
当我尝试对两个章节标题已更改的文档进行 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}}
。