简而言之。我的问题是这样的:
.tex 文件的内容
Priorit"at is a german noun and means priority.
比较:\"a
或{\"a}
其结果是
Priorität is a german noun and means priority.
我的拼写检查器 (记事本++/w阿斯佩尔插件会报错,因为它不知道Priorit
and at
。它似乎无法识别整个单词。
我想自动化拼写检查过程,因为我有一定数量的包含变音符号的 .tex 文件。
答案1
如果你把
\usepackage[utf8]{inputenc}
在您的序言中,您可以在文件中直接使用变音符号等。我已经很久.tex
没有使用变音符号了——我只是直接在文件中书写。\"a
ä
.tex
笔记。在 BibTeX 文件中,您应该恢复为\"a
,原因如下:如何在参考书目中书写“ä”及其他变音符号和重音字母?
答案2
我不满意,但这是我的初步解决方案
cd sources/
echo `find . -name '*.tex' -exec cat {} +` | sed -e 's/"u/ü/g; s/"U/Ü/g; s/"a/ä/g; s/"A/Ä/g; s/"o/ö/g; s/"O/Ö/g; s/"s/ß/g' -e "s/\\\'{e}/é/g" >> all
aspell -t -c all
但是当以aspell
交互方式更正文件时,您必须将更改转移到原始.tex
文件。
编辑
您可以使用以下命令获取所有拼写错误的列表
echo `find . -name '*.tex' -exec cat {} +` | sed -e 's/"u/ü/g; s/"U/Ü/g; s/"a/ä/g; s/"A/Ä/g; s/"o/ö/g; s/"O/Ö/g; s/"s/ß/g' -e "s/\\\'{e}/é/g" | cat | aspell -t list
答案3
以下 LaTeXspellcheck.sh bash 脚本可能会有所帮助,因为它会自动替换典型的 \"u 或 {\ss} 变音符,以便 aspell 正常工作。拼写检查后,修订后的文件将被翻译回 \"u 格式并与原始文件进行比较。在这里,可以使用 [space] 单独接受所有更改,也可以使用 [CTL-A] 一起接受所有更改。[CTL-S] 保存更改。
请注意,“kompare”的调用只是检查所有翻译是否正确。如果您确信这一点,原始文件可能会被替换,但风险自负。
/bin/bash #!/bin/bash #用法:LaTeXspellcheck.sh de_DE LaTeXdatei.tex #用法:LaTeXspellcheck.sh en_US LaTeXfile.tex #在临时文件夹中创建两个临时文件,并用脚本的名称标记它们 skriptname=`basename“$0”` 脚本名称OhneEndung=${脚本名称%.*} tempfile="${XDG_RUNTIME_DIR}/${skriptnameOhneEndung}.temp" rm -f $临时文件 触摸$tempfile tempfilezwo="${XDG_RUNTIME_DIR}/${skriptnameOhneEndung}.temp2" rm -f $tempfilezwo 触摸$tempfilezwo #将 LaTeX 中的变音符号翻译为正常符号 cat $2 | sed 's/\\"a/ä/g' | sed 's/\\"o/ö/g' | sed 's/\\"u/ü/g' | sed 's/\\"A/Ä/g' | sed 's/\\"O/Ö/g' | sed 's/\\"U/Ü/g' | sed 's/{\\ss}/ß/g' | sed 's/\\-//g' > $tempfile #拼写检查并将结果写回临时文件 aspell-t-l$1-c$tempfile #将变音符号从正常符号转换为 LaTeX 符号,并将它们保存在第二个临时文件中 cat $tempfile | sed 's/ä/\\"a/g' | sed 's/ö/\\"o/g' | sed 's/ü/\\"u/g' | sed 's/Ä/\\"A/g' | sed 's/Ö/\\"O/g' | sed 's/Ü/\\"U/g' | sed 's/ß/{\\ss}/g' > $tempfilezwo #将结果与原始文件进行比较 #仅用于检查所有翻译是否正确 #使用空格单独接受更改或使用 CTL-A 一起接受所有更改。 #最后使用 CTL-S 保存更改 比较 $tempfilezwo $2