summaryrefslogtreecommitdiff
path: root/tex/context/base/phys-dim.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/phys-dim.mkiv')
-rw-r--r--tex/context/base/phys-dim.mkiv32
1 files changed, 19 insertions, 13 deletions
diff --git a/tex/context/base/phys-dim.mkiv b/tex/context/base/phys-dim.mkiv
index 5a44be53d..0c56ed1b3 100644
--- a/tex/context/base/phys-dim.mkiv
+++ b/tex/context/base/phys-dim.mkiv
@@ -129,6 +129,7 @@
\newconstant \c_units_mode % 0=text 1=math
\newconstant \c_units_state % 0=start 1=suffix 2=operator 3=unit 4=prefix 5=number
+\newconditional\c_units_quantity
\newconditional\c_units_number
% tags and export
@@ -183,18 +184,18 @@
\let\units_finish\relax
\unexpanded\def\unitsNstart
- {\ifmmode
- \else
- \dostarttagged{quantity}\empty
- \dostarttagged{number}\empty
+ {\ifmmode \else
+ \settrue\c_units_quantity
+ \dostarttagged\t!quantity\empty
+ \settrue\c_units_number
+ \dostarttagged\t!number\empty
\fi}
\unexpanded\def\unitsNstop
- {\ifmmode
- \else
+ {\ifconditional\c_units_number
+ \setfalse\c_units_number
\dostoptagged
\fi
- %\units_start
\c_units_state\plusfive}
\unexpanded\def\unitsN#1%
@@ -202,22 +203,27 @@
\def\units_start
{\ifmmode
- \dostarttagged\t!mathaction{unit}%
+ \dostarttagged\t!mathaction\t!unit
\bgroup % make an mrow
\else
- \dostarttagged{unit}\empty
+ \dostarttagged\t!unit\empty
\fi
\let\units_finish\units_stop
\let\units_start\relax}
\def\units_stop
- {\ifmmode
- \egroup
+ {\ifconditional\c_units_number
+ \setfalse\c_units_number
+ \dostoptagged
\fi
- \ifconditional\c_units_number
+ \ifconditional\c_units_quantity
+ \setfalse\c_units_quantity
\dostoptagged
\fi
- \dostoptagged}
+ \dostoptagged
+ \ifmmode
+ \egroup
+ \fi}
\def\unitsraise
{\ifnum\c_units_mode=\plusone