diff options
author | Karl Berry <karl@freefriends.org> | 2011-08-03 22:03:35 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-08-03 22:03:35 +0000 |
commit | bb6fd84d0f762e045075c0e6570c68b283436888 (patch) | |
tree | 815f02eedb8c70d8f3aa0c16af9dfa3707864fe1 /Master/texmf-dist/source/latex/tools | |
parent | 366ed41f67c1c443ea09a9c442655ab1a40a270b (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/tools')
-rw-r--r-- | Master/texmf-dist/source/latex/tools/ftnright.dtx | 52 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/tools/multicol.dtx | 231 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/tools/varioref.dtx | 64 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/tools/verbatim.dtx | 4 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/tools/xspace.dtx | 13 |
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} |