[GUFSC] Manipulação de textos

Aguinaldo Silveira e Silva aguinald em labspot.ufsc.br
Quinta Julho 30 15:57:22 BRT 2009


Obrigado Daniel,

mas seguindo a dica do Emerson, consegui escrever
um pequeno script usando sed que faz o serviço.
O único problema que restou é que por algum motivo
o tradutor Word para Latex adiciona muitos
comandos {\rm{ }}, que parecem não ter nenhuma
função, ou {\rm{ text }}, e não sei como remover
isto no sed, sem alterar os eventuais textos que
aparecem (ex. abaixo)

\begin{math} = {\rm{ }}(\alpha {\rm{ }} \cdot \beta {\rm{   }}I{\rm{
}} - {\rm{ ( }}\alpha {\rm{ + }}\beta {\rm{  }}) \cdot A{\rm{ }} +
{\rm{ }}A^2 {\rm{ }}) = \end{math}


Aguinaldo

Daniel Martins escreveu:
> No emacs o teu texto o coamdno
>
> M-x query-replace-regexp (C-M %)
>
> Ele vai pedir primeiro a expressao regular. Coloque
> "\\begin{indentation}{0pt}{0pt}{0pt}\(
> .*
> ?.*
> \)\\end{indentation}"
>
>
> depois ele vai pedir como vai ser a substituicao
>
> coloque
>
> "\1"
>
> (tudo sem aspas "" acima)
>
> o \1 referencia o primeiro (e neste caso único) bloco de expressoes: o
> que esta entre \( e \)
>
> O \\ é uma barra apenas pois a barra tem varias outras aplicacoes em
> regexps
>
> O ".*" pega uma linha inteira: como tem trecho com 2 linhas usei
>
> "
> ?"
>
> Ou seja uma quebra de linha no meio pode ou nao ocorrer
>
>
> Se admitires até quatro linhas  (tres quebras de linha) podes usar:
>
>
> "\\begin{indentation}{0pt}{0pt}{0pt}\(
> .*
> ?.*
> ?.*
> ?.*\)\\end{indentation}"
>
>
> Deve ter um modo mais racionalde fazer isto mas a gripe que me tirou
> da cama nao me permite raciocinar melhor
>
> Daniel
>
> PS1 Teria todo o prazer em te explicar isto pessoalemnte mas no
> momento nao seria uma companhia agradável nem recomendavel :)
>
> PS2 O texto do teu  apos a regexp acima fica:
>
> "\begin{document}
> \begin{center}
>
> \textbf{\textsc{Draft}}
>
> \end{center}
>
> \begin{center}
>
>
>
> \end{center}
>
> \begin{center}
>
> Appendix to Chapter 5 (or 4?) for Technical Brochure of CIGRE TF
> 38.02.16
>
> \end{center}
>
> \begin{center}
>
>
>
> \end{center}"
>
> PS3 Obviamente poderias eliminar os center se for conveniente usando
>
> M-x query-replace-regexp (C-M %)
>
> Primeiro argumento:
> "\\begin{center}
> \\begin{indentation}{0pt}{0pt}{0pt}\(
> .*
> ?.*
> \)\\end{indentation}
> \\end{center}"
>
>
> "\begin{document}
>
> \textbf{\textsc{Draft}}
>
>
> segundo argumento é o mesmo
>
> "\1"
>
> Tudo sem aspas
>
>
> Teu texto ficaria bem mais enxuto
>
> "\begin{document}
>
> \textbf{\textsc{Draft}}
>
>
>
>
>
>
>
> Appendix to Chapter 5 (or 4?) for Technical Brochure of CIGRE TF
> 38.02.16
>
>
> "
>
> Mas nao sei se é isto que queres
>
>
>
>
>
>
> 2009/7/30 Daniel Martins <danielemc em gmail.com
> <mailto:danielemc em gmail.com>>
>
>     Eu uso expressoes regulares para esras coias no emacs
>
>     Tem, um info interessante.
>
>     Para se informar tem um libro de expressoes regulares do Aurelio
>     (apelido "verde" nao me perguntem por que) que eu vi numa livraria
>     e me prareceu bastante bom para introduzor neste meio
>
>     Daniel
>
>     PS Vou tentar no emacs e te mando o comando do que conseguir
>
>     2009/7/29 Emerson Ribeiro de Mello <emerson em das.ufsc.br
>     <mailto:emerson em das.ufsc.br>>
>
>         Olá,
>
>         Abaixo um exemplo para remover o begin{indentation} e
>         end{indentation}
>         sem remover o que está dentro do bloco.
>
>         sed '/\\begin{indentation}/d' arquivo.tex | sed
>         '/\\end{indentation}/d'
>          > novo-arquivo.tex
>
>
>         Vi que o bloco 'center' sempre aparece abraçando o
>         indentation, então
>         podemos modificar a linha acima para remover o bloco center
>         também:
>
>
>         sed '/\\begin{center}/,/\\begin{indentation}/d' arquivo.tex | sed
>         '/\\end{indentation}/,/\\end{center}/d' > novo-arquivo.tex
>
>         abraços
>
>         emerson
>
>
>         Aguinaldo Silveira e Silva escreveu:
>         > Um pequeno exemplo. A maior parte
>         > destes comandos, no começo do arquivo,
>         >  foram gerados apenas
>         > para reproduzir o formato  do Word.
>         > Isto se repete ao longo do arquivo.
>         > Indentation é o que mais aparece.
>         >
>         > \begin{document}
>         > \begin{center}
>         > \begin{indentation}{0pt}{0pt}{0pt}
>         > \textbf{\textsc{Draft}}
>         > \end{indentation}
>         > \end{center}
>         >
>         > \begin{center}
>         > \begin{indentation}{0pt}{0pt}{0pt}
>         >
>         > \end{indentation}
>         > \end{center}
>         >
>         > \begin{center}
>         > \begin{indentation}{0pt}{0pt}{0pt}
>         > Appendix to Chapter 5 (or 4?) for Technical Brochure of CIGRE TF
>         > 38.02.16
>         > \end{indentation}
>         > \end{center}
>         >
>         > \begin{center}
>         > \begin{indentation}{0pt}{0pt}{0pt}
>         >
>         > \end{indentation}
>         > \end{center}
>         >
>         >
>         >
>         >
>         >
>         > Emerson Ribeiro de Mello escreveu:
>         >> Olá Aguinaldo,
>         >>
>         >> Por favor, envie um pequeno trecho de exemplo.
>         >>
>         >> Mas como outros já falaram, creio que expressões regulares
>         (regex)
>         >> resolvem teu problema.
>         >>
>         >> Aí pode-se usar o sed ou fazer em qualquer outra linguagem de
>         >> programação que tenha regex e que você domine.
>         >>
>         >> abraços
>         >>
>         >> emerson
>         >>
>         >> Aguinaldo Silveira e Silva escreveu:
>         >>
>         >>>    Usei um conversor para passar uma série de artigos
>         >>> de um co-autor, escritos em Word, para Latex.
>         >>> No entanto, o conversor
>         >>> introduz muito lixo no arquivo para reproduzir
>         >>> exatamente o layout do Word. Os comandos
>         >>> espúrios seguem padrões que se repetem.
>         >>>   Eu gostaria de escrever um script que tivesse como
>         >>> entrada o nome de um arquivo e fizesse a remoção de
>         >>> todos estes comandos desnecessários do arquivo.
>         >>>    A questão é: qual a ferramenta a usar?
>         >>> Sed, Awk ou Perl? Há alguma outra?
>         >>> Definida a ferramenta, onde existe um tutorial
>         >>> adequado que vá aos pontos essenciais para
>         >>> esta tarefa?
>         >>>
>         >>> Aguinaldo
>         >>>
>         >>>
>         >>>
>         >> _______________________________________________
>         >> GUFSC mailing list
>         >> GUFSC em softwarelivre.ufsc.br
>         <mailto:GUFSC em softwarelivre.ufsc.br>
>         >> https://www.softwarelivre.ufsc.br/mailman/listinfo/gufsc
>         >>
>         >>
>         >>
>         >
>         >
>
>         _______________________________________________
>         GUFSC mailing list
>         GUFSC em softwarelivre.ufsc.br <mailto:GUFSC em softwarelivre.ufsc.br>
>         https://www.softwarelivre.ufsc.br/mailman/listinfo/gufsc
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> GUFSC mailing list
> GUFSC em softwarelivre.ufsc.br
> https://www.softwarelivre.ufsc.br/mailman/listinfo/gufsc
>   


-- 
Prof. Aguinaldo S. e Silva  - Ph.D.       
Professor Titular                         
Grupo de Sistemas de Potência              
Laboratório de Sistemas de Potência      
Departamento de Eng. Elétrica             
Universidade Federal de Santa Catarina   
                                          
Tel: (048)37219593                        



Mais detalhes sobre a lista de discussão GUFSC