diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/math')
3 files changed, 47 insertions, 23 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex index 2dbf154d8be..64dbe2b09a7 100644 --- a/Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex @@ -434,7 +434,7 @@ \fi% \fi% \else% - \ifdim\pgfmath@x>0.000244140625pt\relax% 2^-11 + \ifdim\pgfmath@x>0.00048828125pt\relax% 2^-11 \ifdim\pgfmath@x>0.001953125pt\relax% 2^-9 \ifdim\pgfmath@x>0.00390625pt\relax% 2^-8 \multiply\pgfmath@x by128\relax% diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex index c16d07005d8..e50dfd615e3 100644 --- a/Master/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex @@ -238,7 +238,7 @@ \pgfmath@tokens@make{mathunit}{{mu}} \pgfmath@tokens@make{numeric}{.0123456789} \pgfmath@tokens@make{number}{0123456789} -\pgfmath@tokens@make{functional}{_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ} +\pgfmath@tokens@make{functional}{_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ} \pgfmath@tokens@make{exponent}{eE} \pgfmath@tokens@make{group}{{()}{[]}{\pgfmath@bgroup\pgfmath@egroup}} \pgfmath@tokens@make{specials}{@)]\pgfmath@egroup} diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex index d98ecb25d59..49313e88491 100644 --- a/Master/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex @@ -13,6 +13,48 @@ \def\pgfmathincluded{} +% Helper macros for \pgfmath@ifregister +% +\def\pgfmath@grabv#1#2#3#4#5#6#7\pgfmath@grabv{#2#3#4#5\ifx#6!!\fi} +\def\pgfmath@ifskip@extract#1{\expandafter\pgfmath@grabv\meaning#1!!!!!!\pgfmath@grabv} +\def\pgfmath@iftoks@extract#1{\expandafter\pgfmath@grabv\meaning#1!!!!!!\pgfmath@grabv} + +\def\pgfmath@grabvi#1#2#3#4#5#6#7#8\pgfmath@grabvi{#2#3#4#5#6\ifx#7!!\fi} +\def\pgfmath@ifdimen@extract#1{\expandafter\pgfmath@grabvi\meaning#1!!!!!!\pgfmath@grabvi} +\def\pgfmath@ifcount@extract#1{\expandafter\pgfmath@grabvi\meaning#1!!!!!!\pgfmath@grabvi} + +\def\pgfmath@grabvii#1#2#3#4#5#6#7#8#9\pgfmath@grabvii{#2#3#4#5#6#7\ifx#8!!\fi} +\def\pgfmath@ifmuskip@extract#1{\expandafter\pgfmath@grabvii\meaning#1!!!!!!\pgfmath@grabvii} + +% \pgfmath@ifdimen@unguarded +% +% Check if #2 is a register of type #1. +% Credits to Frank: https://tex.stackexchange.com/a/56905 +% +% #1 register type (count, dimen, skip, muskip, toks) +% #2 single token +% +\def\pgfmath@ifregister@unguarded#1#2{% + \expandafter\ifx\csname\csname pgfmath@if#1@extract\endcsname{#2}\expandafter\endcsname\csname #1\endcsname + \expandafter\pgfutil@firstoftwo + \else + \expandafter\pgfutil@secondoftwo + \fi} + +% \pgfmath@ifregister +% +% Checks if a token is a a certain type of register +% +% #1 register type (count, dimen, skip, muskip, toks) +% #2 single token +% +\def\pgfmath@ifregister#1#2{% + \pgfutil@IfUndefined{pgfmath@if#1@extract}% + {\errmessage{Package PGF Math Error: Cannot test for #1 register}}% + {\pgfutil@IfUndefined{\csname pgfmath@if#1@extract\endcsname{#2}}% + {\pgfutil@secondoftwo}}% + {\pgfmath@ifregister@unguarded{#1}{#2}}} + % \pgfmath@ensureregister % % Ensure a control sequence exists as a TeX count/dimen register. @@ -21,27 +63,9 @@ % #2 - a control sequence. % \def\pgfmath@ensureregister#1#2{% - \begingroup% - \setbox0=\hbox\bgroup\begingroup% In case #2 is a defined macro. Unlikely, but you never know... - \afterassignment\pgfmath@@ensureregister% - \noexpand#20.0pt\let\pgfmath@temp\relax\relax\pgfmath@#2#1\pgfmath@} - -\def\pgfmath@@ensureregister#1#2\pgfmath@#3#4#5\pgfmath@{% - \endgroup\egroup% - \endgroup% - \ifx#4c% - \ifx#1.% Already a count register. - \else% - \csname newcount\endcsname#3% This gets round \outer in plain TeX. - \fi% - \else% - \ifx#4d% - \ifx\let#1% Already a dimen register. - \else% - \csname newdimen\endcsname#3% - \fi% - \fi% - \fi% + \pgfmath@ifregister{#1}{#2}% + {}% + {\csname new#1\endcsname#2}% } % Check registers exist. If not, create them. |