Прежде всего систему для набора и верстки текста, содержащего огромное количество формул, иллюстраций, библиографических ссылок. Далее можно указать систему для создания презентационного материала, опять же содержащего формулы, специфические картинки (например, химические формулы или диаграммы Фейнмана) и библиографию.
Следующий блок – ПО для рисования графиков. И в качестве ежедневного инструмента – пакет, позво-ляющий проводить сложные математические расчеты, а для экспериментаторов еще и язык разработки/модификации софта по управлению экспериментальными установками, сбору и обработки данных. Далее вкратце рассмотрим, что можно противопоставить парадигмам работы, предлагаемым Word/Origin/C++. Для этого проследуем стандартным путем – сформулируем требования к ПО и попытаемся подобрать максимально отвечающий им продукт.
ТЕКСТ
Какие требования обычно предъявляются к системам работы с текстом?
• стабильность работы;
• малый объем файла;
• совместимость форматов файлов как вниз, так и вверх;
• возможность работы с многостраничными документами, содержащими сотни, а то и тысячи формул;
• стабильная и простая работа со ссылками (номера формул, страницы, номера пунктов, библиография, ссылки на рисунки и таблицы);
• возможность внедрения графических объектов по ссылкам;
• разделение содержания и внешнего представления.
Мой опыт работы с различными текстовыми редакторами и с издательскими системами показывает, что лучше LaTeX в этой области нет ничего. Самый популярный дистрибутив LaTeX для Windows (а менять ОС вряд ли кто решится – купить все же проще) – MikTeX.
Отсутствие WYSIWYG, совершенно иной подход к созданию документов и большой набор команд на первый взгляд существенно усложняют работу с системой. Но это впечатление обманчиво. Достаточно сделать над собой небольшое усилие и немного поработать с объемистым документом физико-математической направленности, как преимущества подхода разделения содержания и представления становятся очевидны. Имея на руках чистый ASCII-файл страниц на сто, можно безболезненно проводить над ним жуткие с точки зрения систем а-ля Word операции: переставлять формулы, удалять абзацы, вставлять/удалятькартинки, перенумеровывать библиографию и пр. А в интеграции с системой контроля версий (рекомендую обратить внимание на Subversion, subversion tigris org, и его Windows-клиента TortoiseSVN, tortoisesvn net) можно сохранить всю историю создания документа, совместную работу над большой статьей или книгой, возвращаться к написанному ранее и выбирать наиболее удачные формулировки.
Немаловажно и то, что работа с библиографией встроена в LaTeX практически бесшовным образом. Поскольку число ссылок в библиографической БД редко превышает несколько тысяч, а скорость доступа к записям особой роли не играет, то хранение БД в виде текстового файла (bibtex) полностью подпадает под правила работы с основным материалом, набранным в TeX. Более того, существует ряд продуктов, которые позволяют работать с библиографической БД с помощью удобных интерфейсов. В частности, заслуживает внимания замечательный пакет JabRef (jabref sourceforge net).
ПРЕЗЕНТАЦИИ
Теперь очередь продукта для создания презентационного материала. В голове у большинства пользователей сразу возникает монумент с огромной надписью «PowerPoint». Несомненно, презентации в PPT уже стали стандартом де-факто. Однако четкого разделения содержания и представления в PowerPoint нет. Трудность изменения оформления презентации, сделанной с отступлениями от базовых стилей и макета (99% случаев), формулы, неприспособленная система макетов требуют колоссальной ручной работы при незначительных изменениях оформления презентации. Неудобные средства анимации не позволяют сделать что-либо кра-сивое с документами, содержащими массу формул. Что же можно предложить в качестве альтернативы? Ответ может выглядеть парадоксальным – это все тот же LaTeX, но с тремя дополнительными пакетами: beamer (latex-beamer sourceforge net), pscyr и pgf+TikZ (последние версии pscyr, pgf и xcolor необходимо брать либо из дистрибутива MiKTeX, либо с домашних страниц – на sourceforge в связке с beamer лежат старые версии). Исходник презентации в ASCII-формате, жесткое разделение содержательной части от оформления, возможность многократного использования своих собственных команд по выводу блоков текста, формул или графического материала, поддержка послайдовой анимации путем текстовой раскадровки, использование возможностей pdf для интеграции с внешними источниками (exe, avi и пр.) позволяют подготовить материал с огромным количеством формул и иллюстраций буквально в считанные часы. При этом за счет сбалансированных стилевых файлов документ будет выглядеть профессионально. При необходимости изменение дизайна презентации проводится в течение одной-двух минут – достаточно выбрать новый стилевой файл и перекомпилировать исходный документ. Также можно получить содержимое презентации в печатном виде: скриншоты экранов с комментариями к каждому кадру.
А язык 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), и история его развития может служить показательным примером того, как можно успешно внедрять новые технологии в научных учреждениях.