summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/x-chemml.mkiv
diff options
context:
space:
mode:
authorTaco Hoekwater <taco@elvenkind.com>2011-06-01 08:54:21 +0000
committerTaco Hoekwater <taco@elvenkind.com>2011-06-01 08:54:21 +0000
commitd7ccb42582f85acf30568913610ccf4d602023fb (patch)
tree7292e3545a420676878e7451b68892d360c62cb6 /Master/texmf-dist/tex/context/base/x-chemml.mkiv
parent2d62a6fe9b80def59c392268022f1f9a2d6e358f (diff)
commit context 2011.05.18
git-svn-id: svn://tug.org/texlive/trunk@22719 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/base/x-chemml.mkiv')
-rw-r--r--Master/texmf-dist/tex/context/base/x-chemml.mkiv88
1 files changed, 27 insertions, 61 deletions
diff --git a/Master/texmf-dist/tex/context/base/x-chemml.mkiv b/Master/texmf-dist/tex/context/base/x-chemml.mkiv
index f9ed3296041..9ad8ed6c12b 100644
--- a/Master/texmf-dist/tex/context/base/x-chemml.mkiv
+++ b/Master/texmf-dist/tex/context/base/x-chemml.mkiv
@@ -13,6 +13,10 @@
\writestatus{loading}{ConTeXt XML Macros / Chemistry}
+\registerctxluafile{x-chemml}{}
+
+\def\ctxmodulechemml#1{\directlua\zerocount{moduledata.chemml.#1}}
+
\usemodule[pictex,chemic] % someday we will do structural fomulas in mp
%D The following code assumes a load||flush approach to \XML.
@@ -20,7 +24,6 @@
\unprotect
\startxmlsetups xml:cml:process
-
\xmlstrip {\xmldocument} {cml:chem|cml:ichem|cml:dchem|cml:reaction|cml:molecule|cml:ion|cml:structure}
\xmlgrab {\xmldocument} {cml:*} {*}
@@ -39,16 +42,6 @@
\setupCMLappearance [ion] [\c!alternative=\v!a]
-\startluacode
- function lxml.cml_do_pi(id)
- local str = xml.content(lxml.id(id))
- local _, class, key, value = str:match("^(%S+)%s+(%S+)%s+(%S+)%s+(%S+)%s*$")
- if key and value then
- tex.sprint(tex.ctxcatcodes,string.format("\\setupCMLappearance[%s][%s=%s]",class, key, value))
- end
- end
-\stopluacode
-
\def\doifelseCMLvariable#1#2#3% id key value
{\doifelse{\xmlatt{#1}{#2}}{#3}
\firstoftwoarguments
@@ -57,7 +50,7 @@
\secondoftwoarguments}}
\startxmlsetups cml:pi
- \ctxlua{lxml.cml_do_pi(#1)}
+ \ctxmodulechemml{pi(#1)}
\stopxmlsetups
\startxmlsetups cml:chem
@@ -194,62 +187,35 @@
% It makes not much sense to adapt ppchtex to accept different input. Maybe some day.
-\startluacode
- function lxml.cml_do_graphic(id)
- local t = { }
- for r, d, k in xml.elements(lxml.id(id),"cml:graphic") do
- t[#t+1] = xml.tostring(d[k].dt)
- end
- tex.sprint(tex.ctxcatcodes,table.concat(t,","))
- end
- function lxml.cml_no_graphic(id)
- local t = { }
- for r, d, k in xml.elements(lxml.id(id),"cml:text|cml:oxidation|cml:annotation") do
- local dk = d[k]
- if dk.tg == "oxidation" then
- t[#t+1] = string.format("\\chemicaloxidation{%s}{%s}{%s}",r.at.sign or "",r.at.n or 1,xml.tostring(dk.dt))
- elseif dk.tg == "annotation" then
- local location = r.at.location or "r"
- local caption = xml.content(xml.first(dk,"cml:caption"))
- local text = xml.content(xml.first(dk,"cml:text"))
- t[#t+1] = string.format("\\doCMLannotation{%s}{%s}{%s}",location,caption,text)
- else
- t[#t+1] = xml.tostring(dk.dt) or ""
- end
- end
- tex.sprint(tex.ctxcatcodes,table.concat(t,","))
- end
-\stopluacode
-
\startxmlsetups cml:component
\expanded {
\chemical
- [\ctxlua{lxml.cml_do_graphic("#1")}]
- [\ctxlua{lxml.cml_no_graphic("#1")}]
+ [\ctxmodulechemml{do_graphic("#1")}]
+ [\ctxmodulechemml{no_graphic("#1")}]
}
\stopxmlsetups
\unexpanded\def\doCMLannotation#1% #2#3% loc caption text
- {\XMLval{cml:a:l}{#1}{\chemicalright}}% {#2}{#3}}
-
-\mapXMLvalue {cml:a:l} {t} {\chemicaltop}
-\mapXMLvalue {cml:a:l} {b} {\chemicalbottom}
-\mapXMLvalue {cml:a:l} {l} {\chemicalleft}
-\mapXMLvalue {cml:a:l} {r} {\chemicalright}
-\mapXMLvalue {cml:a:l} {lc} {\chemicalleftcentered} % \mapXMLvalue {cml:a:l} {cl} {\chemicalleftcentered}
-\mapXMLvalue {cml:a:l} {rc} {\chemicalrightcentered} % \mapXMLvalue {cml:a:l} {cr} {\chemicalrightcentered}
-\mapXMLvalue {cml:a:l} {tl} {\chemicaltopleft} % \mapXMLvalue {cml:a:l} {lt} {\chemicaltopleft}
-\mapXMLvalue {cml:a:l} {bl} {\chemicalbottomleft} % \mapXMLvalue {cml:a:l} {lb} {\chemicalbottomleft}
-\mapXMLvalue {cml:a:l} {tr} {\chemicaltopright} % \mapXMLvalue {cml:a:l} {rt} {\chemicaltopright}
-\mapXMLvalue {cml:a:l} {br} {\chemicalbottomright} % \mapXMLvalue {cml:a:l} {rb} {\chemicalbottomright}
-\mapXMLvalue {cml:a:l} {lt} {\chemicallefttop} % \mapXMLvalue {cml:a:l} {tl} {\chemicallefttop}
-\mapXMLvalue {cml:a:l} {lb} {\chemicalleftbottom} % \mapXMLvalue {cml:a:l} {bl} {\chemicalleftbottom}
-\mapXMLvalue {cml:a:l} {rt} {\chemicalrighttop} % \mapXMLvalue {cml:a:l} {tr} {\chemicalrighttop}
-\mapXMLvalue {cml:a:l} {rb} {\chemicalrightbottom} % \mapXMLvalue {cml:a:l} {br} {\chemicalrightbottom}
-\mapXMLvalue {cml:a:l} {x} {\chemicaltighttext}
-\mapXMLvalue {cml:a:l} {sl} {\chemicalsmashedleft} % \mapXMLvalue {cml:a:l} {ls} {\chemicalsmashedleft}
-\mapXMLvalue {cml:a:l} {sm} {\chemicalsmashedmiddle} % \mapXMLvalue {cml:a:l} {ms} {\chemicalsmashedmiddle}
-\mapXMLvalue {cml:a:l} {sr} {\chemicalsmashedright} % \mapXMLvalue {cml:a:l} {rs} {\chemicalsmashedright}
+ {\xmlval{cml:a:l}{#1}{\chemicalright}}% {#2}{#3}}
+
+\xmlmapvalue {cml:a:l} {t} {\chemicaltop}
+\xmlmapvalue {cml:a:l} {b} {\chemicalbottom}
+\xmlmapvalue {cml:a:l} {l} {\chemicalleft}
+\xmlmapvalue {cml:a:l} {r} {\chemicalright}
+\xmlmapvalue {cml:a:l} {lc} {\chemicalleftcentered} % \xmlmapvalue {cml:a:l} {cl} {\chemicalleftcentered}
+\xmlmapvalue {cml:a:l} {rc} {\chemicalrightcentered} % \xmlmapvalue {cml:a:l} {cr} {\chemicalrightcentered}
+\xmlmapvalue {cml:a:l} {tl} {\chemicaltopleft} % \xmlmapvalue {cml:a:l} {lt} {\chemicaltopleft}
+\xmlmapvalue {cml:a:l} {bl} {\chemicalbottomleft} % \xmlmapvalue {cml:a:l} {lb} {\chemicalbottomleft}
+\xmlmapvalue {cml:a:l} {tr} {\chemicaltopright} % \xmlmapvalue {cml:a:l} {rt} {\chemicaltopright}
+\xmlmapvalue {cml:a:l} {br} {\chemicalbottomright} % \xmlmapvalue {cml:a:l} {rb} {\chemicalbottomright}
+\xmlmapvalue {cml:a:l} {lt} {\chemicallefttop} % \xmlmapvalue {cml:a:l} {tl} {\chemicallefttop}
+\xmlmapvalue {cml:a:l} {lb} {\chemicalleftbottom} % \xmlmapvalue {cml:a:l} {bl} {\chemicalleftbottom}
+\xmlmapvalue {cml:a:l} {rt} {\chemicalrighttop} % \xmlmapvalue {cml:a:l} {tr} {\chemicalrighttop}
+\xmlmapvalue {cml:a:l} {rb} {\chemicalrightbottom} % \xmlmapvalue {cml:a:l} {br} {\chemicalrightbottom}
+\xmlmapvalue {cml:a:l} {x} {\chemicaltighttext}
+\xmlmapvalue {cml:a:l} {sl} {\chemicalsmashedleft} % \xmlmapvalue {cml:a:l} {ls} {\chemicalsmashedleft}
+\xmlmapvalue {cml:a:l} {sm} {\chemicalsmashedmiddle} % \xmlmapvalue {cml:a:l} {ms} {\chemicalsmashedmiddle}
+\xmlmapvalue {cml:a:l} {sr} {\chemicalsmashedright} % \xmlmapvalue {cml:a:l} {rs} {\chemicalsmashedright}
\startxmlsetups cml:forever
\left[\xmlflush{#1}\right]