XyMTeX

XϒMTeX (ранее — ChemTeX)— пакет для TeX, который позволяет рисовать химические формулы с помощью специфичной разметки текста.

Название

Слово 'chemestry' происходит от арабского слово 'alchemy', которое восходит корнями к греческому . «XyM» в названии пакета берётся именно из греческого слова.

Произносится XyMTeX как «khymtekh», где «kh» читается как русское «х» или английское «k», а «y» близко к немецкому «ü».

История

XyMTeX был разработан R. T. Haas, K. C. O’Kane и M. Ramek[1][2] как расширение для макропакета LaTeX. Первый релиз был осуществлён в 1993 году для LaTeX 2.09.[3][4] Ранние версии (до версии 3.00) базировались на графическом окружении LaTeX и на функционале пакета epic, которые позволяли пользователю возможность рисовать простые схемы. Эта версия была совместима с оригинальным LaTeX и генерировала .dvi-файлы, которые потом можно было преобразовать в .pdf используя конвертер dvipdfm(x).

Сейчас такой тип компилирования называется TEX/LATEX-compatible mode.

Следующее поколение версия (до 4.06) базировалось на функционале пакета PSTricks. Сейчас такой способ работы называется PostScript-compatible mode:

С другой стороны, стоит отметить, что старый метод работы никуда не исчез, а продолжает поддерживаться и по сей день.

Последние версии (до 5.01) базируются на функционале пакета pdf, который соответствует dvi-to-pdf конвертации. Данный метод работы называется PDF-compatible mode и используется в текущей версии XyMTeX.

Недостатки

Изначально большой проблемой для XyMTeX являлось ограничение на количество аргументов функции: вызвать функцию более, чем с девятью аргументами, было невозможно в принципе, тогда как на практике для более-менее сложных химических соединений требовалось более двадцати аргументов. Аргументы были плохо специфицированы

Пример

Данный код компилируется в структуру на рисунке.

Corticosterone as rendered by XyMTeX
\documentclass{letter}
\usepackage{epic,carom}
\pagestyle{empty}
\begin{document}
\begin{picture}(1000,500)
   \put(0,0){\steroid[d]{3D==O;{{10}}==\lmoiety{H$_{3}$C};{{13}}==\lmoiety{H$_{3}$C};{{11}}==HO}}
   \put(684,606){\sixunitv{}{2D==O;1==OH}{cdef}}
\end{picture}
\end{document}

Примечания

  1. R. T. Haas and K. C. O’Kane, Comput. Chem.,11, 251 (1987)
  2. M. Ramek, in "TEX: Applications, Uses, Methods, " ed. by M. Clark, Ellis Horwood, London (1990) p 277
  3. S. Fujita, Comput. Chem.,18, 109—116 (1994)
  4. S. Fujita, TUGboat,16 (1), 80-88 (1995)

Ссылки