Как преобразовать .tex в .odt?

43

Я хочу преобразовать файл .tex в файл .odt.
Можете ли вы предложить хорошее пошаговое решение?

Таль Галили
источник
3
@Naruto: я предполагаю, что это документ LaTeX.
Натан Осман
4
Обратите внимание, что для всех ответов ниже: ваш успех будет зависеть от используемых пакетов латекса, и математика никогда не будет набираться так же хорошо, как в латексе.
Дэвид Лебауэр

Ответы:

20

Верьте или нет, со сложными документами и множеством пакетов, я получил гораздо лучшие результаты с LaTeX2HTML, чем с LaTeX2RTF, Pandoc или TeX4ht.

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

Это создаст папку с тем же texfileименем, так что вы сможете конвертировать сгенерированный HTML в ODT:

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

Это создаст index.odtфайл. Посмотрите на этот ответ, чтобы проверить, как использовать фильтры преобразования LibreOffice.

Редактировать из комментария обсуждение:

Несмотря на то, что описанный выше метод работает, очень разочаровывает, что я нашел единственный способ создать действительно надежный документ - это использовать вывод PDF из LaTeX в Adobe Acrobat Pro.

vmassuchetto
источник
1
Для сложных документов с большим количеством дополнительных пакетов, файлов и команд LaTeX2HTML не работает. Я пытаюсь преобразовать свой тезис в HTML, а затем в ODT, чтобы дать его кому-то для комментариев и исправлений, кто не знаком с LaTeX. Даже без пользовательских команд этот инструмент не работает. Пакет Tikz почему-то является одним из главных виновников.
rbaleksandar
Идеального решения @rbaleksandar не существует, особенно в зависимости от используемых вами пакетов. Я бы предложил Pandoc для вас. Он не сохранит все форматы, но способен игнорировать некоторые структуры и, по крайней мере, создать окончательный документ.
vmassuchetto
Не работает с разрывами страниц.
Привет, Ангел,
Документы никогда не бывают идеальными с представленными решениями в этом вопросе. Очень разочаровывает, что я нашел единственный способ создать идеальный документ - использовать вывод PDF из LaTeX с Adobe Acrobat Pro.
vmassuchetto
Эта команда дала мне бессмысленный HTML и бессмысленный ODT. Пандок был намного лучше.
jdpipe
25

В репозиториях есть инструмент, который изменяет LaTeX на XML-формат openoffice.org: tex4ht Установить tex4ht

TeX4ht - это настраиваемая система авторинга на основе TeX для создания гипертекста. Он взаимодействует с приложениями на основе TeX через файлы стилей и постпроцессоры, оставляя обработку исходных файлов собственному компилятору TeX. Следовательно, TeX4ht может работать с функциями систем на основе TeX в целом и LaTeX в частности.

TeX4ht может использоваться как для создания HTML-кода с использованием входных файлов TeX / LaTeX, так и для преобразования существующих входных файлов TeX (в любом формате) в HTML с (как правило) только незначительными изменениями. Также могут быть созданы другие разновидности гипертекста, включая XML, XHTML, MathML и формат XML Openoffice.org.

Командная строка...

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

Должен закончиться файлом, совместимым с openoffice.org/libreoffice.

Rinzwind
источник
2
Спасибо. Кстати, похоже, что главный сопровождающий пакета, к сожалению, умер два года назад.
Тал Галили
2
блин жаль :(
Rinzwind
Я согласен - я хотел бы, чтобы более активное сообщество взяло на себя обязательство продолжать эту работу ...
Таль Галили
+1 для примера командной строки. У меня не было времени, чтобы прочитать документацию, но приведенный выше пример довольно прост для подражания.
antmw1361
Не работает с разрывами страниц.
Привет, Ангел,
18

Другое решение предоставляется из пакета pandoc Установить пандок

В качестве примера вы можете сделать:

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

Если входной файл latin1закодирован, как мои текстовые файлы, решение:

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

Я сообщаю часть описания пакета:

Pandoc - это библиотека Haskell для преобразования из одного формата разметки в другой и инструмент командной строки, который использует эту библиотеку. Может читать

  • уценка и
  • подмножества
    • ReStructuredText,
    • HTML и
    • Латекс

и это можно написать

  • простой текст,
  • уценки,
  • ReStructuredText,
  • HTML, -LaTeX, -ConTeXt,
  • RTF,
  • DocBook XML,
  • OpenDocument XML,
  • ODT ,
  • GNU Texinfo,
  • Разметка MediaWiki,
  • EPUB,
  • Текстиль,
  • groff man-страницы,
  • Emacs Org-mode и
  • Слайди или
  • S5 HTML слайд-шоу.
enzotib
источник
По крайней мере, версия 1.14.0.4 не работает с разрывами страниц.
Привет, Ангел,
Это хорошо сработало для меня ... У меня есть цифры, заголовки, но нет библиографии и различные смешанные уравнения / символы. Но, по крайней мере, я быстро получил некоторый текст, который мог бы начать убирать вручную.
jdpipe
8

Это можно сделать в 2 этапа. Перейдите на http://latex2rtf.sourceforge.net/ и используйте предоставленные инструменты для преобразования сначала из латекса в RTF, а затем из RTF в ODT.

Надеюсь, это поможет.

Cormite
источник
Совсем не работает 😂 С минимальным примером он завис на минуту при 100% загрузке ЦП. Я не думаю, что это когда-нибудь закончит работу, поэтому я прервал ее.
Привет, Ангел,
Хорошо, мне удалось, чтобы он работал - возможно, он не работает хорошо с макросами - и обнаружил, что он также не работает, например, с оглавлением. Так что нет, не вариант.
Привет, Ангел,
6

Если у вас установлен пакет tex4ht Установить tex4ht , команда oolatex filenameпреобразует .tex в .odt (подробнее о tex4ht см. Здесь ).

Другим способом был бы пакет latex2rtf Установить latex2rtf , использующий RTF в качестве промежуточного формата.

tohuwawohu
источник
ой - извините, не видел других ответов ...
tohuwawohu
Не проблема, поскольку вы добавили ссылку на latex2rtf, чего не было ни в одном из двух других ответов;)
Rinzwind