From 8d8d528d2ad52599f11250cfc567fea4f37f2a8b Mon Sep 17 00:00:00 2001 From: Context Git Mirror Bot Date: Tue, 12 Jan 2016 17:15:07 +0100 Subject: 2016-01-12 16:26:00 --- tex/context/modules/mkii/x-chemml.mkii | 212 +++++++++++++++++++++++++++++++++ 1 file changed, 212 insertions(+) create mode 100644 tex/context/modules/mkii/x-chemml.mkii (limited to 'tex/context/modules/mkii/x-chemml.mkii') diff --git a/tex/context/modules/mkii/x-chemml.mkii b/tex/context/modules/mkii/x-chemml.mkii new file mode 100644 index 000000000..08d64e54b --- /dev/null +++ b/tex/context/modules/mkii/x-chemml.mkii @@ -0,0 +1,212 @@ +%D \module +%D [ file=m-chemml, +%D version=2001.09.12, +%D title=\CONTEXT\ XML Modules, +%D subtitle=Loading CHEMML Filters, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\useXMLfilter[cml] + +%D Structural formulas are codes in a \PPCHTEX\ way; this +%D will change -) +%D +%D \startbuffer +%D +%D +%D +%D SIX,B +%D R135 +%D +%D +%D R246 +%D +%D +%D RZ +%D A,B,C,D,E,F +%D +%D +%D Z +%D A +%D A +%D +%D B +%D xxxx +%D +%D B +%D C,D,E,F +%D +%D +%D +%D +%D SIX,B +%D r135 +%D +%D +%D R246 +%D +%D +%D RZ +%D A,B,C,D,E,F +%D +%D +%D +%D \stopbuffer +%D +%D \typebuffer + +% \ifx\XMLgtoks\undefined \newtoks\XMLgtoks \fi +% \ifx\XMLttoks\undefined \newtoks\XMLttoks \fi +% +% \defineXMLenvironment [structure] +% {\startchemical\ignorespaces} +% {\relax\stopchemical} +% +% \def\chemicalXMLg#1% \defineXMLcollect [graphic] \XMLgtoks +% {\doifelsenothing{\the\XMLgtoks} +% {\doglobal\appendtoks #1\to\XMLgtoks\ignorespaces} +% {\doglobal\appendtoks,#1\to\XMLgtoks\ignorespaces}} +% +% \def\chemicalXMLt#1% +% {\doifelsenothing{\the\XMLttoks} +% {\doglobal\appendtoks #1\to\XMLttoks\ignorespaces} +% {\doglobal\appendtoks,#1\to\XMLttoks\ignorespaces}} +% +% \defineXMLenvironment [component] [type=] +% {\global\XMLgtoks\emptytoks +% \global\XMLttoks\emptytoks +% \defineXMLargument[graphic]\chemicalXMLg +% \defineXMLargument[text]\chemicalXMLt +% \ignorespaces} +% {\expanded{\chemical[\the\XMLgtoks][\the\XMLttoks]}% +% \ignorespaces} +% +% \defineXMLargument [oxidation] [sign=,n=1] \chemicalXMLo % +/- 1..7 +% +% \def\chemicalXMLo#1% +% {\expanded{\chemicalXMLt +% {\noexpand\chemicaloxidation{\XMLop{sign}}{\XMLop{n}}{#1}}}% +% \ignorespaces} +% +% \defineXMLenvironment [annotation] [location=] +% {\bgroup +% \defineXMLenvironmentsave[text]{\ignorespaces}{\ignorespaces}% +% \defineXMLenvironmentsave[caption]{\ignorespaces}{\ignorespaces}% +% \ignorespaces} +% {\scratchtoks{\chemicalright}% +% \processaction +% [\XMLop{location}] +% [ t=>\scratchtoks{\chemicaltop}, +% b=>\scratchtoks{\chemicalbottom}, +% l=>\scratchtoks{\chemicalleft}, +% r=>\scratchtoks{\chemicalright}, +% lc=>\scratchtoks{\chemicalleftcentered}, +% rc=>\scratchtoks{\chemicalrightcentered}, +% tl=>\scratchtoks{\chemicaltopleft}, +% bl=>\scratchtoks{\chemicalbottomleft}, +% tr=>\scratchtoks{\chemicaltopright}, +% br=>\scratchtoks{\chemicalbottomright}, +% lt=>\scratchtoks{\chemicallefttop}, +% lb=>\scratchtoks{\chemicalleftbottom}, +% rt=>\scratchtoks{\chemicalrighttop}, +% rb=>\scratchtoks{\chemicalrightbottom}, +% x=>\scratchtoks{\chemicaltighttext}, +% sl=>\scratchtoks{\chemicalsmashedleft}, +% sm=>\scratchtoks{\chemicalsmashedmiddle}, +% sr=>\scratchtoks{\chemicalsmashedright}]% +% \expanded{\chemicalXMLt +% {\the\scratchtoks{\XMLflush{text}}{\XMLflush{caption}}}}% +% \egroup +% \ignorespaces} +% +% \defineXMLenvironment [forever] +% {\chemicalXMLt{\[}\ignorespaces} +% {\chemicalXMLt{\]}\ignorespaces} + +\ifx\XMLgtoks\undefined \newtoks\XMLgtoks \fi +\ifx\XMLttoks\undefined \newtoks\XMLttoks \fi + +\startXMLmapping [cml] + +% this will be a more natural method; this also triggers it + +\installXMLunknownremapping + +% extensions + +\remapXMLsequence [structure] [CPA] \doCMLstructure +\remapXMLsequence [component] [CPA] \doCMLcomponent +\remapXMLsequence [graphic] [CPA] \doCMLgraphic +\remapXMLsequence [text] [CPA] \doCMLtext + +\remapXMLsequence [caption] [CPA] \doCMLcaption +\remapXMLsequence [oxidation] [CPA] \doCMLoxidation +\remapXMLsequence [annotation][CPA] \doCMLannotation +\remapXMLsequence [forever] [CPA] \doCMLforever + +\def\doCMLstructure#1#2% + {\startchemical\ignorespaces#2\unskip\stopchemical} + +\def\doCMLgraphic#1#2% + {\doifelsenothing{\the\XMLgtoks} + {\uppercase{\doglobal\appendtoks #2\to\XMLgtoks\ignorespaces}} + {\uppercase{\doglobal\appendtoks,#2\to\XMLgtoks\ignorespaces}}% + \ignorespaces} + +\def\doCMLtext#1#2% + {\doifelsenothing{\the\XMLttoks} + {\doglobal\appendtoks #2\to\XMLttoks\ignorespaces} + {\doglobal\appendtoks,#2\to\XMLttoks\ignorespaces}% + \ignorespaces} + +\def\doCMLcomponent#1#2% + {\global\XMLgtoks\emptytoks + \global\XMLttoks\emptytoks + \ignorespaces#2\unskip + \expanded{\chemical[\the\XMLgtoks][\the\XMLttoks]}% + \ignorespaces} + +\def\doCMLannotation#1#2% + {\getXMLarguments{cml}{location="" #1}% + \def\dodoCMLannotation##1% + {\doCMLtext\empty{##1% + {\let\doCMLtext \secondoftwoarguments\processXMLRchild{text}{#2}}% + {\let\doCMLcaption\unmapXMLdata \processXMLRchild{caption}{#2}}}}% + \processaction + [\XMLpar{cml}{location}{r}] + [ t=>\dodoCMLannotation\chemicaltop, + b=>\dodoCMLannotation\chemicalbottom, + l=>\dodoCMLannotation\chemicalleft, + r=>\dodoCMLannotation\chemicalright, + lc=>\dodoCMLannotation\chemicalleftcentered, + rc=>\dodoCMLannotation\chemicalrightcentered, + tl=>\dodoCMLannotation\chemicaltopleft, + bl=>\dodoCMLannotation\chemicalbottomleft, + tr=>\dodoCMLannotation\chemicaltopright, + br=>\dodoCMLannotation\chemicalbottomright, + lt=>\dodoCMLannotation\chemicallefttop, + lb=>\dodoCMLannotation\chemicalleftbottom, + rt=>\dodoCMLannotation\chemicalrighttop, + rb=>\dodoCMLannotation\chemicalrightbottom, + x=>\dodoCMLannotation\chemicaltighttext, + sl=>\dodoCMLannotation\chemicalsmashedleft, + sm=>\dodoCMLannotation\chemicalsmashedmiddle, + sr=>\dodoCMLannotation\chemicalsmashedright]% + \ignorespaces} + +\def\doCMLoxidation#1#2% + {\getXMLarguments{cml}{sign="" n="1" #1}% + \expanded{\doCMLtext{}% + {\noexpand\chemicaloxidation{\XMLpar{cml}{sign}{}}{\XMLpar{cml}{n}{}}{#2}}}% + \ignorespaces} + +\def\doCMLforever#1#2{\[#2\]} + +\stopXMLmapping + +\endinput -- cgit v1.2.3