[NTG-context] mkiv digits/units zero padding not working

Benjamin Buchmuller benjamin.buchmuller at gmail.com
Thu May 7 19:41:20 CEST 2020


Hi Wolfang,

Thank you for your reply. I have indeed not explained my intended result very clearly. 

1. 

Primarily, I need to get the two values aligned at the digit separator of the first and second number respectively and overall at the ± sign. I’m working in an xtable, where I have entries such as

\startxcell \mpm{14.0==}{_1.5==} \stopxcell
\startxcell \mpm{_0.034}{_0.013} \stopxcell

and defined 

\def\mpm#1#2{
	\ifsecondargument
	\digits{#1}\,±\,\digits{#2}%
	\else
	\digits{#1}%
	\fi
}

Since I was hoping that I could exploit the zeropadding of \digits to get the format right. Indeed, it would save a lot of typing, if I wouldn’t have to specify the padding manually and I vaguely recall that there is somewhere a ConTeXt solution that can make such alignments, but I simply can’t find it any more …

2. + 3.

Absolutely right, this is my bad. I have badly mixed from Hans’ solution to a similar problem, 

https://www.mail-archive.com/ntg-context@ntg.nl/msg00724.html

which was actually \def\zeroamount{-} and the example in the source, I didn’t read properly. Just skip that part. :)

4. 

Indeed, 

\startxcell \mpm{14.==}{_1.5=} \stopxcell
\startxcell \mpm{_0.03}{_0.01} \stopxcell

aligns properly. But sometimes, I have the first digit specified, but not the second and unfortunately this doesn’t work

\startxcell \mpm{14.5=}{_1.5=} \stopxcell
\startxcell \mpm{_0.03}{_0.01} \stopxcell

because = is not immediately preceded by .



> On 7 May 2020, at 18:21, Wolfgang Schuster <wolfgang.schuster.lists at gmail.com> wrote:
> 
> Benjamin Buchmuller schrieb am 07.05.2020 um 17:31:
>> Hi,
>> I’m trying to get
>> \digits{15.0=}±\digits{1.00}
>> \digits{_8.12}±\digits{0.34}
>> horizontally aligned as
>> 15.0 ±1.00
>>  8.12±0.34
>> But I get
>> 15.0±1.00
>>  8.12±0.34
>> instead.
>> From the source (phys-dim.mkiv), I can see that “=“ should expand to \hphantom{0}. (I think \zeropoint in the table is outdated, since \def\zeropoint\hphantom{0} does not solve the problem either.)
> 
> 1. Which table?
> 
> 2. This is not how \def works.
> 
> 3. When you redefine \zeropoint (which isn't a macro) you're going to break everything.
> 
>> I can’t use tabulate or alignment in math mode for this problem unfortunately.
> 
> I looked at the code and the problem is = can only be used to insert space for two digits (e.g. 100.==).
> 
> Wolfgang



More information about the ntg-context mailing list