[SP-pm] Problema com encoding

Nelson Ferraz nferraz em gmail.com
Sexta Julho 13 13:11:15 PDT 2007


Grande Solli!!!

Você deu uma bela endireitada no código. :-)

Eu faria o seguinte:

1) Colocaria a lógica da conversão em um módulo (ou usaria o TeX::Encode)

2) Faria um script simples de conversão, como esse:

  use TeX::Encode;
  use Encode;

  while ( my $line = <> ) {
    Encode::from_to( $line, 'latin1', 'utf8' );
    my $tex = encode( 'latex', $line );
    print $tex;
  }

  __END__

Este script (vamos chamá-lo de convert2tex) usa o operador diamante (
<> ) para ler uma linha da entrada padrão (ou de um arquivo
especificado) e escrever ( print ) diretamente na saída padrão.

Se você precisar criar um novo arquivo, pode redirecionar o output:

  convert2tex input.txt > output.tex

A vantagem de fazer o programa funcionar como um filtro é permitir
encadeá-lo com outros programas. Por exemplo:

  catdoc documento.doc | convert2tex > documento.tex

Você também pode usar esse script para modificar um texto dentro do
seu editor. No vim:

  % ! convert2tex

Obviamente, TIMTOWTDI.

[]s

Nelson


Mais detalhes sobre a lista de discussão SaoPaulo-pm