diff options
author | Taco Hoekwater <taco@elvenkind.com> | 2011-06-01 08:54:21 +0000 |
---|---|---|
committer | Taco Hoekwater <taco@elvenkind.com> | 2011-06-01 08:54:21 +0000 |
commit | d7ccb42582f85acf30568913610ccf4d602023fb (patch) | |
tree | 7292e3545a420676878e7451b68892d360c62cb6 /Master/texmf-dist/tex/context/base/x-chemml.mkiv | |
parent | 2d62a6fe9b80def59c392268022f1f9a2d6e358f (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.mkiv | 88 |
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] |