diff options
author | Karl Berry <karl@freefriends.org> | 2009-04-02 18:41:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-04-02 18:41:23 +0000 |
commit | 01fcf064ed469deec1daa3aecec26ab905dd50c2 (patch) | |
tree | 1ce745bde1bdfcbbee1dbac414fed270d12a196b /Master/texmf-dist/tex/latex | |
parent | 9ae94e9c3b0cc4e0ec9429d9744173047caaa358 (diff) |
varwidth update (31mar09)
git-svn-id: svn://tug.org/texlive/trunk@12605 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/varwidth/varwidth.sty (renamed from Master/texmf-dist/tex/latex/ltxmisc/varwidth.sty) | 50 |
1 files changed, 33 insertions, 17 deletions
diff --git a/Master/texmf-dist/tex/latex/ltxmisc/varwidth.sty b/Master/texmf-dist/tex/latex/varwidth/varwidth.sty index 32c1a8fb639..5809254a493 100644 --- a/Master/texmf-dist/tex/latex/ltxmisc/varwidth.sty +++ b/Master/texmf-dist/tex/latex/varwidth/varwidth.sty @@ -1,10 +1,10 @@ -% varwidth.sty v 0.9a Mar 2003 Donald Arseneau asnd@triumf.ca +% varwidth.sty v 0.92 Mar 2009 Donald Arseneau asnd@triumf.ca % -% Copyright 2003 by Donald Arseneau (asnd@triumf.ca). +% Copyright 2003-2004,2009 by Donald Arseneau (asnd@triumf.ca). % This software is released under the terms of the LaTeX Project Public % License (ftp://ctan.tug.org/tex-archive/macros/latex/base/lppl.txt). % (Essentially: Free to use, copy, distribute (sell) and change, but, if -% changed, the name must be changed.) +% changed, that fact must be clearly displayed to the user.) % % The varwidth environment is based on minipage, and takes the same % parameters, but the specified width is just a maximum value -- the @@ -16,7 +16,7 @@ % match a narrower natural width, if there is one. % % The \narrowragged command works like \raggedright, but produces -% generally narrower lines in paragraphs, but more text in the last +% generally narrower lines in paragraphs, with more text in the last % line (the lines have more-equal lengths). % % This version works fine, but there are still many questions about @@ -32,7 +32,7 @@ % Support numbered equations, including ams math. % -\ProvidesPackage{varwidth}[2003/03/10 ver 0.9a; \space +\ProvidesPackage{varwidth}[2009/03/30 ver 0.92; \space Variable-width minipages] \newcommand\narrowragged{\rightskip \z@ plus .25\hsize @@ -55,7 +55,8 @@ % a \vbox wrapped around them. \let\@bsphack\@vwid@bsphack % \label and others \let\mark\@gobble % Marks disappear in minipages anyway - \let\@special\@vwid@special % \color and others + \let\special\@vwid@special % \color and others + \let\pdfliteral\@vwid@pdfliteral % \color and others \let\addtocontents\@vwid@addtocontents % \addcontentsline % Shifted boxes (\parshape,\hangindent) will have their shifts % indicated in a separate box. @@ -77,6 +78,7 @@ % At end of varwidth environment. \def\endvarwidth{\par\@@par + \unskip % Handle minipage-style notes. \ifvoid\@mpfootins\else \vskip\skip\@mpfootins @@ -85,8 +87,9 @@ \unvbox\@mpfootins \fi \unskip + \@minipagefalse \endgroup\egroup % got my \@tempboxa -% {\showoutput\showbox\@tempboxa}% + %{\showoutput\showbox\@tempboxa}% % in a discarded box, sift through list measuring max width. \begingroup\setbox\z@\vbox\bgroup %\message{-------------------------------------------------------------}% @@ -101,19 +104,22 @@ \egroup\endgroup % Done measuring. Now empty \@tempboxa onto current vertical list % which is the contents of a minipage environment -%\message{Got natural width \@vwid@. }% +%\message{Got natural width \@vwid@ (compare \the\hsize) }% \unvbox\@tempboxa - % If the natural width is narrower, then go back through the list - % reboxing and moving everything into \@vwid@box; then spill \@vwid@box + % Choose the natural width or the declared width, whichever is smaller. \ifdim\@vwid@<\hsize \hsize\@vwid@ - \setbox\@vwid@box\vbox{}% - \sift@deathcycles\z@ + \fi + % Go through the vertical list reboxing and moving everything into + % \@vwid@box; then spill \@vwid@box. If the natural width is narrower, + \setbox\@vwid@box\vbox{}% + \sift@deathcycles\z@ %\message{----------------------------------------------------------------}% %\message{Second pass; hsize=\the\hsize... }%{\tracingall\showlists}% - \@vwid@sift - \unvbox\@vwid@box - \fi + \@vwid@sift +%\message{After sifting:}% +%{\showoutput\showbox\@vwid@box}% + \unvbox\@vwid@box % end the minipage environment \endminipage} @@ -193,8 +199,9 @@ \advance\@tempdima-\@vwid@roff \advance\@tempdima-\@vwid@loff \advance\@tempdima-\p@ +%\message{Test if \the\wd\z@ > \the\@tempdima, }% \ifdim\wd\z@>\@tempdima % full-width line; rebox it -%\message{An ordinary line or alignment. }% +%\message{An ordinary line or alignment. (\the\wd\z@ > \the\@tempdima) }% \hbox to\hsize {\kern\@vwid@loff \unhbox\z@ \kern\@vwid@roff}% \else % an equation or direct \hbox @@ -204,10 +211,15 @@ {\hskip\@vwid@loff\@plus1fil \unhbox\z@ \hskip\@vwid@roff\@plus1fil}% \else % plain narrow \hbox; leave it as-is +%\message{Plain narrow box}% \box\z@ \fi\fi\fi\fi \egroup} + +% Measure a line (in box \z@) and keep a running tally of the +% widest natural width in \@tempdima + \def\@vwid@measure{% \ifvoid\z@ \else @@ -228,7 +240,7 @@ \let\@@bsphack\@bsphack \let\@@esphack\@esphack -\let\@@esphack\@Esphack +\let\@@Esphack\@Esphack \def\@vwid@bsphack{\@@bsphack \ifx\@vwid@wrap\@firstofone @@ -258,12 +270,14 @@ }\unvbox\@vwid@box } \let\@@vwid@special\special +\let\@@vwid@pdfliteral\pdfliteral \let\@@vwid@addtocontents\addtocontents \let\@@vwid@list\list \let\@@vwid@endtrivlist\endtrivlist \let\@@vwid@eqnnum\@eqnnum \long\def\@vwid@special#1{\@vwid@wrap{\@@vwid@special{#1}}} +\long\def\@vwid@pdfliteral#1{\@vwid@wrap{\@@vwid@pdfliteral{#1}}} \long\def\@vwid@addtocontents#1#2{\@vwid@wrap{\@@vwid@addtocontents{#1}{#2}}} \long\def\@vwid@hangfrom#1{\par @@ -300,3 +314,5 @@ }{} } +% V 0.91 Always restack contents, even if width didn't change. +% V 0.92 fix \special, \pdfliteral |