我正在通过消除系统中的所有技术缺陷来调试我的 tex 文件。我在 Tex 社区的文档中找不到任何错误这里和我自己,所以我认为可能有一些非 ASCII 字符使情况变得复杂pdflatex
。我和我的朋友不理解的 LaTeX 警告示例,因为我们不了解其起源
Underfull \hbox (badness 1019) in paragraph at lines 4--10
\T1/lmr/m/n/12 (+20) Avail-able from [][]$\T1/lmtt/m/n/12 http : / / www . dyna
med . com / login . aspx ? direct = true & site =
[50] [51] [52] [53]
Underfull \hbox (badness 1019) in paragraph at lines 332--338
\T1/lmr/m/n/12 (+20) Avail-able from [][]$\T1/lmtt/m/n/12 http : / / www . dyna
med . com / login . aspx ? direct = true & site =
) (./deliminated.figures.tex [54]
我所做的事情是尝试消除 .tex 和 .bib 文件中的所有非英国非 ASCII 字符
消除 .tex 和 .bib 中的非 ASCII 字符
# http://stackoverflow.com/a/9395552/54964 grep --color='auto' -P -n "[\x80-\xFF]" file.tex grep --color='auto' -P -n "[\x80-\xFF]" work.bib
...
我感兴趣的是 grep 是否足以搜索所有非 ASCII 字符。
工具经过测试,但在吉尔斯之后没有任何好处回答
grep --color='auto' -P -n '[^\x00-\x7F]' file.tex
grep -P "[\x80-\xFF]" file.tex
perl -ane '{ if(m/[[:^ascii:]]/) { print } }' file.tex
grep --color='auto' -P -n "[^[:ascii:]]" file.txt
我不确定的事情
- Gilles 的回答在这里,
LC_ALL=C grep '[^ -~]' file.tex
但它发现 LaTeX 语法字符为非 ASCII。这是正确的吗?
TeXLive:2016
操作系统:Debian 8.5
区域设置:英国
答案1
[\x80-\xFF]
仅包括从 128 到 255 的代码点。根据区域设置,特别是字符编码,这可能是也可能不是非 ASCII 字符集。仅在 8 位编码中存在这种情况。 (准确地说,基于 ASCII 的 8 位编码,但您极不可能遇到其他任何编码。)在字符不是单个字节的语言环境中,包括事实上的标准 UTF-8,[\x80-\xFF]
仅非 ASCII 字符的一小部分。
搜索非 ASCII 字符的最简单方法是强制使用 C 语言环境。在 C 语言环境中,字符是一个字节。使用单字节语言环境还可以使某些版本的 GNU grep 速度显着加快。
LC_ALL=C grep --color='auto' -P -n "[\x80-\xFF]" file.tex