¿Nombres reservados en "declarar función"?

¿Nombres reservados en "declarar función"?

Esta debe ser mi semana para pisar palabras reservadas... por favor mira este MWE:

\documentclass{article}
\usepackage{tikz}

\newcommand{\formula}[1]{%
    \pgfmathsetmacro{\rpval}{#1}%
    \pgfmathprintnumberto[assume math mode=true, fixed, precision=3]{\rpval}{\frpval}%
    \frpval
}
\begin{document}
\tikzset{declare function={%
        R0 = 2.0;
        X = 0.5*R0;
        ON = 3;
        OFF(\x) = \x + 1;
        AFF(\x) = \x + 1;
}}

%  works
X is \formula{X}

% fails
ON is \formula{ON}

% works
AFF is \formula{AFF(1)}

% fails
OFF is \formula{OFF(1)}
\end{document}

La segunda y cuarta línea fallan con

! Package PGF Math Error: Unknown operator `O' or `ON' (in 'ON').

! Package PGF Math Error: Unknown operator `O' or `OF' (in 'OFF(1)').

...y parece que está haciendo lo mismo con cada constante que comienza O creando problemas.

IpensarEstoy haciendo algo muy tonto...

Respuesta1

Actualizar:Esto ha sidofijadoy su documento debería funcionar bien después del próximo TikLiberación Z/PGF.


En pgfmathparser.code.textu ves:

\pgfmath@tokens@make{functional}{_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ}

sin un O.

Ono parece ser una palabra clave reservada (después de todo, aparece el error "Operador desconocido"), por lo que creo que se trata de un error.

Proporcionando la definición que falta:

\makeatletter
\def\pgfmath@token@functional@O{O}
\makeatother

parece resolver el problema.

Me parece curioso que seas la primera persona que intenta utilizar un Oallí :-)

información relacionada