20080918

Python внутри LaTeX (и математический пакет Sage тоже)

Недавно узнал такой приёмчик: внутри документа LaTeX можно исполнять скрипты на Python. Можно использовать, например, для автоматической генерации фрагментов текста (например, таблиц, илюстраций), считывания данных из внешних источников и т.д. Простор для фантазии большой.

Для этого нужно:
  • скачать файл python.sty (копия python.sty на gist.github.com). Положить его в каталог с документом.
  • В документе в преамбуле включить \usepackage{python}
  • Внутри документа фрагменты кода на Python помещать в окружение \begin{python}\end{python}. Всё, что эти фрагменты кода будут печатать, станет частью конечного документа.
  • Запускать LaTeX нужно с опцией -shell-escape (разрешая тем самым запуск внешнего кода из-под LaTeX)
Вот, пример исходника LaTeX и PDF, который из него получается.

Дополнение 2008-09-22: Вот более интересные примеры использования Python внутри LaTeX, файл LaTeX и полученный из него PDF. В этих примерах: символические вычисления с помощью sympy, сохранение переменных между вызовами Python, построение графиков с помощью matplotlib.

P.S. Заодно узнал, что есть такая штука, как Sage, пакет для математических расчётов, объединяющий в себе многие разработки с открытым исходным кодом. Очень похоже на Matematica, но в отличие от последней с нормальным, питоническим синтаксисом:) Так вот, Sage тоже можно вызывать прямо из LaTeX (и подставлять в него результаты, картинки и прочее). Это делается пакетом sagetex. Да, кстати, начать пользоваться Sage можно не устанавливая его, а воспользовавшись web-версией. Das ist fantastisch. Google Docs отдыхают.

Ссылки по теме:
Embedding Python in LaTeX
Примеры использования Python внутри LaTeX: симолические вычисления, построение графиков, сохранение результатов
Sage, достойная альтернатива Математике
Пример использования Scheme внутри LaTeX

Этот пост по-английски: Python inside LaTeX (and Sage too)