summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/oberdiek/refcount.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/oberdiek/refcount.dtx')
-rw-r--r--macros/latex/contrib/oberdiek/refcount.dtx1099
1 files changed, 0 insertions, 1099 deletions
diff --git a/macros/latex/contrib/oberdiek/refcount.dtx b/macros/latex/contrib/oberdiek/refcount.dtx
deleted file mode 100644
index b70bd4799e..0000000000
--- a/macros/latex/contrib/oberdiek/refcount.dtx
+++ /dev/null
@@ -1,1099 +0,0 @@
-% \iffalse meta-comment
-%
-% File: refcount.dtx
-% Version: 2016/05/16 v3.5
-% Info: Data extraction from label references
-%
-% Copyright (C)
-% 1998, 2000, 2006, 2008, 2010, 2011 Heiko Oberdiek
-% 2016-2019 Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either
-% version 1.3c of this license or (at your option) any later
-% version. This version of this license is in
-% https://www.latex-project.org/lppl/lppl-1-3c.txt
-% and the latest version of this license is in
-% https://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 Maintainers of this work are
-% Heiko Oberdiek and the Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
-%
-% This work consists of the main source file refcount.dtx
-% and the derived files
-% refcount.sty, refcount.pdf, refcount.ins, refcount.drv,
-% refcount-test1.tex, refcount-test2.tex, refcount-test3.tex,
-% refcount-test4.tex, refcount-test5.tex.
-%
-% Distribution:
-% CTAN:macros/latex/contrib/oberdiek/refcount.dtx
-% CTAN:macros/latex/contrib/oberdiek/refcount.pdf
-%
-% Unpacking:
-% (a) If refcount.ins is present:
-% tex refcount.ins
-% (b) Without refcount.ins:
-% tex refcount.dtx
-% (c) If you insist on using LaTeX
-% latex \let\install=y\input{refcount.dtx}
-% (quote the arguments according to the demands of your shell)
-%
-% Documentation:
-% (a) If refcount.drv is present:
-% latex refcount.drv
-% (b) Without refcount.drv:
-% latex refcount.dtx; ...
-% The class ltxdoc loads the configuration file ltxdoc.cfg
-% if available. Here you can specify further options, e.g.
-% use A4 as paper format:
-% \PassOptionsToClass{a4paper}{article}
-%
-% Programm calls to get the documentation (example):
-% pdflatex refcount.dtx
-% makeindex -s gind.ist refcount.idx
-% pdflatex refcount.dtx
-% makeindex -s gind.ist refcount.idx
-% pdflatex refcount.dtx
-%
-% Installation:
-% TDS:tex/latex/oberdiek/refcount.sty
-% TDS:doc/latex/oberdiek/refcount.pdf
-% TDS:source/latex/oberdiek/refcount.dtx
-%
-%<*ignore>
-\begingroup
- \catcode123=1 %
- \catcode125=2 %
- \def\x{LaTeX2e}%
-\expandafter\endgroup
-\ifcase 0\ifx\install y1\fi\expandafter
- \ifx\csname processbatchFile\endcsname\relax\else1\fi
- \ifx\fmtname\x\else 1\fi\relax
-\else\csname fi\endcsname
-%</ignore>
-%<*install>
-\input docstrip.tex
-\Msg{************************************************************************}
-\Msg{* Installation}
-\Msg{* Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)}
-\Msg{************************************************************************}
-
-\keepsilent
-\askforoverwritefalse
-
-\let\MetaPrefix\relax
-\preamble
-
-This is a generated file.
-
-Project: refcount
-Version: 2016/05/16 v3.5
-
-Copyright (C)
- 1998, 2000, 2006, 2008, 2010, 2011 Heiko Oberdiek
- 2016-2019 Oberdiek Package Support Group
-
-This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either
-version 1.3c of this license or (at your option) any later
-version. This version of this license is in
- https://www.latex-project.org/lppl/lppl-1-3c.txt
-and the latest version of this license is in
- https://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 Maintainers of this work are
-Heiko Oberdiek and the Oberdiek Package Support Group
-https://github.com/ho-tex/oberdiek/issues
-
-
-This work consists of the main source file refcount.dtx
-and the derived files
- refcount.sty, refcount.pdf, refcount.ins, refcount.drv,
- refcount-test1.tex, refcount-test2.tex, refcount-test3.tex,
- refcount-test4.tex, refcount-test5.tex.
-
-\endpreamble
-\let\MetaPrefix\DoubleperCent
-
-\generate{%
- \file{refcount.ins}{\from{refcount.dtx}{install}}%
- \file{refcount.drv}{\from{refcount.dtx}{driver}}%
- \usedir{tex/latex/oberdiek}%
- \file{refcount.sty}{\from{refcount.dtx}{package}}%
-% \usedir{doc/latex/oberdiek/test}%
-% \file{refcount-test1.tex}{\from{refcount.dtx}{test1}}%
-% \file{refcount-test2.tex}{\from{refcount.dtx}{test2}}%
-% \file{refcount-test3.tex}{\from{refcount.dtx}{test3}}%
-% \file{refcount-test4.tex}{\from{refcount.dtx}{test3,test4}}%
-% \file{refcount-test5.tex}{\from{refcount.dtx}{test5}}%
-}
-
-\catcode32=13\relax% active space
-\let =\space%
-\Msg{************************************************************************}
-\Msg{*}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* file into a directory searched by TeX:}
-\Msg{*}
-\Msg{* refcount.sty}
-\Msg{*}
-\Msg{* To produce the documentation run the file `refcount.drv'}
-\Msg{* through LaTeX.}
-\Msg{*}
-\Msg{* Happy TeXing!}
-\Msg{*}
-\Msg{************************************************************************}
-
-\endbatchfile
-%</install>
-%<*ignore>
-\fi
-%</ignore>
-%<*driver>
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{refcount.drv}%
- [2016/05/16 v3.5 Data extraction from label references (HO)]%
-\documentclass{ltxdoc}
-\usepackage{holtxdoc}[2011/11/22]
-\begin{document}
- \DocInput{refcount.dtx}%
-\end{document}
-%</driver>
-% \fi
-%
-%
-%
-% \GetFileInfo{refcount.drv}
-%
-% \title{The \xpackage{refcount} package}
-% \date{2016/05/16 v3.5}
-% \author{Heiko Oberdiek\thanks
-% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}}
-%
-% \maketitle
-%
-% \begin{abstract}
-% References are not numbers, however they often store numerical
-% data such as section or page numbers. \cs{ref} or \cs{pageref}
-% cannot be used for counter assignments or calculations because
-% they are not expandable, generate warnings, or can even be links.
-% The package provides expandable macros to extract the data
-% from references. Packages \xpackage{hyperref}, \xpackage{nameref},
-% \xpackage{titleref}, and \xpackage{babel} are supported.
-% \end{abstract}
-%
-% \tableofcontents
-%
-% \section{Usage}
-%
-% \subsection{Setting counters}
-%
-% The following commands are similar to \LaTeX's
-% \cs{setcounter} and \cs{addtocounter},
-% but they extract the number value from a reference:
-% \begin{quote}
-% \cs{setcounterref}, \cs{addtocounterref}\\
-% \cs{setcounterpageref}, \cs{addtocounterpageref}
-% \end{quote}
-% They take two arguments:
-% \begin{quote}
-% \cs{...counter...ref} |{|\meta{\LaTeX\ counter}|}|
-% |{|\meta{reference}|}|
-% \end{quote}
-% An undefined references produces the usual LaTeX warning
-% and its value is assumed to be zero.
-% Example:
-% \begin{quote}
-%\begin{verbatim}
-%\newcounter{ctrA}
-%\newcounter{ctrB}
-%\refstepcounter{ctrA}\label{ref:A}
-%\setcounterref{ctrB}{ref:A}
-%\addtocounterpageref{ctrB}{ref:A}
-%\end{verbatim}
-% \end{quote}
-%
-% \subsection{Expandable commands}
-%
-% These commands that can be used in expandible contexts
-% (inside calculations, \cs{edef}, \cs{csname}, \cs{write}, \dots):
-% \begin{quote}
-% \cs{getrefnumber}, \cs{getpagerefnumber}
-% \end{quote}
-% They take one argument, the reference:
-% \begin{quote}
-% \cs{get...refnumber} |{|\meta{reference}|}|
-% \end{quote}
-% The default for undefined references can be changed
-% with macro \cs{setrefcountdefault}, for example this
-% package calls:
-% \begin{quote}
-% \cs{setrefcountdefault}|{0}|
-% \end{quote}
-%
-% Since version 2.0 of this package there is a new
-% command:
-% \begin{quote}
-% \cs{getrefbykeydefault} |{|\meta{reference}|}|
-% |{|\meta{key}|}| |{|\meta{default}|}|
-% \end{quote}
-% This generalized version allows the extraction
-% of further properties of a reference than the
-% two standard ones. Thus the following properties
-% are supported, if they are available:
-% \begin{quote}
-% \begin{tabular}{@{}l|l|l@{}}
-% Key & Description & Package\\
-% \hline
-% \meta{empty} & same as \cs{ref} & \LaTeX\\
-% |page| & same as \cs{pageref} & \LaTeX\\
-% |title| & section and caption titles & \xpackage{titleref}\\
-% |name| & section and caption titles & \xpackage{nameref}\\
-% |anchor| & anchor name & \xpackage{hyperref}\\
-% |url| & url/file & \xpackage{hyperref}/\xpackage{xr}
-% \end{tabular}
-% \end{quote}
-%
-% Since version 3.2 the expandable macros described before
-% in this section
-% are expandable in exact two expansion steps.
-%
-% \subsection{Undefined references}
-%
-% Because warnings and assignments cannot be used in
-% expandible contexts, undefined references do not
-% produce a warning, their values are assumed to be zero.
-% Example:
-% \begin{quote}
-%\begin{verbatim}
-%\label{ref:here}% somewhere
-%\refused{ref:here}% see below
-%\ifodd\getpagerefnumber{ref:here}%
-% reference is on an odd page
-%\else
-% reference is on an even page
-%\fi
-%\end{verbatim}
-% \end{quote}
-%
-% In case of undefined references the user usually want's
-% to be informed. Also \LaTeX\ prints a warning at
-% the end of the \LaTeX\ run. To notify \LaTeX\ and
-% get a normal warning, just use
-% \begin{quote}
-% \cs{refused} |{|\meta{reference}|}|
-% \end{quote}
-% outside the expanding context. Example, see above.
-%
-% \subsubsection{Check for undefined references}
-%
-% In version 3.2 macros were added, that test, whether references
-% are defined.
-% \begin{declcs}{IfRefUndefinedExpandable} \M{refname} \M{then} \M{else}\\
-% \cs{IfRefUndefinedBabel} \M{refname} \M{then} \M{else}
-% \end{declcs}
-% If the reference is not available and therefore undefined, then
-% argument \meta{then} is executed, otherwise argument \meta{else}
-% is called. Macro \cs{IfRefUndefinedExpandable} is expandable,
-% but \meta{refname} must not contain babel shorthand characters.
-% Macro \cs{IfRefUndefinedBabel} supports shorthand characters of
-% babel, but it is not expandable.
-%
-% \subsection{Notes}
-%
-% \begin{itemize}
-% \item
-% The method of extracting the number in this
-% package also works in cases, where the
-% reference cannot be used directly, because
-% a package such as \xpackage{hyperref} has added
-% extra stuff (hyper link), so that the reference cannot
-% be used as number any more.
-% \item
-% If the reference does not contain a number,
-% assignments to a counter will fail of course.
-% \end{itemize}
-%
-%
-% \StopEventually{
-% }
-%
-% \section{Implementation}
-%
-% \begin{macrocode}
-%<*package>
-% \end{macrocode}
-% Reload check, especially if the package is not used with \LaTeX.
-% \begin{macrocode}
-\begingroup\catcode61\catcode48\catcode32=10\relax%
- \catcode13=5 % ^^M
- \endlinechar=13 %
- \catcode35=6 % #
- \catcode39=12 % '
- \catcode44=12 % ,
- \catcode45=12 % -
- \catcode46=12 % .
- \catcode58=12 % :
- \catcode64=11 % @
- \catcode123=1 % {
- \catcode125=2 % }
- \expandafter\let\expandafter\x\csname ver@refcount.sty\endcsname
- \ifx\x\relax % plain-TeX, first loading
- \else
- \def\empty{}%
- \ifx\x\empty % LaTeX, first loading,
- % variable is initialized, but \ProvidesPackage not yet seen
- \else
- \expandafter\ifx\csname PackageInfo\endcsname\relax
- \def\x#1#2{%
- \immediate\write-1{Package #1 Info: #2.}%
- }%
- \else
- \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
- \fi
- \x{refcount}{The package is already loaded}%
- \aftergroup\endinput
- \fi
- \fi
-\endgroup%
-% \end{macrocode}
-% Package identification:
-% \begin{macrocode}
-\begingroup\catcode61\catcode48\catcode32=10\relax%
- \catcode13=5 % ^^M
- \endlinechar=13 %
- \catcode35=6 % #
- \catcode39=12 % '
- \catcode40=12 % (
- \catcode41=12 % )
- \catcode44=12 % ,
- \catcode45=12 % -
- \catcode46=12 % .
- \catcode47=12 % /
- \catcode58=12 % :
- \catcode64=11 % @
- \catcode91=12 % [
- \catcode93=12 % ]
- \catcode123=1 % {
- \catcode125=2 % }
- \expandafter\ifx\csname ProvidesPackage\endcsname\relax
- \def\x#1#2#3[#4]{\endgroup
- \immediate\write-1{Package: #3 #4}%
- \xdef#1{#4}%
- }%
- \else
- \def\x#1#2[#3]{\endgroup
- #2[{#3}]%
- \ifx#1\@undefined
- \xdef#1{#3}%
- \fi
- \ifx#1\relax
- \xdef#1{#3}%
- \fi
- }%
- \fi
-\expandafter\x\csname ver@refcount.sty\endcsname
-\ProvidesPackage{refcount}%
- [2016/05/16 v3.5 Data extraction from label references (HO)]%
-% \end{macrocode}
-%
-% \begin{macrocode}
-\begingroup\catcode61\catcode48\catcode32=10\relax%
- \catcode13=5 % ^^M
- \endlinechar=13 %
- \catcode123=1 % {
- \catcode125=2 % }
- \catcode64=11 % @
- \def\x{\endgroup
- \expandafter\edef\csname rc@AtEnd\endcsname{%
- \endlinechar=\the\endlinechar\relax
- \catcode13=\the\catcode13\relax
- \catcode32=\the\catcode32\relax
- \catcode35=\the\catcode35\relax
- \catcode61=\the\catcode61\relax
- \catcode64=\the\catcode64\relax
- \catcode123=\the\catcode123\relax
- \catcode125=\the\catcode125\relax
- }%
- }%
-\x\catcode61\catcode48\catcode32=10\relax%
-\catcode13=5 % ^^M
-\endlinechar=13 %
-\catcode35=6 % #
-\catcode64=11 % @
-\catcode123=1 % {
-\catcode125=2 % }
-\def\TMP@EnsureCode#1#2{%
- \edef\rc@AtEnd{%
- \rc@AtEnd
- \catcode#1=\the\catcode#1\relax
- }%
- \catcode#1=#2\relax
-}
-\TMP@EnsureCode{33}{12}% !
-\TMP@EnsureCode{39}{12}% '
-\TMP@EnsureCode{42}{12}% *
-\TMP@EnsureCode{45}{12}% -
-\TMP@EnsureCode{46}{12}% .
-\TMP@EnsureCode{47}{12}% /
-\TMP@EnsureCode{91}{12}% [
-\TMP@EnsureCode{93}{12}% ]
-\TMP@EnsureCode{96}{12}% `
-\edef\rc@AtEnd{\rc@AtEnd\noexpand\endinput}
-% \end{macrocode}
-%
-% \subsection{Loading packages}
-%
-% \begin{macrocode}
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname RequirePackage\endcsname\relax
- \input ltxcmds.sty\relax
- \input infwarerr.sty\relax
-\else
- \RequirePackage{ltxcmds}[2011/11/09]%
- \RequirePackage{infwarerr}[2010/04/08]%
-\fi
-% \end{macrocode}
-%
-% \subsection{Defining commands}
-%
-% \begin{macro}{\rc@IfDefinable}
-% \begin{macrocode}
-\ltx@IfUndefined{@ifdefinable}{%
- \def\rc@IfDefinable#1{%
- \ifx#1\ltx@undefined
- \expandafter\ltx@firstofone
- \else
- \ifx#1\relax
- \expandafter\expandafter\expandafter\ltx@firstofone
- \else
- \@PackageError{refcount}{%
- Command \string#1 is already defined.\MessageBreak
- It will not redefined by this package%
- }\@ehc
- \expandafter\expandafter\expandafter\ltx@gobble
- \fi
- \fi
- }%
-}{%
- \let\rc@IfDefinable\@ifdefinable
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\rc@RobustDefOne}
-% \begin{macro}{\rc@RobustDefZero}
-% \begin{macrocode}
-\ltx@IfUndefined{protected}{%
- \ltx@IfUndefined{DeclareRobustCommand}{%
- \def\rc@RobustDefOne#1#2#3#4{%
- \rc@IfDefinable#3{%
- #1\def#3##1{#4}%
- }%
- }%
- \def\rc@RobustDefZero#1#2{%
- \rc@IfDefinable#1{%
- \def#1{#2}%
- }%
- }%
- }{%
- \def\rc@RobustDefOne#1#2#3#4{%
- \rc@IfDefinable#3{%
- \DeclareRobustCommand#2#3[1]{#4}%
- }%
- }%
- \def\rc@RobustDefZero#1#2{%
- \rc@IfDefinable#1{%
- \DeclareRobustCommand#1{#2}%
- }%
- }%
- }%
-}{%
- \def\rc@RobustDefOne#1#2#3#4{%
- \rc@IfDefinable#3{%
- \protected#1\def#3##1{#4}%
- }%
- }%
- \def\rc@RobustDefZero#1#2{%
- \rc@IfDefinable#1{%
- \protected\def#1{#2}%
- }%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\rc@newcommand}
-% \begin{macrocode}
-\ltx@IfUndefined{newcommand}{%
- \def\rc@newcommand*#1[#2]#3{% hash-ok
- \rc@IfDefinable#1{%
- \ifcase#2 %
- \def#1{#3}%
- \or
- \def#1##1{#3}%
- \or
- \def#1##1##2{#3}%
- \else
- \rc@InternalError
- \fi
- }%
- }%
-}{%
- \let\rc@newcommand\newcommand
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{\cs{setrefcountdefault}}
-%
-% \begin{macro}{\setrefcountdefault}
-% \begin{macrocode}
-\rc@RobustDefOne\long{}\setrefcountdefault{%
- \def\rc@default{#1}%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macrocode}
-\setrefcountdefault{0}
-% \end{macrocode}
-%
-% \subsection{\cs{refused}}
-%
-% \begin{macro}{\refused}
-% \begin{macrocode}
-\ltx@IfUndefined{G@refundefinedtrue}{%
- \rc@RobustDefOne{}{*}\refused{%
- \begingroup
- \csname @safe@activestrue\endcsname
- \ltx@IfUndefined{r@#1}{%
- \protect\G@refundefinedtrue
- \rc@WarningUndefined{#1}%
- }{}%
- \endgroup
- }%
-}{%
- \rc@RobustDefOne{}{*}\refused{%
- \begingroup
- \csname @safe@activestrue\endcsname
- \ltx@IfUndefined{r@#1}{%
- \csname protect\expandafter\endcsname
- \csname G@refundefinedtrue\endcsname
- \rc@WarningUndefined{#1}%
- }{}%
- \endgroup
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\rc@WarningUndefined}
-% \begin{macrocode}
-\ltx@IfUndefined{@latex@warning}{%
- \def\rc@WarningUndefined#1{%
- \ltx@ifundefined{thepage}{%
- \def\thepage{\number\count0 }%
- }{}%
- \@PackageWarning{refcount}{%
- Reference `#1' on page \thepage\space undefined%
- }%
- }%
-}{%
- \def\rc@WarningUndefined#1{%
- \@latex@warning{%
- Reference `#1' on page \thepage\space undefined%
- }%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Setting counters by reference data}
-%
-% \subsubsection{Generic setting}
-%
-% \begin{macro}{\rc@set}
-% Generic command for
-% |\|$\{$|set|$,$|addto|$\}$|counter|$\{$|page|$,\}$|ref|:
-%\begin{quote}
-%\begin{tabular}[t]{@{}l@{: }l@{}}
-% |#1|& \cs{setcounter}, \cs{addtocounter}\\
-% |#2|& \cs{ltx@car} (for \cs{ref}), \cs{ltx@cartwo} (for \cs{pageref})\\
-% |#3|& \hologo{LaTeX} counter\\
-% |#4|& reference\\
-%\end{tabular}
-%\end{quote}
-% \begin{macrocode}
-\def\rc@set#1#2#3#4{%
- \begingroup
- \csname @safe@activestrue\endcsname
- \refused{#4}%
- \expandafter\rc@@set\csname r@#4\endcsname{#1}{#2}{#3}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\rc@@set}
-%\begin{quote}
-%\begin{tabular}[t]{@{}l@{: }l@{}}
-% |#1|& \cs{r@<...>}\\
-% |#2|& \cs{setcounter}, \cs{addtocounter}\\
-% |#3|& \cs{ltx@car} (for \cs{ref}), \cs{ltx@carsecond} (for \cs{pageref})\\
-% |#4|& \hologo{LaTeX} counter\\
-%\end{tabular}
-%\end{quote}
-% \begin{macrocode}
-\def\rc@@set#1#2#3#4{%
- \ifx#1\relax
- #2{#4}{\rc@default}%
- \else
- #2{#4}{%
- \expandafter#3#1\rc@default\rc@default\@nil
- }%
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{User commands}
-%
-% \begin{macro}{\setcounterref}
-% \begin{macrocode}
-\rc@RobustDefZero\setcounterref{%
- \rc@set\setcounter\ltx@car
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\addtocounterref}
-% \begin{macrocode}
-\rc@RobustDefZero\addtocounterref{%
- \rc@set\addtocounter\ltx@car
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\setcounterpageref}
-% \begin{macrocode}
-\rc@RobustDefZero\setcounterpageref{%
- \rc@set\setcounter\ltx@carsecond
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\addtocounterpageref}
-% \begin{macrocode}
-\rc@RobustDefZero\addtocounterpageref{%
- \rc@set\addtocounter\ltx@carsecond
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Extracting references}
-%
-% \begin{macro}{\getrefnumber}
-% \begin{macrocode}
-\rc@newcommand*{\getrefnumber}[1]{%
- \romannumeral
- \ltx@ifundefined{r@#1}{%
- \expandafter\ltx@zero
- \rc@default
- }{%
- \expandafter\expandafter\expandafter\rc@extract@
- \expandafter\expandafter\expandafter!%
- \csname r@#1\expandafter\endcsname
- \expandafter{\rc@default}\@nil
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\getpagerefnumber}
-% \begin{macrocode}
-\rc@newcommand*{\getpagerefnumber}[1]{%
- \romannumeral
- \ltx@ifundefined{r@#1}{%
- \expandafter\ltx@zero
- \rc@default
- }{%
- \expandafter\expandafter\expandafter\rc@extract@page
- \expandafter\expandafter\expandafter!%
- \csname r@#1\expandafter\expandafter\expandafter\endcsname
- \expandafter\expandafter\expandafter{%
- \expandafter\rc@default
- \expandafter}\expandafter{\rc@default}\@nil
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\getrefbykeydefault}
-% \begin{macrocode}
-\rc@newcommand*{\getrefbykeydefault}[2]{%
- \romannumeral
- \expandafter\rc@getrefbykeydefault
- \csname r@#1\expandafter\endcsname
- \csname rc@extract@#2\endcsname
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\rc@getrefbykeydefault}
-%\begin{quote}
-%\begin{tabular}[t]{@{}l@{: }l@{}}
-% |#1|& \cs{r@<...>}\\
-% |#2|& \cs{rc@extract@<...>}\\
-% |#3|& default\\
-%\end{tabular}
-%\end{quote}
-% \begin{macrocode}
-\long\def\rc@getrefbykeydefault#1#2#3{%
- \ifx#1\relax
- % reference is undefined
- \ltx@ReturnAfterElseFi{%
- \ltx@zero
- #3%
- }%
- \else
- \ltx@ReturnAfterFi{%
- \ifx#2\relax
- % extract method is missing
- \ltx@ReturnAfterElseFi{%
- \ltx@zero
- #3%
- }%
- \else
- \ltx@ReturnAfterFi{%
- \expandafter
- \rc@generic#1{#3}{#3}{#3}{#3}{#3}\@nil#2{#3}%
- }%
- \fi
- }%
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\rc@generic}
-%\begin{quote}
-%\begin{tabular}[t]{@{}l@{: }l@{}}
-% |#1|& first item in \cs{r@<...>}\\
-% |#2|& remaining items in \cs{r@<...>}\\
-% |#3|& \cs{rc@extract@<...>}\\
-% |#4|& default\\
-%\end{tabular}
-%\end{quote}
-% \begin{macrocode}
-\long\def\rc@generic#1#2\@nil#3#4{%
- #3{#1\TR@TitleReference\@empty{#4}\@nil}{#1}#2\@nil
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\rc@extract@}
-% \begin{macrocode}
-\long\def\rc@extract@#1#2#3\@nil{%
- \ltx@zero
- #2%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\rc@extract@page}
-% \begin{macrocode}
-\long\def\rc@extract@page#1#2#3#4\@nil{%
- \ltx@zero
- #3%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\rc@extract@name}
-% \begin{macrocode}
-\long\def\rc@extract@name#1#2#3#4#5\@nil{%
- \ltx@zero
- #4%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\rc@extract@anchor}
-% \begin{macrocode}
-\long\def\rc@extract@anchor#1#2#3#4#5#6\@nil{%
- \ltx@zero
- #5%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\rc@extract@url}
-% \begin{macrocode}
-\long\def\rc@extract@url#1#2#3#4#5#6#7\@nil{%
- \ltx@zero
- #6%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\rc@extract@title}
-% \begin{macrocode}
-\long\def\rc@extract@title#1#2\@nil{%
- \rc@@extract@title#1%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\rc@@extract@title}
-% \begin{macrocode}
-\long\def\rc@@extract@title#1\TR@TitleReference#2#3#4\@nil{%
- \ltx@zero
- #3%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Macros for checking undefined references}
-%
-% \begin{macro}{\IfRefUndefinedExpandable}
-% \begin{macrocode}
-\rc@newcommand*{\IfRefUndefinedExpandable}[1]{%
- \ltx@ifundefined{r@#1}\ltx@firstoftwo\ltx@secondoftwo
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\IfRefUndefinedBabel}
-% \begin{macrocode}
-\rc@RobustDefOne{}*\IfRefUndefinedBabel{%
- \begingroup
- \csname safe@actives@true\endcsname
- \expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname r@#1\endcsname\relax
- \expandafter\ltx@firstoftwo
- \else
- \expandafter\ltx@secondoftwo
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macrocode}
-\rc@AtEnd%
-%</package>
-% \end{macrocode}
-%% \section{Installation}
-%
-% \subsection{Download}
-%
-% \paragraph{Package.} This package is available on
-% CTAN\footnote{\CTANpkg{refcount}}:
-% \begin{description}
-% \item[\CTAN{macros/latex/contrib/oberdiek/refcount.dtx}] The source file.
-% \item[\CTAN{macros/latex/contrib/oberdiek/refcount.pdf}] Documentation.
-% \end{description}
-%
-%
-% \paragraph{Bundle.} All the packages of the bundle `oberdiek'
-% are also available in a TDS compliant ZIP archive. There
-% the packages are already unpacked and the documentation files
-% are generated. The files and directories obey the TDS standard.
-% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}]
-% \end{description}
-% \emph{TDS} refers to the standard ``A Directory Structure
-% for \TeX\ Files'' (\CTANpkg{tds}). Directories
-% with \xfile{texmf} in their name are usually organized this way.
-%
-% \subsection{Bundle installation}
-%
-% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the
-% TDS tree (also known as \xfile{texmf} tree) of your choice.
-% Example (linux):
-% \begin{quote}
-% |unzip oberdiek.tds.zip -d ~/texmf|
-% \end{quote}
-%
-% \subsection{Package installation}
-%
-% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
-% \docstrip\ archive. The files are extracted by running the
-% \xfile{.dtx} through \plainTeX:
-% \begin{quote}
-% \verb|tex refcount.dtx|
-% \end{quote}
-%
-% \paragraph{TDS.} Now the different files must be moved into
-% the different directories in your installation TDS tree
-% (also known as \xfile{texmf} tree):
-% \begin{quote}
-% \def\t{^^A
-% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
-% refcount.sty & tex/latex/oberdiek/refcount.sty\\
-% refcount.pdf & doc/latex/oberdiek/refcount.pdf\\
-% refcount.dtx & source/latex/oberdiek/refcount.dtx\\
-% \end{tabular}^^A
-% }^^A
-% \sbox0{\t}^^A
-% \ifdim\wd0>\linewidth
-% \begingroup
-% \advance\linewidth by\leftmargin
-% \advance\linewidth by\rightmargin
-% \edef\x{\endgroup
-% \def\noexpand\lw{\the\linewidth}^^A
-% }\x
-% \def\lwbox{^^A
-% \leavevmode
-% \hbox to \linewidth{^^A
-% \kern-\leftmargin\relax
-% \hss
-% \usebox0
-% \hss
-% \kern-\rightmargin\relax
-% }^^A
-% }^^A
-% \ifdim\wd0>\lw
-% \sbox0{\small\t}^^A
-% \ifdim\wd0>\linewidth
-% \ifdim\wd0>\lw
-% \sbox0{\footnotesize\t}^^A
-% \ifdim\wd0>\linewidth
-% \ifdim\wd0>\lw
-% \sbox0{\scriptsize\t}^^A
-% \ifdim\wd0>\linewidth
-% \ifdim\wd0>\lw
-% \sbox0{\tiny\t}^^A
-% \ifdim\wd0>\linewidth
-% \lwbox
-% \else
-% \usebox0
-% \fi
-% \else
-% \lwbox
-% \fi
-% \else
-% \usebox0
-% \fi
-% \else
-% \lwbox
-% \fi
-% \else
-% \usebox0
-% \fi
-% \else
-% \lwbox
-% \fi
-% \else
-% \usebox0
-% \fi
-% \else
-% \lwbox
-% \fi
-% \else
-% \usebox0
-% \fi
-% \end{quote}
-% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
-% TDS installing feature, then some files can already be in the right
-% place, see the documentation of \docstrip.
-%
-% \subsection{Refresh file name databases}
-%
-% If your \TeX~distribution
-% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh
-% these. For example, \TeX\,Live\ users run \verb|texhash| or
-% \verb|mktexlsr|.
-%
-% \subsection{Some details for the interested}
-%
-% \paragraph{Unpacking with \LaTeX.}
-% The \xfile{.dtx} chooses its action depending on the format:
-% \begin{description}
-% \item[\plainTeX:] Run \docstrip\ and extract the files.
-% \item[\LaTeX:] Generate the documentation.
-% \end{description}
-% If you insist on using \LaTeX\ for \docstrip\ (really,
-% \docstrip\ does not need \LaTeX), then inform the autodetect routine
-% about your intention:
-% \begin{quote}
-% \verb|latex \let\install=y\input{refcount.dtx}|
-% \end{quote}
-% Do not forget to quote the argument according to the demands
-% of your shell.
-%
-% \paragraph{Generating the documentation.}
-% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
-% the documentation. The process can be configured by the
-% configuration file \xfile{ltxdoc.cfg}. For instance, put this
-% line into this file, if you want to have A4 as paper format:
-% \begin{quote}
-% \verb|\PassOptionsToClass{a4paper}{article}|
-% \end{quote}
-% An example follows how to generate the
-% documentation with pdf\LaTeX:
-% \begin{quote}
-%\begin{verbatim}
-%pdflatex refcount.dtx
-%makeindex -s gind.ist refcount.idx
-%pdflatex refcount.dtx
-%makeindex -s gind.ist refcount.idx
-%pdflatex refcount.dtx
-%\end{verbatim}
-% \end{quote}
-%
-% \begin{History}
-% \begin{Version}{1998/04/08 v1.0}
-% \item
-% First public release, written as answer in the
-% newsgroup \xnewsgroup{comp.text.tex}:
-% \URL{``\link{Re: Adding a \cs{ref} to a counter?}''}^^A
-% {https://groups.google.com/group/comp.text.tex/msg/c3f2a135ef5ee528}
-% \end{Version}
-% \begin{Version}{2000/09/07 v2.0}
-% \item
-% Documentation added.
-% \item
-% LPPL 1.2
-% \item
-% Package rewritten, new commands added.
-% \end{Version}
-% \begin{Version}{2006/02/20 v3.0}
-% \item
-% Support for \xpackage{hyperref} and \xpackage{nameref} improved.
-% \item
-% Support for \xpackage{titleref} and \xpackage{babel}'s shorthands added.
-% \item
-% New: \cs{refused}, \cs{getrefbykeydefault}
-% \end{Version}
-% \begin{Version}{2008/08/11 v3.1}
-% \item
-% Code is not changed.
-% \item
-% URLs updated.
-% \end{Version}
-% \begin{Version}{2010/12/01 v3.2}
-% \item
-% \cs{IfRefUndefinedExpandable} and \cs{IfRefUndefinedBabel} added.
-% \item
-% \cs{getrefnumber}, \cs{getpagerefnumber}, \cs{getrefbykeydefault}
-% are expandable in exact two expansion steps.
-% \item
-% Non-expandable macros are made robust.
-% \item
-% Test files added.
-% \end{Version}
-% \begin{Version}{2011/06/22 v3.3}
-% \item
-% Bug fix: \cs{rc@refused} is undefined for \cs{setcounterpageref}
-% and similar macros. (Bug found by Marc van Dongen.)
-% \end{Version}
-% \begin{Version}{2011/10/16 v3.4}
-% \item
-% Bug fix: \cs{setcounterpageref} and \cs{addtocounterpageref} fixed.
-% (Bug found by Staz.)
-% \item
-% Macros \cs{(set|addto)counter(page|)ref} are made robust.
-% \end{Version}
-% \begin{Version}{2016/05/16 v3.5}
-% \item
-% Documentation updates.
-% \end{Version}
-% \end{History}
-%
-% \PrintIndex
-%
-% \Finale
-\endinput