А язык TikZ для рисования иллюстраций, являющийся, по сути, пакетом LaTeX, позволяет включать графический материал непосредственно в исходный документ презентации (in place или же в виде команд – зависит от частоты использования). На этом языке можно создавать и иллюстрации, оперируя концепциями предметной области, будь то ядро и электрон, или граф и ребра, или фотон и другой фотон… Более того, графика TikZ, скооперированная с возможностями покадровой анимации beamer, позволяет делать красивые и элегантные вещи путем незначительных затрат.
МАТЕМАТИКА
И, наконец, последний составной элемент базового рабочего места научного работника – пакеты для математических расчетов, графическое отображение результатов и системы для управления экспериментальными комплексами. В этом сегменте предлагается обратить внимание на популярный язык программирования, принадлежащий семейству динамических языков, Python (www python org, www activestate com). Интересен язык не сам по себе (обсуждение его возможностей – тема для отдельной большой беседы), а именно в контексте поставленных задач. Достоинством Python является то, что он, поддерживая ООП-парадигму, может с одинаковой легкостью быть использован и в качестве калькулятора, и в качестве скриптового языка склейки/пакетной обработки, и в качестве языка для управления программно-аппаратными комплексами. Благодаря огромному количеству пакетов, решение очень многих задач существенно упрощается.
Для математических расчетов есть масса специализированных программ (например, wiki python org/moin/NumericAndScientific, www enthought com), существуют сборки, содержащие огромное количество специализированных пакетов (например, code enthought com/enthon). Есть отдельные пакеты для рисования графиков, например MatPlotLib (matplotlib sourceforge net). Это очень удобный вариант, особенно если рассматривать связку «экспериментальная установка + документ». Данные, полученные с экспериментальной установки (или численного эксперимента) под управлением ПО, созданного на Python, проходят предварительную обработку (опять Python), информация выдается в файлы в виде графиков (2D, 3D, прочие форматы), а после этого при помощи python-скриптов частично формируется и запускается на компиляцию latex-документ, использующий эти графики. [Автоматизация на Питоне – штука довольно распространенная. Так, например, в студии ILM на Питон завязан весь процесс производства визуальных эффектов. – В.Г.] В результате в полностью автоматическом режиме можно получить на выходе профессионально созданный pdf-файл с отчетами о проведенном эксперименте. Также с использованием Python достаточно легко можно писать GUI к различным программам (например, пакеты TkInter, wxPython, TraitsUI). И многое-многое другое.
Полагаю разумным сделать паузу и предоставить читателям возможность сходить по незнакомым ссылкам и подробнее ознакомиться с упомянутыми материалами. Разумеется, все упомянутые продукты непросты в освоении, но усилия, потраченные на овладение ими, того стоят. Воспользовавшись возникшим вакуумом, можно не пытаться воссоздавать ранее бывшее окружение путем поиска эрзацев, а попытаться сменить видение. Решать эту задачу в одиночку сложни тяжело, но, с другой стороны, существует огромное количество технологий и продуктов, позволяющих объединять усилия различных людей в одном направлении. И эти технологии очень хорошо вписываются в структуру научного сообщества, дополняя и расширяя существующие связи между научными группами. Наличие инициативной группы, являющейся неформальным ядром такого сообщества, позволит сменить парадигму достаточно безболезненным образом. Болеетого, такая система является системой с положительной обратной связью, и, будучи запущена, может поддерживать себя сама. В качестве результатов работы такой группы можно продемонстрировать ресурс «TeX в Институте математики и механики УрО РАН». Ему уже около четырнадцати лет (восемь из них посвящены работе с MiKTeX), и история его развития может служить показательным примером того, как можно успешно внедрять новые технологии в научных учреждениях.
Наверняка многие читатели скажут, что существует множество замечательных пакетов и продуктов, которые позволяют решать указанные задачи. Это действительно так. К сожалению, если начинать описывать все возможные комбинации продуктов с уче– том версий и особенностями интеграции, то получится многотомный труд с малоупотребимыми результата– ми, вследствие их быстрого устаревания. Поэтому в статье предложен только подход к решению задач и указаны пакеты и продукты, которые были выбраны на основе личного опыта и прошли экспериментальную апробацию в различных областях деятельности, а не только в научной.