% language=us runpath=texruns:manuals/ontarget \startcomponent ontarget-dk \environment ontarget-style \startchapter[title={A new unit: \type {dk}}] At the \CONTEXT\ 2021 meeting I mixed my \TEX\ talks with showing some of the (upcoming) \LUAMETATEX\ source code. One evening we had a extension party where a new unit was implemented, the \type {dk}. This event was triggered by a remark Hraban [Ramm] made on the participants list in advance of the meeting, where he pointed to a Wikipedia article from which we quote: \startquotation In issue 33, Mad published a partial table of the \quotation {Potrzebie System of Weights and Measures}, developed by 19|-|year|-|old Donald~E. Knuth, later a famed computer scientist. According to Knuth, the basis of this new revolutionary system is the potrzebie, which equals the thickness of Mad issue 26, or 2.2633484517438173216473 mm [\dots]. \stopquotation So, as the result of that session, the source code now has this comment: \startquotation We support the Knuthian Potrzebie, cf.\ \typ {en.wikipedia.org/wiki/Potrzebie}, as the \type {dk} unit. It was added on 2021-09-22 exactly when we crossed the season during an evening session at the 15\high {th} \CONTEXT\ meeting in Bassenge (Boirs) Belgium. It took a few iterations to find the best numerator and denominator, but Taco Hoekwater, Harald Koenig and Mikael Sundqvist figured it out in this interactive session. The error messages have been adapted accordingly and the scanner in the \LUA\ \type {tex} library also handles it. One \type {dk} is 6.43985pt. There is no need to make \METAPOST\ aware of this unit because there it is just a numeric multiplier in a macro package. \stopquotation When compared to the already present units the \type {dk} nicely fills a gap: \def\TheUnit#1{ \NC \type {#1} \NC \withoutpt\dimexpr1#1\relax \NC \number\dimexpr1#1\relax \NC \vrule width 1#1 height 1.5ex depth .5ex\relax \NC \NR } \starttabulate[|c|cg{.}|r|l|] \BC unit \BC points \BC scaled \BC visual \NC \NR \TheUnit{sp} \TheUnit{pt} \TheUnit{bp} \TheUnit{dd} \TheUnit{mm} \TheUnit{dk} \TheUnit{pc} \TheUnit{cc} \TheUnit{cm} \TheUnit{in} %\TheUnit{em} %\TheUnit{ex} %\TheUnit{mu} %\TheUnit{px} \stoptabulate Deep down, the unit scanner uses a numerator and denominator in order to map the given value onto the internally used scaled points, so the relevant snippet of \CCODE\ is: \starttyping *num = 49838; // 152940; *denom = 7739; // 23749; return normal_unit_scanned; \stoptyping The impact on performance of scanning an additional unit can be neglected because the scanning code is a bit different from the code in \LUATEX\ and (probably the) other engines anyway. Under consideration are a few extra units in the \type {relative_unit_scanned} category that we see in \CSS: \type {vw} (relative to the \type {\hsize}), \type {vh} (relative to the \type {\vsize}), maybe a percentage (but of what) and \type {ch} (width of the current zero digit character). As usual with \TEX ies, once it's there it will be (ab)used. \stopchapter \stopcomponent