%D \module
%D [ file=xtag-pmu,
%D version=2001.06.10,
%D title=\CONTEXT\ XML Macros,
%D subtitle=Units,
%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.
\writestatus{loading}{ConTeXt XML Macros / Units}
%D Quick and dirty in||line units:
%D
%D \startbuffer
%D
%D 10
%D
%D
%D \stopbuffer
%D
%D \typebuffer \processXMLbuffer
%D
%D A more \MATHML||like unit application:
%D
%D \startbuffer
%D
%D 10
%D
%D
%D \stopbuffer
%D
%D \typebuffer \processXMLbuffer
%D
%D A bit more compact:
%D
%D \startbuffer
%D
%D 10
%D
%D
%D \stopbuffer
%D
%D \typebuffer \processXMLbuffer
%D
%D A bit more complicated:
%D
%D \startbuffer
%D
%D a 10
%D
%D
%D \stopbuffer
%D
%D \typebuffer \processXMLbuffer
%D
%D An alternative (equivalent) for \type {}:
%D
%D \startbuffer
%D
%D 10
%D
%D \stopbuffer
%D
%D \typebuffer \processXMLbuffer
\defineXMLsingular [unitmeaning] [label=] \doPMLunitmeaning
\def\doPMLunitmeaning
{\expanded{\unitmeaning{\XMLop{label}}}}
\startXMLmapping [mml]
\remapXMLsequence [unit] [CPA] \doPMLuseq
\remapXMLsingular [unit] [CPA] \doPMLunit % #2\empty
\remapXMLsequence [cunseq] [CPA] \doPMLuseq % #2
\remapXMLsequence [cu] [CPA] \doPMLuseq % #2
\newif\ifPMLunit \PMLunittrue
\def\doPMLuseq#1#2{\PMLunittrue\ignorespaces#2\unskip\PMLunitfalse}
\def\doPMLunit#1#2\empty{\ignorespaces#2\unskip}
\def\handlePMLunit#1{\ifPMLunit\ignorespaces#1\fi\ignorespaces}
%D All unit commands are remapped in a similar way.
\remapXMLsingular [Atto] [C] {\handlePMLunit\Atto}
\remapXMLsingular [Femto] [C] {\handlePMLunit\Femto}
\remapXMLsingular [Pico] [C] {\handlePMLunit\Pico}
\remapXMLsingular [Nano] [C] {\handlePMLunit\Nano}
\remapXMLsingular [Micro] [C] {\handlePMLunit\Micro}
\remapXMLsingular [Milli] [C] {\handlePMLunit\Milli}
\remapXMLsingular [Centi] [C] {\handlePMLunit\Centi}
\remapXMLsingular [Deci] [C] {\handlePMLunit\Deci}
\remapXMLsingular [Hecto] [C] {\handlePMLunit\Hecto}
\remapXMLsingular [Kilo] [C] {\handlePMLunit\Kilo}
\remapXMLsingular [Mega] [C] {\handlePMLunit\Mega}
\remapXMLsingular [Giga] [C] {\handlePMLunit\Giga}
\remapXMLsingular [Terra] [C] {\handlePMLunit\Terra}
\remapXMLsingular [Peta] [C] {\handlePMLunit\Peta}
\remapXMLsingular [Exa] [C] {\handlePMLunit\Exa}
\remapXMLsingular [Times] [C] {\handlePMLunit\Times}
\remapXMLsingular [Solidus] [C] {\handlePMLunit\Solidus}
\remapXMLsingular [Per] [C] {\handlePMLunit\Per}
\remapXMLsingular [OutOf] [C] {\handlePMLunit\OutOf}
\remapXMLsingular [Linear] [C] {\handlePMLunit\Linear}
\remapXMLsingular [Square] [C] {\handlePMLunit\Square}
\remapXMLsingular [Cubic] [C] {\handlePMLunit\Cubic}
\remapXMLsingular [Inverse] [C] {\handlePMLunit\Inverse}
\remapXMLsingular [Degrees] [C] {\handlePMLunit\Degrees}
\remapXMLsingular [Meter] [C] {\handlePMLunit\Meter}
\remapXMLsingular [Liter] [C] {\handlePMLunit\Liter}
\remapXMLsingular [Sec] [C] {\handlePMLunit\Sec}
\remapXMLsingular [Year] [C] {\handlePMLunit\Year}
\remapXMLsingular [Month] [C] {\handlePMLunit\Month}
\remapXMLsingular [Week] [C] {\handlePMLunit\Week}
\remapXMLsingular [Day] [C] {\handlePMLunit\Day}
\remapXMLsingular [Hour] [C] {\handlePMLunit\Hour}
\remapXMLsingular [Min] [C] {\handlePMLunit\Min}
\remapXMLsingular [Second] [C] {\handlePMLunit\Sec}
\remapXMLsingular [Rad] [C] {\handlePMLunit\Rad}
\remapXMLsingular [Deg] [C] {\handlePMLunit\Deg}
\remapXMLsingular [Hertz] [C] {\handlePMLunit\Hertz}
\remapXMLsingular [RevPerSec] [C] {\handlePMLunit\RevPerSec}
\remapXMLsingular [RevPerMin] [C] {\handlePMLunit\RevPerMin}
\remapXMLsingular [Gram] [C] {\handlePMLunit\Gram}
\remapXMLsingular [Atom] [C] {\handlePMLunit\Atom}
\remapXMLsingular [Newton] [C] {\handlePMLunit\Newton}
\remapXMLsingular [Pascal] [C] {\handlePMLunit\Pascal}
\remapXMLsingular [Joule] [C] {\handlePMLunit\Joule}
\remapXMLsingular [Watt] [C] {\handlePMLunit\Watt}
\remapXMLsingular [Celsius] [C] {\handlePMLunit\Celsius}
\remapXMLsingular [Kelvin] [C] {\handlePMLunit\Kelvin}
\remapXMLsingular [Fahrenheit] [C] {\handlePMLunit\Fahrenheit}
\remapXMLsingular [Mol] [C] {\handlePMLunit\Mol}
\remapXMLsingular [Molair] [C] {\handlePMLunit\Molair}
\remapXMLsingular [Equivalent] [C] {\handlePMLunit\Equivalent}
\remapXMLsingular [Farad] [C] {\handlePMLunit\Farad}
\remapXMLsingular [Ohm] [C] {\handlePMLunit\Ohm}
\remapXMLsingular [Siemens] [C] {\handlePMLunit\Siemens}
\remapXMLsingular [Ampere] [C] {\handlePMLunit\Ampere}
\remapXMLsingular [Coulomb] [C] {\handlePMLunit\Coulomb}
\remapXMLsingular [Volt] [C] {\handlePMLunit\Volt}
\remapXMLsingular [eVolt] [C] {\handlePMLunit\eVolt}
\remapXMLsingular [Tesla] [C] {\handlePMLunit\Tesla}
\remapXMLsingular [VoltAC] [C] {\handlePMLunit\VoltAC}
\remapXMLsingular [VoltDC] [C] {\handlePMLunit\VoltDC}
\remapXMLsingular [Baud] [C] {\handlePMLunit\Baud}
\remapXMLsingular [Bit] [C] {\handlePMLunit\Bit}
\remapXMLsingular [Byte] [C] {\handlePMLunit\Byte}
\remapXMLsingular [Bequerel] [C] {\handlePMLunit\Bequerel}
\remapXMLsingular [Sievert] [C] {\handlePMLunit\Sievert}
\remapXMLsingular [Candela] [C] {\handlePMLunit\Candela}
\remapXMLsingular [Bell] [C] {\handlePMLunit\Bell}
\remapXMLsingular [At] [C] {\handlePMLunit\At}
\remapXMLsingular [Atm] [C] {\handlePMLunit\Atm}
\remapXMLsingular [Bar] [C] {\handlePMLunit\Bar}
\remapXMLsingular [EVolt] [C] {\handlePMLunit\EVolt}
\remapXMLsingular [Foot] [C] {\handlePMLunit\Foot}
\remapXMLsingular [Inch] [C] {\handlePMLunit\Inch}
\remapXMLsingular [Cal] [C] {\handlePMLunit\Cal}
\remapXMLsingular [Force] [C] {\handlePMLunit\Force}
\remapXMLsingular [Lux] [C] {\handlePMLunit\Lux}
\remapXMLsingular [Gray] [C] {\handlePMLunit\Gray}
\remapXMLsingular [Weber] [C] {\handlePMLunit\Weber}
\remapXMLsingular [Henry] [C] {\handlePMLunit\Henry}
\remapXMLsingular [Sterant] [C] {\handlePMLunit\Sterant}
\remapXMLsingular [Angstrom] [C] {\handlePMLunit\Angstrom}
\remapXMLsingular [Gauss] [C] {\handlePMLunit\Gauss}
\remapXMLsingular [Percent] [C] {\handlePMLunit\Percent}
\remapXMLsingular [Promille] [C] {\handlePMLunit\Promille}
\remapXMLsingular [Permille] [C] {\handlePMLunit\Permille}
\remapXMLsingular [Unit] [C] {\handlePMLunit\Unit}
\remapXMLsingular [NoUnit] [C] {\handlePMLunit\NoUnit}
\stopXMLmapping
\endinput