Калькулятор в XeLaTeX

В течении ближайших нескольких месяцев я готовлюсь к защите диломного проекта. Один из разделов пояснительной записки называется “Технико-экономическое обоснование бла-бла-бла”. Там очень много всяких экономических формул, которые достаточно сильно связаны, но в общем расчёт представляет собой последовательную подстановку исходных значений в формулы. Обычно расчёт делают отдельно с помощью электронных таблиц, а потом переписывают значения в пояснительную записку. В реальности, при объёме раздела примерно 20 страниц и неизбежных исправлениях, возникает много монотонной переписывания, при котором легко допустить ошибку.

Свою пояснительную записку я верстаю с помощью XeLaTeX, для которого существует просто огромное количество макропакетов. Xe(La)TeX полностью поддерживает синтаксис LaTeX плюс реализует очень хорошую поддержку системных шрифтов через fontspec.

Я решил, что среди этого огромного количества пакетов должен быть хотябы один для расчётов внутри документа. И я не ошибся, почти сразу нашел пакет fp. По ссылке можно прочитать достаточно подробное описание работы с ним, здесь я просто хочу показать минимальный рабочий пример, демонстрирующий его работу.

\documentclass{article}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage{graphicx}
\defaultfontfeatures{Mapping=tex-text}
\usepackage{polyglossia}
\setdefaultlanguage{english}

\usepackage{fp}

\begin{document}

\FPeval{x}{round((4 * sin(3 * 3.14)):2)}
\FPupn{y}{x 5 / 2 round}

$$ x = 4 \cdot sin(3\pi) = \x $$
$$ y = \frac{5}{x} = \frac{5}{\x} = \y $$

\end{document}

Этот код сгенерирует вот такой документ.

Встроенные вычисления в XeLaTeX

Как видно из примера, пакет fp позволяет записывать вычисления как инфиксной, так и в постфиксной нотации. Надеюсь эта заметка вам пригодится.