「関数の宣言」に予約名がありますか?

「関数の宣言」に予約名がありますか?

今週は予約語を踏んでしまったようです... この 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}

2行目と4行目は失敗します

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

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

...そして、 で始まるすべての定数に対して同じことが行われており、O 問題が発生しているようです。

考えるとても馬鹿げたことをしています…

答え1

アップデート:これは修理済みそして、次のTi以降はドキュメントが正常に動作するはずです。Z/PGF リリース。


次のようにpgfmathparser.code.tex表示されます:

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

なしO

O予約キーワードではないようです (結局のところ、「不明な演算子」エラーが発生します)。したがって、これはバグであると考えられます。

不足している定義を提供します:

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

問題は解決するようです。

あなたが、there を初めて使用しようとした人だということに興味がありますO:-)

関連情報