Umlauts em arquivos de texto do Windows não reconhecidos no Ubuntu

3

Sou muito novo no Ubuntu e agora preciso usar o Windows e o Ubuntu, dependendo do contexto. Um problema que eu encontrei é que o Ubuntu não parece reconhecer umlauts e tal (que são bastante essenciais, desde que eu escrevo em alemão) em arquivos de texto criados no Windows. Em vez disso, vejo apenas um símbolo . Isso também se traduz em saída pdftex, onde elas aparecem como "⁄1⁄2".

Como esse problema aparece tanto no gedit quanto no eclipse (e através do LaTeX), ele não pode ser causado pelo espectador. Mas também não pode ser um problema de codificação de arquivos, pode? No Windows, os mesmos arquivos funcionavam bem. (Eu, no entanto, não sei o que é a codificação e não consegui descobrir isso usando o gedit e o gerenciador de arquivos.)

Qual é a causa deste comportamento e como posso preveni-lo?

Editar:

Saída de file -i document.tex :

document.tex: text/x-tex; charset=iso-8859-1

Saída de locale :

LANG=de_DE.UTF-8
LANGUAGE=en
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=
    
por schtandard 27.04.2014 / 22:09

1 resposta

1

O problema é que os arquivos estão usando o iso-8859-1 que não reconhece os umlauts. A solução mais simples é alterar a codificação dos arquivos:

iconv -f iso-8859-1 -t utf8 document.tex > newdoc.tex

Para fazer isso para todos os arquivos tex em seu diretório atual, execute isto:

for f in *tex; do mv "$f" "$f".bak && iconv -f iso-8859-1 -t utf8 "$f".bak > "$f"; done

O comando acima irá primeiro renomear cada arquivo .tex para filename.tex.bak , então altere a codificação da cópia e salve-a como filename.tex . Portanto, se você tiver um arquivo denominado foo.tex , terminará com um arquivo chamado foo.bak.tex com a codificação original e o foo.tex com a codificação UTF8.

Outro problema que você provavelmente encontrará é que o Windows usa \r\n como uma linha que termina enquanto Linux & amp; co use \n sozinho. Portanto, é provável que você deseje alterar isso ao trabalhar no Linux. Para converter os finais de linha do Windows para o estilo Unix, faça

sed -i 's/\r//g' filename
    
por terdon 29.04.2014 / 00:32