[GUFSC] Manipulação de textos
Daniel Martins
danielemc em gmail.com
Segunda Agosto 3 08:34:01 BRT 2009
Esta é mais fácil
No emacs
Primeiro argumento:
"{\\rm{\([
a-zA-Z+-]*\)}}"
Segundo argumento
"\1"
(como sempre)
Resultado:
\begin{math} = (\alpha \cdot \beta I
- {\rm{ ( }}\alpha + \beta ) \cdot A +
A^2 ) = \end{math}
> "\\begin{center}
> \\begin{indentation}{0pt}{0pt}{0pt}\(
> .*
> ?.*
> \)\\end{indentation}
> \\end{center}"
2009/7/30 Aguinaldo Silveira e Silva <aguinald em labspot.ufsc.br>
> 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
>
> _______________________________________________
> GUFSC mailing list
> GUFSC em softwarelivre.ufsc.br
> https://www.softwarelivre.ufsc.br/mailman/listinfo/gufsc
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://www.softwarelivre.ufsc.br/pipermail/gufsc/attachments/20090803/4b886d1e/attachment-0001.html
Mais detalhes sobre a lista de discussão GUFSC