%% %% This is file `zref-example.tex', %% generated with the docstrip utility. %% %% The original source files were: %% %% zref.dtx (with options: `example') %% %% This is a generated file. %% %% Copyright (C) 2006-2011 by %% Heiko Oberdiek %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either %% version 1.3c of this license or (at your option) any later %% version. This version of this license is in %% http://www.latex-project.org/lppl/lppl-1-3c.txt %% and 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-abspos.sty, zref-counter.sty, %% zref-dotfill.sty, zref-env.sty, zref-hyperref.sty, %% zref-lastpage.sty, zref-marks.sty, zref-nextpage.sty, %% zref-pageattr.sty, zref-pagelayout.sty, zref-perpage.sty, %% zref-runs.sty, zref-savepos.sty, zref-thepage.sty, %% zref-titleref.sty, zref-totpages.sty, zref-user.sty, %% zref-xr.sty, zref-example.tex, zref-example-lastpage.tex, %% zref-example-nextpage.tex, zref-test1.tex, %% zref-test-base.tex, zref-test-runs.tex, %% zref-test-titleref-memoir.tex. %% \documentclass{book} \usepackage[ngerman]{babel}% \usepackage[savepos,totpages,titleref,dotfill,counter,user]{zref} \makeatletter \zref@newprop{chaptitle}{} \zref@addprop{main}{chaptitle} \newcommand*{\ChapterStart}[2]{% \cleardoublepage \def\current@chapid{#1}% \zref@setcurrent{chaptitle}{#2}% \chapter{#2}% \zlabel{chap:#1}% } \newcommand*{\ChapterStop}{% \cleardoublepage \zref@wrapper@immediate{% \zref@labelbyprops{chapend:\current@chapid}{abspage}% }% } \newcommand*{\ChapterPages}[1]{% \zrefused{chap:#1}% \zrefused{chapend:#1}% \number\numexpr \zref@extract{chapend:#1}{abspage}% -\zref@extract{chap:#1}{abspage}% +1\relax } \makeatother \begin{document} \makeatletter \frontmatter \zlabel{documentstart} \begin{itemize} \item The frontmatter part has \number\numexpr\zref@extract{chap:first}{abspage}-1\relax ~pages. \item Chapter \zref{chap:first} has \ChapterPages{first} page(s). \item Section \zref{hello} is on the \ifcase\numexpr \zref@extractdefault{hello}{page}{0}% -\zref@extractdefault{chap:first}{page}{0}% +1\relax ??\or first\or second\or third\or forth\fi ~page inside its chapter. \item The document has \zref[abspage]{LastPage} pages. This number is \ifodd\ztotpages odd\else even\fi. \item The last page is labeled with \zpageref{LastPage}. \item The title of chapter \zref{chap:next} % is ``\zref[chaptitle]{chap:next}''. \end{itemize} \tableofcontents \mainmatter \ChapterStart{first}{First chapter} \section{Test} \zlabel{a"o} Section \zref{a"o} on page \zref@wrapper@babel\zref@extract{a"o}{page}. Text. \newpage \section{Hello World} \zlabel{hello} \ChapterStop \ChapterStart{next}{Next chapter with \emph{umlauts}: "a"o"u"s} The width of the first column is \the\dimexpr \zposx{secondcol}sp - \zposx{firstcol}sp\relax,\\ the height difference of the two baselines is \the\dimexpr \zposy{firstcol}sp - \zposy{secondline}sp\relax:\\ \begin{tabular}{ll} \zsavepos{firstcol}Hello&\zsavepos{secondcol}World\\ \zsavepos{secondline}Second line&foobar\\ \end{tabular} \zrefused{firstcol} \zrefused{secondcol} \zrefused{secondline} \ChapterStop \ChapterStart{dotfill}{Test for dotfill feature} \newcommand*{\dftest}[1]{% #1& [\makebox[{#1}]{\dotfill}]& [\makebox[{#1}]{\zdotfill}]\\ } \begin{tabular}{rll} & [\verb|\dotfill|] & [\verb|\zdotfill|]\\ \dftest{0.43em} \dftest{0.44em} \dftest{0.45em} \dftest{0.87em} \dftest{0.88em} \dftest{0.89em} \dftest{1.31em} \dftest{1.32em} \dftest{1.33em} \end{tabular} \ChapterStop \end{document} \endinput %% %% End of file `zref-example.tex'.