Como encontrar caracteres que não sejam não-britânicos não-LaTeX para o pdftex?

1

Estou depurando meu arquivo tex eliminando todas as falhas técnicas nos sistemas. Não consigo encontrar nada de errado em meu documento com a comunidade Tex aqui e comigo, então acho que pode haver algo não-ASCII caracteres complicando pdflatex . Exemplo de avisos do LaTeX que eu e meus amigos não entendemos, já que não entendemos a origem

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]

Coisas que fiz para tentar eliminar todos os caracteres não-britânicos não-ASCII em arquivos .tex e .bib

  1. Elimine caracteres não-ASCII em .tex e .bib

    # 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. ...

Estou interessado em saber se o grep é suficiente para pesquisar todos os caracteres não-ASCII.

Ferramentas testadas, mas sem benefício após a resposta da Gilles

  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

Coisas que não tenho certeza

  1. Gilles responde aqui LC_ALL=C grep '[^ -~]' file.tex mas encontra caracteres de sintaxe LaTeX como não-ASCII. Está certo?

TeXLive: 2016
SO: Debian 8.5
Localidade: britânica

    
por Léo Léopold Hertz 준영 26.11.2016 / 20:59

1 resposta

3

[\x80-\xFF] inclui apenas pontos de código de 128 a 255. Dependendo da localidade, especificamente na codificação de caracteres, isso pode ou não ser o conjunto de caracteres não-ASCII. É apenas o caso em codificações de 8 bits. (Codificações de 8 bits baseadas em ASCII, para ser preciso, mas é extremamente improvável que você encontre qualquer outra coisa.) Em locais onde um caractere não é um único byte, incluindo UTF-8 que é o padrão de fato, [\x80-\xFF] é apenas um pequeno subconjunto de caracteres não-ASCII.

A maneira mais fácil de procurar caracteres não-ASCII é impor a localidade C. Na localidade C, um caractere é um byte. Usar uma localidade unibyte também torna algumas versões do GNU grep consideravelmente mais rápidas.

LC_ALL=C grep --color='auto' -P -n "[\x80-\xFF]" file.tex
    
por 27.11.2016 / 01:33