XML в TeX или как получить красивый PDF-файл из XHTML-подобного источника

На первый взгляд, простой вопрос:как мне получить великолепный-выглядящий PDF из мой XML-документ? На самом деле мой ввод представляет собой подмножество XHTML с несколькими добавленными пользовательскими атрибутами (, чтобы сохранить некоторую информацию об источниках цитирования и т. д.). Я изучаю некоторые маршруты и хотел бы получить отзывы, если кто-нибудь пробовал что-то из этого раньше.

Примечание:Я рассматривал XSL-FO для создания PDF-файлов, но слышал, что типографское качество инструментов с открытым исходным кодом все еще сильно отстает от TeX. Думаю, самым продвинутым из них является Apache FOP . Но меня действительно интересуют великолепно-выглядящие PDF-файлы, (иначе я мог бы использовать диалоговое окно печати моего браузера). Любые мысли, обновления по этому поводу?

Итак, я подумал об использовании XSLT для преобразования моего настроенного диалекта XML/XHTML в DocBook и перехода оттуда(DocBook через XSLT к правильному HTML, похоже, работает достаточно хорошо, поэтому я мог бы использовать его для и это). Но как мне перейти с DocBook на TeX? Я наткнулся на ряд решений.

  • dblatex Набор таблиц стилей XSLT, которые выводят LaTeX.
  • db2latex Начинался как клон dblatex, но теперь обеспечивает более тесную интеграцию с пакетами LaTex и предоставляет единый сценарий для вывода PDF, что очень удобно.
  • passiveTex Вместо XSLT используется анализатор XML, написанный на TeX.
  • TeXML по сути представляет собой XML-сериализацию языка LaTeX, который можно использовать в качестве промежуточного формата и сопутствующего инструмента Python, который преобразует этот формат XML в LaTeX/ConTeXt. Они утверждали , что это позволяет избежать проблем существующих решений со специальными символами,потеря некоторых фигурных скобок или пробелов и поддержка только кодировки latin-1. (Это все еще так?)

Поскольку мой входной XML может содержать довольно много специальных символов, представленных в Unicode, последний пункт особенно важен для меня. Я также думал об использовании XeTeX вместо pdfTeX, чтобы обойти эту проблему. (Хотя я могу потерять некоторое качество типографики, но, возможно, все же лучше, чем современные процессоры XSL с открытым исходным кодом-FO?)Таким образом, db2latex и TeXML кажутся фаворитами. Так может ли кто-нибудь прокомментировать их надежность?

В качестве альтернативы, мне могло бы повезти больше, если бы я использовал ConTeXt напрямую, поскольку, похоже, сообщество ConTeXt проявляет некоторый интерес к XML . В частности, я мог бы более подробно изучить "Мой способ:Получение веб-контента и pdf-Вывод из одного источника" и "Работа с XML в ConTeXt MkIV" . Оба документа описывают подход, использующий ConTeXt в сочетании с LuaTeX.(DocBook In ConTeXt , кажется, делает примерно то же самое, но последняя версия от 2003 года. )Второй документ отмечает:

Вы можете задаться вопросом, почему мы делаем эти манипуляции в TEX, а не используем вместо них xslt. То Преимущество комплексного подхода в том, что он упрощает использование. Подумайте не только об обработке документ, но также и с использованием XML для управления ресурсами в одном и том же прогоне. xslt подход такой же многословный (в конце концов, вам все еще нужно создавать TEX-код)и, вероятно, менее читаемый. В случае MkIV комплексный подход также быстрее и дает нам возможность манипулировать содержимым во время выполнения с помощью Lua.

Что вы думаете об этом? Пожалуйста, имейте в виду, что у меня есть некоторый опыт работы как с XSLT, так и с TeX, но я никогда не углублялся ни в один из них. Никогда не пробовал много различных пакетов LaTeX или альтернатив, таких как ConTeXt (или XeTeX/LuaTeX вместо pdfTeX), но я готов изучить кое-что новое, чтобы в итоге получить свои прекрасные PDF-файлы;)

Кроме того,Я наткнулся на Pandoc , но не смог найти никакой информации о том, как он сравнивается с другими упомянутыми подходами. И, наконец, ссылка на довольно обширную документацию о том, как использовать TeXML с ConTeXt .

8
задан Brian Tompsett - 汤莱恩 7 June 2015 в 14:19
поделиться