summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/oberdiek/zref.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-05-02 21:50:45 +0000
committerKarl Berry <karl@freefriends.org>2012-05-02 21:50:45 +0000
commitaa1776c78dfdb456e2228fbceaa886e64e36174c (patch)
tree7967af7f0f2079a632809a813221918af16ba8cc /Master/texmf-dist/source/latex/oberdiek/zref.dtx
parenta86d14742b305868a1c2b1f33f1263a6b7d0e03d (diff)
oberdiek (1may12)
git-svn-id: svn://tug.org/texlive/trunk@26177 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/oberdiek/zref.dtx')
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/zref.dtx1096
1 files changed, 981 insertions, 115 deletions
diff --git a/Master/texmf-dist/source/latex/oberdiek/zref.dtx b/Master/texmf-dist/source/latex/oberdiek/zref.dtx
index f677354b025..6b30275cf7e 100644
--- a/Master/texmf-dist/source/latex/oberdiek/zref.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/zref.dtx
@@ -1,11 +1,12 @@
% \iffalse meta-comment
-%
+%
% File: zref.dtx
-% Version: 2011/03/18 v2.21
-%
-% Copyright (C) 2006-2011 by
+% Version: 2012/04/04 v2.24
+% Info: A new reference scheme for LaTeX
+%
+% Copyright (C) 2006-2012 by
% Heiko Oberdiek <heiko.oberdiek at googlemail.com>
-%
+%
% 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
@@ -15,11 +16,11 @@
% 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,
@@ -33,11 +34,11 @@
% zref-example-nextpage.tex, zref-test1.tex,
% zref-test-base.tex, zref-test-runs.tex,
% zref-test-titleref-memoir.tex.
-%
+%
% Distribution:
% CTAN:macros/latex/contrib/oberdiek/zref.dtx
% CTAN:macros/latex/contrib/oberdiek/zref.pdf
-%
+%
% Unpacking:
% (a) If zref.ins is present:
% tex zref.ins
@@ -46,7 +47,7 @@
% (c) If you insist on using LaTeX
% latex \let\install=y\input{zref.dtx}
% (quote the arguments according to the demands of your shell)
-%
+%
% Documentation:
% (a) If zref.drv is present:
% latex zref.drv
@@ -56,14 +57,14 @@
% 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 zref.dtx
% makeindex -s gind.ist zref.idx
% pdflatex zref.dtx
% makeindex -s gind.ist zref.idx
% pdflatex zref.dtx
-%
+%
% Installation:
% TDS:tex/latex/oberdiek/zref.sty
% TDS:tex/latex/oberdiek/zref-base.sty
@@ -111,7 +112,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: zref 2011/03/18 v2.21 New reference scheme for LaTeX2e (HO)}
+\Msg{* Package: zref 2012/04/04 v2.24 A new reference scheme for LaTeX (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -123,9 +124,9 @@
This is a generated file.
Project: zref
-Version: 2011/03/18 v2.21
+Version: 2012/04/04 v2.24
-Copyright (C) 2006-2011 by
+Copyright (C) 2006-2012 by
Heiko Oberdiek <heiko.oberdiek at googlemail.com>
This work may be distributed and/or modified under the
@@ -193,6 +194,10 @@ and the derived files
\file{zref-test-base.tex}{\from{zref.dtx}{test-base}}%
\file{zref-test-runs.tex}{\from{zref.dtx}{test-runs}}%
\file{zref-test-titleref-memoir.tex}{\from{zref.dtx}{test-titleref-memoir}}%
+ \nopreamble
+ \nopostamble
+ \usedir{source/latex/oberdiek/catalogue}%
+ \file{zref.xml}{\from{zref.dtx}{catalogue}}%
}
\catcode32=13\relax% active space
@@ -225,9 +230,9 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{zref.drv}%
- [2011/03/18 v2.21 New reference scheme for LaTeX2e (HO)]%
+ [2012/04/04 v2.24 A new reference scheme for LaTeX (HO)]%
\documentclass{ltxdoc}
-\usepackage{holtxdoc}[2011/02/04]
+\usepackage{holtxdoc}[2011/11/22]
\setlength{\emergencystretch}{1em}
\begin{document}
\DocInput{zref.dtx}%
@@ -235,7 +240,7 @@ and the derived files
%</driver>
% \fi
%
-% \CheckSum{3468}
+% \CheckSum{4013}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -256,7 +261,7 @@ and the derived files
% \GetFileInfo{zref.drv}
%
% \title{The \xpackage{zref} package}
-% \date{2011/03/18 v2.21}
+% \date{2012/04/04 v2.24}
% \author{Heiko Oberdiek\\\xemail{heiko.oberdiek at googlemail.com}}
%
% \maketitle
@@ -447,19 +452,27 @@ and the derived files
% Declares a new empty property list.
%
% \begin{declcs}{zref@addprop}
-% \M{listname} \M{propname list}
+% \M{listname} \M{propname}\\
+% \cs{zref@localaddprop} \M{listname} \M{propname}
% \end{declcs}
-% Adds the properties of \meta{propname list} (comma separated)
+% Adds the property \meta{propname}
% to the property list \meta{listname}.
% The property and list must exist.
-% A \meta{propname list} can be given since 2010/04/19 v2.13.
-% Before this version only one property name could be added in one call
-% of \cs{zref@addprop}.
-%
-% \begin{declcs}{zref@localaddprop}
-% \M{listname} \M{propname list}
+% The addition is global by \cs{zref@addprop} and limited to
+% local scope by \cs{zref@localaddprop}.
+% Between 2010/04/19 v2.13 and 2010/10/22 v2.19 a comma separated list
+% of properties could be used as argument \meta{propname}.
+% Since 2010/10/22 v2.19 the addition of several properties
+% at once is supported by \cs{zref@addprops}.
+%
+% \begin{declcs}{zref@addprops}
+% \M{listname} \M{propname list}\\
+% \cs{zref@localaddprops} \M{listname} \M{propname list}
% \end{declcs}
-% Local variant of \cs{zref@addprop}.
+% These macros add a comma separated list of properties
+% \meta{propname list} to list \meta{listname}.
+% \cs{zref@addprops} works globally and \cs{zref@localaddprops}
+% locally. Since 2010/10/22 v2.19.
%
% \begin{declcs}{zref@listexists}
% \M{listname} \M{then}
@@ -601,10 +614,22 @@ and the derived files
% mark their use outside by \cs{zref@refused}, see the example
% file.
%
+% \begin{declcs}{zref@def@extract}%
+% \M{cmd} \M{refname} \M{propname}\\
+% \cs{zref@def@extractdefault}
+% \M{cmd} \M{refname} \M{propname} \M{default}
+% \end{declcs}
+% Both macros extract the property \meta{propname} from the reference
+% \meta{refname} the same way as macros \cs{zref@extract} and
+% \cs{zref@extractdefault}. The result is stored in macro \meta{cmd}.
+% Also \cs{zref@refused} is called to notify \hologo{LaTeX} that
+% the reference \meta{refname} is used. Added in 2011/10/04 v2.22.
+%
% \begin{declcs}{zref@ifrefundefined}\markexp
% \M{refname} \M{then} \M{else}
% \end{declcs}
-% A possibility to check whether a reference exists.
+% Macro \cs{zref@ifrefundefined} calls arguments \meta{then} or \meta{else}
+% dependent on the existence of the reference \meta{refname}.
%
% \begin{declcs}{zifrefundefined}
% \M{refname} \M{then} \M{else}
@@ -914,7 +939,7 @@ and the derived files
\newcounter{foo}
\renewcommand*{\thefoo}{\Alph{foo}}
-\usepackage{zref-lastpage,zref-user}[2011/03/18]
+\usepackage{zref-lastpage,zref-user}[2012/04/04]
\makeatletter
\zref@newprop{thefoo}{\thefoo}
@@ -1028,7 +1053,7 @@ and the derived files
%<<END_EXAMPLE
\documentclass{book}
-\usepackage{zref-nextpage}[2011/03/18]
+\usepackage{zref-nextpage}[2012/04/04]
\znextpagesetup
{\thepage}% next page is unknown
{\thepage\ (#1)}% this page is last page
@@ -1262,6 +1287,14 @@ and the derived files
% The reference stores the location where \cs{zsavepos}
% is executed in properties |posx| and |posy|.
%
+% \begin{declcs}{zsaveposx}
+% \M{refname}\\
+% \cs{zsaveposy}
+% \M{refname}
+% \end{declcs}
+% Same as \cs{zsavepos} except that only the |x| or |y| component
+% of the position is stored. Since 2011/12/05 v2.23.
+%
% \begin{declcs}{zposx}\markexp
% \M{refname}\\
% \SpecialUsageIndex{\zposy}\cs{zposy}\markexp \M{refname}
@@ -1291,7 +1324,10 @@ and the derived files
% by calling \cs{pdfsavepos} (if \xext{aux} files are writable).
%
% Thus \cs{zsavepos} is basically \cs{zref@savepos} followed
-% by |\zreflabelbylist{|\texttt{\meta{refname}}|}{savepos}|.
+% by |\zref@labelbylist{|\texttt{\meta{refname}}|}{savepos}|.
+% If \cs{TeXXeTstate} is detected and enabled, \cs{savepos}
+% also adds \cs{zref@savepos} at the end to support \cs{beginR}
+% where the whatits are processed in reverse order.
% The property list |savepos| contains the properties |posx|
% and |posy|.
%
@@ -1587,13 +1623,13 @@ the height difference of the two baselines is
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref}
- [2011/03/18 v2.21 New reference scheme for LaTeX2e (HO)]%
+ [2012/04/04 v2.24 A new reference scheme for LaTeX (HO)]%
% \end{macrocode}
%
% \subsubsection{Load basic module}
%
% \begin{macrocode}
-\RequirePackage{zref-base}[2011/03/18]
+\RequirePackage{zref-base}[2012/04/04]
% \end{macrocode}
% Abort package loading if \xpackage{zref-base} could not be
% loaded successfully.
@@ -1608,7 +1644,7 @@ the height difference of the two baselines is
\def\ZREF@temp#1{%
\DeclareOption{#1}{%
\AtEndOfPackage{%
- \RequirePackage{zref-#1}[2011/03/18]%
+ \RequirePackage{zref-#1}[2012/04/04]%
}%
}%
}
@@ -1674,13 +1710,13 @@ the height difference of the two baselines is
%<*base>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-base}%
- [2011/03/18 v2.21 Module base for zref (HO)]%
+ [2012/04/04 v2.24 Module base for zref (HO)]%
% \end{macrocode}
%
% \subsubsection{Utilities}
%
% \begin{macrocode}
-\RequirePackage{ltxcmds}[2010/03/01]
+\RequirePackage{ltxcmds}[2010/12/02]
\RequirePackage{infwarerr}[2010/04/08]
\RequirePackage{kvsetkeys}[2010/03/01]
\RequirePackage{kvdefinekeys}[2010/03/01]
@@ -2249,6 +2285,41 @@ the height difference of the two baselines is
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\zref@showprop}
+% \begin{macrocode}
+\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
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\zref@setcurrent}
% \cs{zref@setcurrent} sets the current value for a property.
% \begin{macrocode}
@@ -2693,6 +2764,45 @@ the height difference of the two baselines is
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\zref@def@extract}
+% \begin{macrocode}
+\ZREF@Robust\def\zref@def@extract#1{%
+ \zref@wrapper@babel{\ZREF@def@extract{#1}}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@def@extract}
+% \begin{macrocode}
+\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}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zref@def@extractdefault}
+% \begin{macrocode}
+\ZREF@Robust\def\zref@def@extractdefault#1{%
+ \zref@wrapper@babel{\ZREF@def@extractdefault{#1}}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@def@extractdefault}
+% \begin{macrocode}
+\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}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\ZREF@wrapper@unexpanded}
% \begin{macrocode}
\ZREF@Robust{\long\def}\ZREF@wrapper@unexpanded#1{%
@@ -2783,9 +2893,9 @@ the height difference of the two baselines is
% \begin{macro}{\ZREF@number}
% \begin{macrocode}
\ltx@IfUndefined{numexpr}{%
- \let\ZREF@number\number
+ \def\ZREF@number#1{\number#1}%
}{%
- \def\ZREF@number#1{\the\numexpr#1}%
+ \def\ZREF@number#1{\the\numexpr(#1)\relax}%
}
% \end{macrocode}
% \end{macro}
@@ -2884,6 +2994,14 @@ the height difference of the two baselines is
}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\ZREF@NewPropPageValue}
+% \begin{macrocode}
+\def\ZREF@NewPropPageValue{%
+ \zref@newprop*{pagevalue}[0]{\number\c@page}%
+ \global\let\ZREF@NewPropPageValue\relax
+}
+% \end{macrocode}
+% \end{macro}
%
% \paragraph{Mark successful loading}
%
@@ -2899,8 +3017,8 @@ the height difference of the two baselines is
%<*user>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-user}%
- [2011/03/18 v2.21 Module user for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module user for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -2990,8 +3108,8 @@ the height difference of the two baselines is
%<*abspage>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-abspage}%
- [2011/03/18 v2.21 Module abspage for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module abspage for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -3002,7 +3120,7 @@ the height difference of the two baselines is
% to the \verb|main| property list for absolute page numbers.
% These are recorded by the help of package \xpackage{atbegshi}.
% \begin{macrocode}
-\RequirePackage{atbegshi}%
+\RequirePackage{atbegshi}[2011/10/05]%
% \end{macrocode}
% The counter \verb|abspage| must not go in the clear list
% of \verb|@ckpt| that is used to set counters in
@@ -3038,8 +3156,8 @@ the height difference of the two baselines is
%<*counter>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-counter}%
- [2011/03/18 v2.21 Module counter for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module counter for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -3078,9 +3196,9 @@ the height difference of the two baselines is
%<*lastpage>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-lastpage}%
- [2011/03/18 v2.21 Module lastpage for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
-\RequirePackage{zref-abspage}[2011/03/18]
+ [2012/04/04 v2.24 Module lastpage for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
+\RequirePackage{zref-abspage}[2012/04/04]
\RequirePackage{atveryend}[2009/12/07]
\ifx\ZREF@base@ok Y%
\else
@@ -3150,8 +3268,8 @@ the height difference of the two baselines is
%<*thepage>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-thepage}%
- [2011/03/18 v2.21 Module thepage for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module thepage for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -3159,14 +3277,24 @@ the height difference of the two baselines is
% \end{macrocode}
%
% \begin{macrocode}
-\RequirePackage{atbegshi}
-\RequirePackage{zref-abspage}[2011/03/18]
+\RequirePackage{atbegshi}[2011/10/05]
+\RequirePackage{zref-abspage}[2012/04/04]
% \end{macrocode}
% \begin{macrocode}
\zref@newlist{thepage}
\zref@addprop{thepage}{page}
+\ZREF@NewPropPageValue
+% \end{macrocode}
+% \begin{macro}{\zref@thepage@atbegshi@hook}
+% \begin{macrocode}
+\let\zref@thepage@atbegshi@hook\ltx@empty
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\zref@addprop{thepage}{pagevalue}
\AtBeginShipout{%
- \zref@wrapper@immediate{%
+ \AtBeginShipoutAddToBox{%
+ \zref@thepage@atbegshi@hook
\zref@labelbylist{thepage\the\value{abspage}}{thepage}%
}%
}
@@ -3215,8 +3343,8 @@ the height difference of the two baselines is
%<*nextpage>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-nextpage}%
- [2011/03/18 v2.21 Module nextpage for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module nextpage for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -3224,9 +3352,9 @@ the height difference of the two baselines is
% \end{macrocode}
%
% \begin{macrocode}
-\RequirePackage{zref-abspage}[2011/03/18]
-\RequirePackage{zref-thepage}[2011/03/18]
-\RequirePackage{zref-lastpage}[2011/03/18]
+\RequirePackage{zref-abspage}[2012/04/04]
+\RequirePackage{zref-thepage}[2012/04/04]
+\RequirePackage{zref-lastpage}[2012/04/04]
\RequirePackage{uniquecounter}[2009/12/18]
% \end{macrocode}
% \begin{macrocode}
@@ -3319,8 +3447,8 @@ the height difference of the two baselines is
%<*totpages>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-totpages}%
- [2011/03/18 v2.21 Module totpages for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module totpages for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -3330,8 +3458,8 @@ the height difference of the two baselines is
% The absolute page number of the last page is the total
% page number.
% \begin{macrocode}
-\RequirePackage{zref-abspage}[2011/03/18]
-\RequirePackage{zref-lastpage}[2011/03/18]
+\RequirePackage{zref-abspage}[2012/04/04]
+\RequirePackage{zref-lastpage}[2012/04/04]
% \end{macrocode}
%
% \begin{macro}{\ztotpages}
@@ -3361,8 +3489,8 @@ the height difference of the two baselines is
%<*pagelayout>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-pagelayout}%
- [2011/03/18 v2.21 Module pagelayout for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module pagelayout for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -3370,11 +3498,13 @@ the height difference of the two baselines is
% \end{macrocode}
%
% \begin{macrocode}
-\RequirePackage{zref-thepage}[2011/03/18]
+\RequirePackage{zref-thepage}[2012/04/04]
\RequirePackage{ifluatex}[2010/03/01]
\RequirePackage{atveryend}[2010/03/24]
% \end{macrocode}
%
+% \subsubsection{Support for \hologo{LuaTeX}}
+%
% \begin{macrocode}
\ifluatex
\ifnum\luatexversion<39 %
@@ -3407,6 +3537,8 @@ the height difference of the two baselines is
\fi
% \end{macrocode}
%
+% \subsubsection{Define layout properties}
+%
% \begin{macrocode}
\def\ZREF@temp#1{%
\begingroup
@@ -3415,8 +3547,8 @@ the height difference of the two baselines is
\edef\x{%
\endgroup
\noexpand\zref@newprop*{\string#1}%
- [\number\noexpand#1]% hash-ok
- {\number\noexpand#1}%
+ [\noexpand\number\noexpand#1]% hash-ok
+ {\noexpand\number\noexpand#1}%
\noexpand\zref@addprop{thepage}{\string#1}%
}%
\x
@@ -3425,8 +3557,10 @@ the height difference of the two baselines is
\ZREF@temp\mag
\ZREF@temp\paperwidth
\ZREF@temp\paperheight
-\ZREF@temp\stockwidth
-\ZREF@temp\stockheight
+\ZREF@temp\stockwidth % memoir.cls, crop.sty
+\ZREF@temp\stockheight % memoir.cls, crop.sty
+\ZREF@temp\mediawidth % VTeX
+\ZREF@temp\mediaheight % VTeX
\ZREF@temp\pdfpagewidth
\ZREF@temp\pdfpageheight
\ZREF@temp\pdfhorigin
@@ -3445,6 +3579,25 @@ the height difference of the two baselines is
\ZREF@temp\marginparsep
\ZREF@temp\columnwidth
\ZREF@temp\columnsep
+\ZREF@temp\trimedge % memoir.cls
+\ZREF@temp\spinemargin % memoir.cls
+\ZREF@temp\foremargin % memoir.cls
+\ZREF@temp\trimtop % memoir.cls
+\ZREF@temp\uppermargin % memoir.cls
+\ZREF@temp\headmargin % memoir.cls
+% \end{macrocode}
+%
+% \begin{macrocode}
+\zref@newprop*{outputboxwd}[0pt]{\AtBeginShipoutBoxWidth}
+% \end{macrocode}
+% \begin{macrocode}
+\zref@newprop*{outputboxht}[0pt]{\AtBeginShipoutBoxHeight}
+% \end{macrocode}
+% \begin{macrocode}
+\zref@newprop*{outputboxdp}[0pt]{\AtBeginShipoutBoxDepth}
+% \end{macrocode}
+% \begin{macrocode}
+\zref@addprops{thepage}{outputboxwd,outputboxht,outputboxdp}
% \end{macrocode}
%
% \begin{macro}{\ifZREF@pl@list}
@@ -3508,6 +3661,8 @@ the height difference of the two baselines is
\ZREF@pl@ListEntry{paperheight}%
\ZREF@pl@ListEntry{stockwidth}%
\ZREF@pl@ListEntry{stockheight}%
+ \ZREF@pl@ListEntry{mediawidth}%
+ \ZREF@pl@ListEntry{mediaheight}%
\ZREF@pl@ListEntry{pdfpagewidth}%
\ZREF@pl@ListEntry{pdfpageheight}%
\ZREF@pl@ListEntry{pdfhorigin}%
@@ -3526,6 +3681,12 @@ the height difference of the two baselines is
\ZREF@pl@ListEntry{marginparsep}%
\ZREF@pl@ListEntry{columnwidth}%
\ZREF@pl@ListEntry{columnsep}%
+ \ZREF@pl@ListEntry{trimedge}%
+ \ZREF@pl@ListEntry{spinemargin}%
+ \ZREF@pl@ListEntry{foremargin}%
+ \ZREF@pl@ListEntry{trimtop}%
+ \ZREF@pl@ListEntry{uppermargin}%
+ \ZREF@pl@ListEntry{headmargin}%
}%
}%
}\x
@@ -3558,6 +3719,7 @@ the height difference of the two baselines is
\ZREF@pl@AfterLastShipout
}
% \end{macrocode}
+%
% \begin{macrocode}
%</pagelayout>
% \end{macrocode}
@@ -3569,8 +3731,8 @@ the height difference of the two baselines is
%<*pageattr>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-pageattr}%
- [2011/03/18 v2.21 Module pageattr for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module pageattr for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -3620,7 +3782,7 @@ the height difference of the two baselines is
\def\zref@pdfpageattr#1{}%
\def\zref@pdfpageattr@used#1{}%
}{%
- \RequirePackage{zref-thepage}[2011/03/18]%
+ \RequirePackage{zref-thepage}[2012/04/04]%
\zref@newprop*{pdfpageattr}[]{\zref@hex{\the\pdfpageattr}}%
\zref@addprop{thepage}{pdfpageattr}%
\let\ZREF@temp=Y%
@@ -3632,7 +3794,7 @@ the height difference of the two baselines is
\def\zref@pdfpagesattr{}%
\def\zref@pdfpagesattr@used{}%
}{%
- \RequirePackage{zref-lastpage}[2011/03/18]%
+ \RequirePackage{zref-lastpage}[2012/04/04]%
\zref@newprop*{pdfpagesattr}[]{\zref@hex{\the\pdfpagesattr}}%
\zref@addprop{LastPage}{pdfpagesattr}%
\let\ZREF@temp=Y%
@@ -3644,7 +3806,7 @@ the height difference of the two baselines is
\fi
% \end{macrocode}
% \begin{macrocode}
-\RequirePackage{zref-abspage}[2011/03/18]
+\RequirePackage{zref-abspage}[2012/04/04]
\RequirePackage{atveryend}[2010/03/24]
\RequirePackage{pdftexcmds}[2010/04/01]
\let\ZREF@temp=Y%
@@ -3714,7 +3876,7 @@ the height difference of the two baselines is
% \begin{macrocode}
\def\zref@pageattr#1{%
\zref@unhex{%
- \zref@extract{thepage\ZREF@number#1}{pdfpageattr}%
+ \zref@extract{thepage\ZREF@number{#1}}{pdfpageattr}%
}%
}
% \end{macrocode}
@@ -3722,7 +3884,7 @@ the height difference of the two baselines is
% \begin{macro}{\zref@pageattr@used}
% \begin{macrocode}
\ZREF@Robust\def\zref@pageattr@used#1{%
- \zref@refused{thepage\ZREF@number#1}%
+ \zref@refused{thepage\ZREF@number{#1}}%
}
% \end{macrocode}
% \end{macro}
@@ -3794,8 +3956,8 @@ the height difference of the two baselines is
%<*marks>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-marks}%
- [2011/03/18 v2.21 Module marks for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module marks for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -3805,7 +3967,7 @@ the height difference of the two baselines is
% \begin{macrocode}
\newcommand*{\zref@marks@register}[3][]{%
\edef\ZREF@TempName{#1}%
- \edef\ZREF@TempNum{\ZREF@number#2}%
+ \edef\ZREF@TempNum{\ZREF@number{#2}}%
\ifnum\ZREF@TempNum<\ltx@zero %
\PackageError\ZREF@name{%
\string\zref@marks@register\ltx@space is called with invalid%
@@ -3900,7 +4062,7 @@ the height difference of the two baselines is
%<*runs>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-runs}%
- [2011/03/18 v2.21 Module runs for zref (HO)]%
+ [2012/04/04 v2.24 Module runs for zref (HO)]%
% \end{macrocode}
%
% \begin{macro}{\zruns}
@@ -3932,8 +4094,8 @@ the height difference of the two baselines is
%<*perpage>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-perpage}%
- [2011/03/18 v2.21 Module perpage for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module perpage for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -3948,14 +4110,14 @@ the height difference of the two baselines is
% For detecting changed pages module \xmodule{abspage}
% is loaded.
% \begin{macrocode}
-\RequirePackage{zref-abspage}[2011/03/18]
+\RequirePackage{zref-abspage}[2012/04/04]
% \end{macrocode}
%
% We group the properties for the needed references
% in the property list |perpage|. The property |pagevalue|
% records the correct value of the page counter.
% \begin{macrocode}
-\zref@newprop*{pagevalue}[0]{\number\c@page}
+\ZREF@NewPropPageValue
\zref@newlist{perpage}
\zref@addprops{perpage}{abspage,page,pagevalue}
% \end{macrocode}
@@ -4099,8 +4261,8 @@ the height difference of the two baselines is
%<*titleref>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-titleref}%
- [2011/03/18 v2.21 Module titleref for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module titleref for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -4421,6 +4583,17 @@ the height difference of the two baselines is
\ZREF@org@ttl@sect@i{#1}{#2}[{#3}]{#4}%
}%
}%
+ \ZREF@patch{ttl@straight@i}{%
+ \def\ttl@straight@i#1[#2]#3{%
+ \def\ZREF@temp{#2}%
+ \ifx\ZREF@temp\ltx@empty
+ \zref@titleref@setcurrent{#3}%
+ \else
+ \zref@titleref@setcurrent{#2}%
+ \fi
+ \ZREF@org@ttl@straight@i{#1}[{#2}]{#3}%
+ }%
+ }%
}{}%
% \end{macrocode}
%
@@ -4501,8 +4674,8 @@ the height difference of the two baselines is
%<*xr>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-xr}%
- [2011/03/18 v2.21 Module xr for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module xr for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -5037,8 +5210,8 @@ the height difference of the two baselines is
%<*hyperref>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-hyperref}%
- [2011/03/18 v2.21 Module hyperref for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module hyperref for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -5067,8 +5240,8 @@ the height difference of the two baselines is
%<*savepos>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-savepos}%
- [2011/03/18 v2.21 Module savepos for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module savepos for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -5130,18 +5303,52 @@ the height difference of the two baselines is
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\ZREF@zsavepos}
+% \begin{macrocode}
+\def\ZREF@zsavepos#1#2#3{%
+ \@bsphack
+ \if@filesw
+ \zref@savepos
+ #1{#3}{#2}%
+ \ltx@IfUndefined{TeXXeTstate}{%
+ }{%
+ \ifnum\TeXXeTstate=\ltx@zero
+ \else
+ \zref@savepos
+ \fi
+ }%
+ \fi
+ \@esphack
+}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\zsavepos}
% The current location is stored in a reference with the
% given name.
% \begin{macrocode}
\ZREF@IfDefinable\zsavepos\def{%
- #1{%
- \@bsphack
- \if@filesw
- \zref@savepos
- \zref@labelbylist{#1}{savepos}%
- \fi
- \@esphack
+ {%
+ \ZREF@zsavepos\zref@labelbylist{savepos}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zsaveposx}
+% \begin{macrocode}
+\ZREF@IfDefinable\zsaveposx\def{%
+ {%
+ \ZREF@zsavepos\zref@labelbyprops{posx}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zsaveposy}
+% \begin{macrocode}
+\ZREF@IfDefinable\zsaveposy\def{%
+ {%
+ \ZREF@zsavepos\zref@labelbyprops{posy}%
}%
}
% \end{macrocode}
@@ -5192,8 +5399,8 @@ the height difference of the two baselines is
%<*abspos>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-abspos}%
- [2011/03/18 v2.21 Module abspos for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module abspos for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -5201,18 +5408,616 @@ the height difference of the two baselines is
% \end{macrocode}
%
% \begin{macrocode}
-\RequirePackage{zref-savepos}[2011/03/18]
+\RequirePackage{zref-savepos}[2012/04/04]
\ifx\ZREF@savepos@ok Y%
\else
\expandafter\endinput
\fi
% \end{macrocode}
% \begin{macrocode}
-\RequirePackage{zref-pagelayout}[2011/03/18]
+\RequirePackage{zref-pagelayout}[2012/04/04]
\zref@addprop{savepos}{abspage}
% \end{macrocode}
%
% \begin{macrocode}
+\RequirePackage{ifpdf}[2010/09/13]
+% \end{macrocode}
+%
+% \begin{macro}{\zref@absposx}
+% \begin{macrocode}
+\newcommand*{\zref@absposx}[3]{%
+ \number
+ \expandafter\zref@absposnumx\expandafter{%
+ \number\zref@extractdefault{#1}{abspage}{0}%
+ }{#2}{#3}%
+ \ltx@space
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@absposy}
+% \begin{macrocode}
+\newcommand*{\zref@absposy}[3]{%
+ \number
+ \expandafter\zref@absposnumy\expandafter{%
+ \number\zref@extractdefault{#1}{abspage}{0}%
+ }{#2}{#3}%
+ \ltx@space
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@absposnumx}
+% \begin{macrocode}
+\newcommand*{\zref@absposnumx}[3]{%
+ \number
+% \ifnum#1>\ltx@zero
+% \zref@ifrefundefined{thepage#1}{%
+% 0%
+% }{%
+ \numexpr\ZREF@absposnum{thepage#1}{#2}{x}{#3}\relax
+% }%
+% \else
+% 0%
+% \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@absposnumy}
+% \begin{macrocode}
+\newcommand*{\zref@absposnumy}[3]{%
+ \number
+% \ifnum#1>\ltx@zero
+% \zref@ifrefundefined{thepage#1}{%
+% 0%
+% }{%
+ \numexpr\ZREF@absposnum{thepage#1}{#2}{y}{#3}\relax
+% }%
+% \else
+% 0%
+% \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@absposnum}
+% \begin{macrocode}
+\def\ZREF@absposnum#1#2#3#4{%
+ \ltx@ifundefined{ZREF@abspos@#2@#3@#4}{%
+ 0%
+ }{%
+ \csname ZREF@abspos@#2@#3@#4\endcsname{#1}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@def@absposx}
+% \begin{macrocode}
+\ZREF@Robust\def\zref@def@absposx#1{%
+ \zref@wrapper@babel{\ZREF@def@abspos{#1}\zref@absposx}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@def@absposy}
+% \begin{macrocode}
+\ZREF@Robust\def\zref@def@absposy#1{%
+ \zref@wrapper@babel{\ZREF@def@abspos{#1}\zref@absposy}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@def@absposnumx}
+% \begin{macrocode}
+\ZREF@Robust\def\zref@def@absposnumx#1{%
+ \zref@wrapper@babel{\ZREF@def@abspos{#1}\zref@absposnumx}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@def@absposnumy}
+% \begin{macrocode}
+\ZREF@Robust\def\zref@def@absposnumy#1{%
+ \zref@wrapper@babel{\ZREF@def@abspos{#1}\zref@absposnumy}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@def@abspos}
+% \begin{macrocode}
+\def\ZREF@def@absposnumy#1#2#3#4#5{%
+ \edef#1{#2{#3}{#4}{#5}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@absposused}
+% \begin{macrocode}
+\ZREF@Robust\def\zref@absposused{%
+ \zref@wrapper@babel\ZREF@abspos@used
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@used}
+% \begin{macrocode}
+\def\ZREF@abspos@used#1{%
+ \zref@refused{#1}%
+ \zref@ifrefundefined{#1}{%
+ }{%
+ \begingroup
+ \edef\ZREF@temp{%
+ \zref@extractdefault{#1}{abspage}{0}%
+ }%
+ \ifnum\ZREF@temp>\ltx@zero
+ \zref@refused{thepage\ZREF@temp}%
+ \else
+ \@PackageError{zref-abspos}{%
+ \string\zref@pos@label@used\ltx@space
+ needs property `abspage'\MessageBreak
+ in label `#1'%
+ }\@ehc
+ \fi
+ \endgroup
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@absposnumused}
+% \begin{macrocode}
+\newcommand*{\zref@absposnumused}[1]{%
+ \ifnum#1>\ltx@zero
+ \zref@refused{thepage\number#1}%
+ \else
+ \@PackageError{zref-abspos}{%
+ Invalid absolute page number (#1)\MessageBreak
+ for \string\zref@pos@num@used.\MessageBreak
+ A positive integer is expected%
+ }\@ehc
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@ifabsposundefined}
+% \begin{macrocode}
+\def\zref@ifabsposundefined#1{%
+ \zref@ifrefundefined{#1}\ltx@firsttwo{%
+ \expandafter\zref@ifabsposnumundefined\expandafter{%
+ \number\zref@extractdefault{#1}{abspage}{0}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@ifabsposnumundefined}
+% \begin{macrocode}
+\def\zref@ifabsposnumundefined#1{%
+ \ifnum\ZREF@number{#1}>\ltx@zero
+ \zref@ifrefundefined{thepage#1}%
+ \ltx@firstoftwo\ltx@secondoftwo
+ \else
+ \expandafter\ltx@firstoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Media}
+%
+% \begin{macro}{\ZREF@abspos@media@width}
+% \begin{macrocode}
+\edef\ZREF@abspos@media@width{%
+ \ltx@ifundefined{pdfpagewidth}{%
+ \ltx@ifundefined{mediawidth}{%
+ \ltx@ifundefined{stockwidth}{%
+ paperwidth%
+ }{%
+ stockwidth%
+ }%
+ }{%
+ mediawidth%
+ }%
+ }{%
+ pdfpagewidth%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@media@height}
+% \begin{macrocode}
+\edef\ZREF@abspos@media@height{%
+ \ltx@ifundefined{pdfpageheight}{%
+ \ltx@ifundefined{mediaheight}{%
+ \ltx@ifundefined{stockheight}{%
+ paperheight%
+ }{%
+ stockheight%
+ }%
+ }{%
+ mediaheight%
+ }%
+ }{%
+ \noexpand\ifcase\pdfpageheight
+ \ltx@ifundefined{stockheight}{%
+ paperheight%
+ }{%
+ stockheight%
+ }%
+ \noexpand\else
+ pdfpageheight%
+ \noexpand\fi
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@abspos@media@x@left}
+% \begin{macrocode}
+\def\ZREF@abspos@media@x@left#1{%
+ 0%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@media@x@right}
+% \begin{macrocode}
+\def\ZREF@abspos@media@x@right#1{%
+ \zref@extract{#1}\ZREF@abspos@media@width
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@media@x@center}
+% \begin{macrocode}
+\def\ZREF@abspos@media@x@center#1{%
+ \ZREF@abspos@media@x@left{#1}%
+ +\zref@extract{#1}\ZREF@abspos@media@width/2%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@abspos@media@y@top}
+% \begin{macrocode}
+\def\ZREF@abspos@media@y@top#1{%
+ \zref@extract{#1}\ZREF@abspos@media@height
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@media@y@bottom}
+% \begin{macrocode}
+\def\ZREF@abspos@media@y@bottom#1{%
+ 0%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@media@y@center}
+% \begin{macrocode}
+\def\ZREF@abspos@media@y@center#1{%
+ \zref@extract{#1}\ZREF@abspos@media@height/2%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Paper}
+%
+% \begin{macro}{\ZREF@abspos@paper@x@left}
+% \begin{macrocode}
+\def\ZREF@abspos@paper@x@left#1{%
+ 0%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@paper@x@right}
+% \begin{macrocode}
+\def\ZREF@abspos@paper@x@right#1{%
+ \zref@extract{#1}{paperwidth}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@paper@x@center}
+% \begin{macrocode}
+\def\ZREF@abspos@paper@x@center#1{%
+ \zref@extract{#1}{paperwidth}/2%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@abspos@paper@y@top}
+% \begin{macrocode}
+\let\ZREF@abspos@paper@y@top\ZREF@abspos@media@y@top
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@paper@y@bottom}
+% \begin{macrocode}
+\def\ZREF@abspos@paper@y@bottom#1{%
+ \ZREF@abspos@paper@y@top{#1}%
+ -\zref@extract{#1}{paperheight}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@paper@y@center}
+% \begin{macrocode}
+\def\ZREF@abspos@paper@y@center#1{%
+ \ZREF@abspos@paper@y@top{#1}%
+ -\zref@extract{#1}{paperheight}/2%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Origin}
+%
+% \begin{macro}{\ZREF@abspos@origin@x}
+% \begin{macrocode}
+\let\ZREF@temp\ltx@two
+\ltx@IfUndefined{pdfhorigin}{}{%
+ \ifpdf
+ \let\ZREF@temp\ltx@zero
+ \fi
+}
+\ifx\ZREF@temp\ltx@two
+ \ifnum\mag=1000 %
+ \let\ZREF@temp\ltx@one
+ \fi
+\fi
+\ifcase\ZREF@temp
+ \def\ZREF@abspos@origin@x#1{%
+ \zref@extract{#1}{pdfhorigin}%
+ }%
+\or
+ \def\ZREF@abspos@origin@x#1{%
+ 4736286%
+ }%
+\or
+ \def\ZREF@abspos@origin@x#1{%
+ \numexpr\mag/1000*\dimexpr 1truein\relax\relax
+ }%
+\fi
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@origin@y}
+% \begin{macrocode}
+\let\ZREF@temp\ltx@two
+\ltx@IfUndefined{pdfvorigin}{}{%
+ \ifpdf
+ \let\ZREF@temp\ltx@zero
+ \fi
+}
+\ifx\ZREF@temp\ltx@two
+ \ifnum\mag=1000 %
+ \let\ZREF@temp\ltx@one
+ \fi
+\fi
+\ifcase\ZREF@temp
+ \def\ZREF@abspos@origin@y#1{%
+ \zref@extract{#1}{pdfvorigin}%
+ }%
+\or
+ \def\ZREF@abspos@origin@y#1{%
+ 4736286%
+ }%
+\or
+ \def\ZREF@abspos@origin@y#1{%
+ \numexpr\mag/1000*\dimexpr 1truein\relax\relax
+ }%
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Header}
+%
+% \begin{macro}{\ZREF@abspos@head@x@left}
+% \begin{macrocode}
+\def\ZREF@abspos@head@x@left#1{%
+ \ZREF@abspos@paper@x@left{#1}%
+ +\ZREF@abspos@origin@x{#1}%
+ +\zref@extract{#1}{hoffset}%
+ +\ifodd\zref@extractdefault{#1}{pagevalue}{\number\c@page} %
+ \zref@extract{#1}{oddsidemargin}%
+ \else
+ \zref@extract{#1}{evensidemargin}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@head@x@right}
+% \begin{macrocode}
+\def\ZREF@abspos@head@x@right#1{%
+ \ZREF@abspos@head@x@left{#1}%
+ +\zref@extract{#1}{textwidth}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@head@x@center}
+% \begin{macrocode}
+\def\ZREF@abspos@head@x@center#1{%
+ \ZREF@abspos@head@x@left{#1}%
+ +\zref@extract{#1}{textwidth}/2%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@abspos@head@y@top}
+% \begin{macrocode}
+\def\ZREF@abspos@head@y@top#1{%
+ \ZREF@abspos@paper@y@top{#1}%
+ -\ZREF@abspos@origin@y{#1}%
+ -\zref@extract{#1}{voffset}%
+ -\zref@extract{#1}{topmargin}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@head@y@bottom}
+% \begin{macrocode}
+\def\ZREF@abspos@head@y@bottom#1{%
+ \ZREF@abspos@head@y@top{#1}%
+ -\zref@extract{#1}{headheight}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@head@y@center}
+% \begin{macrocode}
+\def\ZREF@abspos@head@y@center#1{%
+ \ZREF@abspos@head@y@top{#1}%
+ -\zref@extract{#1}{headheight}/2%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Body}
+%
+% \begin{macro}{\ZREF@abspos@body@x@left}
+% \begin{macrocode}
+\let\ZREF@abspos@body@x@left\ZREF@abspos@head@x@left
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@body@x@right}
+% \begin{macrocode}
+\let\ZREF@abspos@body@x@right\ZREF@abspos@head@x@right
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@body@x@center}
+% \begin{macrocode}
+\let\ZREF@abspos@body@x@center\ZREF@abspos@head@x@center
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@abspos@body@y@top}
+% \begin{macrocode}
+\def\ZREF@abspos@body@y@top#1{%
+ \ZREF@abspos@head@y@bottom{#1}%
+ -\zref@extract{#1}{headsep}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@body@y@bottom}
+% \begin{macrocode}
+\def\ZREF@abspos@body@y@bottom#1{%
+ \ZREF@abspos@body@y@top{#1}%
+ -\zref@extract{#1}{textheight}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@body@y@center}
+% \begin{macrocode}
+\def\ZREF@abspos@body@y@center#1{%
+ \ZREF@abspos@body@y@top{#1}%
+ -\zref@extract{#1}{textheight}/2%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Footer}
+%
+% \begin{macro}{\ZREF@abspos@foot@x@left}
+% \begin{macrocode}
+\let\ZREF@abspos@foot@x@left\ZREF@abspos@head@x@left
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@foot@x@right}
+% \begin{macrocode}
+\let\ZREF@abspos@foot@x@right\ZREF@abspos@head@x@right
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@foot@x@center}
+% \begin{macrocode}
+\let\ZREF@abspos@foot@x@center\ZREF@abspos@head@x@center
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@abspos@foot@y@bottom}
+% \begin{macrocode}
+\def\ZREF@abspos@foot@y@bottom#1{%
+ \ZREF@abspos@body@y@bottom{#1}%
+ -\zref@extract{#1}{footskip}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Marginal notes}
+%
+% \begin{macro}{\ZREF@abspos@marginpar@x@left}
+% \begin{macrocode}
+\def\ZREF@abspos@marginpar@x@left#1{%
+ \ifodd\zref@extractdefault{#1}{pagevalue}{\number\c@page} %
+ \ZREF@abspos@body@x@right{#1}%
+ +\zref@extract{#1}{marginparsep}%
+ \else
+ \ZREF@abspos@body@x@left{#1}%
+ -\zref@extract{#1}{marginparsep}%
+ -\zref@extract{#1}{marginparwidth}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@marginpar@x@right}
+% \begin{macrocode}
+\def\ZREF@abspos@marginpar@x@right#1{%
+ \ZREF@abspos@marginpar@x@left{#1}%
+ +\zref@extract{#1}{marginparwidth}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@marginpar@x@center}
+% \begin{macrocode}
+\def\ZREF@abspos@marginpar@x@center#1{%
+ \ZREF@abspos@marginpar@x@left{#1}%
+ +\zref@extract{#1}{marginparwidth}/2%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@abspos@marginpar@y@top}
+% \begin{macrocode}
+\let\ZREF@abspos@marginpar@y@top\ZREF@abspos@body@y@top
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@marginpar@y@bottom}
+% \begin{macrocode}
+\let\ZREF@abspos@marginpar@y@bottom\ZREF@abspos@body@y@bottom
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@marginpar@y@center}
+% \begin{macrocode}
+\let\ZREF@abspos@marginpar@y@center\ZREF@abspos@body@y@center
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Stock paper}
+%
+% \begin{macro}{\ZREF@abspos@stock@x@left}
+% \begin{macrocode}
+\let\ZREF@abspos@stock@x@left\ZREF@abspos@paper@x@left
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@stock@x@right}
+% \begin{macrocode}
+\let\ZREF@abspos@stock@x@right\ZREF@abspos@paper@x@right
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@stock@x@center}
+% \begin{macrocode}
+\let\ZREF@abspos@stock@x@center\ZREF@abspos@paper@x@center
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@abspos@stock@y@top}
+% \begin{macrocode}
+\let\ZREF@abspos@stock@y@top\ZREF@abspos@paper@y@top
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@stock@y@bottom}
+% \begin{macrocode}
+\let\ZREF@abspos@stock@y@bottom\ZREF@abspos@paper@y@bottom
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@abspos@stock@y@center}
+% \begin{macrocode}
+\let\ZREF@abspos@stock@y@center\ZREF@abspos@paper@y@center
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
%</abspos>
% \end{macrocode}
%
@@ -5223,8 +6028,8 @@ the height difference of the two baselines is
%<*dotfill>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-dotfill}%
- [2011/03/18 v2.21 Module dotfill for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module dotfill for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -5234,7 +6039,7 @@ the height difference of the two baselines is
% For measuring the width of \cs{zdotfill} we use the features
% provided by module \xmodule{savepos}.
% \begin{macrocode}
-\RequirePackage{zref-savepos}[2011/03/18]
+\RequirePackage{zref-savepos}[2012/04/04]
% \end{macrocode}
% For automatically generated label names we use the unique
% counter of module \xmodule{base}.
@@ -5323,8 +6128,8 @@ the height difference of the two baselines is
%<*env>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-env}%
- [2011/03/18 v2.21 Module env for zref (HO)]%
-\RequirePackage{zref-base}[2011/03/18]
+ [2012/04/04 v2.24 Module env for zref (HO)]%
+\RequirePackage{zref-base}[2012/04/04]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
@@ -5369,7 +6174,7 @@ the height difference of the two baselines is
\NeedsTeXFormat{LaTeX2e}
\nofiles
\documentclass{article}
-\usepackage{zref-base}[2011/03/18]
+\usepackage{zref-base}[2012/04/04]
\usepackage{qstest}
\IncludeTests{*}
\LogTests{log}{*}{*}
@@ -5409,7 +6214,7 @@ the height difference of the two baselines is
%<*test-base>
\NeedsTeXFormat{LaTeX2e}
\documentclass{article}
-\usepackage{zref-base,zref-titleref}[2011/03/18]
+\usepackage{zref-base,zref-titleref}[2012/04/04]
\usepackage{qstest}
\IncludeTests{*}
\LogTests{log}{*}{*}
@@ -5468,7 +6273,7 @@ the height difference of the two baselines is
%<*test-runs>
\NeedsTeXFormat{LaTeX2e}
\documentclass{article}
-\usepackage{zref-runs}[2011/03/18]
+\usepackage{zref-runs}[2012/04/04]
\usepackage{qstest}
\IncludeTests{*}
\LogTests{log}{*}{*}
@@ -5497,7 +6302,7 @@ the height difference of the two baselines is
%<*test-titleref-memoir>
\NeedsTeXFormat{LaTeX2e}
\documentclass{memoir}
-\usepackage{zref-titleref}[2011/03/18]
+\usepackage{zref-titleref}[2012/04/04]
\usepackage{qstest}
\IncludeTests{*}
\LogTests{log}{*}{*}
@@ -5761,12 +6566,51 @@ the height difference of the two baselines is
%\end{verbatim}
% \end{quote}
%
+% \section{Catalogue}
+%
+% The following XML file can be used as source for the
+% \href{http://mirror.ctan.org/help/Catalogue/catalogue.html}{\TeX\ Catalogue}.
+% The elements \texttt{caption} and \texttt{description} are imported
+% from the original XML file from the Catalogue.
+% The name of the XML file in the Catalogue is \xfile{zref.xml}.
+% \begin{macrocode}
+%<*catalogue>
+<?xml version='1.0' encoding='us-ascii'?>
+<!DOCTYPE entry SYSTEM 'catalogue.dtd'>
+<entry datestamp='$Date$' modifier='$Author$' id='zref'>
+ <name>zref</name>
+ <caption>A new reference scheme for LaTeX.</caption>
+ <authorref id='auth:oberdiek'/>
+ <copyright owner='Heiko Oberdiek' year='2006-2012'/>
+ <license type='lppl1.3'/>
+ <version number='2.24'/>
+ <description>
+ This package offers a means to remove the limitation, of only two
+ properties, that is inherent in the way LaTeX&#x2019;s reference system
+ works. The package implements an extensible referencing system,
+ where properties are handled in a more flexible way. It provides
+ an interface for macro programmers to access the new reference
+ scheme and some applications that use it.
+ <p/>
+ The package is part of the <xref refid='oberdiek'>oberdiek</xref>
+ bundle.
+ </description>
+ <documentation details='Package documentation'
+ href='ctan:/macros/latex/contrib/oberdiek/zref.pdf'/>
+ <ctan file='true' path='/macros/latex/contrib/oberdiek/zref.dtx'/>
+ <miktex location='oberdiek'/>
+ <texlive location='oberdiek'/>
+ <install path='/macros/latex/contrib/oberdiek/oberdiek.tds.zip'/>
+</entry>
+%</catalogue>
+% \end{macrocode}
+%
% \newcommand*{\bibpackage}[4]{^^A
% \bibitem{#1}
% Package \xpackage{#1}, #2, #3.^^A
% \ifx\\#4\\\else#4\fi\par
% }
-%
+%
% \begin{thebibliography}{99}
% \bibpackage{footmisc}{Robin Fairbairns}{2004/01/23 v5.3a}
% {\CTAN{macros/latex/contrib/footmisc/footmisc.dtx}}
@@ -6016,6 +6860,28 @@ the height difference of the two baselines is
% \item
% Fix for \cs{zref@localaddprop} (probably since v2.19).
% \end{Version}
+% \begin{Version}{2011/10/05 v2.22}
+% \item
+% Documentation fixed for \cs{zref@(local)addprop(s)}.
+% \item
+% Module \xmodule{base}: \cs{zref@def@extract}, \cs{zref@def@extractdefault}
+% added.
+% \item
+% Fix in module \xmodule{pagelayout}: Because of missing \cs{noexpand}
+% commands the values of the pagelayout properties on all pages were
+% the values at package loading.
+% \item
+% Module \xmodule{base}: \cs{zref@showprop} added.
+% \end{Version}
+% \begin{Version}{2011/12/05 v2.23}
+% \item
+% Module \xmodule{savepos}: \cs{zsaveposx} and \cs{zsaveposy} added.
+% \end{Version}
+% \begin{Version}{2012/04/04 v2.24}
+% \item
+% Module \xmodule{titleref}, package \xpackage{titlesec}:
+% some support for class `straight' (\cs{ttl@straight@i}) added.
+% \end{Version}
% \end{History}
%
% \PrintIndex