考虑 .tex 文件中的 latex 变音符号进行拼写检查

考虑 .tex 文件中的 latex 变音符号进行拼写检查

简而言之。我的问题是这样的:

.tex 文件的内容

Priorit"at is a german noun and means priority.

比较:\"a{\"a}

其结果是

Priorität is a german noun and means priority.

我的拼写检查器 (记事本++/w阿斯佩尔插件会报错,因为它不知道Prioritand 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

相关内容