Международная конференция разработчиков
и пользователей свободного программного обеспечения

Гибкая графика LaTeX

Yury Andreev, Saint-Petersburg, russian_federation

LVEE 2015

Classification of the different types of graphics elements will be given. Mixed methods to work with graphics within LaTeX system are examined. A brief overview of the appropriate tools and tips are given as well.

Введение

Система вёрстки LaTeX теоретически обладает неограниченными возможностями по набору сложных документов. Подключение соответствующих пакетов позволяет отображать такие сложные объекты как ноты и структурные химические формулы. Наиболее востребованной является возможность быстрого набора сложных математических формул:

О графике LaTeX можно найти много информации, в данной же статье хотелось бы заострить внимание на следующей проблеме.

Графика — область чрезвычайно обширная. Многие графические элементы, типа перечисленных выше, создаются по чётко определённым правилам и поэтому могут быть эффективно описаны на каком-либо языке. С другой стороны, есть элементы, требующие повышенной гибкости редактирования, правила создания которых заранее не известны. И в таких случаях применение программного подхода становится практически невозможным. Далее мы дадим классификацию элементов по типу редактирования и кратко опишем несколько практических приёмов работы с графикой в рамках системы LaTeX.

1. Генерируемая графика

Когда графический элемент может быть сгенерирован, он обычно описывается на языке одного из прикладных пакетов: R, GNUPlot, Graphviz, ROOT, Maple, Sage и др. Если нам нужно будет использовать полученные результаты в latex-документе, то их всегда можно экспортировать в форматы ps, pdf и затем вставить в latex-документ с помощью пакета graphics. Этот способ можно назвать обобщением, так как экспорт производится в формат более широкого назначения. Но при его использовании теряется информация (читаемость). Поэтому, для возможности последующего редактирования и более удобного взаимодействия, для сохранения исходного кода, для поддержки единой стилистики, пакеты обычно предоставляют способы интеграции с LaTeX: конвертацию (преобразование кода одного языка в другой) и внедрение (использование кода одного языка в другом).

2. Когда нужна корректировка. Ограничения против гибкости

Иногда возможно генерировать основу графического элемента, но при этом возникает необходимость последующего добавления или корректировки деталей. Также, при создании некоторых элементов, становится трудно искать и редактировать их детали — недостатки текстового набора тут начинают перевешивать преимущества. В качестве примера можно привести работу с таблицами. Ещё одним примером является пакет grafviz (язык dot). Он работает по принципу ограничивающих условий, когда элементы описываются рядом ограничений по характеристикам, а реальные значения этих характеристик вычисляются в момент генерации. Поэтому полученный результат может нуждаться в корректировке. (Пакет используется для отображения различных зависимостей, в программном обеспечении от Puppet до Trac.)

3. WYSIWYG подход

Если примером задачи из первого раздела могла бы быть задача построения параболы, когда нужно отдать на выполнение только её формулу и, возможно, границы области вывода, примером для второго раздела могла бы быть кривая Безье, вычисление которой происходит на основе опорных точек, координаты которых и нужно сообщить (и делать это лучше в графическом редакторе), то, задача этого раздела — построение произвольного графика. Это полностью WYSIWYG (What You See Is What You Get) задача.

Перечислим несколько редакторов, от общих к специализированным, слева на право: Inkscape, GeoGebra, TexMacs, LatexDraw, jPicEdt. С помощью них возможен экспорт в такие форматы latex-пакетов, как pstricks, tikz, eepic, обычный latex.

Ситуация осложняется, когда необходимо редактировать уже существующий код одного из latex-пакетов или нужно вставить в редактируемый документ изображение из другого файла. Это не всегда возможно сделать гладко.

Выводы

В рамках системы LaTeX возможно совместное использование текстового формата и WYSIWYG-управления, что позволяет добиться необходимой гибкости в редактировании графических элементов разной природы. Такая гибкость усложняет межпрограммное взаимодействие. Накладными расходами является также необходимость поиска подходящих конвертеров и редакторов, и общих соглашений по работе над конкретной задачей.

Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license

Назад