summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tools/varioref.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-10-04 20:57:14 +0000
committerKarl Berry <karl@freefriends.org>2019-10-04 20:57:14 +0000
commit70aaae3b3c98fb6357c846ad54ce2367e9682f50 (patch)
treef0446e015c31510a11ada780ad4978dce03ad104 /Master/texmf-dist/tex/latex/tools/varioref.sty
parentbe53f9d0af947622afca67b99c89a90d5c08dbd4 (diff)
latex2e (4oct19)
git-svn-id: svn://tug.org/texlive/trunk@52286 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tools/varioref.sty')
-rw-r--r--Master/texmf-dist/tex/latex/tools/varioref.sty154
1 files changed, 124 insertions, 30 deletions
diff --git a/Master/texmf-dist/tex/latex/tools/varioref.sty b/Master/texmf-dist/tex/latex/tools/varioref.sty
index 78aa06db6b8..eafa2b910ac 100644
--- a/Master/texmf-dist/tex/latex/tools/varioref.sty
+++ b/Master/texmf-dist/tex/latex/tools/varioref.sty
@@ -12,7 +12,7 @@
%% reports for it can be opened at https://latex-project.org/bugs/
%% (but please observe conditions on bug reports sent to that address!)
%%
-%% Copyright 1993-2017
+%% Copyright (C) 1993-2019
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -35,18 +35,24 @@
%% given in the file `manifest.txt'.
%%
%% Package varioref to use with LaTeX2e
-%% Copyright (C) 1992-2016 Frank Mittelbach, all rights reserved.
+%% Copyright (C) 1992-2019 Frank Mittelbach, all rights reserved.
%%
%% For additions or updates to the language options please contact
%% the author at
%%
%% frank.mittelbach@latex-project.org
%%
-%% In case of bugs, please use "latexbug.tex" (category tools) to report them.
+%% or open an issue at https://github.com/latex3/latex2e.
%%
\NeedsTeXFormat{LaTeX2e}[1995/05/16]
+\providecommand\DeclareRelease[3]{}
+\providecommand\DeclareCurrentRelease[2]{}
+
+\DeclareRelease{}{2016-02-16}{varioref-2016-02-16.sty}
+\DeclareCurrentRelease{}{2019-10-01}
+
\ProvidesPackage{varioref}
- [2016/02/16 v1.5c package for extended references (FMi)]
+ [2019/09/08 v1.6b package for extended references (FMi)]
%%
@@ -115,6 +121,17 @@
\def\reftextpagerange#1#2{on pages~\pageref{#1}--\pageref{#2}}%
\def\reftextlabelrange#1#2{\ref{#1} to~\ref{#2}}%
}}
+\DeclareOption{arabic}
+ {\vref@addto\extrasarabic{%
+ \def\reftextfaceafter {بالصفحة \reftextvario{المقابلة}{اللاحقة}}%
+ \def\reftextfacebefore{بالصفحة \reftextvario{المقابلة}{المُنْصَرِمَةٌ}}%
+ \def\reftextafter {بالصفحة \reftextvario{اللاحقة}{التالية}}%
+ \def\reftextbefore {بالصفحة \reftextvario{السابقة}{المُنْصَرِمَةٌ}}%
+ \def\reftextcurrent {ب\reftextvario{الصفحة الحالية}{هذه الصفحة}}%
+ \def\reftextfaraway#1{بالصفحة رقم~\pageref{#1}}%
+ \def\reftextpagerange#1#2{بالصفحات~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} حتى~\ref{#2}}%
+ }}
\DeclareOption{austrian}
{\vref@addto\extrasaustrian{%
\def\reftextfaceafter {auf der n\"achsten Seite}%
@@ -618,24 +635,35 @@
\ExecuteOptions{german}}
\DeclareOption{draft}{\AtEndOfPackage\vrefwarning}
\DeclareOption{final}{\AtEndOfPackage\vrefshowerrors} % the default
-\ExecuteOptions{english,final}
+\newif\if@vrefhandlespace
+\DeclareOption{space} {\@vrefhandlespacetrue}
+\DeclareOption{nospace}{\@vrefhandlespacefalse}
+\ExecuteOptions{english,final,space}
\ProcessOptions*
\newcounter{vrcnt}
\DeclareRobustCommand\vpageref{\@ifstar
- {\let\vref@space\relax\vp@geref}%
- {\let\vref@space\space\vp@geref}}
+ {\let\vref@maybe@space\@empty\vp@gerefstar}%
+ {\let\vref@maybe@space\space \vp@geref}}
\def\vp@geref{\@ifnextchar[%
\@vpageref{\@vpageref[\reftextcurrent]}%
}
\let\vref@space\space
\def\@vpageref[#1]{\@ifnextchar[%
- {\@@vpageref{#1}}{\@@vpageref{#1}[\unskip\vref@space]}}
+ {\@@vpageref{#1}}{\@@vpageref{#1}[]}}
\def\@@vpageref#1[#2]#3{%
- \leavevmode\unskip
+ \leavevmode
+ \@tempskipa\lastskip \unskip
\global\advance\c@vrcnt\@ne
\vref@pagenum\@tempa{\the\c@vrcnt @vr}%
\vref@pagenum\@tempb{\the\c@vrcnt @xvr}%
\vref@label{\the\c@vrcnt @xvr}%
+ \if@vrefhandlespace
+ \vref@maybe@space
+ \else
+ \ifdim\@tempskipa=\z@ \else
+ \hskip\@tempskipa
+ \fi
+ \fi
\ifx\@tempa\@tempb
\let\vref@may@loop\relax
\else
@@ -647,7 +675,6 @@
}%
\fi
\vrefpagenum\thevpagerefnum{#3}%
- \vref@space
\ifx\@tempa\thevpagerefnum
\def\@tempc{#1}%
\ifx\@tempc\@empty
@@ -656,7 +683,10 @@
#1%
\fi
\else
- #2%
+ \def\@tempc{#2}%
+ \ifx\@tempc\@empty \else
+ #2\vref@space
+ \fi
\is@pos@number\thevpagerefnum
{%
\is@pos@number\@tempa
@@ -699,6 +729,8 @@
\vref@label{\the\c@vrcnt @vr}%
\vref@may@loop
}
+\let\vp@gerefstar\vp@geref
+
\def\vref@label#1{\@bsphack
\protected@write\@auxout{}%
{\string\newlabel{#1}{{}{\thepage}}}%
@@ -711,12 +743,19 @@
or \noexpand\vpageref by a normal \noexpand\(page)ref to
stop LaTeX running forever.}}}
\DeclareRobustCommand\vref{\@ifstar
- {\let\vref@space\relax\vr@f}%
- {\let\vref@space\nobreakspace\vr@f}}
-\def\vr@f#1{%
- \leavevmode\unskip\vref@space
- \ref{#1}%
- \vpageref[\unskip]{#1}}
+ {\vref@star}{\vr@f}}
+
+\newcommand\vref@star[2][]{%
+ \ref{#2}
+ \vpageref[#1]{#2}}
+
+\def\vr@f{%
+ \leavevmode
+ \if@vrefhandlespace
+ \unskip \nobreakspace
+ \fi
+ \vref@star % in hyperref this needs to be explicit
+}
\def\is@pos@number#1{\is@pos@num0#1\space\@nil}
\def\is@pos@num{\afterassignment\is@pos@num@ \count@}
\def\is@pos@num@#1\@nil{%
@@ -760,20 +799,75 @@
\newcommand\vpagerefrange{\@ifstar\@svpagerefrange\@vpagerefrange}
\newcommand\vrefrange[3][\reftextcurrent]
{\reftextlabelrange{#2}{#3} \vpagerefrange[{#1}]{#2}{#3}}
-\def\refstepcounter#1{\stepcounter{#1}%
- \protected@edef\@currentlabel
- {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}%
-}
-\def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1}
-\DeclareRobustCommand\Ref[1]{\protected@edef\@tempa{\ref{#1}}%
- \expandafter\MakeUppercase\@tempa}
\DeclareRobustCommand\Vref{\@ifstar
- {\let\vref@space\relax\Vr@f}%
- {\let\vref@space\nobreakspace\Vr@f}}
-\def\Vr@f#1{%
- \leavevmode\unskip\vref@space
- \Ref{#1}%
- \vpageref[\unskip]{#1}}
+ {\Vref@star}%
+ {\Vr@f}}
+\newcommand\Vref@star[2][]{%
+ \Ref{#2}
+ \vpageref[#1]{#2}}
+\def\Vr@f{%
+ \if@vrefhandlespace
+ \unskip \vref@space
+ \fi
+ \Vref@star % in hyperref this needs to be explicit
+}
+
+\DeclareRobustCommand\vpagerefcompare[2]{% label1, label2, TRUE, FALSE
+ \vrefpagenum\@tempa{#1}%
+ \vrefpagenum\@tempb{#2}%
+ \ifx\@tempa\@tempb
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+\DeclareRobustCommand\vpagerefnearby[1]{% label, TRUE, FALSE
+ \leavevmode
+ \@tempskipa\lastskip \unskip
+ \global\advance\c@vrcnt\tw@ % keep oddness to not disturb \vrefvario
+ \vref@label{\the\c@vrcnt @vn}%
+ \ifdim\@tempskipa=\z@ \else
+ \hskip\@tempskipa
+ \fi
+ \vref@pagenum\@tempa{\the\c@vrcnt @vn}%
+ \is@pos@number\@tempa
+ {%
+ \vrefpagenum\@tempb{#1}%
+ \is@pos@number\@tempb
+ {%
+ \ifcase\numexpr \@tempa -\@tempb+1\relax
+ \or \or \else \expandafter \@thirdofthree \fi
+ \@firstoftwo
+ }%
+ {\@secondoftwo}%
+ }%
+ {\@secondoftwo}%
+}
+
+\DeclareRobustCommand\vpagerefcomparenearby[2]{% label1, label2, TRUE, FALSE
+ \vrefpagenum\@tempa{#1}%
+ \is@pos@number\@tempa
+ {%
+ \vrefpagenum\@tempb{#2}%
+ \is@pos@number\@tempb
+ {%
+ \ifcase\numexpr \@tempa -\@tempb+1\relax
+ \or \or \else \expandafter \@thirdofthree \fi
+ \@firstoftwo
+ }%
+ {\@secondoftwo}%
+ }%
+ {\@secondoftwo}%
+}
+
+\ifx\labelformat\@undefined % assume we are in an older kernel
+ \def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1}
+ \DeclareRobustCommand\Ref[1]{\protected@edef\@tempa{\ref{#1}}%
+ \expandafter\MakeUppercase\@tempa}
+ \def\refstepcounter#1{\stepcounter{#1}%
+ \protected@edef\@currentlabel
+ {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}}
+\fi
\endinput
%%
%% End of file `varioref.sty'.