summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/zref/zref-base.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/zref/zref-base.sty')
-rw-r--r--Master/texmf-dist/tex/latex/zref/zref-base.sty789
1 files changed, 789 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/zref/zref-base.sty b/Master/texmf-dist/tex/latex/zref/zref-base.sty
new file mode 100644
index 00000000000..955d733637a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/zref/zref-base.sty
@@ -0,0 +1,789 @@
+%%
+%% This is file `zref-base.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% zref.dtx (with options: `base')
+%%
+%% This is a generated file.
+%%
+%% Project: zref
+%% Version: 2019/11/29 v2.28
+%%
+%% Copyright (C)
+%% 2006-2012 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/zref/issues
+%%
+%%
+%% This work consists of the main source file zref.dtx
+%% and the derived files
+%% zref.sty, zref.pdf, zref.ins, zref.drv, zref-base.sty,
+%% zref-abspage.sty, zref-abspos.sty, zref-counter.sty,
+%% zref-dotfill.sty, zref-env.sty, zref-hyperref.sty,
+%% zref-lastpage.sty, zref-marks.sty, zref-nextpage.sty,
+%% zref-pageattr.sty, zref-pagelayout.sty, zref-perpage.sty,
+%% zref-runs.sty, zref-savepos.sty, zref-thepage.sty,
+%% zref-titleref.sty, zref-totpages.sty, zref-user.sty,
+%% zref-xr.sty, zref-example.tex, zref-example-lastpage.tex,
+%% zref-example-nextpage.tex, zref-test1.tex,
+%% zref-test-base.tex, zref-test-runs.tex,
+%% zref-test-titleref-memoir.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-base}%
+ [2019/11/29 v2.28 Module base for zref (HO)]%
+\RequirePackage{ltxcmds}[2010/12/02]
+\RequirePackage{infwarerr}[2010/04/08]
+\RequirePackage{kvsetkeys}[2010/03/01]
+\RequirePackage{kvdefinekeys}[2010/03/01]
+\RequirePackage{pdftexcmds}[2010/04/01]
+\def\ZREF@name{zref}
+\ltx@IfUndefined{protected}{%
+ \RequirePackage{makerobust}[2006/03/18]%
+ \def\ZREF@Robust#1#2{%
+ \def\ZREF@temp{\MakeRobustcommand#2}%
+ \afterassignment\ZREF@temp
+ #1#2%
+ }%
+}{%
+ \def\ZREF@Robust#1{%
+ \protected#1%
+ }%
+}
+\def\ZREF@IfDefinable#1#2#3{%
+ \@ifdefinable{#1}{%
+ \ZREF@Robust{#2}#1#3%
+ }%
+}
+\def\ZREF@UpdatePdfTeX{Update pdfTeX.}
+\newif\ifZREF@found
+\def\ZREF@patch#1{%
+ \ltx@IfUndefined{#1}{%
+ \ltx@gobble
+ }{%
+ \expandafter\let\csname ZREF@org@#1\expandafter\endcsname
+ \csname #1\endcsname
+ \ltx@firstofone
+ }%
+}
+\ltx@IfUndefined{eTeXversion}{%
+ \PackageError\ZREF@name{%
+ Missing support for eTeX; package is abandoned%
+ }{%
+ Use a TeX compiler that support eTeX and enable eTeX %
+ in the format.%
+ }%
+ \endinput
+}{}%
+\RequirePackage{etexcmds}[2007/09/09]
+\ifetex@unexpanded
+\else
+ \PackageError\ZREF@name{%
+ Missing e-TeX's \string\unexpanded.\MessageBreak
+ Add \string\RequirePackage\string{etexcmds\string} before %
+ \string\documentclass%
+ }{%
+ Probably you are using some package (e.g. ConTeXt) that %
+ redefines \string\unexpanded%
+ }%
+ \expandafter\endinput
+\fi
+\RequirePackage{auxhook}
+\AddLineBeginAux{%
+ \string\providecommand\string\zref@newlabel[2]{}%
+}
+\def\ZREF@RefPrefix{Z@R}
+\ZREF@Robust\edef\zref@newlabel{%
+ \noexpand\@newl@bel{\ZREF@RefPrefix}%
+}
+\ZREF@Robust\def\zref@newlist#1{%
+ \zref@iflistundefined{#1}{%
+ \@ifdefinable{Z@L@#1}{%
+ \global\expandafter\let\csname Z@L@#1\endcsname\ltx@empty
+ \PackageInfo\ZREF@name{New property list: #1}%
+ }%
+ }{%
+ \PackageError\ZREF@name{%
+ Property list `#1' already exists%
+ }\@ehc
+ }%
+}
+\def\zref@iflistundefined#1{%
+ \ltx@ifundefined{Z@L@#1}%
+}
+\ZREF@Robust\def\zref@listexists#1{%
+ \zref@iflistundefined{#1}{%
+ \PackageError\ZREF@name{%
+ Property list `#1' does not exist%
+ }\@ehc
+ }%
+}
+\ZREF@Robust\def\zref@iflistcontainsprop#1#2{%
+ \zref@iflistundefined{#1}{%
+ \ltx@secondoftwo
+ }{%
+ \begingroup\expandafter\endgroup
+ \expandafter\in@
+ \csname#2\expandafter\expandafter\expandafter\endcsname
+ \expandafter\expandafter\expandafter{\csname Z@L@#1\endcsname}%
+ \csname ltx@\ifin@ first\else second\fi oftwo\endcsname
+ }%
+}
+\def\zref@listforloop#1#2{%
+ \zref@listexists{#1}{%
+ \expandafter\expandafter\expandafter\@tfor
+ \expandafter\expandafter\expandafter\zref@prop
+ \expandafter\expandafter\expandafter:%
+ \expandafter\expandafter\expandafter=%
+ \csname Z@L@#1\endcsname
+ \do{%
+ \begingroup
+ \escapechar=-1 %
+ \edef\x{\endgroup
+ \def\noexpand\zref@prop{%
+ \expandafter\string\zref@prop
+ }%
+ }%
+ \x
+ #2\zref@prop
+ }%
+ }%
+}
+\ZREF@Robust\def\zref@addprops#1#2{%
+ \zref@listexists{#1}{%
+ \comma@parse{#2}{%
+ \zref@propexists\comma@entry{%
+ \zref@iflistcontainsprop{#1}\comma@entry{%
+ \PackageWarning\ZREF@name{%
+ Property `\comma@entry' is already in list `#1'%
+ }%
+ }{%
+ \begingroup\expandafter\endgroup
+ \expandafter\g@addto@macro
+ \csname Z@L@#1\expandafter\endcsname
+ \expandafter{\csname\comma@entry\endcsname}%
+ }%
+ }%
+ \ltx@gobble
+ }%
+ }%
+}
+\ZREF@Robust\def\zref@addprop#1#2{%
+ \zref@listexists{#1}{%
+ \zref@propexists{#2}{%
+ \zref@iflistcontainsprop{#1}{#2}{%
+ \PackageWarning\ZREF@name{%
+ Property `#2' is already in list `#1'%
+ }%
+ }{%
+ \begingroup\expandafter\endgroup
+ \expandafter\g@addto@macro
+ \csname Z@L@#1\expandafter\endcsname
+ \expandafter{\csname#2\endcsname}%
+ }%
+ }%
+ }%
+}
+\ZREF@Robust\def\zref@localaddprops#1#2{%
+ \zref@listexists{#1}{%
+ \comma@parse{#2}{%
+ \zref@propexists\comma@entry{%
+ \zref@iflistcontainsprop{#1}\comma@entry{%
+ \PackageWarning\ZREF@name{%
+ Property `\comma@entry' is already in list `#1'%
+ }%
+ }{%
+ \begingroup\expandafter\endgroup
+ \expandafter\ltx@LocalAppendToMacro
+ \csname Z@L@#1\expandafter\endcsname
+ \expandafter{\csname\comma@entry\endcsname}%
+ }%
+ }%
+ \ltx@gobble
+ }%
+ }%
+}
+\ZREF@Robust\def\zref@localaddprop#1#2{%
+ \zref@listexists{#1}{%
+ \zref@propexists{#2}{%
+ \zref@iflistcontainsprop{#1}{#2}{%
+ \PackageWarning\ZREF@name{%
+ Property `#2' is already in list `#1'%
+ }%
+ }{%
+ \begingroup\expandafter\endgroup
+ \expandafter\ltx@LocalAppendToMacro
+ \csname Z@L@#1\expandafter\endcsname
+ \expandafter{\csname#2\endcsname}%
+ }%
+ }%
+ }%
+}
+\ltx@IfUndefined{pdf@strcmp}{%
+ \ZREF@Robust\def\zref@delprop{%
+ \ZREF@delprop\gdef
+ }%
+ \ZREF@Robust\def\zref@localdelprop{%
+ \ZREF@delprop\def
+ }%
+ \def\ZREF@delprop#1#2#3{%
+ \zref@listexists{#2}{%
+ \begingroup
+ \escapechar=-1 %
+ \def\ZREF@param{#3}%
+ \@onelevel@sanitize\ZREF@param
+ \toks@{}%
+ \expandafter\expandafter\expandafter\ZREF@@delprop
+ \csname Z@L@#2\endcsname!%
+ \expandafter\endgroup
+ \expandafter#1\csname Z@L@#2\expandafter\endcsname
+ \expandafter{%
+ \the\toks@
+ }%
+ }%
+ }%
+ \def\ZREF@@delprop#1{%
+ \expandafter\ZREF@@@delprop\expandafter{\string#1}#1%
+ }%
+ \def\ZREF@@@delprop#1#2{%
+ \ifx#2!%
+ \else
+ \def\ZREF@temp{#1}%
+ \@onelevel@sanitize\ZREF@temp
+ \ifx\ZREF@param\ZREF@temp
+ \else
+ \toks@\expandafter{%
+ \the\expandafter\toks@\csname#1\endcsname
+ }%
+ \fi
+ \expandafter\ZREF@@delprop
+ \fi
+ }%
+}{%
+ \ZREF@Robust\def\zref@delprop{%
+ \ZREF@delprop\xdef
+ }%
+ \ZREF@Robust\def\zref@localdelprop{%
+ \ZREF@delprop\edef
+ }%
+ \def\ZREF@delprop#1#2#3{%
+ \zref@listexists{#2}{%
+ \def\ZREF@param{#3}%
+ \edef\ZREF@SavedEscapechar{\the\escapechar}%
+ \escapechar=-1 %
+ \expandafter#1\csname Z@L@#2%
+ \expandafter\expandafter\expandafter\endcsname{%
+ \expandafter\expandafter\expandafter\ZREF@@delprop
+ \csname Z@L@#2\endcsname!%
+ }%
+ \escapechar=\ZREF@SavedEscapechar\relax
+ }%
+ }%
+ \def\ZREF@@delprop#1{%
+ \expandafter\ZREF@@@delprop\expandafter{\string#1}#1%
+ }%
+ \def\ZREF@@@delprop#1#2{%
+ \ifx#2!%
+ \else
+ \ifnum\pdf@strcmp{#1}{\ZREF@param}=\ltx@zero
+ \else
+ \expandafter\noexpand\csname#1\endcsname
+ \fi
+ \expandafter\ZREF@@delprop
+ \fi
+ }%
+}
+\def\zref@ifpropundefined#1{%
+ \ltx@ifundefined{Z@E@#1}%
+}
+\ZREF@Robust\def\zref@propexists#1{%
+ \zref@ifpropundefined{#1}{%
+ \PackageError\ZREF@name{%
+ Property `#1' does not exist%
+ }\@ehc
+ }%
+}
+\ZREF@Robust\def\zref@newprop{%
+ \@ifstar{%
+ \let\ZREF@X\noexpand
+ \ZREF@newprop
+ }{%
+ \let\ZREF@X\ltx@empty
+ \ZREF@newprop
+ }%
+}
+\def\ZREF@newprop#1{%
+ \edef\ZREF@P{#1}%
+ \@onelevel@sanitize\ZREF@P
+ \begingroup
+ \ifx\ZREF@P\ZREF@par
+ \@PackageError\ZREF@name{%
+ Invalid property name `\ZREF@P'%
+ }{%
+ The property name `par' is not allowed %
+ because of internal reasons.%
+ \MessageBreak
+ \@ehc
+ }%
+ \def\ZREF@@newprop[##1]##2{\endgroup}%
+ \else
+ \zref@ifpropundefined\ZREF@P{%
+ \endgroup
+ \PackageInfo\ZREF@name{%
+ New property: \ZREF@P
+ }%
+ }{%
+ \@PackageError\ZREF@name{%
+ Property `\ZREF@P' already exists%
+ }\@ehc
+ \def\ZREF@@newprop[##1]##2{\endgroup}%
+ }%
+ \fi
+ \@ifnextchar[\ZREF@@newprop{\ZREF@@newprop[\zref@default]}%
+}
+\def\ZREF@par{par}
+\@onelevel@sanitize\ZREF@par
+\def\ZREF@@newprop[#1]{%
+ \global\@namedef{Z@D@\ZREF@P}{#1}%
+ \global\expandafter\let\csname Z@X@\ZREF@P\endcsname\ZREF@X
+ \begingroup\expandafter\endgroup
+ \expandafter\ZREF@@@newprop\csname\ZREF@P\endcsname
+ \expandafter\gdef\csname Z@C@\ZREF@P\endcsname{}%
+ \zref@setcurrent\ZREF@P
+}
+\def\ZREF@@@newprop#1{%
+ \expandafter
+ \gdef\csname Z@E@\ZREF@P\endcsname##1#1##2##3\ZREF@nil{##2}%
+}
+\ZREF@Robust\def\zref@showprop#1{%
+ \zref@ifpropundefined{#1}{%
+ \@PackageInfoNoLine{\ZREF@name}{%
+ Show property `#1': <undefined>%
+ }%
+ }{%
+ \begingroup
+ \toks@\expandafter\expandafter\expandafter{%
+ \csname Z@C@#1\endcsname
+ }%
+ \edef\ZREF@value{\the\toks@}%
+ \ltx@onelevel@sanitize\ZREF@value
+ \toks@\expandafter\expandafter\expandafter{%
+ \csname Z@D@#1\endcsname
+ }%
+ \edef\ZREF@default{\the\toks@}%
+ \ltx@onelevel@sanitize\ZREF@default
+ \@PackageInfoNoLine{\ZREF@name}{%
+ Show property `#1':\MessageBreak
+ \expandafter\ifx\csname Z@X@#1\endcsname\ltx@empty
+ Immediate %
+ \else
+ Delayed %
+ \fi
+ value: [\ZREF@value]\MessageBreak
+ Default: [\ZREF@default]%
+ }%
+ \endgroup
+ }%
+}
+\ZREF@Robust\def\zref@setcurrent#1#2{%
+ \zref@propexists{#1}{%
+ \expandafter\def\csname Z@C@#1\endcsname{#2}%
+ }%
+}
+\def\ZREF@getcurrent#1{%
+ \romannumeral0%
+ \ltx@ifundefined{Z@C@#1}{%
+ \ltx@space
+ }{%
+ \expandafter\expandafter\expandafter\ltx@space
+ \csname Z@C@#1\endcsname
+ }%
+}
+\def\ZREF@wu@getcurrent#1{%
+ \etex@unexpanded\expandafter\expandafter\expandafter{%
+ \ZREF@getcurrent{#1}%
+ }%
+}
+\let\zref@getcurrent\ZREF@getcurrent
+\ZREF@Robust\def\zref@label#1{%
+ \zref@labelbylist{#1}\ZREF@mainlist
+}
+\ZREF@Robust\def\zref@labelbylist#1#2{%
+ \@bsphack
+ \zref@listexists{#2}{%
+ \expandafter\expandafter\expandafter\ZREF@label
+ \expandafter\expandafter\expandafter{%
+ \csname Z@L@#2\endcsname
+ }{#1}%
+ }%
+ \@esphack
+}
+\ZREF@Robust\def\zref@labelbyprops#1#2{%
+ \@bsphack
+ \begingroup
+ \toks@{}%
+ \comma@parse{#2}{%
+ \zref@ifpropundefined\comma@entry{%
+ \PackageWarning\ZREF@name{%
+ Property `\comma@entry' is not known%
+ }%
+ }{%
+ \toks@\expandafter{%
+ \the\expandafter\toks@\csname\comma@entry\endcsname
+ }%
+ }%
+ \ltx@gobble
+ }%
+ \expandafter\endgroup
+ \expandafter\ZREF@label\expandafter{\the\toks@}{#1}%
+ \@esphack
+}
+\ZREF@Robust\def\zref@labelbykv#1#2{%
+ \@bsphack
+ \begingroup
+ \let\Z@L@ZREF@temp\ltx@empty
+ \kvsetkeys{ZREF@LABEL}{#1}%
+ \ifZREF@immediate
+ \expandafter\zref@wrapper@immediate\expandafter{%
+ \expandafter\ZREF@label\expandafter{\Z@L@ZREF@temp}{#2}%
+ }%
+ \else
+ \expandafter\ZREF@label\expandafter{\Z@L@ZREF@temp}{#2}%
+ \fi
+ \endgroup
+ \@esphack
+}
+\kv@define@key{ZREF@LABEL}{prop}{%
+ \edef\ZREF@param{#1}%
+ \zref@propexists\ZREF@param{%
+ \zref@iflistcontainsprop{ZREF@temp}\ZREF@param{}{%
+ \begingroup\expandafter\endgroup
+ \expandafter\ltx@LocalAppendToMacro
+ \expandafter\Z@L@ZREF@temp
+ \expandafter{\csname\ZREF@param\endcsname}%
+ }%
+ }%
+}
+\kv@define@key{ZREF@LABEL}{list}{%
+ \zref@listforloop{#1}{%
+ \zref@iflistcontainsprop{ZREF@temp}\zref@prop{}{%
+ \begingroup\expandafter\endgroup
+ \expandafter\ltx@LocalAppendToMacro
+ \expandafter\Z@L@ZREF@temp
+ \expandafter{\csname\zref@prop\endcsname}%
+ }%
+ \ltx@gobble
+ }%
+}
+\kv@define@key{ZREF@LABEL}{delprop}{%
+ \zref@propexists{#1}{%
+ \zref@localdelprop{ZREF@temp}{#1}%
+ }%
+}
+\kv@define@key{ZREF@LABEL}{immediate}[true]{%
+ \edef\ZREF@param{#1}%
+ \ifx\ZREF@param\ZREF@true
+ \ZREF@immediatetrue
+ \else
+ \ifx\ZREF@param\ZREF@false
+ \ZREF@immediatefalse
+ \else
+ \PackageWarning\ZREF@name{%
+ Option `immediate' expects `true' or `false'.\MessageBreak
+ Ignoring invalid value `\ZREF@param'%
+ }%
+ \fi
+ \fi
+}
+\def\ZREF@false{false}
+\def\ZREF@true{true}
+\kv@define@key{ZREF@LABEL}{values}[]{%
+ \kv@parse{#1}{%
+ \ifx\kv@value\relax
+ \@PackageWarning\ZREF@name{%
+ Missing value for property `\kv@key'%
+ }%
+ \expandafter\ltx@gobbletwo
+ \else
+ \expandafter\zref@setcurrent
+ \fi
+ }%
+}
+\newif\ifZREF@immediate
+\ZREF@Robust{\long\def}\zref@wrapper@immediate#1{%
+ \begingroup
+ \ZREF@immediatetrue
+ \let\ZREF@org@write\write
+ \def\write{\immediate\ZREF@org@write}%
+ #1%
+ \endgroup
+}
+\def\ZREF@label#1#2{%
+ \if@filesw
+ \begingroup
+ \ifZREF@immediate
+ \let\ZREF@org@thepage\thepage
+ \fi
+ \protected@write\@auxout{%
+ \ifZREF@immediate
+ \let\thepage\ZREF@org@thepage
+ \fi
+ \let\ZREF@temp\ltx@empty
+ \@tfor\ZREF@P:=#1\do{%
+ \begingroup
+ \escapechar=-1 %
+ \edef\x{\endgroup
+ \def\noexpand\ZREF@P{%
+ \expandafter\string\ZREF@P
+ }%
+ }%
+ \x
+ \expandafter\ifx
+ \csname
+ \ifZREF@immediate
+ relax%
+ \else
+ Z@X@\ZREF@P%
+ \fi
+ \endcsname
+ \noexpand
+ \expandafter\let\csname Z@C@\ZREF@P\endcsname\relax
+ \fi
+ \toks@\expandafter{\ZREF@temp}%
+ \edef\ZREF@temp{%
+ \the\toks@
+ \ltx@backslashchar\ZREF@P{%
+ \expandafter\noexpand\csname Z@C@\ZREF@P\endcsname
+ }%
+ }%
+ }%
+ }{%
+ \string\zref@newlabel{#2}{\ZREF@temp}%
+ }%
+ \endgroup
+ \fi
+}
+\def\ZREF@addtoks#1{%
+ \toks@\expandafter\expandafter\expandafter{%
+ \expandafter\the\expandafter\toks@#1%
+ }%
+}
+\def\zref@ifrefundefined#1{%
+ \ltx@ifundefined{Z@R@#1}%
+}
+\ZREF@IfDefinable\zifrefundefined\def{%
+ #1{%
+ \zref@wrapper@babel\ZREF@ifrefundefined{#1}%
+ }%
+}
+\def\ZREF@ifrefundefined#1{%
+ \zref@refused{#1}%
+ \zref@ifrefundefined{#1}%
+}
+\ZREF@Robust\def\zref@refused#1{%
+ \zref@wrapper@babel\ZREF@refused{#1}%
+}
+\def\ZREF@refused#1{%
+ \zref@ifrefundefined{#1}{%
+ \protect\G@refundefinedtrue
+ \@latex@warning{%
+ Reference `#1' on page \thepage \space undefined%
+ }%
+ }{}%
+}
+\def\zref@ifrefcontainsprop#1#2{%
+ \zref@ifrefundefined{#1}{%
+ \ltx@secondoftwo
+ }{%
+ \expandafter\ZREF@ifrefcontainsprop
+ \csname Z@E@#2\expandafter\endcsname
+ \csname#2\expandafter\expandafter\expandafter\endcsname
+ \expandafter\expandafter\expandafter{%
+ \csname Z@R@#1\endcsname
+ }%
+ }%
+}
+\def\ZREF@ifrefcontainsprop#1#2#3{%
+ \expandafter\ifx\expandafter\ZREF@novalue
+ #1#3#2\ZREF@novalue\ZREF@nil\ltx@empty
+ \expandafter\ltx@secondoftwo
+ \else
+ \expandafter\ltx@firstoftwo
+ \fi
+}
+\def\ZREF@novalue{\ZREF@NOVALUE}
+\def\ZREF@extract#1#2{%
+ \romannumeral0%
+ \ltx@ifundefined{Z@D@#2}{%
+ \expandafter\ltx@space\zref@default
+ }{%
+ \expandafter\expandafter\expandafter\ZREF@@extract
+ \expandafter\expandafter\expandafter{%
+ \csname Z@D@#2\endcsname
+ }{#1}{#2}%
+ }%
+}
+\def\ZREF@@extract#1#2#3{%
+ \expandafter\expandafter\expandafter\ltx@space
+ \zref@extractdefault{#2}{#3}{#1}%
+}
+\def\ZREF@wu@extract#1#2{%
+ \etex@unexpanded\expandafter\expandafter\expandafter{%
+ \ZREF@extract{#1}{#2}%
+ }%
+}
+\let\zref@extract\ZREF@extract
+\def\ZREF@extractdefault#1#2#3{%
+ \romannumeral0%
+ \zref@ifrefundefined{#1}\ltx@firstoftwo{%
+ \zref@ifpropundefined{#2}\ltx@firstoftwo\ltx@secondoftwo
+ }{%
+ \ltx@space
+ #3%
+ }{%
+ \expandafter\expandafter\expandafter\ltx@space
+ \csname Z@E@#2\expandafter\expandafter\expandafter\endcsname
+ \csname Z@R@#1\expandafter\endcsname
+ \csname#2\endcsname{#3}\ZREF@nil
+ }%
+}
+\def\ZREF@wu@extractdefault#1#2#3{%
+ \etex@unexpanded\expandafter\expandafter\expandafter{%
+ \ZREF@extractdefault{#1}{#2}{#3}%
+ }%
+}
+\let\zref@extractdefault\ZREF@extractdefault
+\ZREF@Robust\def\zref@def@extract#1{%
+ \zref@wrapper@babel{\ZREF@def@extract{#1}}%
+}
+\def\ZREF@def@extract#1#2#3{%
+ \zref@refused{#2}%
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter#1%
+ \expandafter\expandafter\expandafter{%
+ \zref@extract{#2}{#3}%
+ }%
+}
+\ZREF@Robust\def\zref@def@extractdefault#1{%
+ \zref@wrapper@babel{\ZREF@def@extractdefault{#1}}%
+}
+\def\ZREF@def@extractdefault#1#2#3#4{%
+ \zref@refused{#2}%
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter#1%
+ \expandafter\expandafter\expandafter{%
+ \zref@extractdefault{#2}{#3}{#4}%
+ }%
+}
+\ZREF@Robust{\long\def}\ZREF@wrapper@unexpanded#1{%
+ \let\zref@wrapper@unexpanded\ltx@firstofone
+ \let\zref@getcurrent\ZREF@wu@getcurrent
+ \let\zref@extractdefault\ZREF@wu@extractdefault
+ \let\zref@extract\ZREF@wu@extract
+ #1%
+ \let\zref@wrapper@unexpanded\ZREF@wrapper@unexpanded
+ \let\zref@getcurrent\ZREF@getcurrent
+ \let\zref@extractdefault\ZREF@extractdefault
+ \let\zref@extract\ZREF@extract
+}
+\ltx@IfUndefined{etex@unexpanded}{%
+ \let\zref@wrapper@unexpanded\ltx@firstofone
+}{%
+ \let\zref@wrapper@unexpanded\ZREF@wrapper@unexpanded
+}
+\ZREF@Robust{\long\def}\zref@wrapper@babel#1#2{%
+ \ifcsname if@safe@actives\endcsname
+ \expandafter\ltx@firstofone
+ \else
+ \expandafter\ltx@secondoftwo
+ \fi
+ {%
+ \if@safe@actives
+ \expandafter\ltx@secondoftwo
+ \else
+ \expandafter\ltx@firstoftwo
+ \fi
+ {%
+ \begingroup
+ \csname @safe@activestrue\endcsname
+ \edef\x{#2}%
+ \expandafter\endgroup
+ \expandafter\ZREF@wrapper@babel\expandafter{\x}{#1}%
+ }%
+ }{%
+ #1{#2}%
+ }%
+}
+\long\def\ZREF@wrapper@babel#1#2{%
+ #2{#1}%
+}
+\ZREF@Robust\def\zref@require@unique{%
+ \@ifundefined{c@zref@unique}{%
+ \begingroup
+ \let\@addtoreset\ltx@gobbletwo
+ \newcounter{zref@unique}%
+ \endgroup
+ \renewcommand*{\thezref@unique}{%
+ zref@\number\c@zref@unique
+ }%
+ }{}%
+}
+\ltx@IfUndefined{numexpr}{%
+ \def\ZREF@number#1{\number#1}%
+}{%
+ \def\ZREF@number#1{\the\numexpr(#1)\relax}%
+}
+\ZREF@Robust\def\zref@setdefault#1{%
+ \def\zref@default{#1}%
+}
+\zref@setdefault{%
+ \nfss@text{\reset@font\bfseries ??}%
+}
+\ZREF@Robust\def\zref@setmainlist#1{%
+ \def\ZREF@mainlist{#1}%
+}
+\zref@setmainlist{main}
+\zref@newlist\ZREF@mainlist
+\zref@newprop{default}{\@currentlabel}
+\zref@newprop*{page}{\thepage}
+\zref@addprops\ZREF@mainlist{default,page}
+\def\ZREF@NewPropAnchor{%
+ \zref@newprop{anchor}{%
+ \ltx@ifundefined{@currentHref}{}{\@currentHref}%
+ }%
+ \global\let\ZREF@NewPropAnchor\relax
+}
+\def\ZREF@NewPropTitle{%
+ \gdef\zref@titleref@current{}%
+ \zref@newprop{title}{\zref@titleref@current}%
+ \global\let\ZREF@NewPropTitle\relax
+}
+\def\ZREF@NewPropTheotype{%
+ \zref@newprop{theotype}{}%
+ \global\let\ZREF@NewPropTheotype\relax
+}
+\def\ZREF@NewPropPageValue{%
+ \zref@newprop*{pagevalue}[0]{\number\c@page}%
+ \global\let\ZREF@NewPropPageValue\relax
+}
+\let\ZREF@base@ok=Y
+\endinput
+%%
+%% End of file `zref-base.sty'.