我尝试在 win 10 上将 latexdiff 与 texstudio 结合使用,但失败了。这是原始的 tex:
\documentclass{article}
\begin{document}
This is the draft.
\end{document}
这是修改后的文本:
\documentclass{article}
\begin{document}
This is the revision.
\end{document}
使用 latexdiff 的命令:
latexdiff draft.tex revision.tex > diff.tex
这是区别:
\documentclass{article}
%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{\DIFadd}[1]{{\protect\color{blue}\uwave{#1}}} %DIF PREAMBLE
\providecommand{\DIFdel}[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 END PREAMBLE EXTENSION ADDED BY LATEXDIFF
\begin{document}
This is the \DIFdelbegin \DIFdel{draft}\DIFdelend \DIFaddbegin \DIFadd{revision}\DIFaddend .
\end{document}
但我无法将此 tex 编译为 pdf。包含关键字“error”的错误日志:
! LaTeX Error: Missing \begin{document}.
The control sequence at the end of the top line of your error message was never \def'ed.
任何帮助都值得感激。提前谢谢您。
答案1
注意:为了方便查看,我在此答案中总结了我对这个问题的评论。
这似乎是latexdiff
在 Windows 上创建UTF-16 LE
编码文件而不是UTF-8
编码文件时出现的问题。要修复此问题,请在 TeXStudio 中创建一个新文件,然后将文本内容复制粘贴到新文件中,或latexdiff
使用 Windows 命令提示符或适用于 Linux 的 Windows 子系统 (WSL)。用于转换为 UTF-8 的 PowerShell 命令对我来说产生了奇怪的结果(请参阅链接问题中的评论)。也许图标处理得更好,但我可能会坚持latexdiff
在 WSL 中运行。请注意,我在 VS Code 中检查了编码。
还有GitHub 问题latexdiff
讨论这个问题。这个问题也在文件中作为 FAQ 正式讨论过https://github.com/ftilmann/latexdiff/pull/276/files。