Package color Error: Argument `1.01125' no in range [0,1]

Actually I get no error on the supplied test file however

\makeatletter
\p@=1bp
\makeatother

is spectacularly wrong and will break almost all latex arithmetic, not only color, but the graphics package, arithmetic by the calc package, tabularx, .....

To see why note that latex has no floating point registers, only lengths or integers so if for example you are mixing colours and need to multiply .3 by 2 the usual way is to go via lengths

\dimen@=.3\p@

now \dimen@ is .3pt

\dimen@=2\dimen@

now it is .6pt

\edef\result{\strip@pt\dimen@}
\show\result

removes the pt

> \result=macro:
->0.6.

But now redefine \p@ to be 1bp the same calculation ends up with

> \result=macro:
->0.60223.

so even the simplest arithmetic operation gives an incorrect result.


\p@ is originally defined as 1.0pt. After \p@=1bp it has the value 1.00374pt. I suggest to add the lines

\makeatletter
\p@=1pt
\makeatother

to the preamble after loading dgruyter_NEW.sty.

Edit: The issue is still present in the most recent version of de Gruyter's LaTeX package. One of the first lines in dgruyter.sty (identifying itself as 2016/09/28 v1.82 De Gruyter layout) still reads \p@=1bp\relax, which leads to the error described in the original post.

Tags:

Tikz Pgf