summaryrefslogtreecommitdiff
path: root/macros/latex/required
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-10-04 03:01:00 +0000
committerNorbert Preining <norbert@preining.info>2019-10-04 03:01:00 +0000
commit9d9c04e14d0da9dd7829d0ec896aabfd50414fd8 (patch)
treef67d308a037384664193d9a2cfca27d8b0579701 /macros/latex/required
parent93c3758895674cc9ea3e8aaeeb3cf5d1bdc0e3be (diff)
CTAN sync 201910040301
Diffstat (limited to 'macros/latex/required')
-rw-r--r--macros/latex/required/graphics/README.md146
-rw-r--r--macros/latex/required/graphics/changes.txt12
-rw-r--r--macros/latex/required/graphics/color.dtx2
-rw-r--r--macros/latex/required/graphics/color.pdfbin201390 -> 201390 bytes
-rw-r--r--macros/latex/required/graphics/drivers.dtx2
-rw-r--r--macros/latex/required/graphics/drivers.pdfbin263551 -> 263552 bytes
-rw-r--r--macros/latex/required/graphics/epsfig.dtx2
-rw-r--r--macros/latex/required/graphics/epsfig.pdfbin154501 -> 154503 bytes
-rw-r--r--macros/latex/required/graphics/graphics-2017-06-25.sty526
-rw-r--r--macros/latex/required/graphics/graphics.dtx48
-rw-r--r--macros/latex/required/graphics/graphics.pdfbin282361 -> 282829 bytes
-rw-r--r--macros/latex/required/graphics/graphicx.dtx2
-rw-r--r--macros/latex/required/graphics/graphicx.pdfbin232400 -> 232399 bytes
-rw-r--r--macros/latex/required/graphics/grfguide.pdfbin310578 -> 310556 bytes
-rw-r--r--macros/latex/required/graphics/grfguide.tex2
-rw-r--r--macros/latex/required/graphics/keyval.dtx2
-rw-r--r--macros/latex/required/graphics/keyval.pdfbin222532 -> 222533 bytes
-rw-r--r--macros/latex/required/graphics/lscape.dtx2
-rw-r--r--macros/latex/required/graphics/lscape.pdfbin150124 -> 150125 bytes
-rw-r--r--macros/latex/required/graphics/rotating.dtx6
-rw-r--r--macros/latex/required/graphics/rotating.pdfbin245644 -> 245758 bytes
-rw-r--r--macros/latex/required/graphics/rotex.pdfbin162249 -> 162266 bytes
-rw-r--r--macros/latex/required/graphics/trig.dtx2
-rw-r--r--macros/latex/required/graphics/trig.pdfbin191711 -> 191712 bytes
-rw-r--r--macros/latex/required/tools/README.md89
-rw-r--r--macros/latex/required/tools/README.txt97
-rw-r--r--macros/latex/required/tools/afterpage.dtx2
-rw-r--r--macros/latex/required/tools/afterpage.ins4
-rw-r--r--macros/latex/required/tools/afterpage.pdfbin189844 -> 189866 bytes
-rw-r--r--macros/latex/required/tools/array.dtx16
-rw-r--r--macros/latex/required/tools/array.pdfbin481007 -> 481190 bytes
-rw-r--r--macros/latex/required/tools/bm.dtx14
-rw-r--r--macros/latex/required/tools/bm.ins4
-rw-r--r--macros/latex/required/tools/bm.pdfbin306362 -> 306803 bytes
-rw-r--r--macros/latex/required/tools/calc.dtx2
-rw-r--r--macros/latex/required/tools/calc.pdfbin340594 -> 340620 bytes
-rw-r--r--macros/latex/required/tools/changes.txt80
-rw-r--r--macros/latex/required/tools/dcolumn.dtx2
-rw-r--r--macros/latex/required/tools/dcolumn.pdfbin199042 -> 199062 bytes
-rw-r--r--macros/latex/required/tools/delarray.dtx2
-rw-r--r--macros/latex/required/tools/delarray.pdfbin183428 -> 183449 bytes
-rw-r--r--macros/latex/required/tools/enumerate.dtx2
-rw-r--r--macros/latex/required/tools/enumerate.pdfbin199050 -> 199071 bytes
-rw-r--r--macros/latex/required/tools/fileerr.dtx4
-rw-r--r--macros/latex/required/tools/fileerr.pdfbin180256 -> 180042 bytes
-rw-r--r--macros/latex/required/tools/fontsmpl.dtx4
-rw-r--r--macros/latex/required/tools/fontsmpl.pdfbin144816 -> 144837 bytes
-rw-r--r--macros/latex/required/tools/ftnright.dtx2
-rw-r--r--macros/latex/required/tools/ftnright.pdfbin347086 -> 346868 bytes
-rw-r--r--macros/latex/required/tools/hhline.dtx2
-rw-r--r--macros/latex/required/tools/hhline.pdfbin175718 -> 175737 bytes
-rw-r--r--macros/latex/required/tools/indentfirst.dtx4
-rw-r--r--macros/latex/required/tools/indentfirst.pdfbin144776 -> 144797 bytes
-rw-r--r--macros/latex/required/tools/layout.dtx2
-rw-r--r--macros/latex/required/tools/layout.pdfbin246929 -> 246978 bytes
-rw-r--r--macros/latex/required/tools/longtable.dtx16
-rw-r--r--macros/latex/required/tools/longtable.ins4
-rw-r--r--macros/latex/required/tools/longtable.pdfbin349851 -> 350094 bytes
-rw-r--r--macros/latex/required/tools/multicol.dtx147
-rw-r--r--macros/latex/required/tools/multicol.ins4
-rw-r--r--macros/latex/required/tools/multicol.pdfbin488764 -> 490262 bytes
-rw-r--r--macros/latex/required/tools/rawfonts.dtx4
-rw-r--r--macros/latex/required/tools/rawfonts.pdfbin135685 -> 135706 bytes
-rw-r--r--macros/latex/required/tools/shellesc.dtx9
-rw-r--r--macros/latex/required/tools/shellesc.pdfbin167011 -> 167032 bytes
-rw-r--r--macros/latex/required/tools/showkeys.dtx4
-rw-r--r--macros/latex/required/tools/showkeys.pdfbin242781 -> 242802 bytes
-rw-r--r--macros/latex/required/tools/somedefs.dtx4
-rw-r--r--macros/latex/required/tools/somedefs.pdfbin156458 -> 156478 bytes
-rw-r--r--macros/latex/required/tools/tabularx.dtx2
-rw-r--r--macros/latex/required/tools/tabularx.ins4
-rw-r--r--macros/latex/required/tools/tabularx.pdfbin254080 -> 254101 bytes
-rw-r--r--macros/latex/required/tools/theorem.dtx2
-rw-r--r--macros/latex/required/tools/theorem.pdfbin323171 -> 322979 bytes
-rw-r--r--macros/latex/required/tools/tools-overview.pdfbin68286 -> 68306 bytes
-rw-r--r--macros/latex/required/tools/tools-overview.tex7
-rw-r--r--macros/latex/required/tools/tools.ins4
-rw-r--r--macros/latex/required/tools/trace.dtx4
-rw-r--r--macros/latex/required/tools/trace.pdfbin212728 -> 212749 bytes
-rw-r--r--macros/latex/required/tools/varioref-2016-02-16.sty779
-rw-r--r--macros/latex/required/tools/varioref.dtx642
-rw-r--r--macros/latex/required/tools/varioref.ins6
-rw-r--r--macros/latex/required/tools/varioref.pdfbin335104 -> 354967 bytes
-rw-r--r--macros/latex/required/tools/verbatim.dtx2
-rw-r--r--macros/latex/required/tools/verbatim.pdfbin309038 -> 309055 bytes
-rw-r--r--macros/latex/required/tools/xr.dtx25
-rw-r--r--macros/latex/required/tools/xr.pdfbin163122 -> 163818 bytes
-rw-r--r--macros/latex/required/tools/xspace.dtx2
-rw-r--r--macros/latex/required/tools/xspace.pdfbin238006 -> 238029 bytes
89 files changed, 2162 insertions, 595 deletions
diff --git a/macros/latex/required/graphics/README.md b/macros/latex/required/graphics/README.md
index 54dbc10875..009e20da95 100644
--- a/macros/latex/required/graphics/README.md
+++ b/macros/latex/required/graphics/README.md
@@ -1,118 +1,40 @@
-## README for the Standard LaTeX `Graphics` bundle
+The LaTeX `graphics` bundle
+===========================
-This bundle consists of LaTeX2e packages written and supported by
-members of the LaTeX3 Project Team.
+Release 2019-10-01 pre-release 3
-It is a collection of LaTeX packages for:
-- producing colour
-- including graphics (eg PostScript) files
-- rotation and scaling of text
-in LaTeX documents.
+Overview
+--------
+This bundle consists of packages supporting basic color, graphics and text
+manipulation operations in LaTeX. The packages provided here are
+- `color`: Core color support
+- `graphics`: The original LaTeX graphics inclusion interface
+- `graphicx`: Extended interface for graphics inclusion
+- `lscape`: Production of landscape pages
+- `keyval`: Core key-value support for LaTeX
+- `rotating`: Support for rotating material
+- `trig`: Support for fast trigonometric calculations in TeX
-### THIS DIRECTORY CONTAINS
+plus the legacy stub `epsfig` (now subsumed into `graphics`).
-#### Support files
+Installation
+------------
-| File | Notes |
-| --- | --- |
-| README.md | This file |
-| changes.txt | Log of changes to the packages |
-| graphics.ins | Install file for docstrip |
+We no longer distribute installation instructions for the various TeX
+implementations. All modern TeX systems include `graphics` as-standard, and end
+users should in general use the release versions supplied in this way.
-#### Basic packages
+Release distribution is carried out only through the CTAN archives.
-| File           | Notes |
-| --- | --- |
-| color.dtx | Source for color package |
-| graphics.dtx | Source for graphics package |
-| trig.dtx | Source for trig package (required by graphics) |
-
-#### Extension Packages
-
-| File | Notes |
-| --- | --- |
-| graphicx.dtx | Source for graphicx package (extension of graphics) |
-| epsfig.dtx     | Source for epsfig package (extension of graphicx). |
-| rotating.dtx   | Source for rotating package (extension of graphicx). |
-| keyval.dtx | Source for keyval pacakge (required by both the above) |
-| lscape.sty | Produce landscape pages in a (mainly) portrait document |
-
-#### Driver Files
-
-| File | Notes |
-| --- | --- |
-| drivers.dtx | Source for driver files for supported drivers |
-
-#### User Documentation
-
-| File | Notes |
-| --- | --- |
-| grfguide.tex | User Guide to all the packages in this bundle |
-| | **WARNING:** *This file calls color and graphics packages without a driver option. You **must** therefore set up two files `color.cfg` and `graphics.cfg` containing (for example) `\ExecuteOptions{dvips}` before running this file.* |
-| rotex.tex | Examples of use of rotating package |
-
-
-
-### TO UNPACK THE PACKAGES
-
- latex graphics.ins
-
-This will produce the `.sty` package files.
-
-Similarly you can run
-
- latex graphics-drivers.ins
-
-to produce the `.def` driver files.
-
-Not all supported drivers are included in this file as they are
-maintained elsewhere.
-
-
-### USING THE PACKAGES
-
-Move files ending in `.sty` or `.def` to a standard TeX input directory.
-
-Make a default option for your site by creating two files `color.cfg` and `graphics.cfg`
-containing (if dvips is your default driver)
- \ExecuteOptions{dvips}
-
-You may then LaTeX the user guide by running:
-
- latex grfguide.tex
-
-
-
-### Copyright
-
-Copyright is maintained on each of these packages by the author(s)
-of the package.
-
-
-### Distribution Conditions
-
-All the files in this bundle may be distributed under the conditions
-of the LaTeX Project Public License, either version 1.3c of this
-license or (at your option) any later version. The latest version of
-this license is in
- https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
-
-The list of all files belonging to this bundle is listed above.
-
-The use of these files is otherwise unrestricted.
-
-
-### Reporting Bugs
-
-If you wish to report a problem or bug in any of these packages
-please use the
-[Issue Tracker for LaTeX2e on GitHub](https://github.com/latex3/latex2e/issues)
-and follow the guidelines that pop up if you press the `New issue` button.
+Reporting Bugs
+--------------
+If you wish to report a problem or bug in the `graphics` bundle
+please use the [Issue Tracker for LaTeX2e on
+GitHub](https://github.com/latex3/latex2e/issues)
+and follow the guidelines that pop up if you press the "New issue" button.
In particular, to check that you are really seeing a bug, please write
a short, self-contained document that shows the problem. This should
@@ -124,9 +46,19 @@ for further details, or if you need to obtain the `latexbug` package.
If the bug turns out to be with third-party software then please
contact the developer, and not us!
+License
+-------
+The contents of this bundle are distributed under the [LaTeX Project
+Public License](https://www.latex-project.org/lppl/lppl-1-3c/),
+version 1.3c or later.
-### Copyright
+Copyright
+---------
+
+Copyright is maintained on each of these packages by the author(s)
+of the package.
-This README file is copyright 1993-2017 The LaTeX3 Project.
+-----
+<p>Copyright (C) 1993-2019 The LaTeX Project <br />
diff --git a/macros/latex/required/graphics/changes.txt b/macros/latex/required/graphics/changes.txt
index 9b3edac553..0859498863 100644
--- a/macros/latex/required/graphics/changes.txt
+++ b/macros/latex/required/graphics/changes.txt
@@ -3,6 +3,18 @@ It is provided for convenience only. It therefore makes no claims to
completeness or accuracy and it contains some references to files that
are not part of the distribution.
=======================================================================
+
+#########################
+# 2019-10-01 Release
+#########################
+
+2019-07-01 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * graphics.dtx (subsection{Graphics Inclusion}):
+ Support UTF-8 and space in graphic files.
+
+#########################
+
2017-06-25 Joseph Wright <latex-bugs@latex-project.org>
* New decodearray key, adopted from older pdftex.def
diff --git a/macros/latex/required/graphics/color.dtx b/macros/latex/required/graphics/color.dtx
index d85b78349d..8de7d013a3 100644
--- a/macros/latex/required/graphics/color.dtx
+++ b/macros/latex/required/graphics/color.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% color.dtx Copyright (C) 1994--1999 David Carlisle
-%% Copyright (C) 2005--2016 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2005-2019 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
diff --git a/macros/latex/required/graphics/color.pdf b/macros/latex/required/graphics/color.pdf
index b717d3dc6d..ea3a050f54 100644
--- a/macros/latex/required/graphics/color.pdf
+++ b/macros/latex/required/graphics/color.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/drivers.dtx b/macros/latex/required/graphics/drivers.dtx
index 07c201cf87..d693ebd27b 100644
--- a/macros/latex/required/graphics/drivers.dtx
+++ b/macros/latex/required/graphics/drivers.dtx
@@ -3,7 +3,7 @@
%
%% drivers.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
%% Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%% Copyright (C) 2000--2016 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2000-2019 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
diff --git a/macros/latex/required/graphics/drivers.pdf b/macros/latex/required/graphics/drivers.pdf
index b3ddf7fb61..cf6bbd8a04 100644
--- a/macros/latex/required/graphics/drivers.pdf
+++ b/macros/latex/required/graphics/drivers.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/epsfig.dtx b/macros/latex/required/graphics/epsfig.dtx
index ba37d771cc..f9197c7b1c 100644
--- a/macros/latex/required/graphics/epsfig.dtx
+++ b/macros/latex/required/graphics/epsfig.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% epsfig.dtx Copyright (C) 1994-1996 1999 Sebastian Rahtz
-%% Copyright (C) 2000--2015,2017 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2000-2019 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
diff --git a/macros/latex/required/graphics/epsfig.pdf b/macros/latex/required/graphics/epsfig.pdf
index 2dd00588ca..18de09b6a7 100644
--- a/macros/latex/required/graphics/epsfig.pdf
+++ b/macros/latex/required/graphics/epsfig.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/graphics-2017-06-25.sty b/macros/latex/required/graphics/graphics-2017-06-25.sty
new file mode 100644
index 0000000000..361193cf32
--- /dev/null
+++ b/macros/latex/required/graphics/graphics-2017-06-25.sty
@@ -0,0 +1,526 @@
+%%
+%% This is file `graphics.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% graphics.dtx (with options: `package')
+%%
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at https://latex-project.org/bugs/
+%% (but please observe conditions on bug reports sent to that address!)
+%%
+%%
+%% graphics.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
+%% Copyright (C) 1995--2017 David Carlisle, LaTeX3 Project
+%%
+%% This file is part of the Standard LaTeX `Graphics Bundle'.
+%% It may be distributed under the terms of the LaTeX Project Public
+%% License, as described in lppl.txt in the base LaTeX distribution.
+%% Either version 1.3c or, at your option, any later version.
+%%
+%% This file has the LPPL maintenance status "maintained".
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{graphics}
+ [2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR)]
+\edef\Gin@codes{%
+ \catcode`\noexpand\^^A\the\catcode`\^^A\relax
+ \catcode`\noexpand\"\the\catcode`\"\relax
+ \catcode`\noexpand\*\the\catcode`\*\relax
+ \catcode`\noexpand\!\the\catcode`\!\relax
+ \catcode`\noexpand\:\the\catcode`\:\relax}
+\catcode`\^^A=\catcode`\%
+\@makeother\"%
+\catcode`\*=11
+\@makeother\!%
+\@makeother\:%
+\RequirePackage{trig}
+\providecommand\Grot@start{\@latex@error{Rotation not supported}\@ehc
+ \global\let\Grot@start\relax}
+\providecommand\Grot@end{}
+\providecommand\Gscale@start{\@latex@error{Scaling not supported}\@ehc
+ \global\let\Gscale@start\relax}
+\providecommand\Gscale@end{}
+\edef\Gread@BBox{\@percentchar\@percentchar BoundingBox}
+\DeclareOption{draft}{\Gin@drafttrue}
+\DeclareOption{final}{\Gin@draftfalse}
+\newif\ifGin@draft
+\DeclareOption{hiresbb}{%
+ \edef\Gread@BBox{\@percentchar\@percentchar HiResBoundingBox}}
+\DeclareOption{demo}{%
+ \AtBeginDocument{%
+ \def\Ginclude@graphics#1{%
+ \rule{\@ifundefined{Gin@@ewidth}{150pt}{\Gin@@ewidth}}%
+ {\@ifundefined{Gin@@eheight}{100pt}{\Gin@@eheight}}}}}
+\newif\ifGin@setpagesize\Gin@setpagesizetrue
+\DeclareOption{setpagesize}{\Gin@setpagesizetrue}
+\DeclareOption{nosetpagesize}{\Gin@setpagesizefalse}
+\providecommand\Gin@driver{}
+\DeclareOption{dvips}{\def\Gin@driver{dvips.def}}
+\DeclareOption{xdvi}{\ExecuteOptions{dvips}}
+\DeclareOption{dvipdf}{\def\Gin@driver{dvipdf.def}}
+\DeclareOption{dvipdfm}{\def\Gin@driver{dvipdfmx.def}}
+\DeclareOption{dvipdfmx}{\def\Gin@driver{dvipdfmx.def}}
+\DeclareOption{xetex}{\def\Gin@driver{xetex.def}}
+\DeclareOption{pdftex}{\def\Gin@driver{pdftex.def}}
+\DeclareOption{luatex}{\def\Gin@driver{luatex.def}}
+\DeclareOption{dvisvgm}{\def\Gin@driver{dvisvgm.def}}
+\DeclareOption{dvipsone}{\def\Gin@driver{dvipsone.def}}
+\DeclareOption{dviwindo}{\ExecuteOptions{dvipsone}}
+\DeclareOption{emtex}{\def\Gin@driver{emtex.def}}
+\DeclareOption{dviwin}{\def\Gin@driver{dviwin.def}}
+\DeclareOption{oztex}{\ExecuteOptions{dvips}}
+\DeclareOption{textures}{\def\Gin@driver{textures.def}}
+\DeclareOption{pctexps}{\def\Gin@driver{pctexps.def}}
+\DeclareOption{pctexwin}{\def\Gin@driver{pctexwin.def}}
+\DeclareOption{pctexhp}{\def\Gin@driver{pctexhp.def}}
+\DeclareOption{pctex32}{\def\Gin@driver{pctex32.def}}
+\DeclareOption{truetex}{\def\Gin@driver{truetex.def}}
+\DeclareOption{tcidvi}{\def\Gin@driver{tcidvi.def}}
+\DeclareOption{vtex}{\def\Gin@driver{vtex.def}}
+\DeclareOption{debugshow}{\catcode`\^^A=9 \let\GDebug\typeout}
+\InputIfFileExists{graphics.cfg}{}{}
+\DeclareOption{hiderotate}{%
+ \def\Grot@start{\begingroup\setbox\z@\hbox\bgroup}
+ \def\Grot@end{\egroup\endgroup}}
+\DeclareOption{hidescale}{%
+ \def\Gscale@start{\begingroup\setbox\z@\hbox\bgroup}
+ \def\Gscale@end{\egroup\endgroup}}
+\ProcessOptions
+\if!\Gin@driver!
+ \PackageError{graphics}
+ {No driver specified}
+ {You should make a default driver option in a file \MessageBreak
+ graphics.cfg\MessageBreak
+ eg: \protect\ExecuteOptions{textures}%
+ }
+\else
+ \PackageInfo{graphics}{Driver file: \Gin@driver}
+ \@ifundefined{ver@\Gin@driver}{\input{\Gin@driver}}{}
+\fi
+\def\Gin@llx{0}
+\let\Gin@lly\Gin@llx
+\let\Gin@urx\Gin@llx
+\let\Gin@ury\Gin@llx
+\let\Gin@nat@width\leftmarginv
+\let\Gin@nat@height\leftmarginvi
+\newif\ifGin@clip
+\newcommand\DeclareGraphicsExtensions[1]{%
+ \edef\Gin@extensions{\zap@space#1 \@empty}}
+\providecommand\Gin@extensions{}
+\def\includegraphics{%
+ \leavevmode
+ \@ifstar
+ {\Gin@cliptrue\Gin@i}%
+ {\Gin@clipfalse\Gin@i}}
+\def\Gin@i{%
+ \@ifnextchar[%]
+ \Gin@ii
+ {\Gin@bboxfalse\Ginclude@graphics}}
+\def\Gin@ii[#1]{%
+ \@ifnextchar[%]
+ {\Gin@iii[#1]}
+ {\Gin@iii[0,0][#1]}}
+\def\Gin@iii[#1,#2][#3,#4]#5{%
+ \begingroup
+ \Gin@bboxtrue
+ \Gin@defaultbp\Gin@llx{#1}%
+ \Gin@defaultbp\Gin@lly{#2}%
+ \Gin@defaultbp\Gin@urx{#3}%
+ \Gin@defaultbp\Gin@ury{#4}%
+ \Ginclude@graphics{#5}%
+ \endgroup}
+\def\Gin@defaultbp#1#2{%
+ \afterassignment\Gin@def@bp\dimen@#2bp\relax{#1}{#2}}
+\def\Gin@def@bp#1\relax#2#3{%
+ \if!#1!%
+ \def#2{#3}%
+ \else
+ \dimen@.99626\dimen@
+ \edef#2{\strip@pt\dimen@}%
+ \fi}
+\def\DeclareGraphicsRule#1#2#3#4{%
+ \edef\@tempa{\string *}\def\@tempb{#3}%
+ \expandafter\edef\csname Gin@rule@#1\endcsname##1%
+ {{#2}%
+ {\ifx\@tempa\@tempb\noexpand\Gin@ext\else#3\fi}%
+ {\ifx\indent#4\indent##1\else#4\fi}}}
+\def\graphicspath#1{\def\Ginput@path{#1}}
+\ifx\Ginput@path\@undefined
+ \let\Ginput@path\input@path
+\fi
+\def\Gin@getbase#1{%
+ \edef\Gin@tempa{%
+ \def\noexpand\@tempa####1#1\space{%
+ \def\noexpand\Gin@base{####1}}}%
+ \IfFileExists{\filename@area\filename@base#1}%
+ {\Gin@tempa
+ \expandafter\@tempa\@filef@und
+ \edef\Gin@ext{#1}}{}}%
+\let\Gin@ext\relax
+\def\Gin@sepdefault{.}
+\def\Ginclude@graphics#1{%
+ \begingroup
+ \let\input@path\Ginput@path
+ \filename@parse{#1}%
+ \ifx\filename@ext\relax
+ \@for\Gin@temp:=\Gin@extensions\do{%
+ \ifx\Gin@ext\relax
+ \Gin@getbase\Gin@temp
+ \fi}%
+ \else
+ \Gin@getbase{\Gin@sepdefault\filename@ext}%
+ \ifx\Gin@ext\relax
+ \@warning{File `#1' not found}%
+ \def\Gin@base{\filename@area\filename@base}%
+ \edef\Gin@ext{\Gin@sepdefault\filename@ext}%
+ \fi
+ \fi
+ \ifx\Gin@ext\relax
+ \@latex@error{File `#1' not found}%
+ {I could not locate the file with any of these extensions:^^J%
+ \Gin@extensions^^J\@ehc}%
+ \else
+ \@ifundefined{Gin@rule@\Gin@ext}%
+ {\ifx\Gin@rule@*\@undefined
+ \@latex@error{Unknown graphics extension: \Gin@ext}\@ehc
+ \else
+ \expandafter\Gin@setfile\Gin@rule@*{\Gin@base\Gin@ext}%
+ \fi}%
+ {\expandafter\expandafter\expandafter\Gin@setfile
+ \csname Gin@rule@\Gin@ext\endcsname{\Gin@base\Gin@ext}}%
+ \fi
+ \endgroup}
+\newif\ifGread@\Gread@true
+\def\Gin@setfile#1#2#3{%
+ \ifx\\#2\\\Gread@false\fi
+ \ifGin@bbox\else
+ \ifGread@
+ \csname Gread@%
+ \expandafter\ifx\csname Gread@#1\endcsname\relax
+ eps%
+ \else
+ #1%
+ \fi
+ \endcsname{\Gin@base#2}%
+ \else
+ \Gin@nosize{#3}%
+ \fi
+ \fi
+ \Gin@viewport@code
+ \Gin@nat@height\Gin@ury bp%
+ \advance\Gin@nat@height-\Gin@lly bp%
+ \Gin@nat@width\Gin@urx bp%
+ \advance\Gin@nat@width-\Gin@llx bp%
+ \Gin@req@sizes
+ \expandafter\ifx\csname Ginclude@#1\endcsname\relax
+ \Gin@drafttrue
+ \expandafter\ifx\csname Gread@#1\endcsname\relax
+ \@latex@error{Can not include graphics of type: #1}\@ehc
+ \global\expandafter\let\csname Gread@#1\endcsname\@empty
+ \fi
+ \fi
+ \leavevmode
+ \ifGin@draft
+ \hb@xt@\Gin@req@width{%
+ \vrule\hss
+ \vbox to \Gin@req@height{%
+ \hrule \@width \Gin@req@width
+ \vss
+ \edef\@tempa{#3}%
+ \rlap{ \ttfamily\expandafter\strip@prefix\meaning\@tempa}%
+ \vss
+ \hrule}%
+ \hss\vrule}%
+ \else
+ \@addtofilelist{#3}%
+ \ProvidesFile{#3}[Graphic file (type #1)]%
+ \setbox\z@\hbox{\csname Ginclude@#1\endcsname{#3}}%
+ \dp\z@\z@
+ \ht\z@\Gin@req@height
+ \wd\z@\Gin@req@width
+ \box\z@
+ \fi}
+\let\Gin@decode\@empty
+\def\Gin@exclamation{!}
+\let\Gin@page\@empty
+\def\Gin@pagebox{cropbox}
+\newif\ifGin@interpolate
+\let\Gin@log\wlog
+\let\Gin@req@sizes\relax
+\def\Gin@scalex{1}%
+\let\Gin@scaley\Gin@exclamation
+\let\Gin@req@height\Gin@nat@height
+\let\Gin@req@width\Gin@nat@width
+\let\Gin@viewport@code\relax
+\def\Gin@nosize#1{%
+ \@latex@error
+ {Cannot determine size of graphic in #1 (no size specified)}%
+ \@ehc}
+\newif\ifGin@bbox
+\def\Gread@generic#1#2{%
+ \edef\Gread@attr@hash{%
+ \ifx\Gin@pagebox\@empty\else
+ :\Gin@pagebox
+ \fi
+ \ifx\Gin@page\@empty\else
+ :P\Gin@page
+ \fi
+ }%
+ \@ifundefined{#1 bbox\Gread@attr@hash}%
+ {\Gread@generic@aux{#1}{#2}}
+ {%
+ \expandafter\global\expandafter\let\expandafter\@gtempa
+ \csname #1 bbox\Gread@attr@hash\endcsname
+ }%
+ \expandafter\Gread@parse@bb\@gtempa\\%
+}
+\def\Gread@generic@aux#1#2{%
+ \begingroup
+ \@tempcnta\z@
+ \loop\ifnum\@tempcnta<\@xxxii
+ \catcode\@tempcnta14 %
+ \advance\@tempcnta\@ne
+ \repeat
+ \catcode`\^^?14 %
+ \let\do\@makeother
+ \dospecials
+ \catcode`\ 10 %
+ \catcode`\^^I10 %
+ \catcode\endlinechar5 %
+ \@makeother\:%
+ \@makeother\-%
+ \immediate\openin\@inputcheck"#1" %
+ #2{#1}%
+ \ifGin@bbox
+ \expandafter\xdef\csname #1 bbox\Gread@attr@hash\endcsname{\@gtempa}%
+ \else
+ \@latex@error
+ {Cannot determine size of graphic in #1 (no BoundingBox)}%
+ \@ehc
+ \gdef\@gtempa{0 0 72 72 }%
+ \fi
+ \endgroup
+}
+\def\Gread@eps#1{%
+ \Gread@generic{#1}\Gread@eps@aux
+}
+\def\Gread@eps@aux#1{%
+ \ifeof\@inputcheck
+ \@latex@error{File `#1' not found}\@ehc
+ \else
+ \Gread@true
+ \let\@tempb\Gread@false
+ \loop
+ \read\@inputcheck to\@tempa
+ \ifeof\@inputcheck
+ \Gread@false
+ \else
+ \expandafter\Gread@find@bb\@tempa:.\\%
+ \fi
+ \ifGread@
+ \repeat
+ \immediate\closein\@inputcheck
+ \fi
+}
+\long\def\Gread@find@bb#1:#2#3\\{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\Gread@BBox
+ \Gread@test@atend#2#3()\\%
+ \fi}
+\def\Gread@test@atend#1(#2)#3\\{%
+ \def\@tempa{#2}%
+ \ifx\@tempa\Gread@atend
+ \Gread@true
+ \let\@tempb\relax
+ \else
+ \gdef\@gtempa{#1}%
+ \@tempb
+ \Gin@bboxtrue
+ \fi}
+\def\Gread@parse@bb#1 #2 #3 #4 #5\\{%
+ \Gin@defaultbp\Gin@llx{#1}%
+ \Gin@defaultbp\Gin@lly{#2}%
+ \Gin@defaultbp\Gin@urx{#3}%
+ \Gin@defaultbp\Gin@ury{#4}}%
+\def\Gread@atend{atend}
+\let\Grot@height\@ovxx
+\let\Grot@left\@ovyy
+\let\Grot@right\@ovdx
+\let\Grot@depth\@ovdy
+\let\Grot@l\@ovro
+\let\Grot@r\@ovri
+\let\Grot@h\@xdim
+\let\Grot@d\@ydim
+\let\Grot@x\@linelen
+\let\Grot@y\@dashdim
+\long\def\rotatebox#1#2{%
+ \leavevmode
+ \Grot@setangle{#1}%
+ \setbox\z@\hbox{{#2}}%
+ \Grot@x\z@
+ \Grot@y\z@
+ \Grot@box}
+\def\Grot@setangle#1{\edef\Grot@angle{#1}}
+\def\Grot@Px#1#2#3{%
+ #1\Grot@cos#2%
+ \advance#1-\Grot@sin#3}
+\def\Grot@Py#1#2#3{%
+ #1\Grot@sin#2%
+ \advance#1\Grot@cos#3}
+\def\Grot@box{%
+ \begingroup
+ \CalculateSin\Grot@angle
+ \CalculateCos\Grot@angle
+ \edef\Grot@sin{\UseSin\Grot@angle}%
+ \edef\Grot@cos{\UseCos\Grot@angle}%
+^^A \GDebug{Rotate: angle \Grot@angle, sine is \Grot@sin,
+^^A cosine is \Grot@cos}%
+ \Grot@r\wd\z@ \advance\Grot@r-\Grot@x
+ \Grot@l\z@ \advance\Grot@l-\Grot@x
+ \Grot@h\ht\z@ \advance\Grot@h-\Grot@y
+ \Grot@d-\dp\z@ \advance\Grot@d-\Grot@y
+ \ifdim\Grot@sin\p@>\z@
+ \ifdim\Grot@cos\p@>\z@
+ \Grot@Py\Grot@height \Grot@r\Grot@h%B
+ \Grot@Px\Grot@right \Grot@r\Grot@d%E
+ \Grot@Px\Grot@left \Grot@l\Grot@h%C
+ \Grot@Py\Grot@depth \Grot@l\Grot@d%D
+ \else
+ \Grot@Py\Grot@height \Grot@r\Grot@d%E
+ \Grot@Px\Grot@right \Grot@l\Grot@d%D
+ \Grot@Px\Grot@left \Grot@r\Grot@h%B
+ \Grot@Py\Grot@depth \Grot@l\Grot@h%C
+ \fi
+ \else
+ \ifdim\Grot@cos\p@<\z@
+ \Grot@Py\Grot@height \Grot@l\Grot@d%D
+ \Grot@Px\Grot@right \Grot@l\Grot@h%C
+ \Grot@Px\Grot@left \Grot@r\Grot@d%E
+ \Grot@Py\Grot@depth \Grot@r\Grot@h%B
+ \else
+ \Grot@Py\Grot@height \Grot@l\Grot@h%C
+ \Grot@Px\Grot@right \Grot@r\Grot@h%B
+ \Grot@Px\Grot@left \Grot@l\Grot@d%D
+ \Grot@Py\Grot@depth \Grot@r\Grot@d%E
+ \fi
+ \fi
+ \advance\Grot@height\Grot@y
+ \advance\Grot@depth\Grot@y
+ \Grot@Px\dimen@ \Grot@x\Grot@y
+ \Grot@Py\dimen@ii \Grot@x\Grot@y
+ \dimen@-\dimen@ \advance\dimen@-\Grot@left
+ \dimen@ii-\dimen@ii \advance\dimen@ii\Grot@y
+^^A \GDebug{Rotate: (l,r,h,d)^^J%
+^^A Original \the\Grot@l,\the\Grot@r,\the\Grot@h,\the\Grot@d,^^J%
+^^A New..... \the\Grot@left,\the\Grot@right,%
+^^A \the\Grot@height,\the\Grot@depth}%
+ \setbox\z@\hbox{%
+ \kern\dimen@
+ \raise\dimen@ii\hbox{\Grot@start\box\z@\Grot@end}}%
+ \ht\z@\Grot@height
+ \dp\z@-\Grot@depth
+ \advance\Grot@right-\Grot@left\wd\z@\Grot@right
+ \leavevmode\box\z@
+ \endgroup}
+\def\scalebox#1{%
+ \@ifnextchar[{\Gscale@box{#1}}{\Gscale@box{#1}[#1]}}
+\long\def\Gscale@box#1[#2]#3{%
+ \leavevmode
+ \def\Gscale@x{#1}\def\Gscale@y{#2}%
+ \setbox\z@\hbox{{#3}}%
+ \setbox\tw@\hbox{\Gscale@start\rlap{\copy\z@}\Gscale@end}%
+ \ifdim#2\p@<\z@
+ \ht\tw@-#2\dp\z@
+ \dp\tw@-#2\ht\z@
+ \else
+ \ht\tw@#2\ht\z@
+ \dp\tw@#2\dp\z@
+ \fi
+ \ifdim#1\p@<\z@
+ \hb@xt@-#1\wd\z@{\kern-#1\wd\z@\box\tw@\hss}%
+ \else
+ \hb@xt@#1\wd\z@{\box\tw@\kern#1\wd\z@\hss}%
+ \fi}
+\def\reflectbox{\Gscale@box-1[1]}
+\def\resizebox{%
+ \leavevmode
+ \@ifstar{\Gscale@@box\totalheight}{\Gscale@@box\height}}
+\def\Gscale@@box#1#2#3{%
+ \let\@tempa\Gin@exclamation
+ \expandafter\def\expandafter\@tempb\expandafter{\string#2}%
+ \expandafter\def\expandafter\@tempc\expandafter{\string#3}%
+ \ifx\@tempb\@tempa
+ \ifx\@tempc\@tempa
+ \toks@{\mbox}%
+ \else
+ \toks@{\Gscale@box@dd{#3}#1}%
+ \fi
+ \else
+ \ifx\@tempc\@tempa
+ \toks@{\Gscale@box@dd{#2}\width}%
+ \else
+ \toks@{\Gscale@box@dddd{#2}\width{#3}#1}%
+ \fi
+ \fi
+ \the\toks@}
+\long\def\Gscale@box@dd#1#2#3{%
+ \@begin@tempboxa\hbox{#3}%
+ \setlength\@tempdima{#1}%
+ \setlength\@tempdimb{#2}%
+ \Gscale@div\@tempa\@tempdima\@tempdimb
+ \Gscale@box\@tempa[\@tempa]{\box\@tempboxa}%
+ \@end@tempboxa}
+\long\def\Gscale@box@dddd#1#2#3#4#5{%
+ \@begin@tempboxa\hbox{#5}%
+ \setlength\@tempdima{#1}%
+ \setlength\@tempdimb{#2}%
+ \Gscale@div\@tempa\@tempdima\@tempdimb
+ \setlength\@tempdima{#3}%
+ \setlength\@tempdimb{#4}%
+ \Gscale@div\@tempb\@tempdima\@tempdimb
+ \ifGin@iso
+ \ifdim\@tempa\p@>\@tempb\p@
+ \let\@tempa\@tempb
+ \else
+ \let\@tempb\@tempa
+ \fi
+ \fi
+ \Gscale@box\@tempa[\@tempb]{\box\@tempboxa}%
+ \@end@tempboxa}
+\newif\ifGin@iso
+\def\Gscale@div#1#2#3{%
+ \setlength\dimen@{#3}%
+ \ifdim\dimen@=\z@
+ \PackageError{graphics}{Division by 0}\@eha
+ \dimen@#2%
+ \fi
+ \edef\@tempd{\the\dimen@}%
+ \setlength\dimen@{#2}%
+ \count@65536\relax
+ \ifdim\dimen@<\z@
+ \dimen@-\dimen@
+ \count@-\count@
+ \fi
+ \ifdim\dimen@>\z@
+ \loop
+ \ifdim\ifnum\count@<\tw@\maxdimen\else\dimen@\fi<8192\p@
+ \dimen@\tw@\dimen@
+ \divide\count@\tw@
+ \repeat
+ \dimen@ii\@tempd\relax
+ \divide\dimen@ii\count@
+ \divide\dimen@\dimen@ii
+ \fi
+ \edef#1{\strip@pt\dimen@}}
+\Gin@codes
+\let\Gin@codes\relax
+% alow use of current .def files
+\def\quote@name#1{"\quote@@name#1\@gobble""}
+\def\quote@@name#1"{#1\quote@@name}
+\def\unquote@name#1{\quote@@name#1\@gobble"}
+%
+\endinput
+%%
+%% End of file `graphics.sty'.
diff --git a/macros/latex/required/graphics/graphics.dtx b/macros/latex/required/graphics/graphics.dtx
index 028f065852..f2471e94bb 100644
--- a/macros/latex/required/graphics/graphics.dtx
+++ b/macros/latex/required/graphics/graphics.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% graphics.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
-%% Copyright (C) 1995--2017 David Carlisle, LaTeX3 Project
+%% Copyright (C) 1995-2019 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
@@ -14,12 +14,18 @@
%<*dtx>
\ProvidesFile{graphics.dtx}
%</dtx>
-%<package>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-%<package>\ProvidesPackage{graphics}
+%<+package>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+%<+package>\providecommand\DeclareRelease[3]{}
+%<+package>\providecommand\DeclareCurrentRelease[2]{}
+%<+package>
+%<+package>\DeclareRelease{}{2017-06-25}{graphics-2017-06-25.sty}
+%<+package>\DeclareCurrentRelease{}{2019-10-01}
+%<+package>
+%<+package>\ProvidesPackage{graphics}
%<driver> \ProvidesFile{graphics.drv}
% \fi
% \ProvidesFile{graphics.dtx}
- [2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR)]
+ [2019/07/20 v1.3b Standard LaTeX Graphics (DPC,SPQR)]
%
% \iffalse
%<*driver>
@@ -1000,8 +1006,9 @@
% \end{macro}
%
% \begin{macro}{\Gin@getbase}
-% \changes{v0.6a}{1994/11/29}
-% {remove \cs{Gin@sep}}
+% \changes{v0.6a}{1994/11/29} {remove \cs{Gin@sep}}
+% \changes{v1.3a}{2019/07/01} {Support UTF-8 and spaces}
+% \changes{v1.3b}{2019/07/20} {Delay adding quotes to filename}
% Given a possible extension, |#1|, check whether the file exists. If
% it does set |\Gin@base| and |\Gin@ext| to the filename stripped of
% the extension, and the extension, respectively.
@@ -1012,7 +1019,9 @@
\def\noexpand\Gin@base{####1}}}%
\IfFileExists{\filename@area\filename@base#1}%
{\Gin@tempa
- \expandafter\@tempa\@filef@und
+ \edef\uq@filef@und{\expandafter\unquote@name
+ \expandafter{\@filef@und}}%
+ \expandafter\@tempa\uq@filef@und
\edef\Gin@ext{#1}}{}}%
% \end{macrocode}
% \end{macro}
@@ -1043,11 +1052,29 @@
% {Add default (*) rule possibility}
% \changes{v0.6a}{1994/11/29}
% {remove \cs{Gin@sepdefault}}
+% \changes{v1.3a}{2019/07/01} {Support UTF-8 and spaces}
+% The quoting business for graphic files needs further sorting
+% out. This should be handled differently, right now we quote and
+% unquote all over the place as we still use the old code base.
+%
+% This also makes the file name displays weird!
+%
+% Guard |\detokenize| use for plain classic tex.
% \begin{macrocode}
\def\Ginclude@graphics#1{%
+ \ifx\detokenize\@undefined\else
+ \edef\Gin@extensions{\detokenize\expandafter{\Gin@extensions}}%
+ \fi
\begingroup
\let\input@path\Ginput@path
- \filename@parse{#1}%
+% \end{macrocode}
+% A lot of quote juggling going on here (room for improvements).
+% \begin{macrocode}
+ \set@curr@file{#1}%
+ \edef\uq@curr@file{\expandafter\unquote@name\expandafter{\@curr@file}}%
+ \expandafter\filename@parse\expandafter{\uq@curr@file}%
+ \edef\filename@area{\expandafter\quote@name\expandafter{\filename@area}}%
+ \edef\filename@base{\expandafter\quote@name\expandafter{\filename@base}}%
\ifx\filename@ext\relax
\@for\Gin@temp:=\Gin@extensions\do{%
\ifx\Gin@ext\relax
@@ -1381,8 +1408,11 @@
% {Improve the error message if the info file is not there.}
% \changes{v1.2a}{2017/06/01}
% {Allow for spaces in name of a file}
+% Due to the space handling code file names are now already quoted
+% so we should not add any quotes around \verb=#1= any more.
+% \changes{v1.3b}{2019/07/20} {add quotes here again}
% \begin{macrocode}
- \immediate\openin\@inputcheck"#1" %
+ \immediate\openin\@inputcheck\quote@name{#1} %
#2{#1}%
% \end{macrocode}
% \changes{v0.3i}{1994/03/23}
diff --git a/macros/latex/required/graphics/graphics.pdf b/macros/latex/required/graphics/graphics.pdf
index 5d018d9219..feac0f2953 100644
--- a/macros/latex/required/graphics/graphics.pdf
+++ b/macros/latex/required/graphics/graphics.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/graphicx.dtx b/macros/latex/required/graphics/graphicx.dtx
index aad8460ac5..4134c4eed1 100644
--- a/macros/latex/required/graphics/graphicx.dtx
+++ b/macros/latex/required/graphics/graphicx.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% graphicx.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
-%% Copyright (C) 1995--2015,2017 David Carlisle, LaTeX3 Project
+%% Copyright (C) 1995-2019 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
diff --git a/macros/latex/required/graphics/graphicx.pdf b/macros/latex/required/graphics/graphicx.pdf
index f957612356..d31535391e 100644
--- a/macros/latex/required/graphics/graphicx.pdf
+++ b/macros/latex/required/graphics/graphicx.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/grfguide.pdf b/macros/latex/required/graphics/grfguide.pdf
index c7e94d774b..42e67690ab 100644
--- a/macros/latex/required/graphics/grfguide.pdf
+++ b/macros/latex/required/graphics/grfguide.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/grfguide.tex b/macros/latex/required/graphics/grfguide.tex
index b00a86d307..19888db741 100644
--- a/macros/latex/required/graphics/grfguide.tex
+++ b/macros/latex/required/graphics/grfguide.tex
@@ -1,5 +1,5 @@
%% grfguide.tex Copyright (C) 1994 1995 1996 1998 1999 David Carlisle
-%% Copyright (C) 2005 2014 2016 2017 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2005-2019 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
diff --git a/macros/latex/required/graphics/keyval.dtx b/macros/latex/required/graphics/keyval.dtx
index f656961d0b..1e1581eee3 100644
--- a/macros/latex/required/graphics/keyval.dtx
+++ b/macros/latex/required/graphics/keyval.dtx
@@ -1,7 +1,7 @@
%
% \iffalse
%% keyval.dtx Copyright (C) 1993 1994 1995 1997 1998 1999 David Carlisle
-%% Copyright (C) 2000--2015 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2000-2019 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
diff --git a/macros/latex/required/graphics/keyval.pdf b/macros/latex/required/graphics/keyval.pdf
index e04af31b5a..402bdff918 100644
--- a/macros/latex/required/graphics/keyval.pdf
+++ b/macros/latex/required/graphics/keyval.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/lscape.dtx b/macros/latex/required/graphics/lscape.dtx
index 733e183ee6..a5a3dc3220 100644
--- a/macros/latex/required/graphics/lscape.dtx
+++ b/macros/latex/required/graphics/lscape.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% lscape.dtx Copyright (C) 1994 1999-2000 David Carlisle
-%% Copyright (C) 2000--2015 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2000-2019 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
diff --git a/macros/latex/required/graphics/lscape.pdf b/macros/latex/required/graphics/lscape.pdf
index 50843756bb..2f12821edb 100644
--- a/macros/latex/required/graphics/lscape.pdf
+++ b/macros/latex/required/graphics/lscape.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/rotating.dtx b/macros/latex/required/graphics/rotating.dtx
index 41bd399d4e..149c19d049 100644
--- a/macros/latex/required/graphics/rotating.dtx
+++ b/macros/latex/required/graphics/rotating.dtx
@@ -3,9 +3,9 @@
%
%
% File: rotating.dtx
-%% Copyright 1995--1999 Sebastian Rahtz and Leonor Barroca
-%% Copyright 2001--2003,2007--2009 Robin Fairbairns
-%% Copyright 2016 LaTeX3 Project
+%% Copyright (C) 1995--1999 Sebastian Rahtz and Leonor Barroca
+%% Copyright (C) 2001--2003,2007--2009 Robin Fairbairns
+%% Copyright (C) 2016-2019 LaTeX3 Project
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/graphics/rotating.pdf b/macros/latex/required/graphics/rotating.pdf
index 3283a885dc..262421e49c 100644
--- a/macros/latex/required/graphics/rotating.pdf
+++ b/macros/latex/required/graphics/rotating.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/rotex.pdf b/macros/latex/required/graphics/rotex.pdf
index 0eea374668..9219ab2d36 100644
--- a/macros/latex/required/graphics/rotex.pdf
+++ b/macros/latex/required/graphics/rotex.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/trig.dtx b/macros/latex/required/graphics/trig.dtx
index 712db13ba2..2b152578ad 100644
--- a/macros/latex/required/graphics/trig.dtx
+++ b/macros/latex/required/graphics/trig.dtx
@@ -1,6 +1,6 @@
% \iffalse
%% File: trig.dtx Copyright (C) 1993 1994 1995 1996 1997 1999 David Carlisle
-%% Copyright (C) 2000--2015 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2000-2019 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
diff --git a/macros/latex/required/graphics/trig.pdf b/macros/latex/required/graphics/trig.pdf
index c851ce2a55..e7317be6e8 100644
--- a/macros/latex/required/graphics/trig.pdf
+++ b/macros/latex/required/graphics/trig.pdf
Binary files differ
diff --git a/macros/latex/required/tools/README.md b/macros/latex/required/tools/README.md
index cbd8f80e40..aa0e7c9f46 100644
--- a/macros/latex/required/tools/README.md
+++ b/macros/latex/required/tools/README.md
@@ -1,67 +1,30 @@
-## README for the `tools` bundle
+The LaTeX `tools` bundle
+========================
+Release 2019-10-01 pre-release 3
-This bundle consists of LaTeX2e packages written and supported by
-members of the LaTeX3 Project Team.
+Overview
+--------
-The documented source code of each package is in a file with extension
-`.dtx`. Running LaTeX on the file `tools.ins` will produce all the
-package files, and some associated files.
+This bundle consists of packages providing a range of basic tools for
+LaTeX users. It is a required part of a LaTeX installation.
-So you should first process `tools.ins`:
+Installation
+------------
- latex tools.ins
+We no longer distribute installation instructions for the various TeX
+implementations. All modern TeX systems include `tools` as-standard, and end
+users should in general use the release versions supplied in this way.
-The files with extensions `.sty` and `.tex` (including a file whose
-name is just `.tex`) should then be moved to a directory on LaTeX's
-standard input path.
+Release distribution is carried out only through the CTAN archives.
-Documentation for the individual packages may then be obtained by
-running LaTeX on the `.dtx` files.
-
-For example:
-
- latex array.dtx
-
-will produce the file `array.pdf`, documenting the array package.
-
-
-The file `manifest.txt` contains a list of the main files in the
-distribution together with a one-or-two line summary of each package.
-
-
-### Copyright
-
-Copyright is maintained on each of these packages by the author(s)
-of the package.
-
-
-### Distribution Conditions
-
-All the files in this bundle may be distributed under the conditions
-of the LaTeX Project Public License, either version 1.3c of this
-license or (at your option) any later version. The latest version of
-this license is in
- https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
-
-The list of all files belonging to the Tools Bundle is
-given in the file `manifest.txt`.
-
-Commercial users of the `multicol` package are asked to read the
-notice at the head of the file multicol.dtx.
-
-The use of these files is otherwise unrestricted.
-
-
-### Reporting Bugs
-
-If you wish to report a problem or bug in any of these packages
-please use the
-[Issue Tracker for LaTeX2e on GitHub](https://github.com/latex3/latex2e/issues)
-and follow the guidelines that pop up if you press the `New issue` button.
+Reporting Bugs
+--------------
+If you wish to report a problem or bug in the `tools` bundle
+please use the [Issue Tracker for LaTeX2e on
+GitHub](https://github.com/latex3/latex2e/issues)
+and follow the guidelines that pop up if you press the "New issue" button.
In particular, to check that you are really seeing a bug, please write
a short, self-contained document that shows the problem. This should
@@ -73,9 +36,19 @@ for further details, or if you need to obtain the `latexbug` package.
If the bug turns out to be with third-party software then please
contact the developer, and not us!
+License
+-------
+The contents of this bundle are distributed under the [LaTeX Project
+Public License](https://www.latex-project.org/lppl/lppl-1-3c/),
+version 1.3c or later.
-### Copyright
+Copyright
+---------
+
+Copyright is maintained on each of these packages by the author(s)
+of the package.
-This README file is copyright 1993-2017 The LaTeX3 Project.
+-----
+<p>Copyright (C) 1993-2019 The LaTeX Project <br />
diff --git a/macros/latex/required/tools/README.txt b/macros/latex/required/tools/README.txt
deleted file mode 100644
index 1020fac5a4..0000000000
--- a/macros/latex/required/tools/README.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-
-%
-% Copyright 1993-2017
-% The LaTeX3 Project and any individual authors listed elsewhere
-% in this file.
-%
-% This file is part of the Standard LaTeX `Tools Bundle'.
-% -------------------------------------------------------
-%
-% It 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.
-% The latest version of this license is in
-% https://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% The list of all files belonging to the LaTeX `Tools Bundle' is
-% given in the file `manifest.txt'.
-%
-
-
-README for the `tools' bundle
-=============================
-
-This `bundle' consists of LaTeX2e packages written and supported by
-members of the LaTeX3 Project Team.
-
-The documented source code of each package is in a file with extension
-`.dtx'. Running LaTeX on the file tools.ins will produce all the
-package files, and some associated files.
-
-So you should first process tools.ins:
-
- latex tools.ins
-
-The files with extensions `.sty' and `.tex' (including a file whose
-name is just `.tex') should then be moved to a directory on LaTeX's
-standard input path.
-
-See the Note at the end of this file if you have problems processing
-the tools.ins file.
-
-Documentation for the individual packages may then be obtained by
-running LaTeX on the `.dtx' files.
-
-For example:
-
- latex array.dtx
-
-will produce the file array.dvi, documenting the array package.
-
-
-The file manifest.txt contains a list of the main files in the
-distribution together with a one-or-two line summary of each package.
-
-
-Copyright
-=========
-Copyright is maintained on each of these packages by the author(s)
-of the package.
-
-
-Distribution Conditions
-=======================
-
-All the files in this bundle may be distributed under the conditions
-of the LaTeX Project Public License, either version 1.1 of this
-license or (at your option) any later version. The latest version of
-this license is in
- https://www.latex-project.org/lppl.txt
-and version 1.1 or later is part of all distributions of LaTeX
-version 1999/06/01 or later.
-
-The list of all files belonging to the `Tools Bundle' is
-given in the file `manifest.txt'.
-
-Commercial users of the multicol package are asked to read the
-notice at the head of the file multicol.dtx.
-
-The use of these files is otherwise unrestricted.
-
-
-Reporting Bugs
-==============
-
-If you wish to report a problem or bug in any of these packages, use
-the latexbug.tex program that comes with the standard LaTeX
-distribution. Please ensure that you enter `tools' category when
-prompted with a menu of categories, so that the message will be
-automatically forwarded to the appropriate part of our database.
-
-When reporting bugs, please produce a small test file that shows the
-problem, and ensure that you are using the current version of the
-package, and of the base LaTeX software.
-
-
diff --git a/macros/latex/required/tools/afterpage.dtx b/macros/latex/required/tools/afterpage.dtx
index 01817368c0..3fa341aa53 100644
--- a/macros/latex/required/tools/afterpage.dtx
+++ b/macros/latex/required/tools/afterpage.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2014
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/afterpage.ins b/macros/latex/required/tools/afterpage.ins
index 2f704e10d7..9764bdac6d 100644
--- a/macros/latex/required/tools/afterpage.ins
+++ b/macros/latex/required/tools/afterpage.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 1993-2017
+%% Copyright (C) 1993-2019
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
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.
diff --git a/macros/latex/required/tools/afterpage.pdf b/macros/latex/required/tools/afterpage.pdf
index 9cec0bfad4..2adbee3d82 100644
--- a/macros/latex/required/tools/afterpage.pdf
+++ b/macros/latex/required/tools/afterpage.pdf
Binary files differ
diff --git a/macros/latex/required/tools/array.dtx b/macros/latex/required/tools/array.dtx
index ba92928941..5590b0a136 100644
--- a/macros/latex/required/tools/array.dtx
+++ b/macros/latex/required/tools/array.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2018
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -29,10 +29,10 @@
%<+package>\providecommand\DeclareCurrentRelease[2]{}
%<+package>
%<+package>\DeclareRelease{}{2016-10-06}{array-2016-10-06.sty}
-%<+package>\DeclareCurrentRelease{}{2018-04-30}
+%<+package>\DeclareCurrentRelease{}{2019-10-01}
%<+package>
%<+package>\ProvidesPackage{array}
-%<+package> [2018/12/30 v2.4k Tabular extension package (FMi)]
+%<+package> [2019/08/31 v2.4l Tabular extension package (FMi)]
%
% \fi
%
@@ -2513,7 +2513,15 @@
% the list "\NC@list".
% \begin{macrocode}
\@ifundefined{NC@find@\NC@char}%
- {\@tfor\next:=<>clrmbp@!|\do{\if\noexpand\next\NC@char
+ {\@tfor\next:=<>clrmbp@!|\do
+ {%
+% \end{macrocode}
+% We use \cs{noexpand} on the tokens from the list in case one or
+% the other (typically \texttt{@}, \texttt{!} or \texttt{|}) has
+% been made active.
+% \changes{v2.4l}{2019/08/31}{Add a necessary \cs{expandafter} (github/148)}
+% \begin{macrocode}
+ \if\expandafter\noexpand\next\NC@char
\PackageWarning{array}%
{Redefining primitive column \NC@char}\fi}%
\NC@list\expandafter{\the\NC@list\NC@do#1}}%
diff --git a/macros/latex/required/tools/array.pdf b/macros/latex/required/tools/array.pdf
index e2320dfc79..0982ad55fc 100644
--- a/macros/latex/required/tools/array.pdf
+++ b/macros/latex/required/tools/array.pdf
Binary files differ
diff --git a/macros/latex/required/tools/bm.dtx b/macros/latex/required/tools/bm.dtx
index b8be6530eb..2216dcea07 100644
--- a/macros/latex/required/tools/bm.dtx
+++ b/macros/latex/required/tools/bm.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2017
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -22,7 +22,7 @@
% \fi
%
% \iffalse
-%% Copyright 1996 1997 1998 1999 2002 2003 2004 2016 2017
+%% Copyright 1996 1997 1998 1999 2002 2003 2004 2016 2017 2019
%% David Carlisle Frank Mittelbach
%%
%% Development of this package was commissioned by Y&Y Inc.
@@ -36,7 +36,7 @@
%<driver>\ProvidesFile{bm.drv}
% \fi
% \ProvidesFile{bm.dtx}
- [2017/01/16 v1.2c Bold Symbol Support (DPC/FMi)]
+ [2019/07/24 v1.2d Bold Symbol Support (DPC/FMi)]
%
% \iffalse
%<*driver>
@@ -699,6 +699,8 @@
% \changes{v1.0d}{1997/11/15}
% {extra code to support prime lookahead and breqn}
% \changes{v1.0h}{2002/11/22}{Pass math version as third (new) argument}
+% \changes{v1.2d}{2019/07/24}
+% {guard against active underscore}
%
% |\bm| is pretty much |\bmdefine\bm@command| followed by executing
% |\bm@command|. It would in principle be possible to execute the
@@ -713,6 +715,7 @@
% \begin{macrocode}
\begingroup
\catcode`\'=\active
+\catcode`\_=\active
\@firstofone{\endgroup
\def\bm@general#1#2#3#4#5{%
\begingroup
@@ -764,8 +767,13 @@
% |'| is locally active for this definition.
% \changes{v1.0d}{1997/11/15}
% {prime code added}
+% \changes{v1.0d}{1997/11/15}
+% {prime code added}
+% \changes{v1.2d}{2019/07/24}
+% {guard against active underscore}
% \begin{macrocode}
\let\bm@prime\copy
+ \let_\relax
\def'{\bm@prime\prime\relax}%
% \end{macrocode}
% For optional argument commands. This expandable version of
diff --git a/macros/latex/required/tools/bm.ins b/macros/latex/required/tools/bm.ins
index 8e6b2b1075..a148cb93ef 100644
--- a/macros/latex/required/tools/bm.ins
+++ b/macros/latex/required/tools/bm.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 1993-2017
+%% Copyright (C) 1993-2019
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
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.
diff --git a/macros/latex/required/tools/bm.pdf b/macros/latex/required/tools/bm.pdf
index d2ab8ca3d5..271d209cd3 100644
--- a/macros/latex/required/tools/bm.pdf
+++ b/macros/latex/required/tools/bm.pdf
Binary files differ
diff --git a/macros/latex/required/tools/calc.dtx b/macros/latex/required/tools/calc.dtx
index ce6aeae034..0bc90f736b 100644
--- a/macros/latex/required/tools/calc.dtx
+++ b/macros/latex/required/tools/calc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2017
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/calc.pdf b/macros/latex/required/tools/calc.pdf
index d34692b29c..acb3296ee3 100644
--- a/macros/latex/required/tools/calc.pdf
+++ b/macros/latex/required/tools/calc.pdf
Binary files differ
diff --git a/macros/latex/required/tools/changes.txt b/macros/latex/required/tools/changes.txt
index 977b7aa4fb..a8ff7087b5 100644
--- a/macros/latex/required/tools/changes.txt
+++ b/macros/latex/required/tools/changes.txt
@@ -6,6 +6,46 @@ are not part of the distribution.
=======================================================================
#########################
+# 2019-10-01 Release
+#########################
+
+2019-09-09 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * varioref.dtx (subsection{Options}:
+ Option arabic added
+
+2019-08-31 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * array.dtx: Add a necessary \expandafter so that redefinitions
+ of primitive specifiers give a warning (github/148)
+
+2019-08-25 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * varioref.dtx: \labelformat and \Ref now available in the kernel
+ so removed from this package but only if running on new kernel
+
+ (subsection{Options}):
+ Provide options space and nospace
+
+ (subsection{Defining the main macros}):
+ Don't drop a preceding space completely but reinsert it later
+ after setting a label;
+ Command \vp@gerefstar, \vref@star and \Vref@star added to support
+ hyperref better
+
+ (subsubsection{Supporting ranges}):
+ Added \vpagerefcompare, \vpagrefnearby and \vpagerefcomparenearby
+
+2019-03-01 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * multicol.dtx (subsection{The output routines}):
+ Provide minrows counter for balancing.
+
+2019-02-06 David Carlisle <David.Carlisle@latex-project.org>
+
+ * longtable.dtx: Document the extra color groups
+
+#########################
# 2019-01-05 Release
#########################
@@ -22,7 +62,7 @@ are not part of the distribution.
2018-12-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
- * multicol.dtx (subsection{The output routines}]):
+ * multicol.dtx (subsection{The output routines}):
Removed dead code, the case where this can go wrong is too
obscure to worry about it (gh/101)
@@ -412,7 +452,7 @@ are not part of the distribution.
2005-11-26 Frank Mittelbach <latex-bugs@latex-project.org>
* varioref.dtx: Single hyphen rather than -- in range for spanish
- an galician.
+ and galician.
2005-11-10 Frank Mittelbach <latex-bugs@latex-project.org>
@@ -454,7 +494,7 @@ are not part of the distribution.
* varioref.dtx: small change in italian.
small fix in german and ngerman (pr/3793)
-
+
2005-06-09 Frank Mittelbach <latex-bugs@latex-project.org>
* varioref.dtx: fixed bug in Dutch localization (pr/3791)
@@ -471,7 +511,7 @@ are not part of the distribution.
2005-04-09 Frank Mittelbach <latex-bugs@latex-project.org>
* varioref.dtx: Basque defaults added (by I\~naki Larra\~naga
- Murgoitio)
+ Murgoitio)
2004-12-07 Morten Hoegholm <latex-bugs@latex-project.org>
@@ -485,7 +525,7 @@ are not part of the distribution.
2004-07-03 Frank Mittelbach <latex-bugs@latex-project.org>
* multicol.dtx: fixing errors that happen only if multicol is
- compiled with a special combination of docstrip modules.
+ compiled with a special combination of docstrip modules.
2004-05-08 Frank Mittelbach <latex-bugs@latex-project.org>
@@ -540,7 +580,7 @@ are not part of the distribution.
2003-03-29 Frank Mittelbach <latex-bugs@latex-project.org>
- * varioref.dtx (subsection{Options}):
+ * varioref.dtx (subsection{Options}):
Afrikaans option contributed by Danie Els <dnjels@sun.ac.za>.
2003-03-18 Frank Mittelbach <latex-bugs@latex-project.org>
@@ -549,19 +589,19 @@ are not part of the distribution.
2003-03-15 Frank Mittelbach <latex-bugs@latex-project.org>
- * multicol.dtx:
+ * multicol.dtx:
Further corrections to the micro-spacing around the boxes produced
by multicols, so that grid typesetting (given right values for
other parameters) becomes a possibility.
Also added option "grid" which currently does nothing except
producing a warning if the grid might got lost.
-
+
2003-02-17 Frank Mittelbach <latex-bugs@latex-project.org>
- * multicol.dtx:
+ * multicol.dtx:
Add a kern to cancel potential depth of previous line at the
beginning of a multicols and also suppsed \lineskip
-
+
\multicolovershoot set back to 0pt as a default 2pt was simply
wrong in some applications (pr/3465)
@@ -597,7 +637,7 @@ are not part of the distribution.
style (pr/3414)
* varioref.dtx: Use \vpageref inside \ref not \@vpageref
- to get spacing correct (pr/3403)
+ to get spacing correct (pr/3403)
2002-06-14 Frank Mittelbach <latex-bugs@latex-project.org>
@@ -613,7 +653,7 @@ are not part of the distribution.
\renewcommand\reftextfaceafter {on page~\thevpagerefnum}
texts for "slovak" and "slovene" options added
-
+
2001-09-04 Frank Mittelbach <latex-bugs@latex-project.org>
* varioref.dtx: correct typo in name \vref -> \vr@f
@@ -624,7 +664,7 @@ are not part of the distribution.
2001-05-28 Chris Rowley <latex-bugs@latex-project.org>
- * dcolumn.dtx:
+ * dcolumn.dtx:
Documentation of centring improved (pr/3315)
@@ -685,13 +725,13 @@ are not part of the distribution.
2000-06-11 Frank Mittelbach <latex-bugs@latex-project.org>
- * multicol.dtx (subsection{The output routines}]): when
+ * multicol.dtx (subsection{The output routines}): when
doing boxed mode do not restrict height of columns to \@colroom
(pr/3212)
2000-05-05 Frank Mittelbach <latex-bugs@latex-project.org>
- * multicol.dtx (subsection{Starting and ): Detect and fix
+ * multicol.dtx (subsection{Starting and ): Detect and fix
problem if a multicols ends at the top of a page
2000-04-16 Frank Mittelbach <latex-bugs@latex-project.org>
@@ -735,7 +775,7 @@ are not part of the distribution.
1999-07-19 Frank Mittelbach <latex-bugs@latex-project.org>
- * multicol.dtx:
+ * multicol.dtx:
Added some additional tracing code.
When balancing check that last column doesn't contain a forced
page break; if it does reject the solution.
@@ -758,7 +798,7 @@ are not part of the distribution.
1999-05-26 Frank Mittelbach <latex-bugs@latex-project.org>
- * multicol.dtx (subsection{Manual column breaking}):
+ * multicol.dtx (subsection{Manual column breaking}):
Added a \columnbreak command to allow manual column breaks.
1999-05-01 Frank Mittelbach <latex-bugs@latex-project.org>
@@ -1433,7 +1473,7 @@ Wed Jul 10 11:15:30 1996 David Carlisle <carlisle@cs.man.ac.uk>
1994-10-15 Frank Mittelbach <latex-bugs@latex-project.org>
* array.dtx (subsection{Support for ...):
- Added \firsthline and \lasthline from Companion.
+ Added \firsthline and \lasthline from Companion.
1994-10-03 Frank Mittelbach <latex-bugs@latex-project.org>
@@ -1478,7 +1518,7 @@ Wed Jul 10 11:15:30 1996 David Carlisle <carlisle@cs.man.ac.uk>
1994-08-26 Frank Mittelbach <latex-bugs@latex-project.org>
- * multicol.dtx (subsection{The output routines}]):
+ * multicol.dtx (subsection{The output routines}):
Check explicitly for void boxes before assigning the current column
width to their width, because void boxes will not change.
Extract the kept marks before adding a penalty -10000 to the output box
@@ -1534,7 +1574,7 @@ Wed Jul 10 11:15:30 1996 David Carlisle <carlisle@cs.man.ac.uk>
1994-06-07 Frank Mittelbach <latex-bugs@latex-project.org>
- * multicol.dtx (section{New macros and hacks for version 1.2}]):
+ * multicol.dtx (section{New macros and hacks for version 1.2}):
Updated float commands to contain \color@endgroup etc. so
that they work together with the color.sty package.
(Found by SPQR)
diff --git a/macros/latex/required/tools/dcolumn.dtx b/macros/latex/required/tools/dcolumn.dtx
index ea3dddc343..38a4ab0da2 100644
--- a/macros/latex/required/tools/dcolumn.dtx
+++ b/macros/latex/required/tools/dcolumn.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2014
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/dcolumn.pdf b/macros/latex/required/tools/dcolumn.pdf
index 62899edd4d..bf17f37799 100644
--- a/macros/latex/required/tools/dcolumn.pdf
+++ b/macros/latex/required/tools/dcolumn.pdf
Binary files differ
diff --git a/macros/latex/required/tools/delarray.dtx b/macros/latex/required/tools/delarray.dtx
index 79d69e1b0c..8814fc2a58 100644
--- a/macros/latex/required/tools/delarray.dtx
+++ b/macros/latex/required/tools/delarray.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2014
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/delarray.pdf b/macros/latex/required/tools/delarray.pdf
index 0d0f227b7e..e83d0e250e 100644
--- a/macros/latex/required/tools/delarray.pdf
+++ b/macros/latex/required/tools/delarray.pdf
Binary files differ
diff --git a/macros/latex/required/tools/enumerate.dtx b/macros/latex/required/tools/enumerate.dtx
index 43976903e7..984d36d415 100644
--- a/macros/latex/required/tools/enumerate.dtx
+++ b/macros/latex/required/tools/enumerate.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2016
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/enumerate.pdf b/macros/latex/required/tools/enumerate.pdf
index 06f8279326..7feab7548b 100644
--- a/macros/latex/required/tools/enumerate.pdf
+++ b/macros/latex/required/tools/enumerate.pdf
Binary files differ
diff --git a/macros/latex/required/tools/fileerr.dtx b/macros/latex/required/tools/fileerr.dtx
index 089149df97..3b5895a5f6 100644
--- a/macros/latex/required/tools/fileerr.dtx
+++ b/macros/latex/required/tools/fileerr.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
-% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
-% 2006 2008 2009
+% Copyright (C) 1993-2019
+%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/required/tools/fileerr.pdf b/macros/latex/required/tools/fileerr.pdf
index 95ee1d706a..52def594d2 100644
--- a/macros/latex/required/tools/fileerr.pdf
+++ b/macros/latex/required/tools/fileerr.pdf
Binary files differ
diff --git a/macros/latex/required/tools/fontsmpl.dtx b/macros/latex/required/tools/fontsmpl.dtx
index 5c8af97e7e..961bdda71f 100644
--- a/macros/latex/required/tools/fontsmpl.dtx
+++ b/macros/latex/required/tools/fontsmpl.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
-% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
-% 2006 2008 2009
+% Copyright (C) 1993-2019
+%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/required/tools/fontsmpl.pdf b/macros/latex/required/tools/fontsmpl.pdf
index 28c71aec26..c24340e2bb 100644
--- a/macros/latex/required/tools/fontsmpl.pdf
+++ b/macros/latex/required/tools/fontsmpl.pdf
Binary files differ
diff --git a/macros/latex/required/tools/ftnright.dtx b/macros/latex/required/tools/ftnright.dtx
index 31b3033522..5739172f85 100644
--- a/macros/latex/required/tools/ftnright.dtx
+++ b/macros/latex/required/tools/ftnright.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2016
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/ftnright.pdf b/macros/latex/required/tools/ftnright.pdf
index 41fbf65b7d..dbdb971230 100644
--- a/macros/latex/required/tools/ftnright.pdf
+++ b/macros/latex/required/tools/ftnright.pdf
Binary files differ
diff --git a/macros/latex/required/tools/hhline.dtx b/macros/latex/required/tools/hhline.dtx
index 6d08658ef9..1da01d757b 100644
--- a/macros/latex/required/tools/hhline.dtx
+++ b/macros/latex/required/tools/hhline.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2014
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/hhline.pdf b/macros/latex/required/tools/hhline.pdf
index de167c7b3c..7b0879e6be 100644
--- a/macros/latex/required/tools/hhline.pdf
+++ b/macros/latex/required/tools/hhline.pdf
Binary files differ
diff --git a/macros/latex/required/tools/indentfirst.dtx b/macros/latex/required/tools/indentfirst.dtx
index 6d9a564e58..16b99653cd 100644
--- a/macros/latex/required/tools/indentfirst.dtx
+++ b/macros/latex/required/tools/indentfirst.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
-% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
-% 2006 2008 2009
+% Copyright (C) 1993-2019
+%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/required/tools/indentfirst.pdf b/macros/latex/required/tools/indentfirst.pdf
index 8372244456..3c3648d20c 100644
--- a/macros/latex/required/tools/indentfirst.pdf
+++ b/macros/latex/required/tools/indentfirst.pdf
Binary files differ
diff --git a/macros/latex/required/tools/layout.dtx b/macros/latex/required/tools/layout.dtx
index 40f790aed9..848eb54fb2 100644
--- a/macros/latex/required/tools/layout.dtx
+++ b/macros/latex/required/tools/layout.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2014
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/layout.pdf b/macros/latex/required/tools/layout.pdf
index b6bfa427bb..f2c5c980ad 100644
--- a/macros/latex/required/tools/layout.pdf
+++ b/macros/latex/required/tools/layout.pdf
Binary files differ
diff --git a/macros/latex/required/tools/longtable.dtx b/macros/latex/required/tools/longtable.dtx
index 07823b9574..9a3b5c03b8 100644
--- a/macros/latex/required/tools/longtable.dtx
+++ b/macros/latex/required/tools/longtable.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2014
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -21,7 +21,7 @@
%
% \fi
% \iffalse
-%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle
+%% File: longtable.dtx Copyright (C) 1990-2019 David Carlisle
%
%<*dtx>
\ProvidesFile{longtable.dtx}
@@ -31,7 +31,7 @@
%<driver> \ProvidesFile{longtable.drv}
% \fi
% \ProvidesFile{longtable.dtx}
- [2014/10/28 v4.11 Multi-page Table package (DPC)+ FMi change]
+ [2019/02/06 v4.12 Multi-page Table package (DPC)]
%
% \iffalse
%<*driver>
@@ -2100,8 +2100,10 @@
% \begin{macrocode}
\def\LT@startpbox#1{%
\bgroup
-%FMi
- \color@begingroup
+% \end{macrocode}
+% \changes{v4.12}{2019/02/06}{Color group to match array package}
+% \begin{macrocode}
+ \color@begingroup
\let\@footnotetext\LT@p@ftntext
\setlength\hsize{#1}%
\@arrayparboxrestore
@@ -2122,7 +2124,9 @@
% \begin{macrocode}
\def\LT@endpbox{%
\@finalstrut\@arstrutbox
-%FMi
+% \end{macrocode}
+% \changes{v4.12}{2019/02/06}{Color group to match array package}
+% \begin{macrocode}
\color@endgroup
\egroup
\the\LT@p@ftn
diff --git a/macros/latex/required/tools/longtable.ins b/macros/latex/required/tools/longtable.ins
index 381c415b62..1fc3c12dfa 100644
--- a/macros/latex/required/tools/longtable.ins
+++ b/macros/latex/required/tools/longtable.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 1993-2017
+%% Copyright (C) 1993-2019
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
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.
diff --git a/macros/latex/required/tools/longtable.pdf b/macros/latex/required/tools/longtable.pdf
index 63339d3f32..77d4e3525e 100644
--- a/macros/latex/required/tools/longtable.pdf
+++ b/macros/latex/required/tools/longtable.pdf
Binary files differ
diff --git a/macros/latex/required/tools/multicol.dtx b/macros/latex/required/tools/multicol.dtx
index fd77d6247d..d68f471fcd 100644
--- a/macros/latex/required/tools/multicol.dtx
+++ b/macros/latex/required/tools/multicol.dtx
@@ -20,7 +20,7 @@
% \iffalse This is a METACOMMENT
%
%% Package `multicol' to use with LaTeX2e
-%% Copyright 1989-2018 Frank Mittelbach
+%% Copyright 1989-2019 Frank Mittelbach
%%
%% In addition to the terms of LPPL any distributed version
%% (unchanged or modified) of multicol has to keep the statement
@@ -98,7 +98,7 @@
%<driver> \ProvidesFile{multicol.drv}
% \fi
% \ProvidesFile{multicol.dtx}
- [2018/12/27 v1.8v multicolumn formatting (FMi)]
+ [2019/03/01 v1.8w multicolumn formatting (FMi)]
%
%
%%
@@ -145,7 +145,7 @@
% \DoNotIndex{\z@}
%
% \MakeShortVerb{\|}
-% \newcommand{\mc}{{\sf multicols}}
+% \newcommand{\mc}{\textsf{multicols}}
% \newcommand{\TUB}{{\sl TUGboat\/}}
% \newcommand{\TB}{{\sl\TeX book\/}}
%
@@ -191,13 +191,15 @@
% Also added was support for |\enlargethispage|. This means it is
% now possible to request a page to be artificially enlarged or
% shortened. Note that if you enlarge pages by more than one line
-% you may have to increase the {\sf collectmore} counter value to
+% you may have to increase the \textsf{collectmore} counter value to
% ensure that enough material is being picked up.
%
% This command was used on the second page of this manual to shorten
% it by one line, in order to get rid of a number of widow lines on
% the following pages.
%
+% There are also some small enhancements to the balancing algorithm
+% including a ways to require a minimum number of rows in the result.
%
% Finally, version 1.8 adds the command |\docolaction| to help with
% more complicated actions that depend on the current column. This
@@ -278,8 +280,8 @@
% \LaTeX{}, but every use of |\twocolumn| or |\onecolumn|
% starts a new page. Moreover, the last page of two-column output
% isn't balanced and this often results in an empty, or nearly
-% empty, right column. When I started to write macros for {\sf
-% doc.sty} (see ``The {\tt doc}--Option'', \TUB\
+% empty, right column. When I started to write macros for
+% \textsf{doc.sty} (see ``The \texttt{doc}--Option'', \TUB\
% volume 10~\#2, pp.~245--273) I thought that it would be nice to
% place the index
% on the same page as the bibliography. And balancing the last page
@@ -319,7 +321,7 @@
% \enlargethispage{-1\baselineskip}
%
% \DescribeMacro\premulticols
-% As its first action, the {\sf multicols} environment measures the
+% As its first action, the \textsf{multicols} environment measures the
% current page to determine whether there is enough room for some
% portion of multicolumn output. This is controlled by the
% \meta{dimen} variable |\premulticols| which can be changed by
@@ -372,7 +374,7 @@
% \DescribeMacro\columnseprule
% Separation of columns with vertical rules is achieved by setting the
% parameter |\columnseprule| to some positive value. In this
-% article a value of {\sf.4pt} was used.
+% article a value of \textsf{.4pt} was used.
%
% \DescribeMacro\columnseprulecolor
% The color of the rules separating the columns can be specified through
@@ -410,7 +412,7 @@
% is 9999 which is less than infinity but `bad' enough for most
% paragraphs in a multicolumn environment. Changing its value should
% be done outside the \mc{} environment. Since |\tolerance| is set
-% to |\multicoltolerance| at the beginning of every {\sf multicols}
+% to |\multicoltolerance| at the beginning of every \textsf{multicols}
% environment one can locally overwrite this default by assigning
% \verb*+\tolerance = +\meta{desired value}. There also exists a
% |\multicolpretolerance| parameter holding the value for
@@ -445,7 +447,7 @@
% actually going wrong are very slim, but if this happens you can help
% \TeX{} by using a |\pagebreak| command in the final document.
% Another way to influence the behavior of \TeX{} in this respect is
-% given by the counter variable `{\sf collectmore}'. If you use the
+% given by the counter variable `\textsf{collectmore}'. If you use the
% |\setcounter| declaration to set this counter to \meta{number},
% \TeX{} will consider \meta{number} more (or less) lines before
% making its final decision. So a value of $-1$ may solve all your
@@ -459,16 +461,27 @@
% make both
% the top and bottom baselines of all columns align.
%
-% Additionally you can set another counter, the `{\sf unbalance}'
+% If there is only a small amount of material available for balancing
+% then you may end up with very few lines per column. In an extreme
+% case there may be only one line which looks distinctly odd. In that
+% case it might be better to have more material distributed to the
+% earlier columns even if that means that later columns are empty or
+% partially empty. This is controlled through the counter
+% `\textsf{minrows}' (default 1). If set to a higher value then the
+% balancing will have at least that many rows in the first column (and
+% also all further columns until it runs outs of material).
+%
+% Additionally you can set another counter, the `\textsf{unbalance}'
% counter, to some positive \meta{number}. This will make all but the
% right-most column \meta{number} of lines longer than they would
% normally have been. `Lines' in this context refer to normal text
% lines (i.e.\ one |\baselineskip| apart); thus, if your columns
% contain displays,
% for example, you may need a higher \meta{number}
-% to shift something from one column into another.
+% to shift something from one column into another. A negative value can make sense if
+% you have set \textsf{minrows} and want to locally adjust that.
%
-% Unlike `{\sf collectmore},' the `{\sf unbalance}' counter is reset
+% Unlike `\textsf{collectmore},' the `\textsf{unbalance}' counter is reset
% to zero at the end of the environment so it only applies to one
% \mc{} environment.
%
@@ -485,7 +498,7 @@
%
% The new release now measures every generated column and ignores
% solutions where at least one column has a badness being larger than
-% the value of the counter {\sf columnbadness}. The default value for
+% the value of the counter \textsf{columnbadness}. The default value for
% this counter is 10000, thus \TeX{} will accept all solutions except
% those being overfull.
% By setting the counter to a smaller value you can force the algorithm
@@ -505,7 +518,7 @@
%
% In the new release this stretching is only done if the badness of
% the final column is not larger than the value of the counter
-% {\sf finalcolumnbadness}. The default setting is 9999, thus preventing
+% \textsf{finalcolumnbadness}. The default setting is 9999, thus preventing
% the stretching for all columns that \TeX{} would consider infinitely
% bad. In that case the final column is allowed to run short which gives
% a much better result.
@@ -555,13 +568,13 @@
%
% Within the \mc{} environment the usual star float commands are
% available but their function is somewhat different as in the
-% two-column mode of standard \LaTeX. Stared floats, e.g., {\tt
-% figure*}, denote page wide floats that are handled in a similar
+% two-column mode of standard \LaTeX. Stared floats, e.g.,
+% \texttt{figure*}, denote page wide floats that are handled in a similar
% fashion as normal floats outside the \mc{} environment. However,
% they will never show up on the page where they are encountered. In
% other words, one can influence their placement by specifying a
-% combination of {\tt t}, {\tt b}, and/or {\tt p} in their optional
-% argument, but {\tt h} doesn't work because the first possible place
+% combination of \texttt{t}, \texttt{b}, and/or \texttt{p} in their optional
+% argument, but \texttt{h} doesn't work because the first possible place
% is the top of the next page. One should also note, that this means
% that their placement behavior is determined by the values of
% |\topfraction|, etc.\ rather than by |\dbl...|.
@@ -615,7 +628,7 @@
% inside `multicols' environment!}
%
% This message appears if you try to use the |\marginpar| command or
-% an unstarred version of the {\sf figure} or {\sf table} environment.
+% an unstarred version of the \textsf{figure} or \textsf{table} environment.
% Such floats will disappear!
%
% \item[] {\hspace*{-\labelsep}\tt Very deep columns!
@@ -649,7 +662,7 @@
% In this case you also get information from the balancing routine:
% the heights tried for the left and right-most columns,
% information about shrinking if the |\raggedcolumns|
-% declaration is in force and the value of the `{\sf unbalance}'
+% declaration is in force and the value of the `\textsf{unbalance}'
% counter if positive.
% \item[$\meta{number}= 3$.] Setting \meta{number}\pagebreak[2] to
% this value will additionally trace the mark handling
@@ -670,12 +683,12 @@
% \begin{multicols}{3}[\section{Prefaces to older versions}
% \subsection{Preface to version 1.4}]
% \hbadness=10000
-% Beside fixing some bugs as mentioned in the {\sf multicol.bug} file
+% Beside fixing some bugs as mentioned in the \textsf{multicol.bug} file
% this new release enhances the \mc{} environment by allowing for
% balancing in arbitrary contexts. It is now, for example, possible
-% to balance text within a \mc{} or a {\sf minipage} as shown in
-% \ref{tab:newcmds} where a {\sf multicols} environment within a
-% {\sf quote} environment was used. It is now even possible to nest
+% to balance text within a \mc{} or a \textsf{minipage} as shown in
+% \ref{tab:newcmds} where a \textsf{multicols} environment within a
+% \textsf{quote} environment was used. It is now even possible to nest
% \mc{} environments.
%
% The only restriction to such inner \mc{} environments (nested, or
@@ -699,7 +712,7 @@
% |\badness| function of \TeX3, define a faster algorithm for finding
% the right column height, etc. If somebody thinks he/she has an
% enhancement I would be pleased to learn about it. But please obey
-% the copyright notice and don't change {\sf multicol.dtx} directly!
+% the copyright notice and don't change \textsf{multicol.dtx} directly!
% \begin{table*}
% \begin{quote}
% \begin{multicols}{2}
@@ -772,7 +785,7 @@
% forbidden floats was their ultimate removal from \LaTeX{}s
% |\@freelist| so that after a few |\marginpar|s inside the \mc{}
% environment floats where disabled forever. (Thanks to Chris
-% Rowley for pointing this out.) I removed this misbehaviour and at
+% Rowley for pointing this out.) I removed this misbehavior and at
% the same time decided to allow at least floats spanning all
% columns, e.g., generated by the |figure*| environment. You can
% see the new functionality in table~\ref{tab:newcmds} which was
@@ -787,7 +800,7 @@
% |\emergencystretch| \meta{dimen} register provided in the
% new \TeX{} 3.0. The first argument is the number of columns and
% the second one is the current |\hsize|. At the moment the
-% default definition is $4\mbox{\tt pt} \times |#1|$, i.e.\ the
+% default definition is $4\texttt{pt} \times |#1|$, i.e.\ the
% |\hsize| isn't used at all. But maybe there are better
% formulae.
%
@@ -799,7 +812,7 @@
% \end{quote}
% \vspace*{-1ex}
% \vspace*{-0ex}
-% \caption[]{The new commands of {\sf multicol.sty} version 1.2.
+% \caption[]{The new commands of \textsf{multicol.sty} version 1.2.
% Both commands might be removed if good solutions to these
% open problems are found. I hope that these commands will
% prevent that nearly identical style files derived from
@@ -845,8 +858,7 @@
%
% The next bit of code contains the documentation driver file for
% \TeX{}, i.e., the file that will produce the documentation you are
-% currently reading. It will be extracted from this file by the {\tt
-% docstrip} program.
+% currently reading. It will be extracted from this file by the \texttt{docstrip} program.
% Since this is the first code in this file one can produce the
% documentation
% simply by running \LaTeX{} on the \texttt{.dtx} file.
@@ -1149,7 +1161,7 @@
% \end{macrocode}
% Now we output the first argument and produce vertical space
% above the columns. (Note that this argument corresponds to the
-% first optional argument of the {\sf multicols} environment.)
+% first optional argument of the \textsf{multicols} environment.)
% For many releases this argument was typeset in a group to get
% a similar effect as |\twocolumn[..]| where the argument is
% also implicitly surrounded by braces. However, this conflicts
@@ -1465,7 +1477,7 @@
% Finally we handle the footnote insertions. We have to multiply
% the magnification factor and the extra skip by the number of
% columns since each footnote reduces the space for every column
-% (remember that we have pagewide footnotes). If, on the other
+% (remember that we have page-wide footnotes). If, on the other
% hand, footnotes are typeset at the very end of the document, our
% scheme still works since |\count\footins| is zero then, so it
% will not change.
@@ -1475,7 +1487,7 @@
% \begin{macrocode}
\init@mult@footins
% \end{macrocode}
-% For the same reason (pagewide footnotes), the \meta{dimen}
+% For the same reason (page-wide footnotes), the \meta{dimen}
% register controlling the maximum space used for footnotes isn't
% changed. Having done this, we must reinsert all the footnotes
% which are already present (i.e.\ those encountered when the
@@ -1489,7 +1501,7 @@
% Inside \mc{} a |\clearpage| is fairly useless as we aren't supporting
% floats. In fact, it can cause harm as it doesn't know about the
% |\partial@page| and may therefore result in making columns too long.
-% So we change that to bahve like |\newpage| but also check if there
+% So we change that to behave like |\newpage| but also check if there
% are any deferred floats. If so, perhaps the user tried to place them through
% that |\clearpage| (but that needs to be done before starting the \mc{}
% environment.
@@ -1582,8 +1594,8 @@
% |\columnwidth| was left unchanged. This is inconsistent,
% but |\columnwidth| is used only by floats (which
% aren't allowed in their current implementation) and by the
-% |\footnote| macro. Since we want pagewide
-% footnotes\footnote{I'm not sure that I really want pagewide
+% |\footnote| macro. Since we want page-wide
+% footnotes\footnote{I'm not sure that I really want page-wide
% footnotes. But balancing of the last page can
% only be achieved with this approach or with a
% multi-path algorithm which is complicated and
@@ -1836,7 +1848,7 @@
\@checkend{multicols}%
\endgroup
% \end{macrocode}
-% We also set the `{\sf unbalance}' counter to its default. This is
+% We also set the `\textsf{unbalance}' counter to its default. This is
% done globally since \LaTeX{} counters are always changed this
% way.\footnote{Actually, we are still in a group started by the
% \cs{begin} macro, so \cs{global} must be used
@@ -2113,7 +2125,7 @@
% that this value is likely to be wrong. We therefore normalize the
% situation by pretending that the depth is zero. However, if |\page@sofar|
% is being called inside the OR then setting |\prevdepth| here has
-% no longlasting effect, we therefore have to repeat this once we
+% no long-lasting effect, we therefore have to repeat this once we
% return to the main vertical list. Here we set it only for those
% cases where the command is used within a list and then followed by
% something else.
@@ -2176,7 +2188,7 @@
%
% \begin{macro}{\vfilmaxdepth}
% This curious definition is used as the space at the bottom of a
-% column if we implement |\raggedcolumns|. Normlly one only appends
+% column if we implement |\raggedcolumns|. Normally one only appends
% |\vfill| in that case but this is actually wrong for columns that
% are more or less full: by adding a glue at the bottom such a
% column doesn't have any depth any more but without it the material
@@ -2269,8 +2281,8 @@
% That local change will be reverted at the end of the output
% routine So for the next page the original state will be
-% reestablished. However, in theorey there is a possibility to sneak
-% in a whoe multicols environment into the running header
+% reestablished. However, in theory there is a possibility to sneak
+% in a whole multicols environment into the running header
% definition. If that happens then it will also be affected by this
% change---too bad I think.
% \changes{v1.8a}{2011/12/20}{Support for \cs{enlargethispage}}
@@ -2306,7 +2318,7 @@
% But we need to unbox anyway to ensure that at the end of the box
% we do not have unwanted space. This can sneak in in certain
% situations, for example, if two lists follow each other and we
-% break between them. While sich space is usually zero it still has
+% break between them. While such space is usually zero it still has
% an effect because it hides depth of the last line in the column
% and that will result in incorrect placement.
% \changes{v1.3c}{1990/03/03}{\cs{unbox}ing avoided.}
@@ -2365,7 +2377,7 @@
\thepage\space might be wrong}%
\fi
% \end{macrocode}
-% If the `{\sf tracingmulticols}' counter is 4 or higher we also
+% If the `\textsf{tracingmulticols}' counter is 4 or higher we also
% add a rule.
% \begin{macrocode}
\ifnum \c@tracingmulticols>\thr@@
@@ -2390,7 +2402,7 @@
\let\botmark\kept@botmark
\fi
% \end{macrocode}
-% We also initalize |\topmark| with |\kept@topmark|. This will make
+% We also initialize |\topmark| with |\kept@topmark|. This will make
% this mark okay for all middle pages of the \mc{} environment.
% \changes{v1.5d}{1993/09/15}{reinit \cs{topmark}}
% \begin{macrocode}
@@ -2465,7 +2477,7 @@
% Now we reset |\@colroom| to |\@colht| which is \LaTeX's
% saved value of |\textheight|.
% We also have to reset the recorded position of the last
-% |\marginpar| as well as the recorded size of intext floats
+% |\marginpar| as well as the recorded size of in-text floats
% as we are now on a new page.
% \changes{v1.8d}{2014/04/23}{Reset \cs{@mparbottom} after page finishes}
% \changes{v1.8n}{2015/08/19}{Reset \cs{@textfloatsheight} after page finishes}
@@ -2580,7 +2592,7 @@
% |\colbreak@box| and then back up by this depth. This will position
% the bottom of the box at its natural baseline which is useful for
% balancing later on.
-% \changes{v1.8k}{2015/03/21}{Remove discarable items just before a
+% \changes{v1.8k}{2015/03/21}{Remove discardable items just before a
% forced break}
% \begin{macrocode}
\boxmaxdepth\maxdepth
@@ -2595,7 +2607,7 @@
\else
% \end{macrocode}
% Another special case is reaching the end of the \mc{}
-% environment which is signalled by |-\@Mvi|.
+% environment which is signaled by |-\@Mvi|.
% \changes{v1.8r}{2018/01/28}{Handling end of env through special penalty}
% \begin{macrocode}
\ifnum\outputpenalty = -\@Mvi
@@ -2694,8 +2706,8 @@
% \begin{macrocode}
\newif\ifshr@nking
% \end{macrocode}
-% The actual definitions are simple: we just switch to {\sf true}
-% or {\sf false} depending on the desired action. To avoid extra
+% The actual definitions are simple: we just switch to \textsf{true}
+% or \textsf{false} depending on the desired action. To avoid extra
% spaces in the output we enclose these changes in
% |\@bsphack|\ldots{}\allowbreak|\@esphack|.
% \begin{macrocode}
@@ -2723,7 +2735,7 @@
% support} For the next block of code see also comments in
% section~\ref{sec:colbreak}. All forced breaks except the last are
% inside |\colbreak@box| so all we have to do is to concatenate this
-% box with box |\@cclv| and put a penalty inbetween. Here we test if
+% box with box |\@cclv| and put a penalty in between. Here we test if
% |\colbreak@box| is void so that the message is only generated if
% we really add forced breaks and the penalty.
% \changes{v1.8k}{2015/03/21}{Use \cs{@Mv} and not \cs{break} in case
@@ -2891,7 +2903,7 @@
% unpredictable point depending on the height of the largest
% character in this line. But of course we want all columns to
% align properly at the baselines of their first lines. For this
-% reason we have opened |\mult@box| with a |\penalty| {\sf -10000}.
+% reason we have opened |\mult@box| with a |\penalty| \textsf{-10000}.
% This will now allow us to split off from |\mult@box| a tiny bit
% (in fact nothing since the first possible break-point is the
% first item in the box). The result is that |\splittopskip| is
@@ -2936,6 +2948,21 @@
\advance\dimen@-\baselineskip
\fi
% \end{macrocode}
+% As a further restriction we want to see a minimum number of
+% rows in the balanced result based on the setting of the counter
+% |minrows|. If the starting value is lower we adjust.
+% \changes{v1.8w}{2019/03/01}{Provide minrows counter for balancing}
+% \begin{macrocode}
+ \@tempdima\dimexpr
+ \topskip +\c@minrows\baselineskip-\baselineskip\relax
+ \ifnum\dimen@<\@tempdima
+ \mult@info\@ne
+ {Start value
+ \the\dimen@ \space ->
+ \the\@tempdima \space (corrected for minrows)}%
+ \dimen@\@tempdima
+ \fi
+% \end{macrocode}
% At the user's request we start with a higher value (or lower, but
% this usually only increases the number of tries).
% \begin{macrocode}
@@ -3608,7 +3635,7 @@
ht \the\ht#1, dp \the\dp#1}%
%</debug>
% \end{macrocode}
-% Now we open a new group an locally copy the box to itself. As a
+% Now we open a new group and locally copy the box to itself. As a
% result any operation, i.e.\ |\vsplit|, will only have a local
% effect. Without this trick the box content would get lost up to
% the level where the last assignment to the box register was done.
@@ -3719,7 +3746,7 @@
% \begin{macro}{\remove@discardable@items}
% There are situations when we may have some space at the end of a
% column and this macro here will attempt to get rid of it. The
-% typical \LaTeX{} sequence is a series of selfcanceling glues so
+% typical \LaTeX{} sequence is a series of self-canceling glues so
% if we remove them recursively we are usually fine.
%
% Special care is needed with handling |\vspace*| as that
@@ -3760,7 +3787,7 @@
\else
% \end{macrocode}
% Otherwise we remove this ``real'' skip. Then we look if it was
-% preceeded by a penalty of 10000 (i.e., a |\nobreak|)
+% preceded by a penalty of 10000 (i.e., a |\nobreak|)
% \begin{macrocode}
\unskip
%\typeout{p=\lastpenalty}%
@@ -3797,6 +3824,14 @@
\newif\ifforcedbreak@leftover
% \end{macrocode}
%
+% \begin{macro}{\c@minrows}
+% \changes{v1.8w}{2019/03/01}{Provide minrows counter for balancing}
+% \begin{macrocode}
+\newcount\c@minrows
+\c@minrows=1
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\c@columnbadness}
% \begin{macro}{\c@finalcolumnbadness}
% \begin{macrocode}
@@ -4002,7 +4037,7 @@
%
% \begin{macro}{\columnbreak}
% \changes{v1.5u}{1999/05/25}{Macro added}
-% |\columnbreak| is modelled after |\pagebreak| except that we
+% |\columnbreak| is modeled after |\pagebreak| except that we
% generate a penalty -10005.
% \begin{macrocode}
\mathchardef\@Mv=10005
diff --git a/macros/latex/required/tools/multicol.ins b/macros/latex/required/tools/multicol.ins
index ee295fed17..9fd6cbe6e9 100644
--- a/macros/latex/required/tools/multicol.ins
+++ b/macros/latex/required/tools/multicol.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 1993-2018
+%% Copyright (C) 1993-2019
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
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.
diff --git a/macros/latex/required/tools/multicol.pdf b/macros/latex/required/tools/multicol.pdf
index af52be07b8..71060120f3 100644
--- a/macros/latex/required/tools/multicol.pdf
+++ b/macros/latex/required/tools/multicol.pdf
Binary files differ
diff --git a/macros/latex/required/tools/rawfonts.dtx b/macros/latex/required/tools/rawfonts.dtx
index 51502c631e..0fd7dd5006 100644
--- a/macros/latex/required/tools/rawfonts.dtx
+++ b/macros/latex/required/tools/rawfonts.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
-% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
-% 2006 2008 2009
+% Copyright (C) 1993-2019
+%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/required/tools/rawfonts.pdf b/macros/latex/required/tools/rawfonts.pdf
index 151b7c5d81..b3b01f7b21 100644
--- a/macros/latex/required/tools/rawfonts.pdf
+++ b/macros/latex/required/tools/rawfonts.pdf
Binary files differ
diff --git a/macros/latex/required/tools/shellesc.dtx b/macros/latex/required/tools/shellesc.dtx
index ebc436ad96..061ea4457c 100644
--- a/macros/latex/required/tools/shellesc.dtx
+++ b/macros/latex/required/tools/shellesc.dtx
@@ -1,6 +1,9 @@
% \iffalse
%% Source File: shellesc.dtx
-%% Copyright 2015-2016 LaTeX3 project
+%% Copyright (C) 2015-2019
+%%
+%% The LaTeX3 Project and any individual authors listed elsewhere
+%% in this file.
%%
%% This file may be distributed under the terms of the LPPL.
%% See README for details.
@@ -17,7 +20,7 @@
%<driver> \ProvidesFile{shellesc.drv}
% \fi
% \ProvidesFile{shellesc.dtx}
- [2016/06/07 v0.02a unified shell escape interface for LaTeX]
+ [2016/06/07 v0.02b unified shell escape interface for LaTeX]
%
% \iffalse
%<*driver>
@@ -84,7 +87,7 @@
% to \verb|\immediate\write18|. In the rare situations that you need
% non-immediate \verb|\write18| in a document being ported to current
% Lua\TeX, you will need to change to use the
-% \verb|DelayedShellescape| command.
+% \verb|\DelayedShellEscape| command.
%
% \section{Implementation}
%
diff --git a/macros/latex/required/tools/shellesc.pdf b/macros/latex/required/tools/shellesc.pdf
index 80d8635189..c60ab30869 100644
--- a/macros/latex/required/tools/shellesc.pdf
+++ b/macros/latex/required/tools/shellesc.pdf
Binary files differ
diff --git a/macros/latex/required/tools/showkeys.dtx b/macros/latex/required/tools/showkeys.dtx
index 14ac876627..6e2516856d 100644
--- a/macros/latex/required/tools/showkeys.dtx
+++ b/macros/latex/required/tools/showkeys.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2014
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -22,7 +22,7 @@
% \fi
% \iffalse
%% File: showkeys.dtx Copyright (C) 1992-1997 David Carlisle
-%% File: showkeys.dtx Copyright (C) 2006-2014 David Carlisle, LaTeX3 Project
+%% File: showkeys.dtx Copyright (C) 2006-2019 David Carlisle, LaTeX3 Project
%
%<*dtx>
\ProvidesFile{showkeys.dtx}
diff --git a/macros/latex/required/tools/showkeys.pdf b/macros/latex/required/tools/showkeys.pdf
index d772c3e656..72ed571d66 100644
--- a/macros/latex/required/tools/showkeys.pdf
+++ b/macros/latex/required/tools/showkeys.pdf
Binary files differ
diff --git a/macros/latex/required/tools/somedefs.dtx b/macros/latex/required/tools/somedefs.dtx
index bad29b0043..f73a45b787 100644
--- a/macros/latex/required/tools/somedefs.dtx
+++ b/macros/latex/required/tools/somedefs.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
-% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
-% 2006 2008 2009
+% Copyright (C) 1993-2019
+%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/required/tools/somedefs.pdf b/macros/latex/required/tools/somedefs.pdf
index eecebfb273..8d04eb8855 100644
--- a/macros/latex/required/tools/somedefs.pdf
+++ b/macros/latex/required/tools/somedefs.pdf
Binary files differ
diff --git a/macros/latex/required/tools/tabularx.dtx b/macros/latex/required/tools/tabularx.dtx
index 5eaabbe310..ff8f3cec9a 100644
--- a/macros/latex/required/tools/tabularx.dtx
+++ b/macros/latex/required/tools/tabularx.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2016
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/tabularx.ins b/macros/latex/required/tools/tabularx.ins
index 0953bdea54..06308d7735 100644
--- a/macros/latex/required/tools/tabularx.ins
+++ b/macros/latex/required/tools/tabularx.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 1993-2017
+%% Copyright (C) 1993-2019
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
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.
diff --git a/macros/latex/required/tools/tabularx.pdf b/macros/latex/required/tools/tabularx.pdf
index cc78234679..f61bc69309 100644
--- a/macros/latex/required/tools/tabularx.pdf
+++ b/macros/latex/required/tools/tabularx.pdf
Binary files differ
diff --git a/macros/latex/required/tools/theorem.dtx b/macros/latex/required/tools/theorem.dtx
index 5a76fdb200..6f745d016e 100644
--- a/macros/latex/required/tools/theorem.dtx
+++ b/macros/latex/required/tools/theorem.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2016
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/theorem.pdf b/macros/latex/required/tools/theorem.pdf
index c3305bbfc3..dfcf2f2f84 100644
--- a/macros/latex/required/tools/theorem.pdf
+++ b/macros/latex/required/tools/theorem.pdf
Binary files differ
diff --git a/macros/latex/required/tools/tools-overview.pdf b/macros/latex/required/tools/tools-overview.pdf
index b8ccf9ed60..ee55ccdf58 100644
--- a/macros/latex/required/tools/tools-overview.pdf
+++ b/macros/latex/required/tools/tools-overview.pdf
Binary files differ
diff --git a/macros/latex/required/tools/tools-overview.tex b/macros/latex/required/tools/tools-overview.tex
index 817a37ced5..6a00580302 100644
--- a/macros/latex/required/tools/tools-overview.tex
+++ b/macros/latex/required/tools/tools-overview.tex
@@ -1,8 +1,13 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{tools-overview.tex}[2015/03/31 v1.0 Tools overview]
+% Copyright (C) 2006-2019
+%
+% The LaTeX3 Project and any individual authors listed elsewhere
+% in this file.
+%
% Copyright (c) 2006-2014 Heiko Oberdiek
-% (c) 2015-2016 The LaTeX3 Project
+% (c) 2015-2019 The LaTeX3 Project
%
% This file is part of the Standard LaTeX `Tools Bundle'.
% -------------------------------------------------------
diff --git a/macros/latex/required/tools/tools.ins b/macros/latex/required/tools/tools.ins
index 817e149bca..12625e8166 100644
--- a/macros/latex/required/tools/tools.ins
+++ b/macros/latex/required/tools/tools.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 1993-2017
+%% Copyright (C) 1993-2019
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -49,7 +49,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.
diff --git a/macros/latex/required/tools/trace.dtx b/macros/latex/required/tools/trace.dtx
index dabec8aa00..e808fdd431 100644
--- a/macros/latex/required/tools/trace.dtx
+++ b/macros/latex/required/tools/trace.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2018
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -22,7 +22,7 @@
% \fi
% \iffalse
%%
-%% (C) Copyright 1999-2018 Frank Mittelbach
+%% (C) Copyright (C) 1999-2019 Frank Mittelbach
%% All rights reserved.
%%
%<*dtx>
diff --git a/macros/latex/required/tools/trace.pdf b/macros/latex/required/tools/trace.pdf
index 2986128e0b..f3afb1b8bc 100644
--- a/macros/latex/required/tools/trace.pdf
+++ b/macros/latex/required/tools/trace.pdf
Binary files differ
diff --git a/macros/latex/required/tools/varioref-2016-02-16.sty b/macros/latex/required/tools/varioref-2016-02-16.sty
new file mode 100644
index 0000000000..78aa06db6b
--- /dev/null
+++ b/macros/latex/required/tools/varioref-2016-02-16.sty
@@ -0,0 +1,779 @@
+%%
+%% This is file `varioref.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% varioref.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% The source is maintained by the LaTeX Project team and bug
+%% 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
+%% The LaTeX3 Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
+%% --------------------------------------------------------------------------
+%%
+%% It 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.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This file may only be distributed together with a copy of the LaTeX
+%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
+%% without such generated files.
+%%
+%% The list of all files belonging to the LaTeX `Tools Bundle' is
+%% given in the file `manifest.txt'.
+%%
+%% Package varioref to use with LaTeX2e
+%% Copyright (C) 1992-2016 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.
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/05/16]
+\ProvidesPackage{varioref}
+ [2016/02/16 v1.5c package for extended references (FMi)]
+%%
+
+
+\def\vref@addto#1#2{%
+ #2%
+ \@temptokena{#2}%
+ \ifx#1\undefined
+ \edef#1{\the\@temptokena}%
+ \else
+ \toks@\expandafter{#1}%
+ \edef#1{\the\toks@\the\@temptokena}%
+ \fi
+ \@temptokena{}\toks@\@temptokena
+}
+\@onlypreamble\vref@addto
+\def\vref@excuse#1{%
+ \PackageWarningNoLine{varioref}{Sorry, language `#1'
+ not supported%
+ \MessageBreak
+ in this version.
+ English strings used by default.
+ \MessageBreak
+ Please modify \protect\reftext... commands manually.%
+ \MessageBreak\MessageBreak
+ If you can suggest translations for
+ this language,%
+ \MessageBreak
+ please mail them
+ to the author of this package}}
+\@onlypreamble\vref@excuse
+\def\vref@stringwarning#1{%
+ \PackageWarningNoLine{varioref}{Sorry, there is no proper
+ translation for the string\MessageBreak
+ produced by \protect#1\on@line.\MessageBreak
+ English string used instead.\MessageBreak
+ \MessageBreak
+ If you can suggest translations for
+ the current\MessageBreak
+ language, please mail them
+ to the author of this\MessageBreak package}}
+\DeclareOption{afrikaans}
+ {\vref@addto\extrasafrikaans{%
+ \def\reftextfaceafter {op die \reftextvario{regterbladsy}%
+ {bladsy langsaan}}%
+ \def\reftextfacebefore{op die \reftextvario{linkerbladsy}%
+ {bladsy langsaan}}%
+ \def\reftextafter {op die \reftextvario{volgende bladsy}%
+ {bladsy hierna}}%
+ \def\reftextbefore {op die \reftextvario{vorige bladsy}%
+ {bladsy hiervoor}}%
+ \def\reftextcurrent {op \reftextvario{hierdie}%
+ {die huidige} bladsy}%
+ \def\reftextfaraway#1{op bladsy~\pageref{#1}}%
+ \def\reftextpagerange#1#2{op bladsye~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} tot~\ref{#2}}%
+ }}
+\DeclareOption{american}
+ {\vref@addto\extrasamerican{%
+ \def\reftextfaceafter {on the \reftextvario{facing}{next} page}%
+ \def\reftextfacebefore{on the \reftextvario{facing}{preceding}
+ page}%
+ \def\reftextafter {on the \reftextvario{following}{next} page}%
+ \def\reftextbefore {on the \reftextvario{preceding}{previous} page}%
+ \def\reftextcurrent {on \reftextvario{this}{the current} page}%
+ \def\reftextfaraway#1{on page~\pageref{#1}}%
+ \def\reftextpagerange#1#2{on pages~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} to~\ref{#2}}%
+ }}
+\DeclareOption{austrian}
+ {\vref@addto\extrasaustrian{%
+ \def\reftextfaceafter {auf der n\"achsten Seite}%
+ \def\reftextfacebefore{auf der vorherigen Seite}%
+ \let\reftextafter \reftextfaceafter
+ \let\reftextbefore \reftextfacebefore
+ \def\reftextcurrent {auf dieser Seite}%
+ \def\reftextfaraway#1{auf Seite~\pageref{#1}}%
+ \def\reftextpagerange#1#2{auf Seiten~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} bis~\ref{#2}}%
+ }}
+\DeclareOption{naustrian}
+ {\vref@addto\extrasnaustrian{%
+ \def\reftextfaceafter {auf der n\"achsten Seite}%
+ \def\reftextfacebefore{auf der vorherigen Seite}%
+ \let\reftextafter \reftextfaceafter
+ \let\reftextbefore \reftextfacebefore
+ \def\reftextcurrent {auf dieser Seite}%
+ \def\reftextfaraway#1{auf Seite~\pageref{#1}}%
+ \def\reftextpagerange#1#2{auf Seiten~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} bis~\ref{#2}}%
+ }}
+\DeclareOption{basque}
+ {\vref@addto\extrasbasque{%
+ \def\reftextfaceafter {hurrengo orrialdean}%
+ \def\reftextfacebefore{aurreko orrialdean}%
+ \let\reftextafter \reftextfaceafter
+ \let\reftextbefore \reftextfacebefore
+ \def\reftextcurrent {uneko orrialdean}%
+ \def\reftextfaraway#1{~\pageref{#1}. orrialdean}%
+ \def\reftextpagerange#1#2{~\pageref{#1}--\pageref{#2} orrialdeetan}%
+ \def\reftextlabelrange#1#2{\ref{#1}.etik \ref{#2}.eraino}%
+ }}
+\DeclareOption{bahasam}
+ {\vref@addto\extrasbahasam{%
+ \def\reftextfaceafter {pada muka surat \reftextvario{bertentangan}{berikutnya}}%
+ \def\reftextfacebefore{pada muka surat \reftextvario{bertentangan}{sebelumnya} }%
+ \def\reftextafter {pada muka surat berikutnya}%
+ \def\reftextbefore {pada muka surat sebelumnya}%
+ \def\reftextcurrent {pada muka surat ini}%
+ \def\reftextfaraway#1{pada muka surat~\pageref{#1}}%
+ \def\reftextpagerange#1#2{pada muka surat~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1}--\ref{#2}}%
+ }}
+\DeclareOption{brazil}
+ {\vref@addto\extrasbrazil{%
+ \def\reftextfaceafter {na \reftextvario{p\'agina oposta}{pr\'oxima
+ p\'agina}}%
+ \def\reftextfacebefore{na p\'agina \reftextvario{oposta}{anterior}}%
+ \def\reftextafter {na \reftextvario{p\'agina seguinte}{pr\'oxima
+ p\'agina}}%
+ \def\reftextbefore{na p\'agina \reftextvario{anterior}{precedente}}%
+ \def\reftextcurrent {\reftextvario{nesta p\'agina}{na p\'agina
+ corrente}}%
+ \def\reftextfaraway#1{na p\'agina~\pageref{#1}}%
+ \def\reftextpagerange#1#2{nas p\'aginas~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} a~\ref{#2}}%
+ }}
+\DeclareOption{breton}
+ {\vref@excuse{breton}%
+ \vref@addto\extrasbreton{%
+ \def\reftextfaceafter {war ar bajenn \reftextvario{a-dal}{da heul}}%
+ \def\reftextfacebefore{war ar bajenn \reftextvario{a-dal}{a-raok}}%
+ \def\reftextafter {war ar bajenn da heul}%
+ \def\reftextbefore {war ar bajenn a-raok}%
+ \def\reftextcurrent {war ar \reftextvario{bajenn-ma\~n}%
+ {bajenn war-wel}}%
+ \def\reftextfaraway#1{war ar bajenn~\pageref{#1}}%
+ \def\reftextpagerange#1#2{\vref@stringwarning\reftextpagerange
+ on pages~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\vref@stringwarning\reflabelpagerange
+ \ref{#1} to~\ref{#2}}%
+ }}
+\DeclareOption{bulgarian}%
+ {\vref@addto\extrasbulgarian{%
+ \def\reftextfaceafter{\cyrn\cyra\
+ \reftextvario{\cyrs\cyrery\cyrs\cyre\cyrd\cyrn\cyra\cyrt\cyra}%
+ {\cyrs\cyrl\cyre\cyrd\cyrv\cyra\cyrshch\cyra\cyrt\cyra}
+ \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyra}%
+ \def\reftextfacebefore{\cyrn\cyra\
+ \reftextvario{\cyrs\cyrery\cyrs\cyre\cyrd\cyrn\cyra\cyrt\cyra}%
+ {\cyrp\cyrr\cyre\cyrd\cyrn\cyra\cyrt\cyra}
+ \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyra}%
+ \def\reftextafter{\cyrn\cyra\
+ \reftextvario{\cyrs\cyrl\cyre\cyrd\cyrv\cyra\cyrshch\cyra\cyrt\cyra}%
+ {\cyrs\cyrl\cyre\cyrd\cyrv\cyra\cyrshch\cyra\cyrt\cyra}
+ \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyra}%
+ \def\reftextbefore{\cyrn\cyra\
+ \reftextvario{\cyrp\cyrr\cyre\cyrd\cyrn\cyra\cyrt\cyra}%
+ {\cyrp\cyrr\cyre\cyrd\cyri\cyrsh\cyrn\cyra\cyrt\cyra}
+ \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyra}%
+ \def\reftextcurrent{\cyrn\cyra\
+ \reftextvario{\cyrt\cyra\cyrz\cyri}%
+ {\cyrt\cyre\cyrk\cyru\cyrshch\cyra\cyrt\cyra}
+ \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyra}%
+ \def\reftextfaraway#1{\cyrn\cyra\ \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyra
+ ~\pageref{#1}}%
+ \def\reftextpagerange#1#2{\cyrn\cyra\
+ \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyri
+ ~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} \cyrd\cyro~\ref{#2}}%
+ }}
+\DeclareOption{catalan}
+ {\vref@addto\extrascatalan{%
+ \def\reftextfaceafter {a la p\`agina seg\"uent}%
+ \def\reftextfacebefore{a la p\`agina anterior}%
+ \let\reftextafter \reftextfaceafter
+ \let\reftextbefore \reftextfacebefore
+ \def\reftextcurrent {en aquesta p\`agina}%
+ \def\reftextfaraway#1{a la p\`agina~\pageref{#1}}%
+ \def\reftextpagerange#1#2{a les
+ p\`agines~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} a~\ref{#2}}%
+ }}
+\DeclareOption{croatian}
+ {\vref@addto\extrascroatian{%
+ \def\reftextfaceafter {na sljede\'coj stranici}%
+ \def\reftextfacebefore{na prethodnoj stranici}%
+ \let\reftextafter \reftextfaceafter
+ \let\reftextbefore \reftextfacebefore
+ \def\reftextcurrent {na ovoj stranici}%
+ \def\reftextfaraway#1{na stranici~\pageref{#1}}%
+ \def\reftextpagerange#1#2{na stranicama~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} do~\ref{#2}}%
+ }}
+\DeclareOption{czech}
+ {%\vref@excuse{czech}%
+ \vref@addto\extrasczech{%
+ \def\reftextfaceafter {na n\'a\-sle\-du\-j\'\i c\'\i\ stran\v{e}}%
+ \def\reftextfacebefore{na p\v{r}ed\-choz\'\i\ stran\v{e}}%
+ \def\reftextafter {na n\'a\-sle\-du\-j\'\i c\'\i\ stran\v{e}}%
+ \def\reftextbefore {na p\v{r}ed\-choz\'\i\ stran\v{e}}%
+ \def\reftextcurrent {na t\'eto stran\v{e}}%
+ \def\reftextfaraway#1{na stran\v{e}~\pageref{#1}}%
+ \def\reftextpagerange#1#2{na stran\'ach~\pageref{#1}\--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} a\v{z}~\ref{#2}}%
+ }}
+\DeclareOption{danish}
+ {\vref@addto\extrasdanish{%
+ \def\reftextfaceafter {p\aa{} \reftextvario{modst\aa ende}%
+ {n\ae ste} side}%
+ \def\reftextfacebefore{p\aa{} \reftextvario{modst\aa ende}%
+ {forrige} side}%
+ \def\reftextafter {p\aa{} \reftextvario{den f\o lgende}%
+ {n\ae ste} side}%
+ \def\reftextbefore {p\aa{} \reftextvario{forrige side}
+ {foreg\aa ende side}}%
+ \def\reftextcurrent {p\aa{} denne side}%
+ \def\reftextfaraway#1{p\aa{} side~\pageref{#1}}%
+ \def\reftextpagerange#1#2{p\aa{} side~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} til~\ref{#2}}%
+ }}
+\DeclareOption{dutch}
+ {\vref@addto\extrasdutch{%
+ \def\refpagename{pagina}%
+ \def\reftextfaceafter {op de \reftextvario{rechter \refpagename}%
+ {\refpagename\ hiernaast}}%
+ \def\reftextfacebefore{op de \reftextvario{linker \refpagename}%
+ {\refpagename\ hiernaast}}%
+ \def\reftextafter {op de \reftextvario{volgende \refpagename}%
+ {\refpagename\ hierna}}%
+ \def\reftextbefore {op de \reftextvario{vorige \refpagename}%
+ {\refpagename\ hiervoor}}%
+ \def\reftextcurrent {op deze \refpagename}%
+ \def\reftextfaraway#1{op \refpagename~\pageref{#1}}%
+ \def\reftextpagerange#1#2{op pagina's~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1}--\ref{#2}}%
+ }}
+\DeclareOption{english}
+ {\vref@addto\extrasenglish{%
+ \def\reftextfaceafter {on the \reftextvario{facing}{next} page}%
+ \def\reftextfacebefore{on the \reftextvario{facing}{preceding}
+ page}%
+ \def\reftextafter {on the \reftextvario{following}{next} page}%
+ \def\reftextbefore {on the \reftextvario{preceding}{previous} page}%
+ \def\reftextcurrent {on \reftextvario{this}{the current} page}%
+ \def\reftextfaraway#1{on page~\pageref{#1}}%
+ \def\reftextpagerange#1#2{on pages~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} to~\ref{#2}}%
+ }}
+\DeclareOption{esperanto}
+ {\vref@addto\extrasesperanto{%
+ \def\reftextfaceafter{en la
+ \reftextvario{flanka}{sekva} pa\^go}%
+ \def\reftextfacebefore{en la
+ \reftextvario{flanka}{anta\u ua} pa\^go}%
+ \def\reftextafter{en la sekva pa\^go}%
+ \def\reftextbefore{en la anta\u ua pa\^go}%
+ \def\reftextcurrent{\reftextvario{\^ci-pa\^ge}%
+ {en \^ci tiu pa\^go}}%
+ \def\reftextfaraway#1{en pa\^go~\pageref{#1}}%
+ \def\reftextpagerange#1#2{en pa\^goj~\pageref{#1} \^gis \pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} \^gis~\ref{#2}}%
+ }}
+\DeclareOption{finnish}
+ {\vref@addto\extrasfinnish{%
+ \def\reftextfaceafter {\reftextvario{viereisell\"a}%
+ {seuraavalla} sivulla}%
+ \def\reftextfacebefore{\reftextvario{viereisell\"a}%
+ {edellisell\"a} sivulla}%
+ \def\reftextafter {seuraavalla sivulla}%
+ \def\reftextbefore {edellisell\"a sivulla}%
+ \def\reftextcurrent {t\"all\"a sivulla}%
+ \def\reftextfaraway#1{sivulla~\pageref{#1}}%
+ \def\reftextpagerange#1#2{sivuilla~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1}--\ref{#2}}%
+ }}
+\DeclareOption{french}
+ {\vref@addto\extrasfrench{%
+ \def\reftextfaceafter {page \reftextvario{ci-contre}{suivante}}%
+ \def\reftextfacebefore{page \reftextvario{ci-contre}%
+ {pr\'ec\'edente}}%
+ \def\reftextafter {page suivante}%
+ \def\reftextbefore {page pr\'ec\'edente}%
+ \def\reftextcurrent {de la pr\'esente page}%
+ \def\reftextfaraway#1{page~\pageref{#1}}%
+ \def\reftextpagerange#1#2{pages~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} \`a~\ref{#2}}%
+ }}
+\DeclareOption{galician}
+ {\vref@addto\extrasgalician{%
+ \def\reftextfaceafter {na p\'axina oposta}%
+ \def\reftextfacebefore\reftextfaceafter
+ \def\reftextafter {na p\'axina seguinte}%
+ \def\reftextbefore {na p\'axina anterior}%
+ \def\reftextcurrent {nesta p\'axina}%
+ \def\reftextfaraway#1{na p\'axina~\pageref{#1}}%
+ \def\reftextpagerange#1#2{%
+ nas p\'axinas~\pageref{#1}-\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} a~\ref{#2}}%
+ }}
+\DeclareOption{german}
+ {\vref@addto\extrasgerman{%
+ \def\reftextfaceafter {auf der n\"achsten Seite}%
+ \def\reftextfacebefore{auf der vorherigen Seite}%
+ \let\reftextafter \reftextfaceafter
+ \let\reftextbefore \reftextfacebefore
+ \def\reftextcurrent {auf dieser Seite}%
+ \def\reftextfaraway#1{auf Seite~\pageref{#1}}%
+ \def\reftextpagerange#1#2{auf den Seiten~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} bis~\ref{#2}}%
+ }}
+\DeclareOption{ngerman}
+ {\vref@addto\extrasngerman{%
+ \def\reftextfaceafter {auf der n\"achsten Seite}%
+ \def\reftextfacebefore{auf der vorherigen Seite}%
+ \let\reftextafter \reftextfaceafter
+ \let\reftextbefore \reftextfacebefore
+ \def\reftextcurrent {auf dieser Seite}%
+ \def\reftextfaraway#1{auf Seite~\pageref{#1}}%
+ \def\reftextpagerange#1#2{auf den Seiten~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} bis~\ref{#2}}%
+ }}
+\DeclareOption{greek}
+ {\vref@addto\extrasgreek{%
+ \def\reftextfaceafter {sthn \reftextvario{paro'usa}%
+ {ep'omenh} sel'ida}%
+ \def\reftextfacebefore{sthn \reftextvario{paro'usa}{prohgo'umenh}
+ sel'ida}%
+ \def\reftextafter {sthn ep'omenh sel'ida}%
+ \def\reftextbefore {sthn prohgo'umenh sel'ida}%
+ \def\reftextcurrent {s'' aut'h th sel'ida}%
+ \def\reftextfaraway#1{sth sel'ida\nobreakspace\pageref{#1}}%
+ \def\reftextpagerange#1#2{stis sel'ides\nobreakspace
+ \pageref{#1}---\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} ws\nobreakspace\ref{#2}}%
+ }}
+\DeclareOption{icelandic}
+ {\vref@addto\extrasicelandic{%
+ \def\reftextfaceafter {\'{a} \reftextvario{n{\ae}stu}%
+ {n{\ae}stu} s\'{i}{\dh}u}%
+ \def\reftextfacebefore{\'{a} \reftextvario{fyrri}%
+ {fyrri} s\'{i}{\dh}u}%
+ \def\reftextafter {\'{a} \reftextvario{n{\ae}stu}%
+ {n{\ae}stu} s\'{i}{\dh}u}%
+ \def\reftextbefore {\'{a} \reftextvario{fyrri}{fyrri} s\'{i}{\dh}u}%
+ \def\reftextcurrent {\'{a} \reftextvario{{\th}essari}%
+ {{\th}essari} s\'{i}{\dh}u}%
+ \def\reftextfaraway#1{\'{a} s\'{i}{\dh}u~\pageref{#1}}%
+ \def\reftextpagerange#1#2{\'{a} s\'{i}{\dh}um~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} til~\ref{#2}}%
+ }}
+\DeclareOption{italian}
+ {\vref@addto\extrasitalian{%
+ \def\reftextfaceafter {\reftextvario{a fronte}%
+ {nella pagina successiva}}%
+ \def\reftextfacebefore{\reftextvario{a fronte}%
+ {nella pagina precedente}}%
+ \def\reftextafter {nella pagina \reftextvario{seguente}%
+ {successiva}}%
+ \def\reftextbefore {nella pagina precedente}%
+ \def\reftextcurrent {in questa pagina}%
+ \def\reftextfaraway#1{a pagina~\pageref{#1}}%
+ \def\reftextpagerange#1#2{nelle pagine~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{da~\ref{#1} a~\ref{#2}}%
+ }}
+\DeclareOption{magyar}
+ {\vref@addto\extrasmagyar{%
+ \def\reftextafter {a k\"o\-vet\-kez\H{o} ol\-da\-lon}%
+ \def\reftextbefore{az el\H{o}\-z\H{o} ol\-da\-lon}%
+ \def\reftextfaceafter {\reftextvario{a t\'ul\-ol\-da\-lon}%
+ {a k\"o\-vet\-kez\H{o} ol\-da\-lon}}%
+ \def\reftextfacebefore{\reftextvario{a t\'ul\-ol\-da\-lon}%
+ {az el\H{o}\-z\H{o} ol\-da\-lon}}%
+ \def\reftextcurrent {ezen az ol\-da\-lon}%
+ \def\reftextfaraway#1{\aza{\pageref{#1}} \pageref{#1}.~ol\-da\-lon}%
+ \def\reftextpagerange#1#2{\vref@stringwarning\reftextpagerange
+ on pages~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\vref@stringwarning\reflabelpagerange
+ \ref{#1} to~\ref{#2}}%
+ }%
+ \AtBeginDocument{\providecommand\aza[1]{a/az%
+ \PackageError{varioref}{%
+ Proper definition for command \noexpand\aza missing}%
+ {You need to (re)define the command \noexpand\aza that
+ takes one argument (a number or a \noexpand\pageref command)
+ and produces the string `a' or `az' depending on the argument
+ value. It should also accept an optional argument (default `l')
+ to denote whether or not the string should be lowercase or
+ uppercase.}}}%
+ }
+\DeclareOption{norsk}
+ {\vref@addto\extrasnorsk{%
+ \def\reftextfaceafter {p\aa{} neste side}%
+ \def\reftextfacebefore{p\aa{} forrige side}%
+ \def\reftextafter {p\aa{} neste side}%
+ \def\reftextbefore {p\aa{} forrige side}%
+ \def\reftextcurrent {p\aa{} denne siden}%
+ \def\reftextfaraway#1{p\aa{} side~\pageref{#1}}%
+ \def\reftextpagerange#1#2{p\aa{} side~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} til~\ref{#2}}%
+ }}
+\DeclareOption{nynorsk}
+ {\vref@addto\extrasnynorsk{%
+ \def\reftextfaceafter {p\aa{} neste side}%
+ \def\reftextfacebefore{p\aa{} f\o{}rre side}%
+ \def\reftextafter {p\aa{} neste side}%
+ \def\reftextbefore {p\aa{} f\o{}rre side}%
+ \def\reftextcurrent {p\aa{} denne sida}%
+ \def\reftextfaraway#1{p\aa{} side~\pageref{#1}}%
+ \def\reftextpagerange#1#2{p\aa{} side~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} til~\ref{#2}}%
+ }}
+\DeclareOption{polish}
+ {\vref@addto\extraspolish{%
+ \def\reftextfaceafter {na \reftextvario{s\aob{}siedniej}%
+ {nast\eob{}pnej} stronie}%
+ \def\reftextfacebefore{na \reftextvario{s\aob{}siedniej}%
+ {poprzedniej} stronie}%
+ \def\reftextafter {na nast\eob{}pnej stronie}%
+ \def\reftextbefore {na poprzedniej stronie}%
+ \def\reftextcurrent {na \reftextvario{tej
+ samej}{bie\zkb{}\aob{}cej} stronie}%
+ \def\reftextfaraway#1{na stronie~\pageref{#1}}%
+ \def\reftextpagerange#1#2{na stronach~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{od~\ref{#1} do~\ref{#2}}%
+ }}
+\DeclareOption{portuges}
+ {\vref@addto\extrasportuges{%
+ \def\reftextfaceafter {na \reftextvario{p\'agina ao lado}{pr\'oxima
+ p\'agina}}%
+ \def\reftextfacebefore{na p\'agina \reftextvario{ao lado}{anterior}}%
+ \def\reftextafter {na \reftextvario{p\'agina seguinte}{pr\'oxima
+ p\'agina}}%
+ \def\reftextbefore{na p\'agina \reftextvario{anterior}{precedente}}%
+ \def\reftextcurrent {nesta p\'agina}%
+ \def\reftextfaraway#1{na p\'agina~\pageref{#1}}%
+ \def\reftextpagerange#1#2{nas p\'aginas~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} a~\ref{#2}}%
+ }}
+\DeclareOption{romanian}
+ {\vref@addto\extrasromanian{%
+ \def\reftextfaceafter {pe pagina \reftextvario{opus\u{a}}{urm\u{a}toarei}}%
+ \def\reftextfacebefore{pe pagina \reftextvario{opus\u{a}}{precedentei}}%
+ \def\reftextafter {\reftextvario{pe pagina urm\u{a}toare}%
+ {pe urm\u{a}toarea pagin\u{a}}}%
+ \def\reftextbefore {pe pagina \reftextvario{precedent\u{a}}%
+ {precedentei}}%
+ \def\reftextcurrent {pe aceast\u{a} pagin\u{a}}%
+ \def\reftextfaraway#1{pe pagina~\pageref{#1}}%
+ \def\reftextpagerange#1#2{pe paginile~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} la~\ref{#2}}%
+ }}
+\DeclareOption{russian}
+ {\vref@addto\extrasrussian{%
+ \def\reftextfaceafter{\cyrn\cyra\ \reftextvario{\cyrp\cyrr\cyro
+ \cyrt\cyri\cyrv\cyro\cyrp\cyro\cyrl\cyro\cyrzh\cyrn\cyro\cyrishrt}%
+ {\cyrs\cyrl\cyre\cyrd\cyru\cyryu\cyrshch\cyre\cyrishrt}\ \cyrs\cyrt
+ \cyrr\cyra\cyrn\cyri\cyrc\cyre}%
+ \def\reftextfacebefore{\cyrn\cyra\ \reftextvario{\cyrp\cyrr\cyro
+ \cyrt\cyri\cyrv\cyro\cyrp\cyro\cyrl\cyro\cyrzh\cyrn\cyro\cyrishrt}%
+ {\cyrp\cyrr\cyre\cyrd\cyrery\cyrd\cyru\cyrshch\cyre\cyrishrt}\
+ \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyre}%
+ \def\reftextafter{\cyrn\cyra\ \cyrs\cyrl\cyre\cyrd\cyru\cyryu\cyrshch
+ \cyre\cyrishrt\ \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyre}%
+ \def\reftextbefore{\cyrn\cyra\ \reftextvario{\cyrp\cyrr\cyre\cyrd
+ \cyrsh\cyre\cyrs\cyrt\cyrv\cyru\cyryu\cyrshch\cyre\cyrishrt}%
+ {\cyrp\cyrr\cyre\cyrd\cyrery\cyrd\cyru\cyrshch\cyre\cyrishrt}%
+ \ \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyre}%
+ \def\reftextcurrent{\cyrn\cyra\ \reftextvario{\cyrerev\cyrt\cyro
+ \cyrishrt}{\cyrd\cyra\cyrn\cyrn\cyro\cyrishrt}\ \cyrs\cyrt\cyrr
+ \cyra\cyrn\cyri\cyrc\cyre}%
+ \def\reftextfaraway#1{\cyrn\cyra\ \cyrs.~\pageref{#1}}%
+ \def\reftextpagerange#1#2{\cyrn\cyra\ \cyrs\cyrt\cyrr\cyra\cyrn
+ \cyri\cyrc\cyra\cyrh~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\cyrs~\ref{#1}\ \cyrp\cyro~\ref{#2}}%
+ }}
+\DeclareOption{slovak}
+ {\vref@addto\extrasslovak{%
+ \def\reftextfaceafter {na \reftextvario{proti\v lahlej}%
+ {nasleduj\'ucej} strane}%
+ \def\reftextfacebefore{na \reftextvario{proti\v lahlej}%
+ {predch\'adzaj\'ucej} strane}%
+ \def\reftextafter {na \reftextvario{nasleduj\'ucej}%
+ {\v dal\v sej} strane}%
+ \def\reftextbefore {na \reftextvario{predch\'adzaj\'ucej}%
+ {predo\v slej} strane}%
+ \def\reftextcurrent {na tejto strane}%
+ \def\reftextfaraway#1{na strane~\pageref{#1}}%
+ \def\reftextpagerange#1#2{na stran\'ach~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} a\v z~\ref{#2}}%
+ }}
+\DeclareOption{slovene}
+ {\vref@addto\extrasslovene{%
+ \def\reftextfaceafter {na naslednji strani}%
+ \def\reftextfacebefore{na prej\v{s}nji strani}%
+ \let\reftextafter \reftextfaceafter
+ \let\reftextbefore \reftextfacebefore
+ \def\reftextcurrent {na \reftextvario{tej}{trenutni} strani}%
+ \def\reftextfaraway#1{na strani~\pageref{#1}}%
+ \def\reftextpagerange#1#2{na straneh~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{od~\ref{#1} do~\ref{#2}}%
+ }}
+\DeclareOption{spanish}
+ {\vref@addto\extrasspanish{%
+ \def\reftextfaceafter {en la p\'agina siguiente}%
+ \def\reftextfacebefore{en la p\'agina anterior}%
+ \let\reftextafter \reftextfaceafter
+ \let\reftextbefore \reftextfacebefore
+ \def\reftextcurrent {en esta p\'agina}%
+ \def\reftextfaraway#1{en la p\'agina~\pageref{#1}}%
+ \def\reftextpagerange#1#2{en las p\'aginas~\pageref{#1}%
+ -\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} a~\ref{#2}}%
+ }}
+\DeclareOption{swedish}
+ {\vref@addto\extrasswedish{%
+ \def\reftextfaceafter {p\aa\ \reftextvario{motst\aa ende}%
+ {n\"{a}sta} sida}%
+ \def\reftextfacebefore{p\aa\ \reftextvario{motst\aa ende}%
+ {f\"{o}reg\aa ende} sida}%
+ \def\reftextafter {p\aa\ \reftextvario{f\"{o}ljande}%
+ {n\"{a}sta} sida}%
+ \def\reftextbefore {p\aa\ f\"{o}reg\aa ende sida}%
+ \def\reftextcurrent {p\aa\ denna sida}%
+ \def\reftextfaraway#1{p\aa\ sidan~\pageref{#1}}%
+ \def\reftextpagerange#1#2{p\aa\
+ sidorna~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} till~\ref{#2}}%
+ }}
+\DeclareOption{turkish}
+ {\vref@excuse{turkish}%
+ \vref@addto\extrasturkish{%
+ \def\reftextfaceafter {on the \reftextvario{facing}{next} page}%
+ \def\reftextfacebefore{on the \reftextvario{facing}{preceding}
+ page}%
+ \def\reftextafter {on the \reftextvario{following}{next} page}%
+ \def\reftextbefore {on the \reftextvario{preceding}{previous} page}%
+ \def\reftextcurrent {on \reftextvario{this}{the current} page}%
+ \def\reftextfaraway#1{on page~\pageref{#1}}%
+ \def\reftextpagerange#1#2{on pages~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1} to~\ref{#2}}%
+ }}
+\DeclareOption{ukrainian}
+ {\vref@addto\extrasukrainian{%
+ \def\reftextfaceafter{\cyrn\cyra\ \reftextvario{\cyrp\cyrr\cyro
+ \cyrt\cyri\cyrl\cyre\cyrzh\cyrn\cyrii\cyrishrt}%
+ {\cyrn\cyra\cyrs\cyrt\cyru\cyrp\cyrn\cyrii\cyrishrt}\ \cyrs\cyrt
+ \cyro\cyrr\cyri\cyrn\cyrc\cyrii}%
+ \def\reftextfacebefore{\cyrn\cyra\ \reftextvario{\cyrp\cyrr\cyro
+ \cyrt\cyri\cyrl\cyre\cyrzh\cyrn\cyrii\cyrishrt}%
+ {\cyrp\cyro\cyrp\cyre\cyrr\cyre\cyrd\cyrn\cyrii\cyrishrt}\
+ \cyrs\cyrt\cyro\cyrr\cyrii\cyrn\cyrc\cyrii}%
+ \def\reftextafter{\cyrn\cyra\ \cyrn\cyra\cyrs\cyrt\cyru\cyrp\cyrn
+ \cyrii\cyrishrt\ \cyrs\cyrt\cyro\cyrr\cyrii\cyrn\cyrc\cyrii}%
+ \def\reftextbefore{\cyrn\cyra\ \cyrp\cyro\cyrp\cyre\cyrr\cyre\cyrd
+ \cyrn\cyrii\cyrishrt\ \cyrs\cyrt\cyro\cyrr\cyrii\cyrn\cyrc\cyrii}%
+ \def\reftextcurrent{\cyrn\cyra\ \reftextvario{\cyrc\cyrii\cyrishrt}%
+ {\cyrd\cyra\cyrn\cyrii\cyrishrt}\ \cyrs\cyrt\cyro\cyrr\cyrii\cyrn
+ \cyrc\cyrii}%
+ \def\reftextfaraway#1{\cyrn\cyra\ \cyrs.~\pageref{#1}}%
+ \def\reftextpagerange#1#2{\cyrn\cyra\ \cyrs\cyrt\cyro\cyrr\cyrii
+ \cyrn\cyrk\cyra\cyrh~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\cyrz~\ref{#1}\ \cyrd\cyro~\ref{#2}}%
+ }}
+\DeclareOption{francais}{%
+ \typeout{Please use `french' instead of `francais'}%
+ \ExecuteOptions{french}}
+\DeclareOption{germanb}{%
+ \typeout{Please use `german' instead of `germanb'}%
+ \ExecuteOptions{german}}
+\DeclareOption{draft}{\AtEndOfPackage\vrefwarning}
+\DeclareOption{final}{\AtEndOfPackage\vrefshowerrors} % the default
+\ExecuteOptions{english,final}
+\ProcessOptions*
+\newcounter{vrcnt}
+\DeclareRobustCommand\vpageref{\@ifstar
+ {\let\vref@space\relax\vp@geref}%
+ {\let\vref@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]}}
+\def\@@vpageref#1[#2]#3{%
+ \leavevmode\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}%
+ \ifx\@tempa\@tempb
+ \let\vref@may@loop\relax
+ \else
+ \edef\vref@may@loop{%
+ \noexpand\vref@err{\noexpand\vref or \noexpand\vpageref
+ at page boundary
+ \@tempb-\@tempa\space (may loop)%
+ }%
+ }%
+ \fi
+ \vrefpagenum\thevpagerefnum{#3}%
+ \vref@space
+ \ifx\@tempa\thevpagerefnum
+ \def\@tempc{#1}%
+ \ifx\@tempc\@empty
+ \unskip
+ \else
+ #1%
+ \fi
+ \else
+ #2%
+ \is@pos@number\thevpagerefnum
+ {%
+ \is@pos@number\@tempa
+ {\@tempcnta\@tempa
+ \advance\@tempcnta\@ne
+ }%
+ {\@tempcnta\maxdimen}%
+ \ifnum \thevpagerefnum =\@tempcnta
+ \ifodd\@tempcnta
+ \if@twoside
+ \reftextfaceafter
+ \else
+ \reftextafter
+ \fi
+ \else
+ \reftextafter
+ \fi
+ \else
+ \advance\@tempcnta-2
+ \ifnum \thevpagerefnum =\@tempcnta
+ \ifodd\@tempcnta
+ \reftextbefore
+ \else
+ \if@twoside
+ \reftextfacebefore
+ \else
+ \reftextbefore
+ \fi
+ \fi
+ \else
+ \let\vref@may@loop\relax % added
+ \reftextfaraway{#3}%
+ \fi
+ \fi
+ }%
+ {%
+ \let\vref@may@loop\relax %added
+ \reftextfaraway{#3}}%
+ \fi
+ \vref@label{\the\c@vrcnt @vr}%
+ \vref@may@loop
+}
+\def\vref@label#1{\@bsphack
+ \protected@write\@auxout{}%
+ {\string\newlabel{#1}{{}{\thepage}}}%
+ \@esphack}
+\let\thevpagerefnum\@empty
+\def\vrefwarning{\def\vref@err{\PackageWarning{varioref}}}
+\def\vrefshowerrors{\def\vref@err##1{\PackageError{varioref}{##1}%
+ {Please check the pages in question. You might need to replace
+ the \string\vref\MessageBreak
+ 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}}
+\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{%
+ \ifx\@nil#1\@nil
+ \expandafter\@firstoftwo \else
+ \expandafter\@secondoftwo \fi}
+\def\reftextvario#1#2{\ifodd\c@vrcnt #1\else#2\fi}
+\def\fullref#1{\ref{#1} \reftextfaraway{#1}}
+\def\vref@pagenum#1#2{%
+ \@ifundefined{r@#2}{\@namedef{r@#2}{{??}{??}}}{}%
+ \expandafter\expandafter\expandafter\vref@@pagenum
+ \csname r@#2\endcsname{}{}\@nil#1%
+}
+\def\vref@@pagenum#1#2#3\@nil#4{%
+ \def#4{#2}%
+}
+\def\vrefpagenum#1#2{%
+ \@ifundefined{r@#2}%
+ {\G@refundefinedtrue
+ \@latex@warning{Reference `#2' on page \thepage \space
+ undefined}}{}%
+ \vref@pagenum{#1}{#2}}
+\newcommand\@svpagerefrange[3][\reftextcurrent]{%
+ \vrefpagenum\@tempa{#2}%
+ \vrefpagenum\@tempb{#3}%
+ \ifx\@tempa\@tempb
+ \vpageref*[{#1}]{#2}%
+ \else
+ \reftextpagerange{#2}{#3}%
+ \fi
+}
+\newcommand\@vpagerefrange[3][\reftextcurrent]{%
+ \vrefpagenum\@tempa{#2}%
+ \vrefpagenum\@tempb{#3}%
+ \ifx\@tempa\@tempb
+ \vpageref[{#1}]{#2}%
+ \else
+ \reftextpagerange{#2}{#3}%
+ \fi
+}
+\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}}
+\endinput
+%%
+%% End of file `varioref.sty'.
diff --git a/macros/latex/required/tools/varioref.dtx b/macros/latex/required/tools/varioref.dtx
index 2417e9b120..049bd0d55e 100644
--- a/macros/latex/required/tools/varioref.dtx
+++ b/macros/latex/required/tools/varioref.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2016
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -14,7 +14,7 @@
% The latest version of this license is in
% https://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
+% version 2008 or later.
%
% The list of all files belonging to the LaTeX `Tools Bundle' is
% given in the file `manifest.txt'.
@@ -22,19 +22,25 @@
% \fi
% \iffalse
%% 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.
%%
%
%<package>\NeedsTeXFormat{LaTeX2e}[1995/05/16]
+%<package>\providecommand\DeclareRelease[3]{}
+%<package>\providecommand\DeclareCurrentRelease[2]{}
+%<package>
+%<package>\DeclareRelease{}{2016-02-16}{varioref-2016-02-16.sty}
+%<package>\DeclareCurrentRelease{}{2019-10-01}
+%<package>
%<package>\ProvidesPackage{varioref}
-%<package> [2016/02/16 v1.5c package for extended references (FMi)]
+%<package> [2019/09/08 v1.6b package for extended references (FMi)]
% \fi
%
%%
@@ -44,11 +50,32 @@
% \changes{v1.0g}{1994/05/27}{Use \cmd\DeclareRobustCommand}
% \changes{v1.5c}{2016/02/09}{Revamped some of the documentation to better
% explain how varioref could be used in a multi-lingual context}
-
+% \changes{v1.6a}{2019/08/25}{\cs{labelformat} and \cs{Ref} now available in the kernel
+% so removed from this package but only in new kernel}
+%
+%
+% \newcommand\NewIn[1]{\marginpar{\fbox{\fbox{\sffamily\tabular{l}New
+% in\\#1\endtabular}}}}
+% \newcommand\ChangedIn[1]{\marginpar{\fbox{\fbox{\sffamily\tabular{l}Changed
+% in\\#1\endtabular}}}}
+%
+% \providecommand\pkg[1]{\texttt{#1}}
+% \providecommand\option[1]{\texttt{#1}}
+% \providecommand\meta[1]{$\langle§\textit{#1}$\rangle$}
%
-% \newcommand\NewIn[1]{\marginpar{\fbox{\fbox{\sffamily\tabular{l}New in\\#1\endtabular}}}}
%
-% \title{The \texttt{varioref} package\thanks{This file
+% \makeatletter
+% \def\allowtofu{^^A
+%\def\UTFviii@undefined@err##1{^^A
+% \PackageWarning{inputenc}{Unicode character \expandafter
+% \UTFviii@splitcsname\string##1\relax
+% \MessageBreak
+% not set up for use with LaTeX}^^A
+% \raisebox{.8pt}{\fboxsep1pt\kern.1pt\fbox{$\cdot$}\kern.1pt}^^A
+% }}
+% \makeatother
+%
+% \title{The \pkg{varioref} package\thanks{This file
% has version number \fileversion, last
% revised \filedate.}}
% \author{Frank Mittelbach}
@@ -95,6 +122,23 @@
%
%
%
+% \section{Loading the package}
+%
+%
+% The suggested way of loading the package these days is by
+% \emph{always} using
+% the package option \option{nospace},
+% \NewIn{2019}
+% i.e.,
+% \begin{verbatim}
+% \usepackage[nospace]{varioref}
+%\end{verbatim}
+% See below for an explanation of why this is needed. There are some
+% other options that you may want to use additionally; they are
+% explained \vpageref{options}.
+%
+%
+%
% \section{The user interface}
%
%\DescribeMacro\vref The implementation of |\vref| below produces only
@@ -112,9 +156,11 @@
% number and again such a reference should normally be suppressed if
% we are referring to the current page. For this purpose the package
% defines the |\vpageref| command. It will produce the same strings as
-% |\vref| except that it doesn't start with the |\ref| and except that
+% |\vref| except that it doesn't start with the |\ref|. A further
+% difference is that
% it will produce the string that is saved in |\reftextcurrent| if
-% label and reference fall onto the same page. By defining
+% label and reference fall onto the same page (and no optional
+% argument is used). By defining
% |\reftextcurrent| to produce ``on this page'' or something similar,
% we can avoid that
% \begin{verbatim}
@@ -123,7 +169,7 @@
% comes out as ``\ldots~see the example which shows~\ldots'', which
% could be misleading.
%
-% You can put a space in front of |\vpageref| it will be ignored if
+% A space in front of |\vpageref| it will be ignored if
% the command doesn't produce any text at all.
%
% But in fact |\vpageref| allows even more control. If has two
@@ -162,7 +208,6 @@
%
%
% \DescribeMacro\vrefrange
-% \NewIn{1998}
% This command is similar to |\vref| but it
% takes two mandatory arguments denoting a range to refer to (e.g., a
% sequences of figures or a sequence of equations, etc.). So if
@@ -203,12 +248,11 @@
% So if you have two (or more) labels you could retrieve their page
% numbers, compare them and then decide what to print. For example,
% the following not very serious definition (also using the
-% \texttt{ifthen} package)
+% \pkg{ifthen} package)
%\begin{verbatim}
-% \newcommand\amusingversion[2]{%
+% \newcommand\amusingversion[2]{the definition%
% \vrefpagenum\firstnum{#1}%
% \vrefpagenum\secondnum{#2}%
-% the definition%
% \ifthenelse{\equal\firstnum\secondnum}%
% {s of \ref{#1} and \ref{#2} \vpageref{#1}}%
% { of \ref{#1} \vpageref{#1} and of \ref{#2} \vpageref{#2}}%
@@ -224,44 +268,82 @@
% \begin{quote}
% \ldots the definition of 3 on the next page and of 4 on page~13
% \end{quote}
-% in case the are on different pages.
+% in case they are on different pages.
+%
+% \DescribeMacro\vpagerefcompare
+% \NewIn{2019}
+% For this kind of application the package also provides
+% |\vpagerefcompare| as a command that takes four argument: two labels for
+% comparison and a \meta{true} and \meta{false} argument. One of them
+% is executed depending on whether the two labels are on the same page
+% or on different pages. With its help the above definition could be
+% shortened to
+%\begin{verbatim}
+% \newcommand\amusingversion[2]{the definition%
+% \vpagerefcompare{#1}{#2}%
+% {s of \ref{#1} and \ref{#2} \vpageref{#1}}%
+% { of \ref{#1} \vpageref{#1} and of \ref{#2} \vpageref{#2}}%
+% }
+%\end{verbatim}
+% and you don't have to load the \pkg{ifthen} package any longer to
+% make it work.
+%
+% \DescribeMacro\vpagerefnearby
+% \NewIn{2019}
+% Another command for conditional processing is |\vpagerefnearby|. It
+% takes three arguments: a label and a \meta{true} and \meta{false}
+% argument. It compares the page reference to the label with the
+% current page number and if both are arabic number and only differ by
+% $\pm1$ the \meta{true} argument is executed otherwise the
+% \meta{false} argument. In other words it tells you if a |\vpageref|
+% to the label would result in a textual reference to the previous,
+% current or next page.\footnote{There is also a
+% \cs{vpagerefcomparenearby} but this is only meant for package
+% writers, so it is only documented in the implementation section.}
+
%
%
-% The user commands |\vref|, |\vpageref|, and |\vpagerefrange| all
-% \NewIn{2001}
-% work by first removing any space on their left and then inserting
-% some space of their own (|\vref|, for example, a nonbreakable
-% space). That seemed like a good idea back then, but it has the
-% disadvantage that you can't use these macros in situations where you
-% definitely do not want any space before the generated text. E.g., in
-% situations like |(\vref{foo} ...)| you end up with a space after the
-% open parenthesis.
+% If you don't use the \texttt{nospace} option the user commands
+% |\vref|, |\vpageref|, and |\vpagerefrange| all work by first
+% removing any space on their left and then inserting some space of
+% their own (|\vref|, for example, a nonbreakable space). That seemed
+% like a good idea back then, but it has the disadvantage that you
+% can't use these macros in situations where you definitely do not
+% want any space before the generated text. E.g., in situations like
+% |(\vref{foo} ...)| you end up with a space after the open
+% parenthesis.
%
% \DescribeMacro{\vref*}
% \DescribeMacro{\vpageref*}
% \DescribeMacro{\vpagerefrange*}
-% Since it is too late to change the default behaviour I've added star
+% Since it was too late to change the default in 2001 I added star
% versions of the macros which do not add any space before the
% generated text (they do nevertheless remove space at the left).
%
+% However, that too has problems (one is that \pkg{hyperref}
+% \ChangedIn{2019}
+% introduced the star forms as a means to generating references
+% without hyperlinks (which is clearly the more important
+% application).
+% So these days I recommend to always call the package with the option
+% \option{nospace} which prevents \pkg{varioref} from messing with the
+% space in front. Of course you are then responsible to always add it
+% when necessary, but that does make the source more readable so it is
+% a good thing. This also has the advantage that the star forms are
+% now unnecessary again and can be used in the way implemeented by
+% \pkg{hyperref} if both packages are used together.
+%
+% In fact it would be much nicer to make that the
+% default but the package has been used by many people for so many
+% years that changing the default would break way to many older documents.
%
%
% \DescribeMacro\labelformat
-% \NewIn{2002}
% A reference via |\ref| produces by default the data associated with
% the corresponding |\label| command (typically a number); any
-% additional formatting has to be provided by the user. If, for
-% example, references to equations are always to be typeset as
-% ``equation (\textit{number})'', one has to code
-% ``\verb=equation (\ref{=\textit{key}\verb=})=''. With |\labelformat|
-% the \texttt{varioref} package offers a possibility to generate such
-% frills automatically. The command takes two arguments: the first is
-% the name of a counter and the second is its representation when
-% referenced. This means that for a successful usage, one has to know
-% the counter name being used for generating the label, though in
-% practice this should not pose a problem. The current counter number
-% is picked up as an argument.
-% Here are two examples:
+% additional formatting has to be provided by the user. With
+% |\labelformat| it is possible to declare scuch formatting for each
+% ``reference'' counter, e.g.,
%\begin{verbatim}
% \labelformat{section}{section~#1}
% \labelformat{equation}{equation~(#1)}}
@@ -273,25 +355,31 @@
% A side effect of using |\labelformat| is that, depending on the
% defined formatting, it becomes impossible to use |\ref| at the
% beginning of a sentence (if its replacement text starts with a
-% lowercase letter). To overcome this problem \texttt{varioref}
-% introduces the commands |\Ref| and |\Vref| that behave like
-% |\ref| and |\{vref| except that they uppercase the first token
-% of the generated string.
-%
-% To make |\Ref| or |\Vref| work properly the very first token in
-% the second argument of |\labelformat| has to be a simple \textsc{ascii}
-% letter, otherwise the capitalization will fail or worse, you will end
-% up with some error messages. If you actually need something more
-% complicated in this place (e.g., an accented letter)
-% you have to explicitly surround it with braces, to
-% identify the part that needs to be capitalized. For example, for
-% figure references in the Hungarian language you might want to write
-% |\labelformat{figure}{{\'a}bra~\thefigure}|.
-%
-% \DescribeMacro\vpagerefnum
+% lowercase letter).
+% \ChangedIn{2019}
+% For that reason \pkg{varioref} provided the commands |\Ref| and
+% |\Vref|. They behave like |\ref| and |\vref| except that they
+% uppercase the first token of the generated string. These days
+% |\labelformat| and |\Ref| are already provided by the \LaTeX{}
+% kernel; only |\Vref| is still defined within the \pkg{varioref}
+% package.
+%
+% To make |\Ref| or |\Vref| work properly the very first token in the
+% second argument of |\labelformat| has to be a simple \textsc{ascii}
+% or UTF-8 letter, otherwise the capitalization will fail or worse,
+% you will end up with some error messages. If you actually need
+% something more complicated in this place (e.g., an accented letter
+% not written as a UTF-8 character) you have to explicitly surround it
+% with braces, to identify the part that needs to be capitalized. For
+% example, for figure references in the Hungarian language you might
+% want to write |\labelformat{figure}{{\'a}bra~\thefigure}| or use
+% |\labelformat{figure}{ábra~\thefigure}| which avoids the brace
+% problem.
+%
+% \DescribeMacro\thevpagerefnum
% If you like to have |\vref| suppress the page number on pages where
% label and reference fall onto the same page, but prefer reference to
-% page numbers otherwise then |\vpagerefnum| can be used. This macro
+% page numbers otherwise then |\thevpagerefnum| can be used. This macro
% hold the current page ``number'' when |\vpageref| and friends are
% executed. Thus, by defining, for example
%\begin{verbatim}
@@ -321,10 +409,10 @@
%\end{verbatim}
% to achieve the same effect.
%
-% If more than one language is specified with \texttt{varioref} then
+% If more than one language is specified with \pkg{varioref} then
% it will start using the last language selected. Switching of
% languages is managed through Babel; nevertheless all languages of
-% interest need to be specified when \texttt{varioref} is loaded so
+% interest need to be specified when \pkg{varioref} is loaded so
% that it can integrate their strings into the Babel system.
%
%
@@ -404,7 +492,7 @@
%
%
%
-% \section{Options}
+% \section{Options} \label{options}
%
% As mentioned above the package supports all standard options offered
% by the Babel system to customize the strings produced, it may also
@@ -414,6 +502,19 @@
% development. The default \texttt{final} produces error message when
% a generated string falls onto a page boundary (see next section).
%
+% Newly introduced in 2019 are the options \option{space} (default)
+% and \option{nospace}. While the former is the default to allow
+% \NewIn{2019}
+% documents written in the last twenty years to continue to work
+% correctly, I nowadays, suggest that you always use the package with
+% the option \option{nospace}. This will stop \pkg{varioref} from
+% meddling with the spaces preceding commands and thus make the star
+% forms |\vref*| and |\vpageref*| unnecessary.
+%
+% This means that the star forms can then be used as defined by
+% \pkg{hyperref} for suppressing a hyperlink when both packages are
+% used together (which is a rather typical scenario these days).
+%
%
% \section{A few warnings}
%
@@ -425,7 +526,7 @@
% another (i.e., inserting one string, finding that this is wrong,
% inserting another string on the next run which makes the first
% string correct again, inserting \ldots). The current implementation
-% of \texttt{varioref} therefore issues an error message whenever the
+% of \pkg{varioref} therefore issues an error message whenever the
% generated text is broken across page boundaries, e.g.,
% \begin{quote}
% table 5 on the current \meta{page break} page
@@ -447,8 +548,10 @@
% At the end final a warning: every use of |\vref| will internally
% generate two macro names to keep track of the string positions
% within the document. As a result you may run out of name space or
-% main memory if you make heavy use of this macro on a small \TeX{}
-% installation.
+% main memory\footnote{Not really that likely these days, but one
+% never knows \ldots. In any case \TeX{} will process your document a
+% tiny bit faster.} if you make heavy use of this macro on a small
+% \TeX{} installation.
%\DescribeMacro\fullref For this reason the primitive command
% |\fullref| is also provided. This command can be used whenever you
% know for sure that label and reference can't fall onto nearby pages.
@@ -461,7 +564,7 @@
% The next bit of code contains the documentation driver file for
% \TeX{}, i.e., the file that will produce the documentation you are
% currently reading. It will be extracted from this file by the
-% \texttt{docstrip} program.
+% \pkg{docstrip} program.
% \begin{macrocode}
%<*driver>
\documentclass{ltxdoc}
@@ -622,6 +725,27 @@
\def\reftextlabelrange#1#2{\ref{#1} to~\ref{#2}}%
}}
% \end{macrocode}
+% Arabic option text was contributed by Ihab Samir Mattar
+% (\texttt{dr\_kremlin@hotmail.com}). As our standard documentation
+% workflow uses pdf\TeX{} the Arabic letters can't be displayed
+% easily, so you will see missing glyphs below. To see the real
+% letters you have to look at the source or package file.
+% \changes{v1.6b}{2019/09/8}{Option arabic added}
+% \begin{allowtofu}
+% \begin{macrocode}
+\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}}%
+ }}
+% \end{macrocode}
+% \end{allowtofu}
% \changes{v1.2a}{1998/11/27}{Added austrian defaults (identical to german)}
% The austrian defaults are the same as the german ones.
% \begin{macrocode}
@@ -1437,14 +1561,30 @@
\DeclareOption{final}{\AtEndOfPackage\vrefshowerrors} % the default
% \end{macrocode}
%
+%
+% Whether or not \pkg{varioref} uses its own white space and
+% removes the one in the source document is handeled by the
+% following two options. For historical reasons the default is to
+% handle the space, but the recommendation these days is to use
+% \texttt{nospace}.
+% \changes{v1.6a}{2019/08/25}{Provide options \texttt{space} and \texttt{nospace}}
+% \begin{macrocode}
+\newif\if@vrefhandlespace
+\DeclareOption{space} {\@vrefhandlespacetrue}
+\DeclareOption{nospace}{\@vrefhandlespacefalse}
+% \end{macrocode}
+%
+%
+%
+%
% After all options are declared we execute the default option
% \texttt{english} to set up the defaults and then call
% |\ProcessOptions*| to handle any option passed to the package.
% The star form is used since we want to execute the options in the
% order they are given (in case this isn't used together with the
-% \texttt{babel} package).
+% \pkg{babel} package).
% \begin{macrocode}
-\ExecuteOptions{english,final}
+\ExecuteOptions{english,final,space}
\ProcessOptions*
% \end{macrocode}
%
@@ -1470,12 +1610,23 @@
% internal and the user label. This command should be robust since
% the user might put it anywhere.
%
-% We now start by scanning for a star which means: do not add a
-% space in front of the generated text---ever.
+% We now start by scanning for a star and then call either
+% |\vp@gerefstar| or |\vp@geref|.
+% The space handling logic is a bit twisted these days: if the
+% option \texttt{space} is
+% in force then preceding spaces in the document are removed and
+% the star means that the command should not add its own
+% space. However, with option \texttt{nospace} any space already in the
+% source will be left alone and the command doesn't add its own
+% space either. Thus in this case the star form doesn't
+% have any effect and below |\vp@gerefstar| is let to
+% |\vp@geref|. This allows a package like \pkg{hyperef} to redefine
+% it and useit for its own tasks (like denoting that no link should
+% be produced).
% \begin{macrocode}
\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}}
% \end{macrocode}
%
% \begin{macrocode}
@@ -1493,7 +1644,7 @@
% \begin{macro}{\vref@space}
% \changes{v1.4a}{2002/03/06}{Default added}
% A default for |\vref@space|. This isn't really needed except in
-% the case that somebody has hooked into the \texttt{varioref}
+% the case that somebody has hooked into the \pkg{varioref}
% interfaces at a lower level (which isn't really supported,
% but\ldots). So giving a default will prevent an error message in
% that case (and should hopefully produce the same behavior as before).
@@ -1507,13 +1658,12 @@
% \begin{macrocode}
\def\@vpageref[#1]{\@ifnextchar[%
% \end{macrocode}
-% The default for the second optional argument is a space which is
-% prefixed by |\unskip| to get rid of any leading space inserted
-% already.
+% By default the second optional argument is empty.
% \changes{v1.0h}{1994/06/11}{Pass first argument in both cases}
% \changes{v1.0i}{1994/06/20}{Do it correctly}
+% \changes{v1.6a}{2019/08/25}{Default for optional argumet changed}
% \begin{macrocode}
- {\@@vpageref{#1}}{\@@vpageref{#1}[\unskip\vref@space]}}
+ {\@@vpageref{#1}}{\@@vpageref{#1}[]}}
% \end{macrocode}
% \end{macro}
%
@@ -1525,10 +1675,14 @@
% \begin{macrocode}
\def\@@vpageref#1[#2]#3{%
% \end{macrocode}
-% First it switches to horizontal mode if necessary and also
-% removes any leading space.
+% First it switches to horizontal mode if necessary. If there was a
+% preceding space we remember its size in |\@tempskipa| and then remove it for
+% reinsertion later.
+% \changes{v1.6a}{2019/08/25}{Don't drop a preceding space completely
+% but reinsert it later after setting a label}
% \begin{macrocode}
- \leavevmode\unskip
+ \leavevmode
+ \@tempskipa\lastskip \unskip
% \end{macrocode}
% Then it advances the counter |\c@vrcnt| by one which is used to
% generate internal label names.
@@ -1561,15 +1715,37 @@
% special combination of packages.
%
% These days we actually use |\vref@label| instead of |\label| as
-% this avoids problems with Babel or \texttt{amsmath} redefining
+% this avoids problems with Babel or \pkg{amsmath} redefining
% the latter command.
% \changes{v1.4e}{2003/01/08}{Use \cs{vref@label} instead of
% \cs{label} (pr/3489)}
% \begin{macrocode}
\vref@label{\the\c@vrcnt @xvr}%
% \end{macrocode}
+% Since we have removed
+% any leading space above we now insert a space here after the
+% label. It is done here so that it is still visible from following
+% code---the space before the label would be hidden.
+% What kind of space depends on the options to the
+% package. If \texttt{space} was specified, we insert our own
+% space, namely |\vref@maybe@space|. This will typeset a space
+% unless the star form of the current command was used.
+% \begin{macrocode}
+ \if@vrefhandlespace
+ \vref@maybe@space
+ \else
+% \end{macrocode}
+% But if \texttt{nospace} is in force we simply use the same space
+% value that was used in the source document (unless that was zero
+% or non-existent.
+% \begin{macrocode}
+ \ifdim\@tempskipa=\z@ \else
+ \hskip\@tempskipa
+ \fi
+ \fi
+% \end{macrocode}
% \changes{v1.1g}{1998/05/10}{Test if inside AMS display (pr2175)}
-% Inside displays of the \texttt{amsmath} package the |\label| command
+% Inside displays of the \pkg{amsmath} package the |\label| command
% is redefined which makes the test for loops incorrect if a |\vref|
% is used in, say, |\intertext|. So we test this condition first and
% only do the test if |\label| doesn't have a special meaning.
@@ -1612,19 +1788,17 @@
%\end{verbatim}
% But this is not possible because it would result in getting
% `Labels may have changed\ldots' warnings for every run. Now we
-% are ready to produce the textual strings. Since we have removed
-% any leading space we now insert a space (unless this was the star
-% form of the command) and then compare the two
-% page references.
+% are ready to produce the textual strings.
% \begin{macrocode}
- \vref@space
\ifx\@tempa\thevpagerefnum
% \end{macrocode}
% If they are the same we insert the first argument into the input
% stream. Otherwise we insert the second argument. Recall that
% those are the two optional arguments of |...|. However, if the
% user explicitly requested an empty text string using the optional
-% argument we cancel any preceding space.
+% argument we cancel any preceding space since in this case we are
+% otherwise likely to end up with spaces one before and one after
+% |\vpageref|.
% \changes{v1.2f}{2000/07/07}{Don't output space if optional argument
% empty (pr/3230)}
% \begin{macrocode}
@@ -1635,7 +1809,14 @@
#1%
\fi
\else
- #2%
+% \end{macrocode}
+% If |#2| is empty we do nothing otherwise we insert it followed by
+% a space.
+% \begin{macrocode}
+ \def\@tempc{#2}%
+ \ifx\@tempc\@empty \else
+ #2\vref@space
+ \fi
% \end{macrocode}
% Now we check if the page number of the referenced object (stored
% in |\thevpagerefnum| is a single positive number.
@@ -1761,7 +1942,7 @@
% \changes{v1.0l}{1994/07/07}{Explicitly expand \cs{label} argument for babel}
%
% These days we actually use |\vref@label| instead of |\label| as
-% this avoids problems with Babel or \texttt{amsmath} redefining
+% this avoids problems with Babel or \pkg{amsmath} redefining
% the latter command.
% \changes{v1.4e}{2003/01/08}{Use \cs{vref@label} instead of
% \cs{label} (pr/3489)}
@@ -1778,12 +1959,38 @@
% \end{macro}
%
%
+% \begin{macro}{\vp@gerefstar}
+% The default code for the star form is identical to the previous
+% macro |\vp@geref|. It only produces a different result because
+% before calling it we set |\vref@maybe@space| to do nothing.
+%
+% The \pkg{hyperref} package can then change the meaning of this
+% command to suppress a hyperlink.
+%
+% It is is also a good way to check if we are running with a new
+% \pkg{varioref} by testing
+%\begin{verbatim}
+% \ifdefined\vp@gerefstar
+% ... code fore noew varioref
+% \else
+% ... code for old varioref
+% \fi
+%\end{verbatim}
+%
+% \changes{v1.6a}{2019/08/25}{Command added to support hyperref better}
+% \begin{macrocode}
+\let\vp@gerefstar\vp@geref
+% \end{macrocode}
+% \end{macro}
+%
+%
+
% \begin{macro}{\vref@label}
% \changes{v1.4e}{2003/01/08}{Macro added (pr/3489)}
% This macro is like |\label| in the kernel but without passing on
% |\@currentlabel|, ie useful if all we are interested in is the
% page number. It also has the effect that it is unaffected by
-% \texttt{amsmath} or Babel redefining the |\label| command.
+% \pkg{amsmath} or Babel redefining the |\label| command.
% \begin{macrocode}
\def\vref@label#1{\@bsphack
\protected@write\@auxout{}%
@@ -1830,19 +2037,48 @@
%
%
% \begin{macro}{\vref}
+% We start by scanning for a star form and then continue in a
+% different macro depending on the result.
% \changes{v1.3a}{2001/04/12}{Scan for star form}
-% We start by scanning for a star form in which case we do not put
-% any space before the generated text (only remove some).
-% \begin{macro}{\vr@f}
+% \changes{v1.6a}{2019/08/25}{Adjusted for new spacing regime}
% \begin{macrocode}
\DeclareRobustCommand\vref{\@ifstar
- {\let\vref@space\relax\vr@f}%
- {\let\vref@space\nobreakspace\vr@f}}
+ {\vref@star}{\vr@f}}
% \end{macrocode}
-% And now we do the real work\ldots
+% \end{macro}
+
+
+
+% \begin{macro}{\vref@star}
+%
+% The star form is easy (and just a convenient shortcut), just call
+% |\ref| followed by |\vpageref| and pass the optional argument to
+% the latter. We don't support the second optional argument of
+% |\vpageref|, it that is needed one has to call both commands
+% explicitly
+% \changes{v1.6a}{2019/08/25}{Command added to support hyperref better}
+% \begin{macrocode}
+\newcommand\vref@star[2][]{%
+ \ref{#2}
+ \vpageref[#1]{#2}}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\vr@f}
+% The normal case is a little bit more elaborated \ldots
% \changes{v1.3c}{2001/09/04}{Correct typo in name}
+% \changes{v1.6a}{2019/08/25}{Adjusted for new spacing regime}
% \begin{macrocode}
-\def\vr@f#1{%
+\def\vr@f{%
+ \leavevmode
+% \end{macrocode}
+% If option \texttt{space} is used then we remove a preceding space
+% and add our own unbreakable space instead. Otherwise we don't do
+% any space-handling.
+% \begin{macrocode}
+ \if@vrefhandlespace
+ \unskip \nobreakspace
+ \fi
% \end{macrocode}
% The use of|\nobreakspace| or |~| after the |\unskip| means that
% this command will always produce a normal space while
@@ -1856,24 +2092,15 @@
% \changes{v1.2a}{1998/11/27}{Use \cs{nobreakspace} (pr/2909)}
% \changes{v1.2a}{1998/11/27}{Add \cs{leavevmode}}
%
-% Above comments all refer to the earlier versions where there was
-% no possibility to suppress the space at all. By now we have
-% |\vref*| and |\vpageref*| to suppress the in internally generated
-% space by redefining |\vref@space| appropriately.
-% \begin{macrocode}
- \leavevmode\unskip\vref@space
- \ref{#1}%
-% \end{macrocode}
-% That means we have have to use |\vpageref| and not the internal
-% |\@vpageref| --- otherwise we would pick up the
-% ``current'' definition for |\vref@space| instead of setting it
-% back to |\space|.
-% \changes{v1.4c}{2002/06/18}{Use \cs{vpageref} not \cs{@vpageref} (pr/3403)}
+% After having handled (or not handled) the spacing we call
+% |\vref@star| to scan the optional arguments and do the rest.
+% If that command has been altered by \pkg{hyperref} then the
+% current one needs altering too and does the argument scanning explicitly.
% \begin{macrocode}
- \vpageref[\unskip]{#1}}
+ \vref@star % in hyperref this needs to be explicit
+}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
%
% \begin{macro}{\is@pos@number}
@@ -2061,81 +2288,154 @@
% \end{macro}
%
%
-% \subsection{An extension of counter referencing}
-%
-% \begin{macro}{\refstepcounter}
-% \changes{v1.4a}{2002/02/24}{Macro redefined}
-%
-% At the moment a reference to a counter |foo| will generate the
-% equivalent of |\p@foo\thefoo| although not quite in this form. For
-% some applications it would be nice of one could have |\thefoo| being
-% an argument to |\p@foo| to be able to put material before and after
-% the number generated by |\thefoo|. This can be easily achieved with
-% a small change to one of the kernel commands as follows:
-% \begin{macrocode}
-\def\refstepcounter#1{\stepcounter{#1}%
- \protected@edef\@currentlabel
- {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}%
-}
-% \end{macrocode}
-% The trick is to ensure that |\csname the#1\endcsname| is turned into
-% a single token before |\p@...| is expanded further. This way, if the
-% |\p@...| command is a macro with one argument it will receive
-% |\the...|. With the kernel code (i.e., without the |\expandafter|)
-% it will instead pick up |\csname| which would be disastrous.
-%
-% Using |\expandafter| instead of braces delimiting the argument is
-% better because, assuming that the |\p@...| command is not defined as
-% a macro with one argument, the braces will stay and prohibit kerning
-% that might otherwise happen between the glyphs generated by
-% |\the...| and surrounding glyphs.
-% \end{macro}
%
-% \begin{macro}{\labelformat}
+% \begin{macro}{\Vref}
% \changes{v1.4a}{2002/02/24}{Macro added}
-% A shortcut to set the |\p@...| macro for a counter. It will pick
-% up the counter representation as an argument so that it can be
-% specially formatted.
+% |\Vref| is the counterpart to |\vref| with |\ref| replaced by
+% |\Ref| in its definition.
+% \changes{v1.6a}{2019/08/25}{Adjusted for new spacing regime}
% \begin{macrocode}
-\def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1}
+\DeclareRobustCommand\Vref{\@ifstar
+ {\Vref@star}%
+ {\Vr@f}}
% \end{macrocode}
% \end{macro}
-%
-% \begin{macro}{\Ref}
-% \changes{v1.4a}{2002/02/24}{Macro added}
-% This macro expands the result of |\ref| and then uppercases the
-% first token. Only useful if the label was generated via
-% |\labelformat| and contains some lower case letter at its start. If
-% the label starts with a complicated construct (e.g., an accented
-% letter) one has to surround everything that needs uppercasing in
-% a brace group in the definition of |\labelformat|.\footnote{There
-% is one problem with this approach: the braces are kept in a
-% normal \texttt{\textbackslash ref} which might spoil kerning.
-% Perhaps one day this needs redoing.}
-% \begin{macrocode}
-\DeclareRobustCommand\Ref[1]{\protected@edef\@tempa{\ref{#1}}%
- \expandafter\MakeUppercase\@tempa}
+%
+% \begin{macro}{\Vref@star}
+% \changes{v1.6a}{2019/08/25}{Command added to support hyperref better}
+% \begin{macrocode}
+\newcommand\Vref@star[2][]{%
+ \Ref{#2}
+ \vpageref[#1]{#2}}
% \end{macrocode}
% \end{macro}
-%
-% \begin{macro}{\Vref}
-% \changes{v1.4a}{2002/02/24}{Macro added}
+%
% \begin{macro}{\Vr@f}
% \changes{v1.4a}{2002/02/24}{Macro added}
% \changes{v1.4x}{2010/08/04}{Correct spacing -- same mistake as in \cs{vref}
% (pr/4123)}
-% |\Vref| is the counterpart to |\vref| with |\ref| replaced by
-% |\Ref| in its definition.
+% \changes{v1.6a}{2019/08/25}{Adjusted for new spacing regime}
% \begin{macrocode}
-\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}}
+\def\Vr@f{%
+ \if@vrefhandlespace
+ \unskip \vref@space
+ \fi
+ \Vref@star % in hyperref this needs to be explicit
+}
% \end{macrocode}
% \end{macro}
+
+
+% \begin{macro}{\vpagerefcompare}
+%
+% \changes{v1.6a}{2019/08/25}{Macro added}
+% \begin{macrocode}
+\DeclareRobustCommand\vpagerefcompare[2]{% label1, label2, TRUE, FALSE
+ \vrefpagenum\@tempa{#1}%
+ \vrefpagenum\@tempb{#2}%
+ \ifx\@tempa\@tempb
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\vpagerefnearby}
+% \changes{v1.6a}{2019/08/25}{Macro added}
+% Test if |\vpageref| is going to be at most $\pm1$ off from
+% current page.
+% \begin{macrocode}
+\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}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+
+% \begin{macro}{\vpagerefcomparenearby}
+% \changes{v1.6a}{2019/08/25}{Macro added}
+% True if the two pages have arabic page numbers are at most off by
+% one so that |\vpageref| would produce a special string.
+%
+% This is n some sense a general version of |\vpagerefnearby| for
+% use in more complex situations. I.e., if you try to determine if
+% a larger set of references would be close to the current page and
+% you use each time |\vpagerefnearby| then you generate a lot of
+% internal labels for the current point. Thus by setting the label
+% yourself you can save processing time and space. On the other
+% hand you have to be careful to place the label into the right
+% place which can be a bit complicated if you look at the
+% definition of |\vpagerefnearby| that does all this automatically
+% for you. This is why the current macro is not discussed in the
+% user interface section as it is really just for package
+% developers.
+% \begin{macrocode}
+\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}%
+}
+% \end{macrocode}
+% \end{macro}
+
+%
+%
+% \subsubsection{Compatibility with older \LaTeX{} formats}
+%
+%
+% \begin{macro}{\labelformat}
+% \begin{macro}{\Ref}
+% \begin{macro}{\refstepcounter}
+% We don't need to define \cs{labelformat} and \cs{Ref} or change the
+% definition of \cs{refstepcounter} any longer because this is now
+% done in the \LaTeX{} kernel. However, if this package is used
+% together with an older kernel, this is not true, so for this
+% special case we keep the definitions.
+% \begin{macrocode}
+\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
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
% \end{macro}
%
% \begin{macrocode}
diff --git a/macros/latex/required/tools/varioref.ins b/macros/latex/required/tools/varioref.ins
index 6c0482ddd0..e436202e4d 100644
--- a/macros/latex/required/tools/varioref.ins
+++ b/macros/latex/required/tools/varioref.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 1993-2017
+%% Copyright (C) 1993-2019
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -16,7 +16,7 @@
%% The latest version of this license is in
%% https://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
+%% version 2008 or later.
%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
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.
diff --git a/macros/latex/required/tools/varioref.pdf b/macros/latex/required/tools/varioref.pdf
index f94de53235..567731014e 100644
--- a/macros/latex/required/tools/varioref.pdf
+++ b/macros/latex/required/tools/varioref.pdf
Binary files differ
diff --git a/macros/latex/required/tools/verbatim.dtx b/macros/latex/required/tools/verbatim.dtx
index 4b85f1a3ad..1dc8682f79 100644
--- a/macros/latex/required/tools/verbatim.dtx
+++ b/macros/latex/required/tools/verbatim.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2014
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/verbatim.pdf b/macros/latex/required/tools/verbatim.pdf
index 766dabebb8..3eb2b555f9 100644
--- a/macros/latex/required/tools/verbatim.pdf
+++ b/macros/latex/required/tools/verbatim.pdf
Binary files differ
diff --git a/macros/latex/required/tools/xr.dtx b/macros/latex/required/tools/xr.dtx
index 7889f713e9..417a98c1c1 100644
--- a/macros/latex/required/tools/xr.dtx
+++ b/macros/latex/required/tools/xr.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
-% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
-% 2006 2008 2009 2018 2019
+% Copyright (C) 1993-2019
+%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -21,11 +21,11 @@
%
% \fi
% \iffalse
-%% File: xr.dtx Copyright (C) 1994-1994 2018 2019 David Carlisle
+%% File: xr.dtx Copyright (C) 1993-2019 David Carlisle
%
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{xr}
-%<package> [2019/01/05 v5.04 eXternal References (DPC)]
+%<package> [2019/07/22 v5.05 eXternal References (DPC)]
%
%<*driver>
\documentclass{ltxdoc}
@@ -56,7 +56,8 @@
% aux files of \cmd\include'ed files. (Reported by J-PD)}
%
% \changes{v5.02}{1994/05/28}{Update for LaTeX2e}
-% \changes{v5.02}{1994/05/28}{Fix for conditionals in aux file}
+% \changes{v5.03}{2018/10/01}{Fix for conditionals in aux file}
+% \changes{v5.05}{2019/07/20}{include xcite}
%
%
% This package implements a system for eXternal References.
@@ -83,6 +84,11 @@
% characters can not usually be used in |\label|, and similarly may not
% be used in the optional argument to |\externaldocument|.
%
+% As first suggested in Enrico Gregorio's |xcite| package, the current version
+% also allows |\cite| to reference |\bibitem| in the external document.
+% For fcompatibility with |xcite|, |\externalcitedocument| is made available
+% as an alias for |\externaldocument|
+%
% \StopEventually{}
%
% \section{The macros}
@@ -94,6 +100,7 @@
% Check for the optional argument.
% \begin{macrocode}
\def\externaldocument{\@ifnextchar[\XR@{\XR@[]}}
+\let\externalcitedocument\externaldocument
% \end{macrocode}
%
% Save the optional prefix. Start processing the first |aux| file.
@@ -159,11 +166,13 @@
\long\def\XR@test#1#2#3#4\XR@{%
\let\XR@tempa\@gobbletwo
\ifx#1\newlabel
- \let\XR@tempa\@firstoftwo%
+ \let\XR@tempa\@firstoftwo
+ \else\ifx#1\bibcite
+ \let\XR@tempa\@firstoftwo
\else\ifx#1\@input
\let\XR@tempa\@secondoftwo
- \fi\fi
- \XR@tempa{\newlabel{\XR@prefix#2}{#3}}{\edef\XR@list{\XR@list#2\relax}}%
+ \fi\fi\fi
+ \XR@tempa{#1{\XR@prefix#2}{#3}}{\edef\XR@list{\XR@list#2\relax}}%
\ifeof\@inputcheck\expandafter\XR@aux
\else\expandafter\XR@read\fi}
% \end{macrocode}
diff --git a/macros/latex/required/tools/xr.pdf b/macros/latex/required/tools/xr.pdf
index 98bea94d32..8448b1c1cb 100644
--- a/macros/latex/required/tools/xr.pdf
+++ b/macros/latex/required/tools/xr.pdf
Binary files differ
diff --git a/macros/latex/required/tools/xspace.dtx b/macros/latex/required/tools/xspace.dtx
index 4fd2de18e7..0745caf507 100644
--- a/macros/latex/required/tools/xspace.dtx
+++ b/macros/latex/required/tools/xspace.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2014
+% Copyright (C) 1993-2019
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/xspace.pdf b/macros/latex/required/tools/xspace.pdf
index 99c6ca61a8..1139ce0b3f 100644
--- a/macros/latex/required/tools/xspace.pdf
+++ b/macros/latex/required/tools/xspace.pdf
Binary files differ