Como converter .tex em .odt?


43

Desejo converter um arquivo .tex em um arquivo .odt.
Você pode sugerir uma boa solução passo a passo?


3
@Naruto: Presumo que seja um documento LaTeX.
Nathan Osman

4
Observe que, para todas as respostas abaixo: sua taxa de sucesso dependerá dos pacotes de látex usados, e a matemática nunca será digitada tão bem quanto no látex.
David LeBauer

Respostas:


20

Acredite ou não, com documentos complexos e muitos pacotes incluídos, obtive resultados muito melhores com o LaTeX2HTML do que com o LaTeX2RTF, Pandoc ou TeX4ht.

latex2html texfile.tex -split 0 -no_navigation -info "" -address "" -html_version 4.0,unicode

Isso gerará uma pasta com o mesmo texfilenome, para que você possa converter o HTML gerado em ODT:

libreoffice --headless --convert-to odt:"OpenDocument Text Flat XML" texfile/index.html

Isso produzirá um index.odtarquivo. Dê uma olhada nesta resposta para verificar como usar os filtros de conversão do LibreOffice.

Editar a partir da discussão do comentário:

Embora o método acima funcione, é muito decepcionante que a única maneira que encontrei para gerar um documento verdadeiramente confiável seja usando a saída de PDF do LaTeX no Adobe Acrobat Pro.


1
Para documentos complexos com muitos pacotes adicionais, arquivos e comandos, o LaTeX2HTML falha. Estou tentando converter minha tese em HTML e, em seguida, em ODT, a fim de entregá-la a alguém para comentários e correção, que não está familiarizado com o LaTeX. Mesmo sem comandos personalizados, essa ferramenta falha. Por algum motivo, o pacote Tikz é um dos principais culpados.
Rbaleksandar

Não existe uma solução ideal para o @rbaleksandar, especialmente dependendo dos pacotes que você está usando. Eu sugeriria Pandoc para você. Ele não mantém todos os formatos, mas é capaz de ignorar algumas estruturas e criar pelo menos um documento final.
214148 vmassuchetto

Não funciona com quebras de página.
27615 Oi-Angel

Os documentos nunca são perfeitos com as soluções apresentadas nesta pergunta. É muito decepcionante que a única maneira que encontrei para gerar um documento perfeito seja usando a saída de PDF do LaTeX com o Adobe Acrobat Pro.
precisa saber é o seguinte

Este comando me deu um absurdo HTML e um absurdo ODT. Pandoc estava muito melhor.
jdpipe

25

Existe uma ferramenta nos repositórios que altera o LaTeX para o formato XML do openoffice.org: tex4ht Instale o tex4ht

O TeX4ht é um sistema de criação baseado em TeX altamente configurável para a produção de hipertexto. Ele interage com aplicativos baseados em TeX através de arquivos de estilo e pós-processadores, deixando o processamento dos arquivos de origem no compilador TeX nativo. Consequentemente, o TeX4ht pode lidar com os recursos dos sistemas baseados em TeX em geral e do LaTeX em particular.

O TeX4ht pode ser usado para criar HTML usando arquivos de entrada TeX / LaTeX ou para converter arquivos de entrada TeX existentes (em qualquer formato) em HTML, com (geralmente) apenas pequenas modificações. Outras variedades de hipertexto também podem ser produzidas, incluindo XML, XHTML, MathML e o formato Openoffice.org de XML.

Linha de comando...

  1. latex filename.tex
  2. bibtex filename.aux
  3. mk4ht oolatex filename.tex

Deve terminar com um arquivo compatível com openoffice.org/libreoffice.


2
Obrigado. BTW, parece que o principal mantenedor do pacote morreu infelizmente há dois anos.
precisa

2
caramba, isso é uma pena :(
Rinzwind 25/11

Concordo - Desejo uma comunidade mais ativa teria tomado sobre si mesmo para continuar este trabalho ...
Tal Galili

+1 para o exemplo da linha de comando. Não tive tempo de ler a documentação, mas o exemplo acima é bastante fácil de seguir.
precisa saber é o seguinte

Não funciona com quebras de página.
27615 Oi-Angel

18

Outra solução é fornecida no pacote pandoc Instalar pandoc

Como exemplo, você pode fazer:

pandoc -f latex -t odt -o output.odt input.tex

Se o arquivo de entrada estiver latin1codificado, como meus arquivos tex, a solução é:

iconv -f ISO-8859-1 input.tex | pandoc -f latex -t odt -o output.odt

Relato parte da descrição do pacote:

Pandoc é uma biblioteca Haskell para converter de um formato de marcação para outro e uma ferramenta de linha de comando que usa essa biblioteca. Pode ler

  • remarcação e
  • subconjuntos de
    • reStructuredText,
    • HTML e
    • Látex

e pode escrever

  • texto simples,
  • remarcação,
  • reStructuredText,
  • HTML, -LaTeX, -ConTeXt,
  • RTF,
  • DocBook XML,
  • OpenDocument XML,
  • ODT ,
  • GNU Texinfo,
  • Marcação do MediaWiki,
  • EPUB,
  • Têxtil,
  • páginas do homem groff,
  • Modo Org do Emacs e
  • Slidy ou
  • S5 apresentações de slides em HTML.

Pelo menos a versão 1.14.0.4 não funciona com quebras de página.
Hi-Angel

Este funcionou muito bem para mim ... Eu tenho figuras, títulos, mas nenhuma bibliografia, e equações / símbolos variados. Mas pelo menos rapidamente recebi algum texto que poderia começar a limpar manualmente.
jdpipe

8

Isso pode ser feito em duas etapas. Vá para http://latex2rtf.sourceforge.net/ e use as ferramentas fornecidas para converter primeiro de Látex para RTF e depois de RTF para ODT.

Espero que ajude.


Não funciona de forma alguma 😂 Com o exemplo mínimo, ele ficou travado por um minuto com 100% de uso da CPU. Eu acho que nunca terminaria o trabalho, então eu o interrompi.
26515 Oi-Angel

Ok, eu consegui funcionar - talvez não funcione bem com macros - e descobri que também não funciona, por exemplo, com um sumário. Então não, não é uma opção.
27615 Oi-Angel

6

Se você tiver o pacote tex4ht Instale o tex4ht instalado, o comando oolatex filenameconverte o .tex em .odt (para saber mais sobre o tex4ht, veja aqui ).

Outra maneira seria o pacote latex2rtf Instale o latex2rtf , usando o RTF como formato intermediário.


oh - desculpe, não vi as outras respostas ...
tohuwawohu 25/11

Não é um problema desde que você adicionou um link para latex2rtf e que não estava em nenhum dos outros 2 respostas;)
Rinzwind
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.