summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-08-03 22:03:35 +0000
committerKarl Berry <karl@freefriends.org>2011-08-03 22:03:35 +0000
commitbb6fd84d0f762e045075c0e6570c68b283436888 (patch)
tree815f02eedb8c70d8f3aa0c16af9dfa3707864fe1 /Master/texmf-dist/source/latex
parent366ed41f67c1c443ea09a9c442655ab1a40a270b (diff)
tools (latex-tds 2jul11)
git-svn-id: svn://tug.org/texlive/trunk@23393 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r--Master/texmf-dist/source/latex/tools/ftnright.dtx52
-rw-r--r--Master/texmf-dist/source/latex/tools/multicol.dtx231
-rw-r--r--Master/texmf-dist/source/latex/tools/varioref.dtx64
-rw-r--r--Master/texmf-dist/source/latex/tools/verbatim.dtx4
-rw-r--r--Master/texmf-dist/source/latex/tools/xspace.dtx13
5 files changed, 297 insertions, 67 deletions
diff --git a/Master/texmf-dist/source/latex/tools/ftnright.dtx b/Master/texmf-dist/source/latex/tools/ftnright.dtx
index 7f6306aa3c4..07f56cf7efb 100644
--- a/Master/texmf-dist/source/latex/tools/ftnright.dtx
+++ b/Master/texmf-dist/source/latex/tools/ftnright.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
+% 2006 2008 2009 2010
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -26,11 +26,11 @@
%% Copyright (C) 1989-2004 Frank Mittelbach, all rights reserved.
%<+package>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
%<+package>\ProvidesPackage{ftnright}
-%<+package> [2004/01/16 v1.1e footnote layout package (FMi)]
+%<+package> [2010/02/25 v1.1f footnote layout package (FMi)]
%
% \fi
%%
-%% \CheckSum{426}
+%% \CheckSum{431}
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -163,10 +163,7 @@
% {The \LaTeX{} package {\tt \filename} which is described
% in this article has the version number \fileversion{} dated
% \filedate.}}
-% \author{Frank Mittelbach\\
-% Electronic Data Systems (Deutschland) GmbH\\
-% Eisenstra\ss e 58 \\
-% 65428 R\"usselsheim}
+% \author{Frank Mittelbach}
%
%
% \maketitle
@@ -289,6 +286,27 @@
% will make such changes more easy.
%
%
+% \subsection{Limitations}
+%
+% If in the first column there is more than a full column worth of footnote
+% material the material will be split resulting in footnotes out of
+% order. This issue is now detected and generates an error but the package is
+% unable to gracefully handle it. This gives you two options: either rearrange
+% your input so that it will use less footnotes in the first column (or add
+% some pagebreaks at suitable places) or allow explicitly for more material to
+% be gathered. The latter can be achieved by adding
+%\begin{verbatim}
+%\makeatletter
+%\def\preparefootins{%
+% \global\rcol@footinsskip\skip\footins
+% \global\skip\footins\z@
+% \global\count\footins\z@
+% \global\dimen\footins2\textheight}
+%\makeatother
+%\end{verbatim}
+% to the preamble of your document. However, with this you allow two columns
+% worth of footnote material and that means that some of your footnotes are
+% likely to be detached from their reference and show up on a later page!
%
% \StopEventually{
%
@@ -781,6 +799,26 @@
`twocolumn' in the
\noexpand\documentclass command.}%
\shipout\box\footins \fi\fi
+% \end{macrocode}
+% What we also need to check is if there is so much footnote material that
+% it resulted in a footnote being split. If that happens the whole
+% algorithm falls apart and the footnotes get out of sync. For the
+% moment we simply detect it here, perhaps some better scheme can be
+% implemented. One way to avoid this is to allow more than |\textheight| of
+% footnotes in |\preparefootins|. However, that isn't such a good idea
+% either as that means that a footnote from column one, might end up
+% completely on a later page.
+% \changes{v1.1f}{2010/02/25}{Check for split footnotes (pr/4099)}
+% \begin{macrocode}
+ \ifnum\insertpenalties>\z@
+ \@latexerr{ftnright package
+ scrambled footnotes}%
+ {There is too much footnote material in
+ the first column and ftnright^^Jis
+ unable to cope with this.^^JYou need
+ to reduce the amount to get a properly
+ formatted page.}%
+ \fi
\else
% \end{macrocode}
% When we construct the second column, we must first check whether
diff --git a/Master/texmf-dist/source/latex/tools/multicol.dtx b/Master/texmf-dist/source/latex/tools/multicol.dtx
index e0e293bb4f2..fd69fab4efb 100644
--- a/Master/texmf-dist/source/latex/tools/multicol.dtx
+++ b/Master/texmf-dist/source/latex/tools/multicol.dtx
@@ -1,9 +1,5 @@
% \iffalse meta-comment
%
-% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
-% 2006 2008 2009
-% The LaTeX3 Project and any individual authors listed elsewhere
-% in this file.
%
% This file is part of the Standard LaTeX `Tools Bundle'.
% -------------------------------------------------------
@@ -24,7 +20,7 @@
% \iffalse This is a METACOMMENT
%
%% Package `multicol' to use with LaTeX2e
-%% Copyright 1989-2007 Frank Mittelbach
+%% Copyright 1989-2011 Frank Mittelbach
%%
%% In addition to the terms of LPPL any distributed version
%% (unchanged or modified) of multicol has to keep the statement
@@ -95,10 +91,10 @@
%<driver> \ProvidesFile{multicol.drv}
% \fi
% \ProvidesFile{multicol.dtx}
- [2008/12/05 v1.6h multicolumn formatting (FMi)]
+ [2011/06/27 v1.7a multicolumn formatting (FMi)]
%
%
-%% \CheckSum{1560}
+%% \CheckSum{1669}
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -190,6 +186,18 @@
% the scope of the environment.
% \end{abstract}
%
+% \RLmulticolcolumns
+%
+% \begin{multicols}{3}[\section*{Preface to version 1.7}]
+% The 1.7 release adds support for languages that are typeset
+% right-to-left. For those languages the order of the columns on the page
+% also need to be reversed---something that wasn't supported before. This
+% paragraph demonstrates the result (as it is typeset as if we are writing
+% in a left-to-right language---so restart reading the rightmost column
+% first if you started with this column).
+% \end{multicols}
+%
+% \LRmulticolcolumns
%
% \begin{multicols}{3}[\section*{Preface to version 1.5 + 1.6}]
% \hbadness=10000
@@ -211,9 +219,9 @@
% \setcounter{collectmore}{2}
% \begin{multicols}{3}[\section{Introduction}]
% \hbadness=10000
-% Switching between two column and one column layout is possible in
+% Switching between two-column and one-column layout is possible in
% \LaTeX{}, but every use of |\twocolumn| or |\onecolumn|
-% starts a new page. Moreover, the last page of two column output
+% 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\
@@ -224,11 +232,11 @@
% course that it is also possible to start the next article on the
% same page. Rewriting the index environment was comparatively easy,
% but the next goal, designing an environment which takes care of
-% footnotes, floats etc., was a harder task. It took me a whole
+% footnotes, floats, etc., was a harder task. It took me a whole
% weekend\footnote{I started with the algorithm given in the \TeX
% book on page 417. Without this help a weekend would not have been
% enough. (This remark was made in the documentation of the initial
-% release, since then several hundreds more hours went into it
+% release, since then several hundreds more hours went into
% improving the original code.)} to get together the few lines of
% code below and there is
% still a good chance that I missed something after all.
@@ -358,7 +366,7 @@
% step, balancing will be done when the end of the \mc{} environment
% is reached.
% In the first step \TeX{} might consider more material whilst
-% finding the final columns than it actually use when shipping out the
+% finding the final column content than it actually uses when shipping out the
% page. This might cause a problem if a footnote is encountered in
% the part of the input considered, but not used, on the current page.
% In this case the footnote might show up on the current page, while the
@@ -431,7 +439,7 @@
% acceptable solution at all and will then finally choose the extreme
% solution of placing all text into the first column.
%
-% Often, when colunms are balanced, it is impossible to find a solution
+% Often, when columns are balanced, it is impossible to find a solution
% that distributes the text evenly over all columns. If that is the case
% the last column usually has less text than the others. In the earlier
% releases this text was stretched to produce a column with the same
@@ -461,12 +469,12 @@
% \texttt{multicols*} instead of the usual environment the columns on
% the last page are not balanced. Of course, this environment only
% works on top-level, e.g., inside a box one has to balance to
-% determine a column height in absense of a fixed value.
+% determine a column height in absence of a fixed value.
%
%
% \subsection{Manually breaking columns}
%
-% Another request often voiced was: ``How to I tell \LaTeX{} that it
+% Another request often voiced was: ``How do I tell \LaTeX{} that it
% should break the first column after this particular line?''. The
% |\pagebreak| command (which works with the two-column option of
% \LaTeX{}) is of no use here since it would end the collection phase
@@ -474,7 +482,7 @@
% the |\columnbreak| command was added. If used within a paragraph it
% marks the end of the current line as the desired breakpoint. You can
% observe its effect on
-% the previous page where three lines of text have been artifically
+% the previous page where three lines of text have been artificially
% forced into the second column (resulting in some white
% space between paragraphs in the first column).
%
@@ -494,6 +502,15 @@
% |\topfraction|, etc.\ rather than by |\dbl...|.
%
%
+% \subsection{Support for right-to-left typesetting}
+%
+% In right-to-left typesetting the order of the columns on the page
+% also need to be reversed, i.e., the first column has to appear on the far
+% right and the last column on the left. This is supported through the
+% commands |\RLmulticolcolumns| (switching to right-to-left typesetting)
+% and |\LRmulticolcolumns| (switching to left-to-right typesetting) the
+% latter being the default.
+%
% \subsection{Warnings}
%
% Under certain circumstances the use of the \mc{} environment may
@@ -507,14 +524,14 @@
%
% As the columns are often very narrow \TeX{} wasn't able to find a
% good way to break the paragraph. Underfull denotes a loose line but
-% as long the badness values is below $10000$ the result is probably
+% as long as the badness value is below $10000$ the result is probably
% acceptable.
%
% \item[]
% {\hspace*{-\labelsep}\tt Underfull \string\vbox\space ... while
% \string\output\space is active}
%
-% If a column contains an character with an unusual depth, for
+% If a column contains a character with an unusual depth, for
% example a `(', in the bottom line then this message may show up. It
% usually has no significance as long as the value is not more than a
% few points.
@@ -524,9 +541,9 @@
%
% As mentioned above, \mc{} sometimes screws up the footnote
% numbering. As a precaution, whenever there is a footnote on a
-% page that where \mc{} had to leave a remainder for the following
+% page where \mc{} had to leave a remainder for the following
% page this warning appears. Check the footnote numbering on this
-% page. If it turns out that it is wrong you have to manually break
+% page. If it turns out that it is wrong, you have to manually break
% the page using |\newpage| or |\pagebreak[..]|.
%
% \item[] {\hspace*{-\labelsep}\tt Floats and marginpars not allowed
@@ -609,7 +626,7 @@
% revision.
%
% A note to people who like to improve the balancing algorithm of
-% \mc{}: The balancing routine in now placed into a single macro
+% \mc{}: The balancing routine is now placed into a single macro
% which is called |\balance@columns|. This means that one can easily
% try different balancing routines by rewriting this macro. The
% interface for it is explained in table \ref{tab:balance}. There are
@@ -636,7 +653,7 @@
% in register |\mult@firstbox|${}+2$, \ldots,
% only the last one as an exception in
% register |\mult@grightbox|. Furthermore it has to set up
-% two the macros
+% the two macros
% |\kept@firstmark| and |\kept@botmark| to hold the values for the
% first and bottom mark as found in the individual columns. There
% are some helper functions defined in section \ref{sec:v14} which
@@ -683,7 +700,7 @@
% running both in the old and the new \TeX{} (actually it will
% simply ignore the new feature if it is not available). The
% calculation of |\emergencystretch| is probably incorrect. I
-% made a few tests but of course one has have much more experience
+% made a few tests but of course one has to have much more experience
% with the new possibilities to achieve the maximum quality.
%
% Version 1.1a had a nice `feature': the penalty for using the
@@ -855,7 +872,7 @@
%
%^^A \subsection{Option processing}
%
-% Next we declare options supported by \mc{}. Twocolumn mode
+% Next we declare options supported by \mc{}. Two-column mode
% and \mc{} do not work together so we warn about possible
% problems. However, since you can revert to |\onecolumn|
% in which case \mc{} does work, we don't make this an error.
@@ -1893,6 +1910,11 @@
% |\full@width| (shifting it by |\multicol@leftmargin| to the right
% so that it will be placed correctly if we are within a list
% environment)
+% and separating the columns with a rule if desired.
+% \changes{v1.5a}{1992/11/04}{New box mechanism}
+% \changes{v1.5z}{2000/07/10}{Ensure that column rule has always
+% \cs{normalcolor}}
+% \changes{v1.6f}{2006/09/19}{Make the color of the rule a hook}
% \changes{v1.4l}{1992/08/17}{use \cs{multicol@leftmargin} instead of
% \cs{@totalleftmargin}}
%
@@ -1920,15 +1942,21 @@
% \changes{v1.6a}{2003/03/15}{Preparing for adjusting \cs{prevdepth}}
% \begin{macrocode}
\setbox\z@\hbox{p}\global\dimen\tw@\dp\z@
- \moveright\multicol@leftmargin
- \hbox to\full@width{%
% \end{macrocode}
-% and separating the columns with a rule if desired.
-% \changes{v1.5a}{1992/11/04}{New box mechanism}
-% \changes{v1.5z}{2000/07/10}{Ensure that column rule has always
-% \cs{normalcolor}}
-% \changes{v1.6f}{2006/09/19}{Make the color of the rule a hook}
+% If the document is written in a language that is typeset right-to-left
+% then, of course, the multicol columns should be also typeset
+% right-to-left. To support this we call |\maybe@reverse@columns| which
+% either does nothin (in the LR case) or re-sorts the columns so that they
+% come out in reverse order (for the RL case).
+% \changes{v1.7a}{2010/10/24}{}
+% \begin{macrocode}
+ \maybe@reverse@columns
+% \end{macrocode}
+% After that we can output all columns regardless of typesetting direction
+% in the same way.
% \begin{macrocode}
+ \moveright\multicol@leftmargin
+ \hbox to\full@width{%
\process@cols\mult@gfirstbox{%
% \end{macrocode}
% If the depth of the current box is larger than the maximum found
@@ -1967,9 +1995,9 @@
% \begin{macrocode}
\kern-\dimen\tw@
% \end{macrocode}
-% However, in case of of the columns was unusually deep \TeX{} may
+% However, in case one of the columns was unusually deep \TeX{} may
% have tried some corrective actions in which case backing up by
-% the ahve value will not bring us back to the baseline. A good
+% the saved value will not bring us back to the baseline. A good
% indication for this is a depth of |\maxdepth| though it is not an
% absolute proof. If the option \texttt{grid} is used
% |\mc@gridwarn| will expand to this, otherwise to |\maxdimen| in
@@ -2015,8 +2043,8 @@
% \begin{macro}{\multi@column@out}
% Now we can't postpone the difficulties any longer. The
% |\multi@column@out| routine will be called in two situations.
-% Either the page is full (i.e.\ we have collected enough material
-% to generate all the required columns) or a float or marginpar (or
+% Either the page is full (i.e., we have collected enough material
+% to generate all the required columns) or a float or marginpar or
% a |\clearpage| is
% sensed. In the latter case the |\outputpenalty| is less
% than $-10000$, otherwise the penalty which triggered the output
@@ -2140,13 +2168,13 @@
\hrule\allowbreak \fi
\fi
% \end{macrocode}
-% To get a correct marks for the current page we have to (locally
+% To get a correct marks for the current page we have to (locally)
% redefine |\firstmark| and |\botmark|.
% If |\kept@firstmark| is non-empty then |\kept@botmark| must be
% non-empty too so we can use their values. Otherwise we use the
% value of |\kept@topmark| which was first initialized when we
% gathered the |\partical@page| and later on was updated to the
-% |\botmark| for the preceding page
+% |\botmark| for the preceding page.
%
% \changes{v1.4a}{1992/02/14}{\cs{botmark} set to \cs{splitbotmark}}
% \begin{macrocode}
@@ -3482,6 +3510,135 @@
% \end{macrocode}
% \end{macro}
%
+%
+% \subsection{Supporting right-to-left languages} \label{sec:RL}
+%
+%
+% \changes{v1.7a}{2010/10/24}{RL language support added}
+%
+% \begin{macro}{\RLmulticolcolumns}
+% \begin{macro}{\LRmulticolcolumns}
+% \begin{macro}{\maybe@reverse@columns}
+% Macros to switch between left-right and right-left typesetting. In RL
+% typesetting the |\reverse@column@boxes| is executed prior to typesetting
+% the columns. In LR typesetting this resorting is omitted as the boxes are
+% already in the right order.
+% \begin{macrocode}
+\newcommand\RLmulticolcolumns
+ {\let\maybe@reverse@columns
+ \reverse@column@boxes}
+\newcommand\LRmulticolcolumns
+ {\let\maybe@reverse@columns\relax}
+% \end{macrocode}
+% The default is left-to-right:
+% \begin{macrocode}
+\LRmulticolcolumns
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+
+
+% \begin{macro}{\multicol@sort@counter}
+% We need a counter to resort the column boxes if we are typesetting
+% right-to-left.
+% \begin{macrocode}
+\newcount\multicol@sort@counter
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\reverse@column@boxes}
+% This macro is called to re-sort the assembled column boxes when we are
+% typesetting right-to-left. The first step is to reverse the columns.
+% \begin{macrocode}
+\def\reverse@column@boxes {%
+ \ifnum\c@tracingmulticols>\thr@@
+ \typeout{reversing columns ...}
+ \fi
+% \end{macrocode}
+% The columns are at this point in the boxes with register numbers
+% |\mult@gfirstbox|, $|\mult@gfirstbox|+2$, \ldots{} but the last column
+% is in |\mult@rightbox| which is equal to $|\mult@gfirstbox|-2$.
+%
+% So to re-sort we use |\process@cols| with |\count@| starting at
+% |\mult@gfirstbox| and incrementing by 2 and |\multicol@sort@counter|
+% starting at the high end of the now unused intermediate boxes and
+% decrementing by 2.
+% \begin{macrocode}
+ \multicol@sort@counter\doublecol@number
+ \advance\multicol@sort@counter\m@ne
+ \process@cols\mult@gfirstbox{%
+ \setbox\multicol@sort@counter
+ \box\count@
+ \ifnum\c@tracingmulticols>\thr@@
+ \typeout{Setting
+ \the\multicol@sort@counter\space
+ <- \the\count@}%
+ \fi
+ \advance \multicol@sort@counter -\tw@
+ }%
+% \end{macrocode}
+% For example with 4 columns we would see something like
+% this:
+% What remains to do is to move the last box out of the way:
+% \begin{macrocode}
+%
+ \ifnum\c@tracingmulticols>\thr@@
+ \typeout{Setting last:
+ \the\mult@grightbox\space
+ <- \the\mult@rightbox}%
+ \fi
+ \setbox \mult@grightbox \box\mult@rightbox
+% \end{macrocode}
+% Now the boxes are more or less resorted but the register numbers are off
+% by one, so we shift the boxes again using |\process@cols|. This time
+% |\multicol@sort@counter| trails one behind |\count@|.
+% \begin{macrocode}
+ \ifnum\c@tracingmulticols>\thr@@
+ \typeout{shifting ...}
+ \fi
+ \multicol@sort@counter\mult@gfirstbox
+ \advance\multicol@sort@counter \m@ne
+ \process@cols\mult@gfirstbox{%
+ \global\setbox\count@
+ \box\multicol@sort@counter
+ \ifnum\c@tracingmulticols>\thr@@
+ \typeout{Setting \the\count@\space
+ <- \the\multicol@sort@counter}%
+ \fi
+ \advance \multicol@sort@counter \tw@
+ }%
+% \end{macrocode}
+% With 4 columns this would do the following register moves:
+% \begin{verbatim}
+% Setting 31 <- 30
+% Setting 33 <- 32
+% Setting 35 <- 34
+% \end{verbatim}
+% Now all columns except the last one are in the right place. That one is
+% now in highest register we used which corresponds to
+% $|\doublecol@number|-1$ if you look back to the first loop. And it has to
+% move to |\mult@rightbox| which happens in the following code.
+% \begin{macrocode}
+ \multicol@sort@counter\doublecol@number
+ \advance\multicol@sort@counter\m@ne
+ \ifnum\c@tracingmulticols>\thr@@
+ \typeout{Setting last:
+ \the\mult@rightbox\space
+ <- \the\multicol@sort@counter}%
+ \fi
+ \global\setbox \mult@rightbox
+ \box\multicol@sort@counter
+% \end{macrocode}
+% After that the columns are in the same boxes as before but sorted the
+% other way around and thus can be processed without further adjustments by
+% the normal multicol code.
+% \begin{macrocode}
+}
+% \end{macrocode}
+% \end{macro}
+%
% \end{multicols*}
%
% \Finale
diff --git a/Master/texmf-dist/source/latex/tools/varioref.dtx b/Master/texmf-dist/source/latex/tools/varioref.dtx
index 9404a96ab21..7cf7c7eed50 100644
--- a/Master/texmf-dist/source/latex/tools/varioref.dtx
+++ b/Master/texmf-dist/source/latex/tools/varioref.dtx
@@ -22,7 +22,7 @@
% \fi
% \iffalse
%% Package varioref to use with LaTeX2e
-%% Copyright (C) 1992-2009 Frank Mittelbach, all rights reserved.
+%% Copyright (C) 1992-2010 Frank Mittelbach, all rights reserved.
%%
%% For additions or updates to the language options please contact
%% the author at
@@ -34,10 +34,10 @@
%
%<package>\NeedsTeXFormat{LaTeX2e}[1995/05/16]
%<package>\ProvidesPackage{varioref}
-%<package> [2009/09/13 v1.4w package for extended references (FMi)]
+%<package> [2010/11/12 v1.4y package for extended references (FMi)]
% \fi
%
-% \CheckSum{2150}
+% \CheckSum{2170}
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -871,18 +871,25 @@
\def\reftextpagerange#1#2{on pages~\pageref{#1}--\pageref{#2}}%
\def\reftextlabelrange#1#2{\ref{#1} to~\ref{#2}}%
}}
+% \end{macrocode}
+%
+% The esperanto strings were suggested by Albert Reiner
+% (\verb=areiner@tph.tuwien.ac.at=).
+% \changes{v1.4x}{2010/08/04}{Defaults for esperanto added}
+% \begin{macrocode}
\DeclareOption{esperanto}
- {\vref@excuse{esperanto}%
- \vref@addto\extrasesperanto{%
- \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}}%
+ {\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}}%
}}
% \end{macrocode}
% The finnish strings were suggested by Matti Rintala
@@ -1889,11 +1896,9 @@
%
% \begin{macro}{\vref@pagenum}
% \changes{v1.2a}{1998/08/01}{Macro added}
-% \changes{v1.4w}{2009/09/13}{Use \cs{protected@edef} to avoid problems
-% in complicated setups, e.g., microtype (pr/4080)}
% This command takes a label as |#1| extracts the page number
% associated with it and saves the result in a csname which is
-% passed as |#1|. If the label isn't associates with a page number
+% passed as |#1|. If the label isn't associated with a page number
% it essentially associates it with |??| for both the label number
% and the page, thus defining the label this way. This means that
% no label warning is generated for this label in case it is
@@ -1901,7 +1906,26 @@
% \begin{macrocode}
\def\vref@pagenum#1#2{%
\@ifundefined{r@#2}{\@namedef{r@#2}{{??}{??}}}{}%
- \protected@edef#1{\expandafter\expandafter\expandafter
+% \end{macrocode}
+% Extracting and saving the page number turned out to be a soure of subtle
+% bugs. Initially it was done through an |\edef| with a bunch of
+% |\expandafter| commands inside. This posed a problem if the page number
+% itself contained code which needed protection (e.g., pr/4080) so this got
+% changed to use |\protected@edef|. However, that in turn failed with Babel
+% (pr/4093)
+% if the label contained active characters, e.g., a ``:'' in French. So now
+% we use even more |\expandafter| commands to avoid any expansion other
+% than what is absolutely required---I'm sure there is now a simpler way
+% to code this, but \ldots:
+% \changes{v1.4w}{2009/09/13}{Use \cs{protected@edef} to avoid problems
+% in complicated setups, e.g., microtype (pr/4080)}
+% \changes{v1.4y}{2010/11/12}{Avoid even \cs{protected@edef} to pacify french
+% babel (pr/4093)}
+% \begin{macrocode}
+ \expandafter\expandafter\expandafter
+ \def\expandafter\expandafter\expandafter
+ #1\expandafter\expandafter\expandafter
+ {\expandafter\expandafter\expandafter
\@cdr\csname r@#2\endcsname
\@nil}%
}
@@ -2042,6 +2066,8 @@
% \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.
% \begin{macrocode}
@@ -2051,7 +2077,7 @@
\def\Vr@f#1{%
\leavevmode\unskip\vref@space
\Ref{#1}%
- \@vpageref[\unskip]{#1}}
+ \vpageref[\unskip]{#1}}
% \end{macrocode}
% \end{macro}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex/tools/verbatim.dtx b/Master/texmf-dist/source/latex/tools/verbatim.dtx
index 88274e27c2f..155b5042ed1 100644
--- a/Master/texmf-dist/source/latex/tools/verbatim.dtx
+++ b/Master/texmf-dist/source/latex/tools/verbatim.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
+% 2006 2008 2009 2011
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -26,7 +26,7 @@
%
%
%% Package `verbatim' to use with LaTeX2e
-%% Copyright (C) 1989--2003 by Rainer Schöpf. All rights reserved.
+%% Copyright (C) 1989--2003 by Rainer Sch\"opf. All rights reserved.
%
% Copying of this file is authorized only if either
% (1) you make absolutely no changes to your copy, including name, or
diff --git a/Master/texmf-dist/source/latex/tools/xspace.dtx b/Master/texmf-dist/source/latex/tools/xspace.dtx
index 2740032c7a2..a8a11f8a097 100644
--- a/Master/texmf-dist/source/latex/tools/xspace.dtx
+++ b/Master/texmf-dist/source/latex/tools/xspace.dtx
@@ -33,7 +33,7 @@
%<driver>\ProvidesFile{xspace.drv}
% \fi
% \ProvidesFile{xspace.dtx}
- [2006/05/08 v1.12 Space after command names (DPC,MH)]
+ [2009/10/20 v1.13 Space after command names (DPC,MH)]
%
% \iffalse
%<*driver>
@@ -60,7 +60,7 @@
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% \CheckSum{209}
+% \CheckSum{218}
%
% \changes{v1.00}{1991/08/30}{Initial version}
% \changes{v1.01}{1992/06/26}{Re-issue for the new doc and docstrip}
@@ -243,8 +243,17 @@
\def\@xspace@exceptions@tlp{%
,.'/?;:!~-)\ \/\bgroup\egroup\@sptoken\space\@xobeysp
\footnote\footnotemark
+ \xspace@check@icr
}
% \end{macrocode}
+% And here we get the non-empty definition of \cs{check@icr}.
+% \changes{v1.13}{2009/10/20}{fix for "tools/3895": `text font commands fool xspace'}
+% \begin{macrocode}
+\begingroup
+ \text@command\relax
+ \global\let\xspace@check@icr\check@icr
+\endgroup
+% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\xspaceaddexceptions}