diff options
author | Karl Berry <karl@freefriends.org> | 2006-08-27 22:38:54 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-08-27 22:38:54 +0000 |
commit | 2607d53137ede06e9780342b225218743e100bb4 (patch) | |
tree | c6c88c805dd21a5bbb6ad6f26d3d53c517f4b866 /Master/texmf-dist/tex/latex/oberdiek/zref-base.sty | |
parent | fb0d58de45c0fc32bab09a839c186de46f75628e (diff) |
oberdiek update from tds zip (28aug06)
git-svn-id: svn://tug.org/texlive/trunk@2054 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/oberdiek/zref-base.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/oberdiek/zref-base.sty | 354 |
1 files changed, 354 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/oberdiek/zref-base.sty b/Master/texmf-dist/tex/latex/oberdiek/zref-base.sty new file mode 100644 index 00000000000..029783275cb --- /dev/null +++ b/Master/texmf-dist/tex/latex/oberdiek/zref-base.sty @@ -0,0 +1,354 @@ +%% +%% 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. +%% +%% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.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". +%% +%% This Current Maintainer of this work is Heiko Oberdiek. +%% +%% 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-counter.sty, +%% zref-dotfill.sty, zref-hyperref.sty, zref-lastpage.sty, +%% zref-perpage.sty, zref-savepos.sty, zref-titleref.sty, +%% zref-totpages.sty, zref-user.sty, zref-xr.sty, +%% zref-example.tex. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{zref-base}% + [2006/05/25 Module base for zref (HO)] +\def\ZREF@name{zref} +\def\ZREF@ErrorNoLine#1#2{% + \begingroup + \let\on@line\@empty + \PackageError\ZREF@name{#1}{#2}% + \endgroup +} +\def\ZREF@UpdatePdfTeX{Update pdfTeX.} +\newif\ifZREF@found +\def\ZREF@patch#1{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname #1\endcsname\relax + \expandafter\@gobble + \else + \expandafter\let\csname ZREF@org@#1\expandafter\endcsname + \csname #1\endcsname + \expandafter\@firstofone + \fi +} +\begingroup + \@ifundefined{eTeXversion}{% + \ZREF@ErrorNoLine{% + Missing support for eTeX; package is abandoned% + }{% + Use a TeX compiler that support eTeX and enable eTeX % + in the format.% + }% + \endgroup + \endinput + }{} +\endgroup +\RequirePackage{auxhook} +\AddLineBeginAux{% + \string\providecommand\string\zref@newlabel[2]{}% +} +\def\zref@newlabel{% + \@newl@bel{Z@R}% +} +\def\zref@newlist#1{% + \zref@iflistundefined{#1}{% + \@ifdefinable{Z@L@#1}{% + \global\expandafter\let\csname Z@L@#1\endcsname\@empty + \PackageInfo{zref}{New property list: #1}% + }% + }{% + \PackageError\ZREF@name{% + Property list `#1' already exists% + }\@ehc + }% +} +\def\zref@iflistundefined#1{% + \expandafter\ifx\csname Z@L@#1\endcsname\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +\def\zref@listexists#1{% + \zref@iflistundefined{#1}{% + \PackageError\ZREF@name{% + Property list `#1' does not exist% + }\@ehc + }% +} +\def\zref@listcontainsprop#1{% + \expandafter\ZREF@listcontainsprop\csname Z@L@#1\endcsname +} +\def\ZREF@listcontainsprop#1#2{% + \begingroup + \ZREF@foundfalse + \edef\y{#2}% + \@tfor\x:=#1\do{% + \edef\x{\x}% + \ifx\x\y + \ZREF@foundtrue + \fi + }% + \expandafter\endgroup + \ifZREF@found + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +\def\zref@addprop#1#2{% + \zref@listexists{#1}{% + \zref@propexists{#2}{% + \zref@listcontainsprop{#1}{#2}{% + \PackageWarning\ZREF@name{% + Property `#2' is already in list `#1'% + }% + }{% + \expandafter\g@addto@macro\csname Z@L@#1\endcsname{{#2}}% + }% + }% + }% +} +\def\zref@ifpropundefined#1{% + \expandafter\ifx\csname Z@E@#1\endcsname\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +\def\zref@propexists#1{% + \zref@ifpropundefined{#1}{% + \PackageError\ZREF@name{% + Property `#1' does not exist% + }\@ehc + }% +} +\def\zref@newprop{% + \@ifstar{% + \let\ZREF@X\noexpand + \ZREF@newprop + }{% + \let\ZREF@X\@empty + \ZREF@newprop + }% +} +\def\ZREF@newprop#1{% + \PackageInfo{zref}{New property: #1}% + \def\ZREF@P{#1}% + \@ifnextchar[\ZREF@@newprop{\ZREF@@newprop[\zref@default]}% +} +\def\ZREF@@newprop[#1]{% + \global\@namedef{Z@D@\ZREF@P}{#1}% + \global\expandafter\let\csname Z@X@\ZREF@P\endcsname\ZREF@X + \expandafter\ZREF@@@newprop\csname\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}% +} +\def\zref@setcurrent#1{% + \expandafter\def\csname Z@C@#1\endcsname +} +\def\zref@label#1{% + \zref@labelbylist{#1}\ZREF@mainlist +} +\def\zref@labelbylist#1#2{% + \@bsphack + \zref@listexists{#2}{% + \expandafter\expandafter\expandafter\ZREF@label + \expandafter\expandafter\expandafter{% + \csname Z@L@#2\endcsname + }{#1}% + }% + \@esphack +} +\def\zref@labelbyprops#1#2{% + \@bsphack + \begingroup + \edef\l{#2}% + \toks@{}% + \@for\x:=#2\do{% + \zref@ifpropundefined{\x}{% + \PackageWarning\ZREF@name{% + Property `\x' is not known% + }% + }{% + \toks@\expandafter\expandafter\expandafter{% + \expandafter\the\expandafter\toks@\expandafter{\x}% + }% + }% + }% + \expandafter\endgroup + \expandafter\ZREF@label\expandafter{\the\toks@}{#1}% + \@esphack +} +\newif\ifZREF@immediate +\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\@empty + \@tfor\ZREF@P:=#1\do{% + \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@ + \expandafter\string\csname\ZREF@P\endcsname{% + \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{% + \expandafter\ifx\csname Z@R@#1\endcsname\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +\def\zref@refused#1{% + \begingroup + \csname @safe@activestrue\endcsname + \zref@ifrefundefined{#1}{% + \protect\G@refundefinedtrue + \@latex@warning{% + Reference `#1' on page \thepage \space undefined% + }% + }{}% + \endgroup +} +\def\zref@extract#1#2{% + \expandafter\expandafter\expandafter\ZREF@extract + \expandafter\expandafter\expandafter{% + \csname Z@D@#2\endcsname + }{#1}{#2}% +} +\def\ZREF@extract#1#2#3{% + \zref@extractdefault{#2}{#3}{#1}% +} +\def\zref@ifrefcontainsprop#1#2{% + \zref@ifrefundefined{#1}{% + \@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\@empty + \expandafter\@secondoftwo + \else + \expandafter\@firstoftwo + \fi +} +\def\ZREF@novalue{\ZREF@NOVALUE} +\def\zref@extractdefault#1#2#3{% + \zref@ifrefundefined{#1}{% + \ZREF@unexpanded{#3}% + }{% + \expandafter\expandafter\expandafter\ZREF@unexpanded + \expandafter\expandafter\expandafter{% + \csname Z@E@#2\expandafter\expandafter\expandafter\endcsname + \csname Z@R@#1\expandafter\endcsname + \csname#2\endcsname{#3}\ZREF@nil + }% + }% +} +\long\def\zref@wrapper@unexpanded#1{% + \let\ZREF@unexpanded\unexpanded + #1% + \let\ZREF@unexpanded\@firstofone +} +\let\ZREF@unexpanded\@firstofone +\long\def\zref@wrapper@babel#1#2{% + \begingroup + \csname @safe@activestrue\endcsname + \edef\x{#2}% + \expandafter\endgroup + \expandafter\ZREF@wrapper@babel\expandafter{\x}{#1}% +} +\def\ZREF@wrapper@babel#1#2{% + #2{#1}% +} +\def\zref@require@unique{% + \@ifundefined{c@zref@unique}{% + \newcounter{zref@unique}% + \renewcommand*{\thezref@unique}{% + zref@\number\c@zref@unique + }% + }{}% +} +\def\zref@setdefault#1{% + \def\zref@default{#1}% +} +\zref@setdefault{% + \nfss@text{\reset@font\bfseries ??}% +} +\def\zref@setmainlist#1{% + \def\ZREF@mainlist{#1}% +} +\zref@setmainlist{main} +\zref@newlist\ZREF@mainlist +\zref@newprop{default}{\@currentlabel} +\zref@newprop*{page}{\thepage} +\zref@addprop\ZREF@mainlist{default} +\zref@addprop\ZREF@mainlist{page} +\let\ZREF@baseok\@empty +\endinput +%% +%% End of file `zref-base.sty'. |