summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-03-26 23:30:06 +0000
committerKarl Berry <karl@freefriends.org>2010-03-26 23:30:06 +0000
commit9a032296aec6ef5b4ac4bb94209873531040284f (patch)
tree185ff5001a4624653e7264244b52edfe78bd705e /Master/texmf-dist/source
parenta0ee1be019cc1fb6421bf81cc552cfb85ac9fa13 (diff)
oberdiek update (26mar10)
git-svn-id: svn://tug.org/texlive/trunk@17570 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/atveryend.dtx12
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/hypdoc.dtx22
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/oberdiek.ins2
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/oberdiek.tex10
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/zref.dtx609
5 files changed, 523 insertions, 132 deletions
diff --git a/Master/texmf-dist/source/latex/oberdiek/atveryend.dtx b/Master/texmf-dist/source/latex/oberdiek/atveryend.dtx
index a29cb91a39d..bf12ff3b168 100644
--- a/Master/texmf-dist/source/latex/oberdiek/atveryend.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/atveryend.dtx
@@ -185,9 +185,9 @@ and the derived files
% This \LaTeX\ package provides two hooks for \verb|\end{document}|
% that are executed after the hook of \cs{AtEndDocument}.
% \cs{AfterLastShipout} can be used for code that is to be executed
-% right after the last \cs{clearpage} before the \xext{.aux} file
+% right after the last \cs{clearpage} before the \xext{aux} file
% is closed. \cs{AtVeryEndDocument} is used for code after closing
-% and final reading of the \xext{.aux} file.
+% and final reading of the \xext{aux} file.
% \end{abstract}
%
% \tableofcontents
@@ -223,12 +223,12 @@ and the derived files
% \begin{declcs}{AfterLastShipout} \M{code}
% \end{declcs}
% The code is called after the final \cs{clearpage} of \cs{enddocument}
-% before the main \xext{.aux} file is closed. This is the right place
-% to remember the last page in the \xext{.aux} file, for instance.
+% before the main \xext{aux} file is closed. This is the right place
+% to remember the last page in the \xext{aux} file, for instance.
%
% \begin{declcs}{AtVeryEndDocument} \M{code}
% \end{declcs}
-% The code is called after the \xext{.aux} file is closed and read in again.
+% The code is called after the \xext{aux} file is closed and read in again.
% It is the place for final checks, rerun hints, final messages.
%
% \subsection{Related work}
@@ -809,7 +809,7 @@ and the derived files
% a precondition of this package that the \cs{clearpage} in
% \cs{enddocument} is the final call with no material at
% later times. Therefore we move the label making
-% from the \xext{.aux} file to \cs{AtEndDocument}.
+% from the \xext{aux} file to \cs{AtEndDocument}.
% \begin{macrocode}
\def\AtVeryEnd@temp{%
\AtBeginDocument{%
diff --git a/Master/texmf-dist/source/latex/oberdiek/hypdoc.dtx b/Master/texmf-dist/source/latex/oberdiek/hypdoc.dtx
index a4167e7ef3a..118dc56f878 100644
--- a/Master/texmf-dist/source/latex/oberdiek/hypdoc.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/hypdoc.dtx
@@ -71,7 +71,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: hypdoc 2010/02/03 v1.8 Hyper extensions for doc.sty (HO)}
+\Msg{* Package: hypdoc 2010/03/26 v1.9 Hyper extensions for doc.sty (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -141,7 +141,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{hypdoc.drv}%
- [2010/02/03 v1.8 Hyper extensions for doc.sty (HO)]%
+ [2010/03/26 v1.9 Hyper extensions for doc.sty (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2008/08/11]
\begin{document}
@@ -150,7 +150,7 @@ and the derived files
%</driver>
% \fi
%
-% \CheckSum{710}
+% \CheckSum{718}
%
% \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
@@ -171,7 +171,7 @@ and the derived files
% \GetFileInfo{hypdoc.drv}
%
% \title{The \xpackage{hypdoc} package}
-% \date{2010/02/03 v1.8}
+% \date{2010/03/26 v1.9}
% \author{Heiko Oberdiek\\\xemail{heiko.oberdiek at googlemail.com}}
%
% \maketitle
@@ -348,7 +348,7 @@ and the derived files
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{hypdoc}%
- [2010/02/03 v1.8 Hyper extensions for doc.sty (HO)]%
+ [2010/03/26 v1.9 Hyper extensions for doc.sty (HO)]%
% \end{macrocode}
% The package identification is done at the top of the |.dtx| file
% in order to use only one identification string.
@@ -370,6 +370,7 @@ and the derived files
% \subsection{Package loading}
%
% \begin{macrocode}
+\RequirePackage{atveryend}[2010/03/24]
\RequirePackage{doc}
% \end{macrocode}
% \begin{macrocode}
@@ -1097,10 +1098,13 @@ and the derived files
%
% \cs{MacroIndent} automatically calculated.
% \begin{macrocode}
-\AtEndDocument{%
+\AfterLastShipout{%
\if@filesw
\immediate\write\@auxout{%
- \noexpand\HD@SetMacroIndent{\number\value{CodelineNo}}%
+ \string\providecommand\string\HD@SetMacroIndent[1]{}%
+ }%
+ \immediate\write\@auxout{%
+ \string\HD@SetMacroIndent{\number\value{CodelineNo}}%
}%
\fi
}
@@ -1351,6 +1355,10 @@ and the derived files
% \item
% Fix for bug latex/4096 added.
% \end{Version}
+% \begin{Version}{2010/03/26 v1.9}
+% \item
+% Definition of \cs{HD@SetMacroIndex} is provided in the \xext{aux} file.
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins b/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins
index f6f73602622..48f89f2f44b 100644
--- a/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins
+++ b/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins
@@ -1,5 +1,5 @@
% oberdiek.ins
-% 2010/03/25
+% 2010/03/26
%
% Copyright (C) 1999, 2001, 2006 by
% Heiko Oberdiek <heiko.oberdiek at googlemail.com>
diff --git a/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex b/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex
index fada005bfbc..ef0dbe9e6f0 100644
--- a/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex
+++ b/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex
@@ -6,7 +6,7 @@
\newcommand*{\Subject}{CTAN:\CTANdir}
\newcommand*{\Author}{Heiko Oberdiek}
\newcommand*{\Email}{heiko.oberdiek at googlemail.com}
-\newcommand*{\Date}{2010/03/25}
+\newcommand*{\Date}{2010/03/26}
% Copyright (C) 2006 by
% Heiko Oberdiek <heiko.oberdiek at googlemail.com>
@@ -226,7 +226,7 @@
[\entrysep]
\entry{hypdestopt}{2008/08/08}{2.2}{Hyperref destination optimizer}%
[\entrysep]
-\entry{hypdoc}{2010/02/03}{1.8}{Hyper extensions for doc.sty}%
+\entry{hypdoc}{2010/03/26}{1.9}{Hyper extensions for doc.sty}%
[\entrysep]
\entry{hypgotoe}{2007/10/30}{0.1}{Experimental links to embedded files}%
[\entrysep]
@@ -330,7 +330,7 @@
[\entrysep]
\entry{uniquecounter}{2009/12/18}{1.1}{Provides unlimited unique counter}%
[\entrysep]
-\entry{zref}{2009/12/08}{2.7}{New reference scheme for \LaTeXe{}}%
+\entry{zref}{2010/03/26}{2.8}{New reference scheme for \LaTeXe{}}%
\end{overview}
\section{Packages}
@@ -417,9 +417,9 @@ the attached files.
This \LaTeX\ package provides two hooks for \verb|\end{document}|
that are executed after the hook of \cs{AtEndDocument}.
\cs{AfterLastShipout} can be used for code that is to be executed
-right after the last \cs{clearpage} before the \xext{.aux} file
+right after the last \cs{clearpage} before the \xext{aux} file
is closed. \cs{AtVeryEndDocument} is used for code after closing
-and final reading of the \xext{.aux} file.
+and final reading of the \xext{aux} file.
\end{abstract}
\tocinclude{atveryend}
diff --git a/Master/texmf-dist/source/latex/oberdiek/zref.dtx b/Master/texmf-dist/source/latex/oberdiek/zref.dtx
index 926878f4341..7defc471004 100644
--- a/Master/texmf-dist/source/latex/oberdiek/zref.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/zref.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2006-2009 by
+% Copyright (C) 2006-2010 by
% Heiko Oberdiek <heiko.oberdiek at googlemail.com>
%
% This work may be distributed and/or modified under the
@@ -21,11 +21,12 @@
% 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-runs.sty, zref-savepos.sty, zref-titleref.sty,
-% zref-totpages.sty, zref-user.sty, zref-xr.sty,
-% zref-example.tex, zref-example-lastpage.tex, zref-test1.tex,
-% zref-test-runs.tex.
+% zref-hyperref.sty, zref-lastpage.sty, zref-nextpage.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-runs.tex.
%
% Distribution:
% CTAN:macros/latex/contrib/oberdiek/zref.dtx
@@ -65,9 +66,11 @@
% TDS:tex/latex/oberdiek/zref-dotfill.sty
% TDS:tex/latex/oberdiek/zref-hyperref.sty
% TDS:tex/latex/oberdiek/zref-lastpage.sty
+% TDS:tex/latex/oberdiek/zref-nextpage.sty
% TDS:tex/latex/oberdiek/zref-perpage.sty
% TDS:tex/latex/oberdiek/zref-runs.sty
% TDS:tex/latex/oberdiek/zref-savepos.sty
+% TDS:tex/latex/oberdiek/zref-thepage.sty
% TDS:tex/latex/oberdiek/zref-titleref.sty
% TDS:tex/latex/oberdiek/zref-totpages.sty
% TDS:tex/latex/oberdiek/zref-user.sty
@@ -75,6 +78,7 @@
% TDS:doc/latex/oberdiek/zref.pdf
% TDS:doc/latex/oberdiek/zref-example.tex
% TDS:doc/latex/oberdiek/zref-example-lastpage.tex
+% TDS:doc/latex/oberdiek/zref-example-nextpage.tex
% TDS:doc/latex/oberdiek/test/zref-test1.tex
% TDS:doc/latex/oberdiek/test/zref-test-runs.tex
% TDS:source/latex/oberdiek/zref.dtx
@@ -94,7 +98,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: zref 2009/12/08 v2.7 New reference scheme for LaTeX2e (HO)}
+\Msg{* Package: zref 2010/03/26 v2.8 New reference scheme for LaTeX2e (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -105,7 +109,7 @@
This is a generated file.
-Copyright (C) 2006-2009 by
+Copyright (C) 2006-2010 by
Heiko Oberdiek <heiko.oberdiek at googlemail.com>
This work may be distributed and/or modified under the
@@ -126,11 +130,12 @@ 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-runs.sty, zref-savepos.sty, zref-titleref.sty,
- zref-totpages.sty, zref-user.sty, zref-xr.sty,
- zref-example.tex, zref-example-lastpage.tex, zref-test1.tex,
- zref-test-runs.tex.
+ zref-hyperref.sty, zref-lastpage.sty, zref-nextpage.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-runs.tex.
\endpreamble
\let\MetaPrefix\DoubleperCent
@@ -146,9 +151,11 @@ and the derived files
\file{zref-dotfill.sty}{\from{zref.dtx}{dotfill}}%
\file{zref-hyperref.sty}{\from{zref.dtx}{hyperref}}%
\file{zref-lastpage.sty}{\from{zref.dtx}{lastpage}}%
+ \file{zref-nextpage.sty}{\from{zref.dtx}{nextpage}}%
\file{zref-perpage.sty}{\from{zref.dtx}{perpage}}%
\file{zref-runs.sty}{\from{zref.dtx}{runs}}%
\file{zref-savepos.sty}{\from{zref.dtx}{savepos}}%
+ \file{zref-thepage.sty}{\from{zref.dtx}{thepage}}%
\file{zref-titleref.sty}{\from{zref.dtx}{titleref}}%
\file{zref-totpages.sty}{\from{zref.dtx}{totpages}}%
\file{zref-user.sty}{\from{zref.dtx}{user}}%
@@ -156,6 +163,7 @@ and the derived files
\usedir{doc/latex/oberdiek}%
\file{zref-example.tex}{\from{zref.dtx}{example}}%
\file{zref-example-lastpage.tex}{\from{zref.dtx}{example-lastpage}}%
+ \file{zref-example-nextpage.tex}{\from{zref.dtx}{example-nextpage}}%
\usedir{doc/latex/oberdiek/test}%
\file{zref-test1.tex}{\from{zref.dtx}{test1}}%
\file{zref-test-runs.tex}{\from{zref.dtx}{test-runs}}%
@@ -170,9 +178,9 @@ and the derived files
\Msg{*}
\Msg{* zref.sty, zref-base.sty, zref-abspage.sty, zref-counter.sty,}
\Msg{* zref-dotfill.sty, zref-hyperref.sty, zref-lastpage.sty,}
-\Msg{* zref-perpage.sty, zref-runs.sty, zref-savepos.sty,}
-\Msg{* zref-titleref.sty, zref-totpages.sty, zref-user.sty,}
-\Msg{* zref-xr.sty}
+\Msg{* zref-nextpage.sty, zref-perpage.sty, zref-runs.sty,}
+\Msg{* zref-savepos.sty, zref-thepage.sty, zref-titleref.sty,}
+\Msg{* zref-totpages.sty, zref-user.sty, zref-xr.sty}
\Msg{*}
\Msg{* And install the following script file:}
\Msg{*}
@@ -193,7 +201,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{zref.drv}%
- [2009/12/08 v2.7 New reference scheme for LaTeX2e (HO)]%
+ [2010/03/26 v2.8 New reference scheme for LaTeX2e (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2008/08/11]
\begin{document}
@@ -202,7 +210,7 @@ and the derived files
%</driver>
% \fi
%
-% \CheckSum{1668}
+% \CheckSum{1838}
%
% \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
@@ -223,7 +231,7 @@ and the derived files
% \GetFileInfo{zref.drv}
%
% \title{The \xpackage{zref} package}
-% \date{2009/12/08 v2.7}
+% \date{2010/03/26 v2.8}
% \author{Heiko Oberdiek\\\xemail{heiko.oberdiek at googlemail.com}}
%
% \maketitle
@@ -559,6 +567,13 @@ and the derived files
% \end{declcs}
% A possibility to check whether a reference exists.
%
+% \begin{declcs}{zifrefundefined}
+% \M{refname} \M{then} \M{else}
+% \end{declcs}
+% Macro \cs{zifrefundefined} calls \cs{ref@refused} before
+% executing \cs{zref@ifrefundefined}. Babel shorthands are
+% supported in \meta{refname}.
+%
% \begin{declcs}{zref@ifrefcontainsprop}\markexp
% \M{refname} \M{propname} \M{then} \M{else}
% \end{declcs}
@@ -760,7 +775,11 @@ and the derived files
% The label |LastPage| is put at the end of the document.
% You can refer the last page number with:
% \begin{quote}
-% |\zpageref{LastPage}|
+% |\zref@extract{LastPage}{page}| (+ |\zref@refused{LastPage}|)\\
+% \end{quote}
+% or
+% \begin{quote}
+% |\zpageref{LastPage}| (module \xmodule{user})
% \end{quote}
%
% Since version 2008/10/01 v2.3 the module defines the list |LastPage|.
@@ -769,18 +788,47 @@ and the derived files
% list is empty. The list can be used by the user to add additional
% properties for label |LastPage|.
%
+% \subsubsection{Tests for last page}
+%
+% Since version 2010/03/26 v2.8 the macros \cs{zref@iflastpage}
+% and \cs{ziflastpage} were added. They test the reference,
+% whether it is a reference of the last page.
+%
+% \begin{declcs}{zref@iflastpage}\markexp \M{refname} \M{then} \M{else}
+% \end{declcs}
+% Macro \cs{zref@iflastpage} compares the references \meta{refname}
+% with \meta{LastPage}. Basis of the comparison is the value of
+% property |abspage|, because the values are different for different
+% pages. This is not ensured by property |page|. Therefore module
+% \xmodule{abspage} is loaded by module \xmodule{lastpage}.
+% If both values of property |abspage| are present and match,
+% then \meta{then} is executed, otherwise code \meta{else} is called.
+% If one or both references are undefined or lack the property |abspage|,
+% then \meta{else} is executed.
+%
+% Macro \cs{zref@iflastpage} is expandable, therefore \cs{zref@refused}
+% should be called on \meta{refname} and \meta{LastPage}.
+%
+% \begin{declcs}{ziflastpage} \M{refname} \M{then} \M{else}
+% \end{declcs}
+% Macro \cs{ziflastpage} has the same function as \cs{zref@iflastpage},
+% but adds support for babel shorthands in \meta{refname} and
+% calls \cs{zref@refused}. However macro \cs{ziflastpage} is not
+% expandable.
+%
% \subsubsection{Example}
%
% \begin{macrocode}
%<*example-lastpage>
+%<<END_EXAMPLE
\NeedsTeXFormat{LaTeX2e}
\documentclass{report}
- %
+
\newcounter{foo}
\renewcommand*{\thefoo}{\Alph{foo}}
- %
+
\usepackage{zref-lastpage,zref-user}[2008/10/01]
- %
+
\makeatletter
\zref@newprop{thefoo}{\thefoo}
\zref@newprop{valuefoo}{\the\value{foo}}
@@ -789,27 +837,141 @@ and the derived files
\zref@addprop{LastPage}{valuefoo}
\zref@addprop{LastPage}{chapter}
\makeatother
- %
+
\newcommand*{\foo}{%
\stepcounter{foo}%
[Current foo: \thefoo]%
}
- %
+
\begin{document}
- \chapter{First chapter}%
- Last page is \zref{LastPage}.\\%
- Last chapter is \zref[chapter]{LastPage}.\\%
- Last foo is \zref[thefoo]{LastPage}.\\%
- Last value of foo is \zref[valuefoo]{LastPage}.\\%
+ \chapter{First chapter}
+ Last page is \zref{LastPage}.\\
+ Last chapter is \zref[chapter]{LastPage}.\\
+ Last foo is \zref[thefoo]{LastPage}.\\
+ Last value of foo is \zref[valuefoo]{LastPage}.\\
\foo
- \chapter{Second chapter}%
+ \chapter{Second chapter}
\foo\foo\foo
- \chapter{Last chapter}%
+ \chapter{Last chapter}
\foo
\end{document}
+%END_EXAMPLE
%</example-lastpage>
% \end{macrocode}
%
+% \subsection{Module \xmodule{thepage}}
+%
+% This module \xmodule{thepage} loads module \xmodule{abspage},
+% constructs a reference name using the absolute page number
+% and remembers property |page|. Other properties can be added
+% by adding them to the property list |thepage|.
+%
+% \begin{declcs}{zthepage} \M{absolute page number}\\
+% \end{declcs}
+% Macro \cs{zthepage} is basically a \cs{zpageref}. The reference
+% name is yield by the \meta{absolute page number}. If the reference
+% is not defined, then the default for property |page| is used.
+%
+% \begin{declcs}{zref@thepage@name}\markexp \M{absolute page number}
+% \end{declcs}
+% Macro \cs{zref@thepage@name} returns the internal reference
+% name that is constructed using the \meta{absolute page number}.
+% The internal reference name should not be used directly, because
+% it might change in future versions.
+%
+% \begin{declcs}{zref@thepage}\markexp \M{absolute page number}\\
+% \cs{zref@thepage@refused} \M{absolute page number}
+% \end{declcs}
+% Macro \cs{zref@thepage} returns the page number (\cs{thepage})
+% of \meta{absolute page number}. Because this macro is expandable,
+% \cs{zref@thepage@refused} is used outside an expandable context
+% to mark the reference as used.
+%
+%
+% \subsection{Module \xmodule{nextpage}}
+%
+% \begin{declcs}{znextpage}
+% \end{declcs}
+% Macro \cs{znextpage} prints \cs{thepage} of the following page.
+% It gets the current absolute page number by using a label.
+% There are three cases for the next page:
+% \begin{enumerate}
+% \item The next page is not known yet because of undefined references.
+% Then \cs{zunknownnextpagename} is used instead. The default for
+% this macro is the default of property |page|.
+% \item This page is the last page. Then \cs{znonextpagename}
+% is used. Its default is empty.
+% \item The next page is known, then \cs{thepage} of the next
+% page is used (the value of property |page| of the next page).
+% \end{enumerate}
+%
+% \subsubsection{Configuration}
+%
+% The behaviour can be configured by the following macros.
+%
+% \begin{declcs}{zunknownnextpagename}\\
+% \cs{znonextpagename}
+% \end{declcs}
+% If the next page is not known or available, then
+% \cs{znextpage} uses these name macros as default.
+% \cs{zunknownnextpagename} is used in case of undefined
+% references. Default is the value of property |page| of the
+% next page (\cs{thepage}). Module \xmodule{thepage} is used.
+%
+% Macro \cs{znonextpagename} is used, if the next page does
+% not exists. That means that the current page is last page.
+% The default is empty.
+%
+% \begin{declcs}{znextpagesetup} \M{unknown} \M{no next}
+% \M{next}
+% \end{declcs}
+% Acording to the case (see \cs{znextpage}) macro \cs{znextpage}
+% calls an internal macro with an argument. The argument is
+% either \cs{thepage} of the next page or one of \cs{zunknownnextpagename}
+% or \cs{znonextpagename}. These internal macro can be changed by
+% \cs{znextpagesetup}. It expects the definition texts for these
+% three cases of a macro with one argument.
+% The default is
+% \begin{quote}
+% |\znextpagesetup{#1}{#1}{#1}|
+% \end{quote}
+%
+% \subsubsection{Example}
+%
+% \begin{macrocode}
+%<*example-nextpage>
+%<<END_EXAMPLE
+\documentclass{book}
+
+\usepackage{zref-nextpage}[2010/03/26]
+\znextpagesetup
+ {\thepage}% next page is unknown
+ {\thepage\ (#1)}% this page is last page
+ {\thepage\ $\rightarrow$ #1}% next page is known
+\renewcommand*{\znonextpagename}{last page}
+
+\usepackage{fancyhdr}
+\pagestyle{fancy}
+\fancyhf{}
+\fancyhead[LE,RO]{\znextpage}
+\fancypagestyle{plain}{%
+ \fancyhf{}%
+ \fancyhead[LE,RO]{\znextpage}%
+}
+
+\begin{document}
+\frontmatter
+ \tableofcontents
+\mainmatter
+ \chapter{Hello World}
+ \clearpage
+ \section{Last section}
+\end{document}
+%END_EXAMPLE
+%</example-nextpage>
+% \end{macrocode}
+%
+%
% \subsection{Module \xmodule{totpages}}
%
% For the total number of pages of a document you need to
@@ -1253,13 +1415,13 @@ the height difference of the two baselines is
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref}
- [2009/12/08 v2.7 New reference scheme for LaTeX2e (HO)]%
+ [2010/03/26 v2.8 New reference scheme for LaTeX2e (HO)]%
% \end{macrocode}
%
% \subsubsection{Load basic module}
%
% \begin{macrocode}
-\RequirePackage{zref-base}[2009/12/08]
+\RequirePackage{zref-base}[2010/03/26]
% \end{macrocode}
% Abort package loading if \xpackage{zref-base} could not be
% loaded successfully.
@@ -1274,7 +1436,7 @@ the height difference of the two baselines is
\def\ZREF@temp#1{%
\DeclareOption{#1}{%
\AtEndOfPackage{%
- \RequirePackage{zref-#1}[2009/12/08]%
+ \RequirePackage{zref-#1}[2010/03/26]%
}%
}%
}
@@ -1334,11 +1496,15 @@ the height difference of the two baselines is
%<*base>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-base}%
- [2009/12/08 v2.7 Module base for zref (HO)]%
+ [2010/03/26 v2.8 Module base for zref (HO)]%
% \end{macrocode}
%
% \subsubsection{Utilities}
%
+% \begin{macrocode}
+\RequirePackage{ltxcmds}[2009/12/12]
+% \end{macrocode}
+%
% \begin{macro}{\ZREF@name}
% Several times the package name is used, thus we store it
% in \cmd{\ZREF@name}.
@@ -1382,11 +1548,11 @@ the height difference of the two baselines is
\def\ZREF@patch#1{%
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname #1\endcsname\relax
- \expandafter\@gobble
+ \expandafter\ltx@gobble
\else
\expandafter\let\csname ZREF@org@#1\expandafter\endcsname
\csname #1\endcsname
- \expandafter\@firstofone
+ \expandafter\ltx@firstofone
\fi
}
% \end{macrocode}
@@ -1397,18 +1563,15 @@ the height difference of the two baselines is
% The use of \eTeX\ should be standard nowadays for \LaTeX.
% We test for \eTeX\ in order to use its features later.
% \begin{macrocode}
-\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
+\ltx@IfUndefined{eTeXversion}{%
+ \ZREF@ErrorNoLine{%
+ Missing support for eTeX; package is abandoned%
+ }{%
+ Use a TeX compiler that support eTeX and enable eTeX %
+ in the format.%
+ }%
+ \endinput
+}{}%
% \end{macrocode}
%
% \begin{macrocode}
@@ -1486,9 +1649,9 @@ the height difference of the two baselines is
% \begin{macrocode}
\def\zref@iflistundefined#1{%
\expandafter\ifx\csname Z@L@#1\endcsname\relax
- \expandafter\@firstoftwo
+ \expandafter\ltx@firstoftwo
\else
- \expandafter\@secondoftwo
+ \expandafter\ltx@secondoftwo
\fi
}
% \end{macrocode}
@@ -1528,9 +1691,9 @@ the height difference of the two baselines is
}%
\expandafter\endgroup
\ifZREF@found
- \expandafter\@firstoftwo
+ \expandafter\ltx@firstoftwo
\else
- \expandafter\@secondoftwo
+ \expandafter\ltx@secondoftwo
\fi
}
% \end{macrocode}
@@ -1616,9 +1779,9 @@ the height difference of the two baselines is
% \begin{macrocode}
\def\zref@ifpropundefined#1{%
\expandafter\ifx\csname Z@E@#1\endcsname\relax
- \expandafter\@firstoftwo
+ \expandafter\ltx@firstoftwo
\else
- \expandafter\@secondoftwo
+ \expandafter\ltx@secondoftwo
\fi
}
% \end{macrocode}
@@ -1849,14 +2012,33 @@ the height difference of the two baselines is
% \begin{macrocode}
\def\zref@ifrefundefined#1{%
\expandafter\ifx\csname Z@R@#1\endcsname\relax
- \expandafter\@firstoftwo
+ \expandafter\ltx@firstoftwo
\else
- \expandafter\@secondoftwo
+ \expandafter\ltx@secondoftwo
\fi
}
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\zifrefundefined}
+% If a reference \verb|#1| is undefined, then macro
+% \cs{zref@ifrefundefined} calls \verb|#2| and \verb|#3| otherwise.
+% Also the reference is marked used.
+% \begin{macrocode}
+\newcommand*{\zifrefundefined}[1]{%
+ \zref@wrapper@babel\ZREF@ifrefundefined{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@ifrefundefined}
+% \begin{macrocode}
+\def\ZREF@ifrefundefined#1{%
+ \zref@refused{#1}%
+ \zref@ifrefundefined{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\zref@refused}
% The problem with undefined references is addressed by
% the macro \cs{zref@refused}. This can be used outside
@@ -1905,7 +2087,7 @@ the height difference of the two baselines is
% \begin{macrocode}
\def\zref@ifrefcontainsprop#1#2{%
\zref@ifrefundefined{#1}{%
- \@secondoftwo
+ \ltx@secondoftwo
}{%
\expandafter\ZREF@ifrefcontainsprop
\csname Z@E@#2\expandafter\endcsname
@@ -1918,9 +2100,9 @@ the height difference of the two baselines is
\def\ZREF@ifrefcontainsprop#1#2#3{%
\expandafter\ifx\expandafter\ZREF@novalue
#1#3#2\ZREF@novalue\ZREF@nil\@empty
- \expandafter\@secondoftwo
+ \expandafter\ltx@secondoftwo
\else
- \expandafter\@firstoftwo
+ \expandafter\ltx@firstoftwo
\fi
}
\def\ZREF@novalue{\ZREF@NOVALUE}
@@ -1952,9 +2134,9 @@ the height difference of the two baselines is
\long\def\zref@wrapper@unexpanded#1{%
\let\ZREF@unexpanded\etex@unexpanded
#1%
- \let\ZREF@unexpanded\@firstofone
+ \let\ZREF@unexpanded\ltx@firstofone
}
-\let\ZREF@unexpanded\@firstofone
+\let\ZREF@unexpanded\ltx@firstofone
% \end{macrocode}
% \end{macro}
%
@@ -1964,15 +2146,15 @@ the height difference of the two baselines is
% \begin{macrocode}
\long\def\zref@wrapper@babel#1#2{%
\ifcsname if@safe@actives\endcsname
- \expandafter\@firstofone
+ \expandafter\ltx@firstofone
\else
- \expandafter\@secondoftwo
+ \expandafter\ltx@secondoftwo
\fi
{%
\if@safe@actives
- \expandafter\@secondoftwo
+ \expandafter\ltx@secondoftwo
\else
- \expandafter\@firstoftwo
+ \expandafter\ltx@firstoftwo
\fi
{%
\begingroup
@@ -2000,7 +2182,7 @@ the height difference of the two baselines is
\def\zref@require@unique{%
\@ifundefined{c@zref@unique}{%
\begingroup
- \let\@addtoreset\@gobbletwo
+ \let\@addtoreset\ltx@gobbletwo
\newcounter{zref@unique}%
\endgroup
% \end{macrocode}
@@ -2093,8 +2275,8 @@ the height difference of the two baselines is
%<*user>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-user}%
- [2009/12/08 v2.7 Module user for zref (HO)]%
-\RequirePackage{zref-base}[2009/12/08]
+ [2010/03/26 v2.8 Module user for zref (HO)]%
+\RequirePackage{zref-base}[2010/03/26]
\@ifundefined{ZREF@baseok}{\endinput}{}
% \end{macrocode}
%
@@ -2112,8 +2294,8 @@ the height difference of the two baselines is
% table of contents. Therefore we have to check this situation.
% \begin{macrocode}
\newcommand*\zlabel{%
- \ifx\label\@gobble
- \expandafter\@gobble
+ \ifx\label\ltx@gobble
+ \expandafter\ltx@gobble
\else
\expandafter\zref@wrapper@babel\expandafter\zref@label
\fi
@@ -2168,8 +2350,8 @@ the height difference of the two baselines is
%<*abspage>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-abspage}%
- [2009/12/08 v2.7 Module abspage for zref (HO)]%
-\RequirePackage{zref-base}[2009/12/08]
+ [2010/03/26 v2.8 Module abspage for zref (HO)]%
+\RequirePackage{zref-base}[2010/03/26]
\@ifundefined{ZREF@baseok}{\endinput}{}
% \end{macrocode}
%
@@ -2184,7 +2366,7 @@ the height difference of the two baselines is
% \xfile{.aux} files of included \TeX\ files.
% \begin{macrocode}
\begingroup
- \let\@addtoreset\@gobbletwo
+ \let\@addtoreset\ltx@gobbletwo
\newcounter{abspage}%
\endgroup
\setcounter{abspage}{0}%
@@ -2213,8 +2395,8 @@ the height difference of the two baselines is
%<*counter>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-counter}%
- [2009/12/08 v2.7 Module counter for zref (HO)]%
-\RequirePackage{zref-base}[2009/12/08]
+ [2010/03/26 v2.8 Module counter for zref (HO)]%
+\RequirePackage{zref-base}[2010/03/26]
\@ifundefined{ZREF@baseok}{\endinput}{}
% \end{macrocode}
%
@@ -2250,8 +2432,9 @@ the height difference of the two baselines is
%<*lastpage>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-lastpage}%
- [2009/12/08 v2.7 Module lastpage for zref (HO)]%
-\RequirePackage{zref-base}[2009/12/08]
+ [2010/03/26 v2.8 Module lastpage for zref (HO)]%
+\RequirePackage{zref-base}[2010/03/26]
+\RequirePackage{zref-abspage}[2010/03/26]
\RequirePackage{atveryend}[2009/12/07]
\@ifundefined{ZREF@baseok}{\endinput}{}
% \end{macrocode}
@@ -2279,27 +2462,216 @@ the height difference of the two baselines is
\fi
}
% \end{macrocode}
+% \begin{macro}{\zref@iflastpage}
+% \begin{macrocode}
+\def\zref@iflastpage#1{%
+ \ifnum\zref@extractdefault{#1}{abspage}{-1}=%
+ \zref@extractdefault{LastPage}{abspage}{-2} %
+ \expandafter\ltx@firstoftwo
+ \else
+ \expandafter\ltx@secondoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ziflastpage}
+% \begin{macrocode}
+\newcommand*{\ziflastpage}{%
+ \zref@wrapper@babel\ZREF@iflastpage
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{ZREF@iflastpage}
+% \begin{macrocode}
+\def\ZREF@iflastpage#1{%
+ \zref@refused{LastPage}%
+ \zref@refused{#1}%
+ \zref@iflastpage{#1}%
+}
+% \end{macrocode}
+% \end{macro}
% \begin{macrocode}
%</lastpage>
% \end{macrocode}
%
%
+% \subsection{Module \xmodule{thepage}}
+%
+% \begin{macrocode}
+%<*thepage>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-thepage}%
+ [2010/03/26 v2.8 Module thepage for zref (HO)]%
+\RequirePackage{zref-base}[2010/03/26]
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\RequirePackage{atbegshi}
+\RequirePackage{zref-abspage}[2010/03/26]
+% \end{macrocode}
+% \begin{macrocode}
+\zref@newlist{thepage}
+\zref@addprop{thepage}{page}
+\AtBeginShipout{%
+ \zref@wrapper@immediate{%
+ \zref@labelbylist{thepage\the\value{abspage}}{thepage}%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\zref@thepage@name}
+% \begin{macrocode}
+\ltx@IfUndefined{numexpr}{%
+ \def\zref@thepage@name#1{thepage\number#1}%
+}{%
+ \def\zref@thepage@name#1{thepage\the\numexpr#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zref@thepage}
+% \begin{macrocode}
+\def\zref@thepage#1{%
+ \zref@extract{\zref@thepage@name{#1}}{page}%
+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zref@thepage@refused}
+% \begin{macrocode}
+\def\zref@thepage@refused#1{%
+ \zref@refused{\zref@thepage@name{#1}}%
+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zthepage}
+% \begin{macrocode}
+\newcommand*{\zthepage}[1]{%
+ \zref@thepage@refused{#1}%
+ \zref@thepage{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+%</thepage>
+% \end{macrocode}
+%
+%
+% \subsection{Module \xmodule{nextpage}}
+%
+% \begin{macrocode}
+%<*nextpage>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-nextpage}%
+ [2010/03/26 v2.8 Module nextpage for zref (HO)]%
+\RequirePackage{zref-base}[2010/03/26]
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\RequirePackage{zref-abspage}[2010/03/26]
+\RequirePackage{zref-thepage}[2010/03/26]
+\RequirePackage{zref-lastpage}[2010/03/26]
+\RequirePackage{uniquecounter}[2009/12/18]
+% \end{macrocode}
+% \begin{macrocode}
+\UniqueCounterNew{znextpage}
+
+\newcommand*{\znextpagesetup}{%
+ \afterassignment\ZREF@np@setup@i
+ \def\ZREF@np@call@unknown##1%
+}
+\def\ZREF@np@setup@i{%
+ \afterassignment\ZREF@np@setup@ii
+ \def\ZREF@np@call@nonext##1%
+}
+\def\ZREF@np@setup@ii{%
+ \def\ZREF@np@call@next##1%
+}
+\def\ZREF@np@call@unknown#1{#1}
+\def\ZREF@np@call@nonext#1{#1}
+\def\ZREF@np@call@next#1{#1}
+\newcommand*{\znextpage}{%
+ \UniqueCounterCall{znextpage}{\ZREF@nextpage}%
+}
+\newcommand*{\znonextpagename}{}
+\newcommand*{\zunknownnextpagename}{\Z@D@page}
+\def\ZREF@nextpage#1{%
+ \begingroup
+ \def\ZREF@refname@this{zref@np#1}%
+ \zref@labelbyprops\ZREF@refname@this{abspage}%
+ \chardef\ZREF@call=0 % unknown
+ \ZREF@ifrefundefined\ZREF@refname@this{%
+ }{%
+ \edef\ZREF@pagenum@this{%
+ \zref@extractdefault\ZREF@refname@this{abspage}{0}%
+ }%
+ \edef\ZREF@refname@next{%
+ \zref@thepage@name{%
+ \the\numexpr\ZREF@pagenum@this+1%
+ }%
+ }%
+ \ifnum\ZREF@pagenum@this>0 %
+ \ZREF@ifrefundefined{LastPage}{%
+ \zref@ifrefundefined\ZREF@refname@next{%
+ }{%
+ \chardef\ZREF@call=2 % next page
+ }%
+ }{%
+ \edef\ZREF@pagenum@last{%
+ \zref@extractdefault{LastPage}{abspage}{0}%
+ }%
+ \ifnum\ZREF@pagenum@this<\ZREF@pagenum@last\ltx@space
+ \ZREF@ifrefundefined\ZREF@refname@next{%
+ }{%
+ \chardef\ZREF@call=2 % next page
+ }%
+ \else
+ \ifnum\ZREF@pagenum@this=\ZREF@pagenum@this\ltx@space
+ \chardef\ZREF@call=1 % no next page
+ \fi
+ \fi
+ }%
+ \fi
+ }%
+ \edef\x{%
+ \endgroup
+ \ifcase\ZREF@call
+ \noexpand\ZREF@np@call@unknown{%
+ \noexpand\zunknownnextpagename
+ }%
+ \or
+ \noexpand\ZREF@np@call@nonext{%
+ \noexpand\znonextpagename
+ }%
+ \else
+ \noexpand\ZREF@np@call@next{%
+ \noexpand\zref@extract{\ZREF@refname@next}{page}%
+ }%
+ \fi
+ }%
+ \x
+}
+% \end{macrocode}
+% \begin{macrocode}
+%</nextpage>
+% \end{macrocode}
+%
+%
% \subsection{Module \xmodule{totpages}}
%
% \begin{macrocode}
%<*totpages>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-totpages}%
- [2009/12/08 v2.7 Module totpages for zref (HO)]%
-\RequirePackage{zref-base}[2009/12/08]
+ [2010/03/26 v2.8 Module totpages for zref (HO)]%
+\RequirePackage{zref-base}[2010/03/26]
\@ifundefined{ZREF@baseok}{\endinput}{}
% \end{macrocode}
%
% The absolute page number of the last page is the total
% page number.
% \begin{macrocode}
-\RequirePackage{zref-abspage}[2009/12/08]
-\RequirePackage{zref-lastpage}[2009/12/08]
+\RequirePackage{zref-abspage}[2010/03/26]
+\RequirePackage{zref-lastpage}[2010/03/26]
% \end{macrocode}
%
% \begin{macro}{\ztotpages}
@@ -2332,7 +2704,7 @@ the height difference of the two baselines is
%<*runs>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-runs}%
- [2009/12/08 v2.7 Module runs for zref (HO)]%
+ [2010/03/26 v2.8 Module runs for zref (HO)]%
% \end{macrocode}
%
% \begin{macro}{\zruns}
@@ -2364,8 +2736,8 @@ the height difference of the two baselines is
%<*perpage>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-perpage}%
- [2009/12/08 v2.7 Module perpage for zref (HO)]%
-\RequirePackage{zref-base}[2009/12/08]
+ [2010/03/26 v2.8 Module perpage for zref (HO)]%
+\RequirePackage{zref-base}[2010/03/26]
\@ifundefined{ZREF@baseok}{\endinput}{}
% \end{macrocode}
%
@@ -2377,7 +2749,7 @@ the height difference of the two baselines is
% For detecting changed pages module \xmodule{abspage}
% is loaded.
% \begin{macrocode}
-\RequirePackage{zref-abspage}[2009/12/08]
+\RequirePackage{zref-abspage}[2010/03/26]
% \end{macrocode}
%
% We group the properties for the needed references
@@ -2521,8 +2893,8 @@ the height difference of the two baselines is
%<*titleref>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-titleref}%
- [2009/12/08 v2.7 Module titleref for zref (HO)]%
-\RequirePackage{zref-base}[2009/12/08]
+ [2010/03/26 v2.8 Module titleref for zref (HO)]%
+\RequirePackage{zref-base}[2010/03/26]
\@ifundefined{ZREF@baseok}{\endinput}{}
\RequirePackage{gettitlestring}[2009/12/08]
% \end{macrocode}
@@ -2692,7 +3064,7 @@ the height difference of the two baselines is
\def\ZREF@titleref#1{%
\begingroup
\zref@refused{#1}%
- \let\label\@gobble
+ \let\label\ltx@gobble
\zref@extract{#1}{title}%
\endgroup
}%
@@ -2839,8 +3211,8 @@ the height difference of the two baselines is
%<*xr>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-xr}%
- [2009/12/08 v2.7 Module xr for zref (HO)]%
-\RequirePackage{zref-base}[2009/12/08]
+ [2010/03/26 v2.8 Module xr for zref (HO)]%
+\RequirePackage{zref-base}[2010/03/26]
\@ifundefined{ZREF@baseok}{\endinput}{}
% \end{macrocode}
% \begin{macrocode}
@@ -2865,7 +3237,7 @@ the height difference of the two baselines is
% Use the setting of \xpackage{hyperref} if available.
% \begin{macrocode}
\providecommand*{\zref@xr@ext}{%
- \@ifundefined{XR@ext}{pdf}{\XR@ext}%
+ \ltx@ifundefined{XR@ext}{pdf}{\XR@ext}%
}%
% \end{macrocode}
% \end{macro}
@@ -3183,14 +3555,14 @@ the height difference of the two baselines is
%<*hyperref>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-hyperref}%
- [2009/12/08 v2.7 Module hyperref for zref (HO)]%
-\RequirePackage{zref-base}[2009/12/08]
+ [2010/03/26 v2.8 Module hyperref for zref (HO)]%
+\RequirePackage{zref-base}[2010/03/26]
\@ifundefined{ZREF@baseok}{\endinput}{}
% \end{macrocode}
%
% \begin{macrocode}
\zref@newprop{anchor}[]{%
- \@ifundefined{@currentHref}{}{\@currentHref}%
+ \ltx@ifundefined{@currentHref}{}{\@currentHref}%
}%
\zref@addprop\ZREF@mainlist{anchor}%
% \end{macrocode}
@@ -3212,8 +3584,8 @@ the height difference of the two baselines is
%<*savepos>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-savepos}%
- [2009/12/08 v2.7 Module savepos for zref (HO)]%
-\RequirePackage{zref-base}[2009/12/08]
+ [2010/03/26 v2.8 Module savepos for zref (HO)]%
+\RequirePackage{zref-base}[2010/03/26]
\@ifundefined{ZREF@baseok}{\endinput}{}
% \end{macrocode}
%
@@ -3221,16 +3593,13 @@ the height difference of the two baselines is
%
% First we check, whether the feature is available.
% \begin{macrocode}
-\begingroup
- \@ifundefined{pdfsavepos}{%
- \ZREF@ErrorNoLine{%
- \string\pdfsavepos\space is not supported.\MessageBreak
- It is provided by pdfTeX (1.40) or XeTeX%
- }\ZREF@UpdatePdfTeX
- \endgroup
- \endinput
- }{}%
-\endgroup
+\ltx@IfUndefined{pdfsavepos}{%
+ \ZREF@ErrorNoLine{%
+ \string\pdfsavepos\space is not supported.\MessageBreak
+ It is provided by pdfTeX (1.40) or XeTeX%
+ }\ZREF@UpdatePdfTeX
+ \endinput
+}{}%
% \end{macrocode}
% In PDF mode we are done. However support for DVI mode
% was added later in version 1.40.0. In earlier versions
@@ -3318,15 +3687,15 @@ the height difference of the two baselines is
%<*dotfill>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-dotfill}%
- [2009/12/08 v2.7 Module dotfill for zref (HO)]%
-\RequirePackage{zref-base}[2009/12/08]
+ [2010/03/26 v2.8 Module dotfill for zref (HO)]%
+\RequirePackage{zref-base}[2010/03/26]
\@ifundefined{ZREF@baseok}{\endinput}{}
% \end{macrocode}
%
% For measuring the width of \cs{zdotfill} we use the features
% provided by module \xmodule{savepos}.
% \begin{macrocode}
-\RequirePackage{zref-savepos}[2009/12/08]
+\RequirePackage{zref-savepos}[2010/03/26]
% \end{macrocode}
% For automatically generated label names we use the unique
% counter of module \xmodule{base}.
@@ -3415,7 +3784,7 @@ the height difference of the two baselines is
\NeedsTeXFormat{LaTeX2e}
\nofiles
\documentclass{article}
-\usepackage{zref-base}[2009/12/08]
+\usepackage{zref-base}[2010/03/26]
\usepackage{qstest}
\IncludeTests{*}
\LogTests{log}{*}{*}
@@ -3445,7 +3814,7 @@ the height difference of the two baselines is
%<*test-runs>
\NeedsTeXFormat{LaTeX2e}
\documentclass{article}
-\usepackage{zref-runs}[2009/12/08]
+\usepackage{zref-runs}[2010/03/26]
\usepackage{qstest}
\IncludeTests{*}
\LogTests{log}{*}{*}
@@ -3534,9 +3903,11 @@ the height difference of the two baselines is
% zref-dotfill.sty & tex/latex/oberdiek/zref-dotfill.sty\\
% zref-hyperref.sty & tex/latex/oberdiek/zref-hyperref.sty\\
% zref-lastpage.sty & tex/latex/oberdiek/zref-lastpage.sty\\
+% zref-nextpage.sty & tex/latex/oberdiek/zref-nextpage.sty\\
% zref-perpage.sty & tex/latex/oberdiek/zref-perpage.sty\\
% zref-runs.sty & tex/latex/oberdiek/zref-runs.sty\\
% zref-savepos.sty & tex/latex/oberdiek/zref-savepos.sty\\
+% zref-thepage.sty & tex/latex/oberdiek/zref-thepage.sty\\
% zref-titleref.sty & tex/latex/oberdiek/zref-titleref.sty\\
% zref-totpages.sty & tex/latex/oberdiek/zref-totpages.sty\\
% zref-user.sty & tex/latex/oberdiek/zref-user.sty\\
@@ -3544,6 +3915,7 @@ the height difference of the two baselines is
% zref.pdf & doc/latex/oberdiek/zref.pdf\\
% zref-example.tex & doc/latex/oberdiek/zref-example.tex\\
% zref-example-lastpage.tex & doc/latex/oberdiek/zref-example-lastpage.tex\\
+% zref-example-nextpage.tex & doc/latex/oberdiek/zref-example-nextpage.tex\\
% test/zref-test1.tex & doc/latex/oberdiek/test/zref-test1.tex\\
% test/zref-test-runs.tex & doc/latex/oberdiek/test/zref-test-runs.tex\\
% zref.dtx & source/latex/oberdiek/zref.dtx\\
@@ -3794,6 +4166,17 @@ the height difference of the two baselines is
% \item
% Module \xmodule{titleref}: Use of package \xpackage{gettitlestring}.
% \end{Version}
+% \begin{Version}{2010/03/26 v2.8}
+% \item
+% \cs{zifrefundefined} added.
+% \item
+% Module \xmodule{lastpage}: Macros \cs{zref@iflastpage}
+% and \cs{ziflastpage} added.
+% \item
+% Module \xmodule{thepage} added.
+% \item
+% Module \xmodule{nextpage} added.
+% \end{Version}
% \end{History}
%
% \PrintIndex