summaryrefslogtreecommitdiff
path: root/tex/context/base/x-newpml.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/x-newpml.tex')
-rw-r--r--tex/context/base/x-newpml.tex250
1 files changed, 250 insertions, 0 deletions
diff --git a/tex/context/base/x-newpml.tex b/tex/context/base/x-newpml.tex
new file mode 100644
index 000000000..d69231e3f
--- /dev/null
+++ b/tex/context/base/x-newpml.tex
@@ -0,0 +1,250 @@
+%D \module
+%D [ file=xtag-pml,
+%D version=2001.06.10,
+%D title=\CONTEXT\ XML Support,
+%D subtitle=Units,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt XML Macros / Units}
+
+\usemodule[newmml]
+
+%D Quick and dirty in||line units:
+%D
+%D \startbuffer
+%D <phys>
+%D <cn> 10 </cn>
+%D <cu> <Newton/> <Square/> <Meter/> <Per/> <Sec/> </cu>
+%D </phys>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+%D
+%D A more \MATHML||like unit application:
+%D
+%D \startbuffer
+%D <phys> <apply> <unit/>
+%D <cn> 10 </cn>
+%D <csymbol> <Square/> <Meter/> <Per/> <Sec/> </csymbol>
+%D </apply> </phys>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+%D
+%D A bit more compact:
+%D
+%D \startbuffer
+%D <phys> <apply> <unit/>
+%D <cn> 10 </cn>
+%D <cu> <Square/> <Meter/> <Per/> <Sec/> </cu>
+%D </apply> </phys>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+%D
+%D A bit more complicated:
+%D
+%D \startbuffer
+%D <phys> <apply> <unit/>
+%D <apply> <divide/> <ci> a </ci> <cn> 10 </cn> </apply>
+%D <cu> <Square/> <Meter/> <Per/> <Sec/> </cu>
+%D </apply> </phys>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+%D
+%D An alternative (equivalent) for \type {</cu>}:
+%D
+%D \startbuffer
+%D <phys> <apply> <unit/>
+%D <cn> 10 </cn> <cunseq> <Square/> <Meter/> <Per/> <Sec/> </cunseq>
+%D </apply> </phys>
+%D \stopbuffer
+%D
+%D \typebuffer \processXMLbuffer
+
+\usemodule[units]
+
+\unprotect
+
+\defineXMLargument [phys] \automathematics
+\defineXMLargument [iphys] \inlinemathematics
+\defineXMLargument [dphys] \displaymathematics
+
+\defineXMLcommand [unit] {\directsetup{pml:unit}}
+
+\startsetups pml:unit
+ \flushXMLstackwith\plustwo\relax
+\stopsetups
+
+% \defineXMLenvironment
+% [unit]
+% {\ignorespaces}
+% {\removeunwantedspaces}
+
+\defineXMLsingular
+ [unit]
+ [label=]
+ {\XMLop{label}}
+
+\defineXMLsingular
+ [unitmeaning]
+ [label=]
+ {\expanded{\unitmeaning{\XMLop{label}}}}
+
+\let\handlePMLunit\firstofoneargument
+
+%D All unit commands are remapped in a similar way.
+
+\defineXMLsingular [Atto] {\handlePMLunit\Atto}
+\defineXMLsingular [Femto] {\handlePMLunit\Femto}
+\defineXMLsingular [Pico] {\handlePMLunit\Pico}
+\defineXMLsingular [Nano] {\handlePMLunit\Nano}
+\defineXMLsingular [Micro] {\handlePMLunit\Micro}
+\defineXMLsingular [Milli] {\handlePMLunit\Milli}
+\defineXMLsingular [Centi] {\handlePMLunit\Centi}
+\defineXMLsingular [Deci] {\handlePMLunit\Deci}
+\defineXMLsingular [Hecto] {\handlePMLunit\Hecto}
+\defineXMLsingular [Kilo] {\handlePMLunit\Kilo}
+\defineXMLsingular [Mega] {\handlePMLunit\Mega}
+\defineXMLsingular [Giga] {\handlePMLunit\Giga}
+\defineXMLsingular [Terra] {\handlePMLunit\Terra}
+\defineXMLsingular [Peta] {\handlePMLunit\Peta}
+\defineXMLsingular [Exa] {\handlePMLunit\Exa}
+
+\defineXMLsingular [Times] {\handlePMLunit\Times}
+\defineXMLsingular [Solidus] {\handlePMLunit\Solidus}
+\defineXMLsingular [Per] {\handlePMLunit\Per}
+\defineXMLsingular [OutOf] {\handlePMLunit\OutOf}
+
+\defineXMLsingular [Linear] {\handlePMLunit\Linear}
+\defineXMLsingular [Square] {\handlePMLunit\Square}
+\defineXMLsingular [Cubic] {\handlePMLunit\Cubic}
+
+\defineXMLsingular [Inverse] {\handlePMLunit\Inverse}
+
+\defineXMLsingular [Degrees] {\handlePMLunit\Degrees}
+\defineXMLsingular [Meter] {\handlePMLunit\Meter}
+\defineXMLsingular [Liter] {\handlePMLunit\Liter}
+\defineXMLsingular [Sec] {\handlePMLunit\Sec}
+\defineXMLsingular [Year] {\handlePMLunit\Year}
+\defineXMLsingular [Month] {\handlePMLunit\Month}
+\defineXMLsingular [Week] {\handlePMLunit\Week}
+\defineXMLsingular [Day] {\handlePMLunit\Day}
+\defineXMLsingular [Hour] {\handlePMLunit\Hour}
+\defineXMLsingular [Min] {\handlePMLunit\Min}
+\defineXMLsingular [Minute] {\handlePMLunit\Min}
+\defineXMLsingular [Second] {\handlePMLunit\Sec}
+\defineXMLsingular [Rad] {\handlePMLunit\Rad}
+\defineXMLsingular [Deg] {\handlePMLunit\Deg}
+\defineXMLsingular [Hertz] {\handlePMLunit\Hertz}
+\defineXMLsingular [RevPerSec] {\handlePMLunit\RevPerSec}
+\defineXMLsingular [RevPerMin] {\handlePMLunit\RevPerMin}
+\defineXMLsingular [Gram] {\handlePMLunit\Gram}
+\defineXMLsingular [Atom] {\handlePMLunit\Atom}
+\defineXMLsingular [Newton] {\handlePMLunit\Newton}
+\defineXMLsingular [Pascal] {\handlePMLunit\Pascal}
+\defineXMLsingular [Joule] {\handlePMLunit\Joule}
+\defineXMLsingular [Watt] {\handlePMLunit\Watt}
+\defineXMLsingular [Celsius] {\handlePMLunit\Celsius}
+\defineXMLsingular [Kelvin] {\handlePMLunit\Kelvin}
+\defineXMLsingular [Fahrenheit] {\handlePMLunit\Fahrenheit}
+\defineXMLsingular [Mol] {\handlePMLunit\Mol}
+\defineXMLsingular [Molair] {\handlePMLunit\Molair}
+\defineXMLsingular [Equivalent] {\handlePMLunit\Equivalent}
+\defineXMLsingular [Farad] {\handlePMLunit\Farad}
+\defineXMLsingular [Ohm] {\handlePMLunit\Ohm}
+\defineXMLsingular [Siemens] {\handlePMLunit\Siemens}
+\defineXMLsingular [Ampere] {\handlePMLunit\Ampere}
+\defineXMLsingular [Coulomb] {\handlePMLunit\Coulomb}
+\defineXMLsingular [Volt] {\handlePMLunit\Volt}
+\defineXMLsingular [eVolt] {\handlePMLunit\eVolt}
+\defineXMLsingular [Tesla] {\handlePMLunit\Tesla}
+\defineXMLsingular [VoltAC] {\handlePMLunit\VoltAC}
+\defineXMLsingular [VoltDC] {\handlePMLunit\VoltDC}
+\defineXMLsingular [Baud] {\handlePMLunit\Baud}
+\defineXMLsingular [Bit] {\handlePMLunit\Bit}
+\defineXMLsingular [Byte] {\handlePMLunit\Byte}
+\defineXMLsingular [Bequerel] {\handlePMLunit\Bequerel}
+\defineXMLsingular [Sievert] {\handlePMLunit\Sievert}
+\defineXMLsingular [Candela] {\handlePMLunit\Candela}
+\defineXMLsingular [Bell] {\handlePMLunit\Bell}
+\defineXMLsingular [At] {\handlePMLunit\At}
+\defineXMLsingular [Atm] {\handlePMLunit\Atm}
+\defineXMLsingular [Bar] {\handlePMLunit\Bar}
+\defineXMLsingular [EVolt] {\handlePMLunit\EVolt}
+\defineXMLsingular [Foot] {\handlePMLunit\Foot}
+\defineXMLsingular [Inch] {\handlePMLunit\Inch}
+\defineXMLsingular [Cal] {\handlePMLunit\Cal}
+\defineXMLsingular [Force] {\handlePMLunit\Force}
+\defineXMLsingular [Lux] {\handlePMLunit\Lux}
+\defineXMLsingular [Gray] {\handlePMLunit\Gray}
+\defineXMLsingular [Weber] {\handlePMLunit\Weber}
+\defineXMLsingular [Henry] {\handlePMLunit\Henry}
+\defineXMLsingular [Sterant] {\handlePMLunit\Sterant}
+\defineXMLsingular [Angstrom] {\handlePMLunit\Angstrom}
+\defineXMLsingular [Gauss] {\handlePMLunit\Gauss}
+
+\defineXMLsingular [Percent] {\handlePMLunit\Percent}
+\defineXMLsingular [Promille] {\handlePMLunit\Promille}
+\defineXMLsingular [Permille] {\handlePMLunit\Permille}
+
+\defineXMLsingular [Unit] {\handlePMLunit\Unit}
+\defineXMLsingular [NoUnit] {\handlePMLunit\NoUnit}
+
+\protect \doifnotmode{demo}{\endinput}
+
+\starttext
+
+\startXMLdata
+<phys>
+ <apply> <times/>
+ <cn> 1 </cn>
+ <ci><unit><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
+ </apply>
+</phys>
+\stopXMLdata
+
+\startXMLdata
+<phys>
+ <apply> <divide/>
+ <cn> 2 </cn>
+ <ci> <unit><Unit/><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
+ </apply>
+</phys>
+\stopXMLdata
+
+\startXMLdata
+<phys>
+ <apply> <times/>
+ <cn> 3 </cn>
+ <ci> <unit> <Milli/> <Sec/> <Per/> <Square/> <Kilo/> <Meter/> </unit> </ci>
+ </apply>
+</phys>
+\stopXMLdata
+
+\startXMLdata
+<phys>
+ <apply> <times/>
+ <cn> 4 </cn>
+ <ci> <unit><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
+ </apply>
+</phys>
+\stopXMLdata
+
+\startXMLdata
+<phys>
+ <apply> <times/>
+ <cn> 5 </cn>
+ <ci> <unit> <Milli/> <Sec/> <Per/> <Square/> <Kilo/> <Meter/> </unit> </ci>
+ </apply>
+</phys>
+\stopXMLdata
+
+\stoptext