Выводить форматированный текст (включая исходный код) как LaTeX, PDF и HTML

Я редактирую много документов в латексе, которые состоят из листингов кода и в настоящее время выводятся в pdf.

Поскольку я работаю над этими документами в группах, мне часто приходится вручную интегрировать изменения, внесенные членами группы, в источник латекса.

Большинство членов группы не знакомы с латексом, поэтому я хотел бы иметь средства, позволяющие им выполнять форматирование документа в стиле, похожем на уценку.

Поскольку латексные документы состоят из рисунков, имеют ссылки и используют пакет lslisting, мне интересно, можно ли сопоставить эти конкретные области с простым синтаксисом стиля уценки.

Пример рабочего процесса:

  • Edit file in Markdown (or similar)
    • tag sections
    • области кода тега
    • цифры на бирках
    • ссылки на теги
  • convert to latex
    • automatically convert tags
  • output
    • pdf
    • html

Можно ли как-нибудь добиться такого рабочего процесса? Может быть, уже есть решения для моего конкретного рабочего процесса?


person jottr    schedule 19.01.2011    source источник


Ответы (4)


Вам следует взглянуть на pandoc (по крайней мере, если я правильно понимаю ваш вопрос). Он может конвертировать между несколькими форматами (tex, pdf, word, reStructuredText), а также поддерживает расширенные версии синтаксиса уценки для обработки более сложных проблем (например, вставка информации заголовка в html).

С его помощью вы можете смешивать уценку и LaTeX, а затем компилировать в html, tex и pdf. Вы также можете включить ссылки на bibtex из внешнего файла.

Некоторые примеры (от уценки до латекса и html):

pandoc -f markdown -t latex infile.txt -o outfile.tex
pandoc -f markdown -t html infile.txt -o outfile.html

Чтобы добавить свой собственный шаблон LaTex, переходящий от markdown к pdf, и библиографию:

 pandoc input.text --template=FILE --bibliography refs.bib -o outfile.pdf

Это действительно гибкая и классная программа, и я сам часто ею пользуюсь.

person fileunderwater    schedule 14.06.2013

Вот пример для Docutils.

Title
=====

Section
-------

.. _code:

Code area::

  #include <iostream>
  int main() {
    std::cout << "Hello World!" << std::endl;
  }

.. figure:: image.png

   Caption for figure

A reference to the code_


Another section
---------------

- Itemize
- lists

#. Enumerated
#. lists

+-----+-----+
|Table|Table|
+-----+-----+
|Table|Table|
+-----+-----+

Сохраните это как example.rst. Затем вы можете скомпилировать в HTML:

rst2html example.rst example.html

или в LaTeX:

rst2latex example.rst example.tex

затем скомпилируйте получившийся документ LaTeX:

pdflatex example.tex
pdflatex example.tex  # twice to get the reference right

Более всеобъемлющая структура для создания документов из нескольких источников - Sphinx, основанная на Docutils и ориентированная на техническую документацию.

person Philipp    schedule 20.01.2011

Вы смотрели Docutils?

person Matthew Leingang    schedule 19.01.2011
comment
Спасибо. это выглядит довольно интересно. Я немного не уверен, как на самом деле начать с этого. Вы использовали docbook в подобном случае? вы можете порекомендовать использовать этот подход? - person jottr; 20.01.2011
comment
@element: это не имеет отношения к DocBook. Docutils использует reStructuredText, похожий на Markdown, но более мощный. - person Philipp; 20.01.2011

Если вы являетесь пользователем Emacs, вы можете найти разметку org-mode по своему вкусу. Он имеет очень хорошую поддержку таблиц, хорошо координируется с другими режимами Emacs, такими как электронная таблица, и имеет хороший экспорт изображений в HTML. Ср. раздел HTML-экспорта прекрасного руководства.

org-mode файлы доступны для редактирования вне Emacs, для членов команды, которые не используют их, хотя предварительный просмотр и внедрение других режимов Emacs, естественно, может быть выполнено только с Emacs.

person Charles Stewart    schedule 20.01.2011