diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/adjustbox/adjcalc.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/adjustbox/adjcalc.sty | 106 |
1 files changed, 76 insertions, 30 deletions
diff --git a/Master/texmf-dist/tex/latex/adjustbox/adjcalc.sty b/Master/texmf-dist/tex/latex/adjustbox/adjcalc.sty index 0fc7a627de3..98c05a8e6ed 100644 --- a/Master/texmf-dist/tex/latex/adjustbox/adjcalc.sty +++ b/Master/texmf-dist/tex/latex/adjustbox/adjcalc.sty @@ -1,15 +1,29 @@ -\begingroup -\def\@tempa{adjcalc} -\expandafter -\endgroup -\ifx\@tempa\@currname - \ProvidesPackage{adjcalc}[2011/08/07 v1.0 Provides advanced setlength with multiple back-ends (calc, etex, pgfmath)] - \RequirePackage{xkeyval} -\fi -\AtEndOfPackage{\adjcalc@atend} +%% Copyright (C) 2011-2012 by Martin Scharrer <martin@scharrer-online.de> +%% ---------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files adjcalc.dtx, adjustbox.ins +%% and the derived file adjcalc.sty. +%% It is part of the larger adjustbox bundle. +%% +\ProvidesPackage{adjcalc}[% + 2012/05/16 + v1.1 + Provides advanced setlength with multiple back-ends (calc, etex, pgfmath)] +\RequirePackage{xkeyval} \def\adjcalc@atend{% \begingroup -\expandafter\ifx\csname eTeXversion\endcsname\relax +\expandafter\ifx\csname glueexpr\endcsname\relax \endgroup \RequirePackage{calc}% \adjcalc@calc @@ -23,13 +37,42 @@ \def\adjcalc@etex{\def\adjcalc@atend{\adjcalc@etex}} \def\adjcalc@calc{\AtEndOfPackage{\RequirePackage{calc}}\def\adjcalc@atend{\adjcalc@calc}} \def\adjcalc@overwrite{\AtEndOfPackage{\adjcalc@overwrite}} -\DeclareOptionX<adjbox>{pgfmath}{\adjcalc@pgfmath} -\DeclareOptionX<adjbox>{etex}{\adjcalc@etex} -\DeclareOptionX<adjbox>{calc}{\adjcalc@calc} -\DeclareOptionX<adjbox>{none}{\let\adjcalc@atend\relax\def\adjsetlength{\setlength}\let\adjcalc@overwrite\relax} -\DeclareOptionX<adjbox>{overwrite}{\adjcalc@overwrite} -\ProcessOptionsX*<adjbox> -\disable@keys{adjbox}{none} +\def\adjcalc@defaultunit{bp}% +\DeclareOptionX<adjcalc>{pgfmath}{\adjcalc@pgfmath} +\DeclareOptionX<adjcalc>{etex}{\adjcalc@etex} +\DeclareOptionX<adjcalc>{calc}{\adjcalc@calc} +\DeclareOptionX<adjcalc>{none}{% + \let\adjcalc@atend\relax + \let\adjcalc@overwrite\relax + \def\adjsetlength{\setlength}% + \def\adjaddtolength{\addtolength}% + \def\adjsetcounter{\setcounter}% + \def\adjaddtocounter{\addtocounter}% +} +\DeclareOptionX<adjcalc>{overwrite}{\adjcalc@overwrite} +\DeclareOptionX<adjcalc>{defaultunit}[bp]{% + \begingroup + \def\@tempa{#1}% + \def\@tempb{none}% + \ifx\@tempa\@tempb% 'none': + \endgroup + \def\adjsetlengthdefault{\adjsetlength}% + \else + \ifx\@tempb\adjcalc@defaultunit + \endgroup + % was 'none' before + \let\adjsetlengthdefault\adjsetlengthdefault@ + \else + \endgroup + \fi + \fi + \def\adjcalc@defaultunit{#1}% +} +\ProcessOptionsX*<adjcalc> +\disable@keys{adjcalc}{none} +\def\adjcalcset{% + \setkeys{adjcalc}% +} \def\adjcalc@etex{% \protected\def\adjsetlength##1##2{% ##1=\glueexpr(##2)\relax @@ -47,56 +90,58 @@ {\@nocounterr{##1}}% {\global\advance\csname c@##1\endcsname\numexpr(##2)\relax}% }% - \def\adjbox@default##1##2{% - \@defaultunits##1=\glueexpr##2 \adjbox@defaultunit\relax\@nnil + \def\adjsetlengthdefault@##1##2{% + \@defaultunits##1=\glueexpr##2 \adjcalc@defaultunit\relax\@nnil }% + \let\adjsetlengthdefault\adjsetlengthdefault@ } +\newif\if@adjcalc@needsdefault \def\adjcalc@calc{% \DeclareRobustCommand\adjsetlength{\calc@assign@skip}% \DeclareRobustCommand\adjaddtolength[1]{\calc@assign@skip{\advance ##1}}% \DeclareRobustCommand\adjsetcounter[2]{\@ifundefined{c@##1}{\@nocounterr{##1}}{\calc@assign@count{\global\csname c@##1\endcsname}{##2}}}% \DeclareRobustCommand\adjaddtocounter[2]{\@ifundefined{c@##1}{\@nocounterr{##1}}{\calc@assign@count{\global\advance\csname c@##1\endcsname}{##2}}}% - \def\adjbox@default##1##2{% + \def\adjsetlengthdefault@##1##2{% \begingroup - \message{^^J\detokenize{##2}^^J}% \def\calc@post@scan####1!{% \def\@tempa{####1}% \ifx\@tempa\@empty \endgroup% to end calc processing % is number only - \global\@adjbox@needsdefaulttrue + \global\@adjcalc@needsdefaulttrue \else \endgroup% to end calc processing % full expression - \global\@adjbox@needsdefaultfalse + \global\@adjcalc@needsdefaultfalse \fi }% - \calc@assign@skip{##1}{##2 \adjbox@defaultunit}% + \calc@assign@skip{##1}{##2 \adjcalc@defaultunit}% \endgroup - \if@adjbox@needsdefault - ##1=##2 \adjbox@defaultunit\relax + \if@adjcalc@needsdefault + ##1=##2 \adjcalc@defaultunit\relax \else \calc@assign@skip{##1}{##2}% \fi }% - \def\adjbox@checkdefault##1\@nnil##2##3{% + \def\adjcalc@checkdefault##1\@nnil##2##3{% \ifx\relax##1\relax\else \calc@assign@skip{##2}{##3}% \fi }% + \let\adjsetlengthdefault\adjsetlengthdefault@ } -\newif\if@adjbox@needsdefault \def\adjcalc@pgfmath{% \DeclareRobustCommand\adjsetlength{\pgfmathsetlength}% \DeclareRobustCommand\adjaddtolength{\pgfmathaddtolength}% \DeclareRobustCommand\adjsetcounter{\pgfmathsetcounter}% \DeclareRobustCommand\adjaddtocounter{\pgfmathaddtocounter}% - \def\adjbox@default##1##2{% - \edef\pgfmathresultunitscale{1\adjbox@defaultunit}% + \def\adjsetlengthdefault@##1##2{% + \edef\pgfmathresultunitscale{1\adjcalc@defaultunit}% \let\pgfmathpostparse\pgfmathscaleresult \pgfmathparse{##2}% ##1=\pgfmathresult pt\relax }% + \let\adjsetlengthdefault\adjsetlengthdefault@ } \def\adjcalc@overwrite{% \let\setlength\adjsetlength @@ -104,6 +149,7 @@ \let\setcounter\adjsetcounter \let\addtocounter\adjaddtocounter } +\adjcalc@atend \endinput %% %% End of file `adjcalc.sty'. |