%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
%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
\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
1
\stopXMLdata
\startXMLdata
2
\stopXMLdata
\startXMLdata
3
\stopXMLdata
\startXMLdata
4
\stopXMLdata
\startXMLdata
5
\stopXMLdata
\stoptext