"함수 선언"에 예약된 이름이 있습니까?

"함수 선언"에 예약된 이름이 있습니까?

이번 주는 예약어를 밟아야 할 한 주가 될 것 같습니다... 이 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}

두 번째와 네 번째 줄은 다음과 같이 실패합니다.

! 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

문제를 해결하는 것 같습니다.

당신이 거기를 사용하려고 시도한 첫 번째 사람이라는 사실이 궁금합니다 O:-)

관련 정보