[NTG-context] \unit parser ignoring case, in some cases.

Gavin gavinpublic at comcast.net
Thu Mar 9 14:04:01 CET 2023


Hello list,

I continue to work with the \unit command, and found some behavior very surprising. When I try to register units with capital letter names, it breaks lowercase metric prefixes. For example, registering C=coulomb, K=kelvin and N=newton breaks metric units cm, kg, and ns. The file below demonstrates the behavior.

Obviously, I can use full names in my document. However, I would like the standard SI symbols, which are single capital letters, to work for me and my less TeX-savvy colaborators.

Thanks!
Gavin


\starttext

Units does not completely ignore case.

\startformula
  \unit{3 meter} \qquad
  \unit{6 Meter} \qquad
  \unit{3 mEtEr} \qquad
\stopformula

Units with lowercase prefixes (c, k, n).
\startformula
  \unit{3cm} \qquad
  \unit{6kg} \qquad
  \unit{3ns} \qquad
\stopformula

Units with capital letters, called with names (coulomb, kelvin, newton).
\startformula
  \unit{3 coulomb} \qquad
  \unit{6 kelvin} \qquad
  \unit{3 newton} \qquad
\stopformula

Units with capital letters, called with the capital letter (C, K, N) fail.
\startformula
  \unit{3 C} \qquad
  \unit{6 K} \qquad
  \unit{3 N} \qquad
\stopformula

Now I register some units with capital letter names: C=coulomb, K=kelvin, N=newton.

\registerunit[unit][
  C=coulomb,
  K=kelvin,
  N=newton]

Units called by capital letter (C, K, N) now work.
\startformula
  \unit{3 C} \qquad
  \unit{6 K} \qquad
  \unit{3 N} \qquad
\stopformula

However, units with lowercase prefixes (c, k, n) are broken.
\startformula
  \unit{3cm} \qquad
  \unit{6kg} \qquad
  \unit{3ns} \qquad
\stopformula

\stoptext


More information about the ntg-context mailing list