定义较大文档内容的一致性检查

定义较大文档内容的一致性检查

我们很多人都遇到过这种情况:您正在撰写一篇较长的论文/提案/书籍,可能与多位写作风格或英语风格不同的作者合作,最终导致出现不一致的混乱或大量手动一致性检查。更糟糕的是:在您或其他人忘记您同意某些拼写后,您会一遍又一遍地重复这些操作...

在 latex/tex 中是否存在一种(足够简单的)方法可以让我定义几个常见的错误并搜索文档的整个“内容”,以便在发现时发出警告,甚至只是替换它们?

例如,我可以以某种方式在序言中放入类似的内容吗?

\warn{dataset}  % data set
\warn{pretrained}  % pre-trained
\warn{neighborhood}  % neighbourhood
\warn{home page}  % homepage
\warn{Fig.}  % Figure

% or even
\replace{dataset}{data set}
\replace{pretrained}{pre-trained}
\replace{neighborhood}{neighbourhood}
\replace{home page}{homepage}
\replace{Fig.}{Figure}

我知道我可以编写一个包含一些grep或的简单构建脚本sed(当我足够恼火的时候我已经这样做过了),但是现在我更喜欢一些可以在 sharelatex/overleaf 类似平台上运行的解决方案,所以从 latex 内部开始。

答案1

在 中pdfcsplain,有\mubyte \endmubyte一个已初始化的对,因此您的任务的解决方案非常简单:

\def\replace#1#2{\expandafter \mubyte \csname repl:#1\endcsname #1\endmubyte
   \expandafter\def \csname repl:#1\endcsname{#2}}

\replace{dataset}{data set}
\replace{pretrained}{pre-trained}
\replace{neighborhood}{neighbourhood}
\replace{home page}{homepage}
\replace{Fig.}{Figure}

Try dataset or home page.  % result: Try data set or homepage.

\bye

pdfcsplain请注意,当存在名为的文件latexmkrc且其内容为以下内容时,你可以在 Overleaf 中使用:

 $pdflatex = 'pdfcsplain %O %S';

编辑如果你明确需要 LaTeX 解决方案(问题不清楚),那么你可以pdflatex通过以下方式初始化格式

pdftex -ini -etex -enc pdflatex.ini

然后使用它:如果生成的文件pdflatex.fmt在当前目录中,那么您可以运行pdftex -fmt pdflatex document或简单地latex document。请注意生成格式时的选项:它使用提到的原语和-enc激活 pdfTeX 的 encTeX 扩展。您的问题的 LaTeX 示例可以是:\mubyte\endmubyte

\documentclass{article}

\def\replace#1#2{\expandafter \mubyte \csname repl:#1\endcsname #1\endmubyte
   \expandafter\def \csname repl:#1\endcsname{#2}}

\replace{dataset}{data set}
\replace{pretrained}{pre-trained}
\replace{neighborhood}{neighbourhood}
\replace{home page}{homepage}
\replace{Fig.}{Figure}

\mubytein=1

\begin{document}

Try dataset or home page.  % result: Try data set or homepage.

\end{document}

相关内容