diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/exsheets/cntformats.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/exsheets/cntformats.sty | 349 |
1 files changed, 0 insertions, 349 deletions
diff --git a/Master/texmf-dist/tex/latex/exsheets/cntformats.sty b/Master/texmf-dist/tex/latex/exsheets/cntformats.sty deleted file mode 100644 index 22a10598aef..00000000000 --- a/Master/texmf-dist/tex/latex/exsheets/cntformats.sty +++ /dev/null @@ -1,349 +0,0 @@ -% -------------------------------------------------------------------------- -% the CNTFORMATS package -% -% A different way to read counters -% -% This package is part of the exsheets bundle -% -------------------------------------------------------------------------- -% Clemens Niederberger -% Web: https://bitbucket.org/cgnieder/exsheets/ -% E-Mail: contact@mychemistry.eu -% -------------------------------------------------------------------------- -% Copyright 2012-2014 Clemens Niederberger -% -% 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 Clemens Niederberger. -% -------------------------------------------------------------------------- -% The cntformats package is part of the exsheets bundle -% -------------------------------------------------------------------------- -% If you have any ideas, questions, suggestions or bugs to report, please -% feel free to contact me. -% -------------------------------------------------------------------------- -\def\@cntfmts@date{2013/10/11} -\def\@cntfmts@version{v0.6} - -\ProvidesPackage{cntformats}[% - \@cntfmts@date\space - \@cntfmts@version\space - A different way to read counters. (CN)] -\RequirePackage{etoolbox,cnltx-base} -% -------------------------------------------------------------------------- -% message handling -\def\@cntfmts@error@message{% - For details have a look at the `exsheets' manual.} - -\cnltx@create@generic@message{@cntfmts}{cntformats}{Error}{\@cntfmts@error@message} -\cnltx@create@generic@message{@cntfmts}{cntformats}{Warning}{} -\cnltx@create@generic@message{@cntfmts}{cntformats}{WarningNoLine}{} -\cnltx@create@generic@message{@cntfmts}{cntformats}{Info}{} - -\def\@cntfmts@err@already@defined#1{% - \@cntfmts@error{The counter `#1' already exists!}} -\def\@cntfmts@err@unknown@counter#1{% - \@cntfmts@error{The counter `#1' is undefined!}} -\def\@cntfmts@err@pattern@defined#1#2{% - \@cntfmts@error{The pattern `#2' for module `#1' is already defined!}} -\def\@cntfmts@err@pattern@undefined#1#2{% - \@cntfmts@error{The pattern `#2' for module `#1' is undefined!}} - -% ---------------------------------------------------------------------------- -% tokenlist analyzing and manipulating -% if you happen to read this code and notice some obvious reasons why these -% macros shoudn't be used like this, please send me your improved version -% (seriously! But please explain why yours is better) -% \long\def\@cntfmts@ifintl#1#2{% -% \def\@cntfmts@intl@tmpa##1#2{}% -% \expandafter\if\expandafter\relax\expandafter -% \detokenize\expandafter{\@cntfmts@intl@tmpa#1{}{}#2}\relax% -% \expandafter\@secondoftwo -% \else -% \expandafter\@firstoftwo -% \fi -% } -% \long\def\@cntfmts@ifintlcs#1{% -% \expandafter\@cntfmts@ifintl\expandafter{#1}} - -% \long\def\@cntfmts@replaceonceincs#1#2#3{% -% \@cntfmts@ifintlcs#1{#2}% -% {\@cntfmts@replace@once@incs#1{#2}{#3}}{}% -% } -% \long\def\@cntfmts@replace@once@incs#1#2#3{% -% \def\@cntfmts@replo@tmpa##1#2##2\q@stop{% -% \def#1{##1#3##2}}% -% \expandafter\@cntfmts@replo@tmpa#1\q@stop -% } - -% \long\def\@cntfmts@replaceallin#1#2#3{% -% \def\@cntfmts@repla@tmpa{#1}% -% \@cntfmts@replaceonceincs\@cntfmts@repla@tmpa{#2}{#3}% -% \@cntfmts@ifintlcs\@cntfmts@repla@tmpa{#2}% -% {\expandafter\@cntfmts@replaceallin\expandafter{\@cntfmts@repla@tmpa}{#2}{#3}}% -% {\expandonce\@cntfmts@repla@tmpa}% -% } -% \long\def\@cntfmts@replaceallincs#1#2#3{% -% \@cntfmts@replaceonceincs#1{#2}{#3}% -% \@cntfmts@ifintlcs#1{#2}{\@cntfmts@replaceallincs#1{#2}{#3}}{}% -% } - -% ---------------------------------------------------------------------------- -% expansion tools -% heavily inspired by expl3's \exp_args:N<spec> -- one might say: copied -% \long\def\@cntfmts@getnextbraced#1#2#3{#2\@cntfmts@firstofone{#3{#1}}} -% \long\def\@cntfmts@firstofone#1{#1} -% \long\def\@cntfmts@braced@unexpanded#1\@cntfmts@firstofone#2#3{% -% #1\@cntfmts@firstofone{#2{#3}}} -% \long\def\@cntfmts@braced@expandedonce#1\@cntfmts@firstofone#2#3{% -% \expandafter\@cntfmts@getnextbraced\expandafter{#3}{#1}{#2}} - -% \long\def\@cntfmts@expand@first{% -% \@cntfmts@braced@expandedonce -% \@cntfmts@firstofone} - -% \long\def\@cntfmts@expand@second{% -% \@cntfmts@braced@unexpanded -% \@cntfmts@braced@expandedonce -% \@cntfmts@firstofone} - -% \long\def\@cntfmts@expand@third{% -% \@cntfmts@braced@unexpanded -% \@cntfmts@braced@unexpanded -% \@cntfmts@braced@expandedonce -% \@cntfmts@firstofone} - -% ---------------------------------------------------------------------------- -% expandable commands with optional argument (and no mandatory) -% this is probably not very robust. If you know what you're doing you're -% probably able to define a better version yourself. If not: don't use this -% one! -% \long\def\@cntfmts@isopt@#1[#2\q@marker#3#{% -% \if\relax\detokenize{#1#2}\relax -% \expandafter\@firstoftwo -% \else -% \expandafter\@secondoftwo -% \fi} -% \long\def\@cntfmts@isopt#1#2#3{% -% \@cntfmts@isopt@#1\q@marker[\q@marker{#2#1}{#2[{#3}]{#1}}} - -% \long\def\@cntfmts@defwopt#1[#2]#3{% -% \long\def#1##1{\@cntfmts@isopt{##1}{\csuse{\@cntfmts@strip@bs#1@opt}}{#2}}% -% \long\csdef{\@cntfmts@strip@bs#1@opt}[##1]{#3}} - -% \def\@cntfmts@strip@bs{\expandafter\@gobble\string} - -% ---------------------------------------------------------------------------- -% #1: module -% #2: counter -\def\@cntfmts@def@counter@read#1#2#3{% - \cnltx@expandargs(no)\csdef - {@#1@read@#3@counter}% - {\csname @#1@read@#2@counter\endcsname}% -} - -% create pattern for an existing counter: -% #1: module -% #2: counter -% #3: id -\newcommand*\@cntfmts@add@counter@pattern[3][cntfmts]{% - \ifcsdef{c@#2} - {}{\@cntfmts@err@unknown@counter{#2}}% - \ifcsdef{@#1@#2@counter} - {\@cntfmts@err@pattern@defined{#1}{#2}} - {\csdef{@#1@#2@counter}{}}% - \listcsadd{@#1@counter@ids}{#3}% - \@cntfmts@def@counter@read{#1}{#2}{#3}% -} - -\newcommand*\@cntfmts@add@counter@pattern@nostar[3][cntfmts]{% - \@cntfmts@add@counter@pattern[#1]{#2}{#3}% - \cnltx@expandargs(nno)\@cntfmts@create@read@counter{#1}{#2}{\csname c@#2\endcsname}% -} - -\newrobustcmd*\AddCounterPattern{% - \@ifstar - {\@cntfmts@add@counter@pattern} - {\@cntfmts@add@counter@pattern@nostar}% -} -\@onlypreamble\AddCounterPattern - -% create pattern for a new counter -% #1: counter -% #2: id -\newcommand*\@cntfmts@new@counter@pattern[3][cntfmts]{% - \ifcsdef{the#2} - {\@cntfmts@err@counter@defined{#2}}{}% - \newcounter{#2}% - \listcsadd{@#1@counter@ids}{#3}% - \@cntfmts@def@counter@read{#1}{#2}{#3}% - \csdef{@#1@#2@counter}{} -} - -\newcommand*\@cntfmts@new@counter@pattern@nostar[3][cntfmts]{% - \@cntfmts@new@counter@pattern[#1]{#2}{#3}% - \cnltx@expandargs(nno)\@cntfmts@create@read@counter{#1}{#2}{\csname c@#2\endcsname}% -} - -\newrobustcmd*\NewCounterPattern{% - \@ifstar - {\@cntfmts@new@counter@pattern} - {\@cntfmts@new@counter@pattern@nostar}% -} -\@onlypreamble\NewCounterPattern - -% renew pattern: -\newcommand*\@cntfmts@renew@counter@pattern[3][cntfmts]{% - \ifcsdef{the#2} - {}{\@cntfmts@err@unknown@counter{#2}}% - \ifcsdef{@#1@#2@counter}{} - {\@cntfmts@err@pattern@undefined{#1}{#2}}% - \ifinlistcs{@#1@counter@ids}{#3} - {}{\listcsadd{@#1@counter@ids}{#3}}% - \@cntfmts@def@counter@read{#1}{#2}{#3}% -} - -\newcommand*\@cntfmts@renew@counter@pattern@nostar[3][cntfmts]{% - \@cntfmts@renew@counter@pattern[#1]{#2}{#3}% - \cnltx@expandargs(nno)\@cntfmts@create@read@counter{#1}{#2}{\csname c@#2\endcsname}% -} - -\newrobustcmd\RenewCounterPattern{% - \@ifstar - {\@cntfmts@renew@counter@pattern} - {\@cntfmts@renew@counter@pattern@nostar}% -} -\@onlypreamble\RenewCounterPattern - -% ---------------------------------------------------------------------------- -% assign a different internal command to <counter> than \c@<counter> -% can/must be used after a call from \AddCounterPattern* or -% \NewCounterPattern* -% #1: module -% #2: counter -% #3: internal command -\def\@cntfmts@create@read@counter#1#2#3{% - \expandafter\newexpandablecmd - \expandafter*\csname @#1@read@#2@counter\endcsname[1][]{% - \ifblank{##1} - {\@arabic{#3}} - {\csuse{@cntfmts@counter@type@##1}{#3}}% - }% -} - -\newrobustcmd*\ReadCounterFrom[3][cntfmts]{% - \@cntfmts@create@read@counter{#1}{#2}{#3}% -} - -% ---------------------------------------------------------------------------- -% pattern formats -% #1: key -% #2: number presentation command like \@alph -\def\@cntfmts@new@pattern@format#1#2{% - \csdef{@cntfmts@counter@type@#1}{#2}% -} - -\newrobustcmd*\NewPatternFormat[2]{% - \@cntfmts@new@pattern@format{#1}{#2}% -} -\@onlypreamble\NewPatternFormat - -% ---------------------------------------------------------------------------- -% interpret and print pattern: -% #1: module -% #2: list -% #3: pattern -\def\@cntfmts@read@counter@pattern#1#2#3{% - \def\@cntfmts@parsed@pattern{#3\@empty}% - \forlistcsloop{\@cntfmts@replace@pattern{#1}}{#2}% -} -% #1: module -% #2: pattern-key -\def\@cntfmts@replace@pattern#1#2{% - \cnltx@replace@all\@cntfmts@parsed@pattern - {#2}{\csuse{@#1@read@#2@counter}}% -} - -\newrobustcmd*\ReadCounterPattern[2][cntfmts]{% - \@cntfmts@read@counter@pattern{#1}{@#1@counter@ids}{#2}\@cntfmts@parsed@pattern -} - -\newrobustcmd*\ReadCounterPatternFrom[2][cntfmts]{% - \cnltx@expandargs(nno)\@cntfmts@read@counter@pattern{#1}{@#1@counter@ids}{#2}% - \@cntfmts@parsed@pattern -} - -% #1: save pattern in -% #2: save interpretation in -% #3: pattern -% #4: module -\newcommand*\@cntfmts@save@counter@pattern[4]{% - \@cntfmts@read@counter@pattern{#4}{@#4@counter@ids}{#3}% - \let#2\@cntfmts@parsed@pattern - \def#1{#3}% -} - -\newcommand*\@cntfmts@esave@counter@pattern[4]{% - \@cntfmts@read@counter@pattern{#4}{@#4@counter@ids}{#3}% - \edef#2{\@cntfmts@parsed@pattern}% - \def#1{#3}% -} - -\newrobustcmd*\SaveCounterPattern[4][cntfmts]{% - \@cntfmts@save@counter@pattern{#2}{#3}{#4}{#1}% -} - -\newrobustcmd*\SaveCounterPatternFrom[4][cntfmts]{% - \cnltx@expandargs(nno)\@cntfmts@save@counter@pattern{#2}{#3}{#4}{#1}% -} - -\newrobustcmd*\eSaveCounterPattern[4][cntfmts]{% - \@cntfmts@esave@counter@pattern{#2}{#3}{#4}{#1}% -} - -\newrobustcmd*\eSaveCounterPatternFrom[4][cntfmts]{% - \cnltx@expandargs(nno)\@cntfmts@esave@counter@pattern{#2}{#3}{#4}{#1}% -} - -% ---------------------------------------------------------------------------- -% predefined formats and pattern -\NewPatternFormat{a}{\@alph} -\NewPatternFormat{A}{\@Alph} -\NewPatternFormat{1}{\@arabic} -\NewPatternFormat{r}{\@roman} -\NewPatternFormat{R}{\@Roman} - -\ifdef\c@paragraph - {\AddCounterPattern{paragraph}{pg}}{} -\ifdef\c@subsubsection - {\AddCounterPattern{subsubsection}{ssse}}{} -\ifdef\c@subsection - {\AddCounterPattern{subsection}{sse}}{} -\ifdef\c@section - {\AddCounterPattern{section}{se}}{} -\ifdef\c@chapter - {\AddCounterPattern{chapter}{ch}}{} - -\endinput - -% HISTORY: -2012/09/30 v0.2beta - first version (as part of the `exsheets' bundle) -2012/11/08 v0.4 - stepped number with `exsheets' until now; next stepping - won't synchronize but will step to whatever deems - appropriate -2012/04/23 v0.5 - changed tests for heading commands to test explicitly for - the associated counters - - change test for counter in \@cntfmts@add@counter@pattern - from \the<ounter> to \c@<ounter> - - rename tokenlist test macros to use cntformats' - namespace -2013/10/11 v0.6 - use my `cnltx-base' package for the programming tools it - provides; this allows to get rid of the artefacts in the - expanded patterns - |