Converter acentos do LaTeX para UTF-8

1,019 views
Skip to first unread message

Lauro César

unread,
Mar 24, 2014, 8:36:40 AM3/24/14
to late...@googlegroups.com
Pessoal,

Bom dia!

Estou com uma apostila em LaTeX toda escrita com o esquema antigo de acentuações do LaTeX. Alguém saberia uma forma "automágica" de converter tudo para UTF-8?

Abraços!

Lauro César

Eduardo M KALINOWSKI

unread,
Mar 24, 2014, 8:44:31 AM3/24/14
to late...@googlegroups.com
On Seg, 24 Mar 2014, Lauro César wrote:
> Estou com uma apostila em LaTeX toda escrita com o esquema antigo de
> acentuações do LaTeX. Alguém saberia uma forma "automágica" de converter
> tudo para UTF-8?

Talvez o iconv ou recode consigam fazer isso. Eles servem para mudar
entre codificações (como ISO-8859-1 e UTF-8), mas talvez exista uma
"codificação" representando o estilo latex.

Se não, a função procurar/substituir do seu editor deve fazer isso.
Não são tantas combinações para mudar.

--
%TAG%

Eduardo M KALINOWSKI
edu...@kalinowski.com.br


Tássio Naia

unread,
Mar 24, 2014, 8:48:12 AM3/24/14
to late...@googlegroups.com
Se os acentos são todos marcados da mesma forma,
digamos {\' a} {\"u} etc, talvez o mais simples seja
find-and-replace.

Até, Tássio

Wagner Arbex

unread,
Mar 24, 2014, 10:24:44 AM3/24/14
to late...@googlegroups.com
Olá, Lauro;

Só reforçando a inf do Eduardo, se o problema for o conjunto de caracteres vc pode fazer a conversão com o iconv que, salvo engano, já vem nativo nos ambientes *nix.

Com 

iconv -l

vc descobre quais os encodes que possíveis de conversão e faça, p. ex., 

iconv -f latin1 -t utf8 entrada > saida

para converte o arq de entrada de latin1 para utf8.

Se precisar de mais infs sobre o arq de entrada, acho que um dos comandos a seguir (em algum *nix) pode te ajudar:

file entrada
file -mime entrada
file --mime-encoding entrada
file --mime-type entrada

[]s, W.


--
Você está recebendo esta mensagem porque se inscreveu no grupo "Latex-br" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para latex-br+unsubscribe@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/d/optout.



--
   Wagner Arbex, DSc
   Bioinformática e modelagem matemática e computacional de biossistemas

   http://www.arbex.pro.br/

Lauro César

unread,
Mar 24, 2014, 11:34:11 AM3/24/14
to late...@googlegroups.com
Obrigado Wagner e demais!

Mas, no caso, eu queria algo como um conjunto de "replacers" para substituir os {\' a} {\"u} para caracteres unicode...

Será que já teríamos um script ou ferramenta pronta para isso?

Abraços!


--
Você recebeu essa mensagem porque está inscrito no grupo quot;Latex-br" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para latex-br+u...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Jorge Barros de Abreu

unread,
Mar 24, 2014, 12:31:21 PM3/24/14
to late...@googlegroups.com
On Mon, Mar 24, 2014 at 12:34:11PM -0300, Lauro César wrote:
> Será que já teríamos um script ou ferramenta pronta para isso?
> Abraços!

Não sei o que vai ocorrer com os caracteres acentuados aí na sua tela.
Uso linux e shell bash.

Faça uma cópia de backup de seu arquivo antes.
Esse negócio é meio perigoso.
Até acertar a mão tenha muito cuidado.

Tenta esse:


#!/bin/bash
#powered by Jorge Barros de Abreu under GPL
#ficmatin10 at gmail dot com
# this script needs "sed" and "mktemp" command
#converte tex para utf8
ARQ_TMP=`mktemp`
if [ "$#" = 0 ] #testa se nao existe parametro
then
echo -e "\n\tScript for diacritical marks in tex"
echo -e "\n\tThis script needs "sed" and "mktemp" command"
echo -e "\tusage: $0 file.tex"
echo -e "\tthe output is renamed to file.tex itself"
echo
exit 1
fi
cat $1 | sed "/\\'e/s/\\'e/é/g" > $ARQ_TMP
cat $ARQ_TMP | sed "/\\'a/s/\\'a/á/g" > $1
cat $1 | sed "/\\cc/s/\\,c/ç/g" > $ARQ_TMP
cat $ARQ_TMP | sed "/\\~a/s/\\~a/ã/g" > $1
cat $1 | sed "/\\'o/s/\\'o/ó/g" > $ARQ_TMP
cat $ARQ_TMP | sed "/\\^a/s/\\^a/â/g" > $1
cat $1 | sed "/\\'A/s/\\'A/Á/g" > $ARQ_TMP
cat $ARQ_TMP | sed '/\\`a/s/\\`a/à/g' > $1
cat $1 | sed "/\\\`A/s/\\\`A/À/g" > $ARQ_TMP
cat $ARQ_TMP | sed "/\\'E/s/\\'E/É/g" > $1
cat $1 | sed "/\\'I/s/\\'I/Í/g" > $ARQ_TMP
cat $ARQ_TMP | sed "/\\'u/s/\\'u/ú/g" > $1
cat $1 | sed "/\\'U/s/\\'U/Ú/g" > $ARQ_TMP
cat $ARQ_TMP | sed "/\\,C/s/\\,C/Ç/g" > $1
cat $1 | sed "/\\~o/s/\\~o/õ/g" > $ARQ_TMP
cat $ARQ_TMP | sed "/\\~O/s/\\~O/Õ/g" > $1
cat $1 | sed "/\\\"u/s/\\\"u/ü/g" > $ARQ_TMP
cat $ARQ_TMP | sed "/\\^A/s/\\^A/Â/g" > $1
cat $1 | sed "/\\~A/s/\\~A/Ã/g" > $ARQ_TMP
cat $ARQ_TMP | sed "/\\'o/s/\\'o/ó/g" > $1
cat $1 | sed "/\\^E/s/\\^E/Ê/g" > $ARQ_TMP
cat $ARQ_TMP | sed "/\\^e/s/\\^e/ê/g" > $1
cat $1 | sed "/\\'i/s/\\'i/í/g" > $ARQ_TMP
cat $ARQ_TMP | sed '/\\"U/s/\\"U/Ü/g' > $1
cat $1 | sed "/\\^o/s/\\^o/ô/g" > $ARQ_TMP
cat $ARQ_TMP | sed "/\\^O/s/\\^O/Ô/g" > $1
cat $1 | sed "/\\^a/s/\\^a/â/g" > $ARQ_TMP
cat $ARQ_TMP | sed '/\\\"u/s/\\\"u/ü/g' > $1
cat $1 | sed "/\\'O/s/\\'O/Ó/g" > $ARQ_TMP
#rm $ARQ_TMP
mv $ARQ_TMP $1









--
Data Estelar 2456741,185081
http://sites.google.com/site/ficmatinf
Desejo-lhe Paz, Vida Longa e Prosperidade.
São Bem Vindas Mensagens no Formato texto UTF-8 com Acentos.

Eduardo M KALINOWSKI

unread,
Mar 24, 2014, 12:39:36 PM3/24/14
to late...@googlegroups.com
On Seg, 24 Mar 2014, Jorge Barros de Abreu wrote:

> cat $1 | sed "/\\'e/s/\\'e/é/g" > $ARQ_TMP

Useless use of cat: http://partmaps.org/era/unix/award.html

sed "/\\'e/s/\\'e/é/g" < $1 > $ARQ_TMP

ou

sed "/\\'e/s/\\'e/é/g" $1 > $ARQ_TMP

Além disso deve ser possível fazer todas as substituições em uma
execução só do sed, mas ficaria uma linha de comando um tanto
comprida, não sei se vale a pena.

Tássio Naia

unread,
Mar 24, 2014, 1:23:24 PM3/24/14
to late...@googlegroups.com
Além disso, é preciso ver como os acentos são usados

Já vi acentos postos assim (o primeiro especialmente em arquivos bib):

    {\' a}
    \'a
    \'{a}

Para ter uma ideia das diferentes notações, vc pode fazer

    $ grep "\\'"

Esse comando encontra as ocorrências de \'.
Com isso você pode ver que padrões foram usados.

Até,
Tássio
Reply all
Reply to author
Forward
0 new messages