pdftexの英国以外の非ASCII非LaTeX文字を見つける方法は?

pdftexの英国以外の非ASCII非LaTeX文字を見つける方法は?

私のシステム上のすべての技術的な欠陥を排除して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文字をすべて削除しようとしたことです。

  1. .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
    
  2. ...

grepがASCII以外のすべての文字を検索するのに十分かどうかに興味があります。

ツールテストを行いましたが、ギルスの後には利点はありません。回答

  1. grep --color='auto' -P -n '[^\x00-\x7F]' file.tex
  2. grep -P "[\x80-\xFF]" file.tex
  3. perl -ane '{ if(m/[[:^ascii:]]/) { print } }' file.tex
  4. grep --color='auto' -P -n "[^[:ascii:]]" file.txt

私がよく知らないこと

  1. Gillesの答えはここにありますが、LC_ALL=C grep '[^ -~]' file.texASCIIではない場合は、LaTeX構文文字を探します。これは正しいですか?

TeXLive: 2016
OS: 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

おすすめ記事