LINUX.ORG.RU

Формулы и latex2rtf vs pandoc vs tex2word (да, опять)

 , ,


0

1

Привет, ЛОР.

Я вот вчера сделал latex2rtf -S -p sometext.tex, полученный формат отнёс на машину с MS Word. На первый взгляд, даже очень пристойно. Разве что подзаголовки пришлось подправить, но тут я, скорее всего, сам виноват и делал теги не по феншую (хотя в PDFe они выглядели очень хорошо).

Главная засада в другом. В своё время мне подсказали ключик -S, без которого формулы пропадали. Теперь визуально они все на месте. Но если в ворде кликнуть по формуле, он задумывается и выдаёт: «Формула слишком велика для преобразования», очищает поле и выводит ставшую бесполезной панель редактора формул.

При этом речь идёт о простейших вещах вроде

$$
\Delta t = t_{cur}-t_{prev} \eqno (1)
$$

Разумеется, в PDF это тоже прекрасно выглядит.

Да, и без \eqno Word даёт ту же ошибку (решил проверить, пока писал это), так что холивар о том, как правильнее нумеровать формулы, скорее всего, не к месту.

Word 2007 и 2010 (формулы с нуля, причём в современном стиле, создаются без проблем, так что в вордах, скорее всего, все компоненты на месте), latex2rtf 2.3.18.

Пробовал пинать и pandoc 2.19.2, но он мой текст вообще не хочет конвертировать:

pandoc: Cannot decode byte '\xcf': Data.Text.Internal.Encoding.streamDecodeUtf8With: Invalid UTF-8 stream

Возможно, с этим можно что-то сделать, но для этого хотелось бы иметь подтверждение от более опытных людей, что pandoc с формулами обходится более умело. :)

Проблема в том, что у текста есть соавтор (более авторитетный, чем я), который хочет редактировать именно в ворде.

Про хак «поднять лапки, сдаться и тоже писать в ворде» я в курсе, но это на самый-самый крайний случай. Во-первых, это существенно ограничит количество мест, где я могу заниматься писательством, во-вторых, латеховский текст куда лучше поддаётся версионированию, чем вордовый, в третьих, поднимать лапки — это вообще неспортивно. Ну и в четвёртых, есть шанс, что в точке конечного назначения захотят таки LaTeX (но с этим пока неясно).

Поэтому пока хотелось бы получить именно технические варианты решения проблемы. :)

★★★★★

Последнее исправление: hobbit (всего исправлений: 1)

Сдайся и пиши в LaTeX. Соавтору отдавай в печатном виде — пусть чиркает ручкой.

P.S. Смотри в сторону проприетарного tex2word. 30 дней free of charge. Ооочень давно я использовал его предварительно выпросив у автора лицензию (результат вполне адекватный), правда сейчас вряд ли этот трюк пройдёт.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 6)
Ответ на: комментарий от hobbit

Да под винду. Старая версия tex2word валялась на варезниках, на моей памяти результат был так себе.

UPD. Смотри в сторону make4ht, специально проверил твою формулу, в либре отобразил нормально. А коллеги пусть пользуются форматами по ГОСТ, т.е. odt)).

Одна из особенностей make4ht - библиография конвертится замечательно, в том числе и сделанная через biblatex.

einhander ★★★★★
()
Последнее исправление: einhander (всего исправлений: 2)
  1. TeX2Word даёт вполне сносный результат, использовал лет 5 назад на 30 страничный документ. Идеальным выходной файл не назвать, но лучше ничего нет. Это под Винду.

  2. make4ht вариант,если не хочешь заморачиваться с виртуалкой. Придется поковыряться, но результат вполне сносный. Далее через либру сохранишь в docx.

  3. Попытайтесь договориться с соавтором на использование единой платформы типа overleaf (не реклама). Ничего устанавливать и настраивать не нужно – открыл сайт и редактируйте совместно документ.

arbyz
()
Ответ на: комментарий от TeopeTuK

Я и UTF-8 пробовал, и 1251. Результат один.

Если б он хотя бы выдавал номер строки, в которой ошибка... А он только «Cannot decode byte» и крутись как хочешь.

Но за информацию спасибо, значит, покопать всё же стоит.

hobbit ★★★★★
() автор топика
Ответ на: комментарий от the_real_kinik

Приведенный выше пример он не распознает. Нумерацию может или вкл или выкл, нумеровать рисунки, таблицы из коробки тоже не может, для библиографии нужен отдельный плагин искать.

einhander ★★★★★
()
Ответ на: комментарий от TeopeTuK

В общем, заставил работать pandoc (как оказалось, неюникодная кодировка была даже не в моём документе, а в присоединённом файле .sty, про который я благополучно забыл, да). Формулы сначала конвертировались в их текстовое представление. Я посмотрел, что pandoc ругается на команду \eqno… да и повыкидывал её отовсюду, чтобы посмотреть, что получится.

После этого формулы действительно прекрасно преобразовались в .docx и открылись 2010-м вордом. Зато много чего другого порушилось: таблицы разъехались, нестандартная, но рекомендуемая некоторыми журналами команда \He превратилась в тыкву, список литературы превратился в стену текста без переносов.

В общем, со всем этим надо будет что-то делать…

hobbit ★★★★★
() автор топика
Ответ на: комментарий от hobbit

Да, нумеровать формулы pandoc не умеет, увы. Для списка литературы есть опции --citeproc и --csl, списки литературы для workflow типа latex+bibtex (с пакетом natbib) формируются вполне адекватно. Сложные таблицы (или нестандартные, из пакетов tabu или tabularray, скажем) pandoc не конвертирует, но с несложными tabular вполне справляется, \multicolumn и \multirow поддерживаются). Что такое \He, не знаю.

Ну и не могу не удивиться, увидев \eqno в коде на LaTeX. Вручную в LaTeX не принято ничего нумеровать.

\begin{equation}\label{eq:DeltaT}
\Delta t = t_{cur}-t_{prev}
\end{equation}
Как видно из определения~\eqref{eq:DeltaT}, ...
TeopeTuK ★★★★
()
Ответ на: комментарий от hobbit

список литературы превратился в стену текста без переносов.

make4ht прекрасно справляется со списком литературы. А вообще если очень важно именно оформление, а не структура текста, чтобы гонять его туда-сюда. Надо взять самый свежий ворд, 2016й тоже подойдёт и скормить ему pdf. На выходе получится очень похожий docx файл. Способ не работает в вайне.

einhander ★★★★★
()