diff options
author | Karl Berry <karl@freefriends.org> | 2019-10-04 20:57:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-10-04 20:57:14 +0000 |
commit | 70aaae3b3c98fb6357c846ad54ce2367e9682f50 (patch) | |
tree | f0446e015c31510a11ada780ad4978dce03ad104 /Master/texmf-dist/tex/latex/tools/varioref.sty | |
parent | be53f9d0af947622afca67b99c89a90d5c08dbd4 (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.sty | 154 |
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'. |