Як перетворити .tex в .odt?


43

Я хочу перетворити .tex файл у файл .odt.
Чи можете ви запропонувати хороше покрокове рішення?


3
@Naruto: Я припускаю, що це документ LaTeX.
Натан Осман

4
Зауважте, що для всіх відповідей нижче: ваш успіх буде залежати від використовуваних латексних пакетів, і математика ніколи не буде набрана так добре, як у латексе.
David LeBauer

Відповіді:


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.


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.


2
Дякую. До речі, здається, головний супровідник пакету сумно помер два роки тому.
Тал Галілі

2
чорт, шкода :(
Rinzwind

Я згоден - я хочу, щоб активніша громада взяла на себе продовження цієї роботи ...
Тал Галілі

+1 для прикладу командного рядка. Я не встиг прочитати документацію, але приклад, наведений вище, досить просто.
antmw1361

Не працює з розривами сторінок.
Привіт-Ангел

18

Ще одне рішення надається з пакету pandoc Встановити 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 і
    • LaTeX

і це може написати

  • простий текст,
  • розмітка,
  • reStructuredText,
  • HTML, -LaTeX, -ConTeXt,
  • RTF,
  • DocBook XML,
  • XML OpenDocument,
  • ODT ,
  • Технічна інформація GNU,
  • Націнка на MediaWiki,
  • EPUB,
  • Текстиль,
  • Сторінки groff man,
  • Emacs Org-режимі та
  • Слайди або
  • Слайд-шоу S5 HTML.

Принаймні версія 1.14.0.4 не працює з розбиттями сторінок.
Привіт-Ангел

Цей досить добре працював для мене ... Я отримав цифри, заголовки, але не бібліографію, а також різні змішані рівняння / символи. Але принаймні я швидко отримав текст, який я міг би почати прибирати вручну.
jdpipe

8

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

Сподіваюся, це допомагає.


Зовсім не працює 😂 З мінімальним прикладом він звисав хвилину зі 100% використанням процесора. Я не думаю, що це коли-небудь закінчить роботу, тому я її перервав.
Привіт-Ангел

Гаразд, мені вдалося це працювати - можливо, він не працює добре з макросами - і виявив, що він також не працює, наприклад, зі змістом. Так ні, не варіант.
Привіт-Ангел

6

Якщо встановлений пакунок tex4ht Встановіть tex4ht , команда oolatex filenameперетворює .tex в .odt (докладніше про tex4ht див. Тут ).

Іншим способом буде пакет latex2rtf Встановіть latex2rtf , використовуючи RTF як проміжний формат.


о, вибачте, не бачили інших відповідей ...
tohuwawohu

Не проблема, оскільки ви додали посилання на latex2rtf, і цього не було в жодній з інших 2 відповідей;)
Rinzwind
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.