diff options
author | Karl Berry <karl@freefriends.org> | 2020-01-15 21:46:31 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-01-15 21:46:31 +0000 |
commit | e1e42142f42c80f84a6ffc8e35f60423a25cdb80 (patch) | |
tree | d1f779c38ba8731d765713fbebe7785194d92c15 /Master/texmf-dist/source | |
parent | 9fe1e4b8c3a316e2895e7f13d1bb7f2215b0d938 (diff) |
widetable (15jan20)
git-svn-id: svn://tug.org/texlive/trunk@53409 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/latex/widetable/widetable.dtx | 331 |
1 files changed, 175 insertions, 156 deletions
diff --git a/Master/texmf-dist/source/latex/widetable/widetable.dtx b/Master/texmf-dist/source/latex/widetable/widetable.dtx index d774e9a7e63..11c3f5bc136 100644 --- a/Master/texmf-dist/source/latex/widetable/widetable.dtx +++ b/Master/texmf-dist/source/latex/widetable/widetable.dtx @@ -8,7 +8,7 @@ \preamble ______________________________________________________ The WIDETABLE bundle - Copyright (C) 2009-2019 Claudio Beccari + Copyright (C) 2009-2020 Claudio Beccari All rights reserved License information appended @@ -16,7 +16,7 @@ \endpreamble \postamble -Copyright 2009-2019 Claudio Beccari +Copyright 2009-2020 Claudio Beccari Distributable under the LaTeX Project Public License, version 1.3c or higher (your choice). The latest version of @@ -42,43 +42,16 @@ the sty file and the English documentation PDF file. \ifx\tmpa\fmtname\endgroup\expandafter\bye\fi \endgroup %</internal> -% -% Copyright 2009--2019 Claudio Beccari -% -% This file is part of the widetable bundle -% ------------------------------------------- -% -% It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. -% -% This file has the LPPL maintenance status "author-maintained". -% -% The list of all files belonging to the widetable bundle is -% given in the file `manifest.txt'. -% -% The set of derived (unpacked) files belonging to the -% distribution and covered by LPPL is created by the self -% unpacking file widetable.dtx -% which is the principal part of the distribution. -% % \fi - - - - +% % \iffalse %<*driver> \ProvidesFile{widetable.dtx}% %</driver> -%<package>\NeedsTeXFormat{LaTeX2e}[2016/01/01] +%<package>\NeedsTeXFormat{LaTeX2e}[2018/01/01] %<package>\ProvidesPackage{widetable}% %<*package> - [2019-06-25 v.2.0 Package for typesetting specified width tables] + [2020-01-13 v.2.1 Package for typesetting specified width tables] %</package> %<*driver> \documentclass{ltxdoc} @@ -90,7 +63,7 @@ the sty file and the English documentation PDF file. \usepackage{textcomp} \usepackage{lmodern} \usepackage[italian,english]{babel} -\usepackage{widetable,tabularx, booktabs,ragged2e} +\usepackage{widetable,tabularx,xcolor,booktabs,ragged2e} % local definitions \let\originalmeta\meta \renewcommand\meta[1]{{\normalfont\originalmeta{#1}}} @@ -98,6 +71,7 @@ the sty file and the English documentation PDF file. \newcommand\Marg[1]{\texttt{\{#1\}}} \newcommand\opz[1]{\texttt{[\meta{#1}]}} \newcommand\Opz[1]{\texttt{[#1]}} +\newcommand\amb[1]{\texttt{\slshape#1}} \renewcommand\cs[1]{{\normalfont\ttfamily\char92#1}} \newcommand\Benv[1]{\texttt{\char92begin\{#1\}}} \newcommand\Eenv[1]{\texttt{\char92end\{#1\}}} @@ -119,7 +93,8 @@ the sty file and the English documentation PDF file. \end{document} %</driver> % \fi -% \CheckSum{55} +% \CheckSum{60} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \begin{abstract} % This package allows to typeset tables of specified width, % provided they fit in one page. Instead of introducing an @@ -128,8 +103,11 @@ the sty file and the English documentation PDF file. % computed so as to have the table come out with the proper % width. % \end{abstract} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \section{Legalese} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % This file is part of the |widetable| package. % @@ -146,16 +124,18 @@ the sty file and the English documentation PDF file. % The Current Maintainer of this work is Claudio Beccari % % The list of all files belonging to the distribution is -% given in the file `manifest.txt'. +% given in the file `README.txt'. % % The list of derived (unpacked) files belonging to the distribution -% and covered by the LPPL is defined in the manifest.txt file. +% and covered by the LPPL is contained in the README.txt file. % +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %\section{Introduction} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % It is well known that when the standard environment % |tabular*| is opened with a specified width, it is % necessary to introduce in the delimiter declaration -% |@{...}| of (possibly) as the first item of the column +% |@{...}| (possibly) of the first item of the column % descriptors argument something like % \begin{verbatim} % \extracolsep{\fill} @@ -170,7 +150,7 @@ the sty file and the English documentation PDF file. % Another package, \pack{tabularX}, normally distributed by the % \LaTeX\,3 Team with every version of the \TeX\ system % distribution, allows to create expandable cells, provided they -% contain only text and, possibly, in line math. These expandable +% contain only text and, possibly, in-line math. These expandable % cells are identified with the column descriptor |X|; this % identifier defines a paragraph-like cell, the width of % which gets determined after some runs of the typesetter @@ -193,76 +173,83 @@ the sty file and the English documentation PDF file. % if the |array| package extensions are used. % Nevertheless if multiple |\multicolumn| commands in different % rows “interlace” the columns they work on, poor results -% are obtained, in the sense that the table is typeset the same +% would be obtained: in this case the table is typeset the same % as with the environment |tabular|. % -% On the other hand, as well as for |tabularX|, it needs to +% On the other hand, as well as for |tabularx|, it needs to % typeset the table three times; the first two times with % standard values for the inter column glue |\tabcolsep|, in % order to find the exact parameters of the linear dependence % of the table width from the value of that glue; then executes -% some computations so as to extrapolate the final correct +% some computations so as to determine the final correct % value of |\tabcolsep|, and on the third run it eventually % typesets the table with the specified width. % -% The typesetting time increase needed for these three table runs -% in general is negligible, nevertheless if a specific -% document contained many dozens of such tables, the compilation -% time might become perceivable. +% The typesetting time increase needed for these three tabular runs +% is generally negligible, nevertheless if a specific +% document contained many dozens of such tables, the small compilation +% time increase might become perceivable. % -% It might be noticed that in order to perform the necessary -% computations a fractional division algorithm must be used; +% It might be noticed that, in order to perform the necessary +% computations, a fractional division algorithm must be used; % since 2009 any \TeX\ installation uses the \eTeX\ extensions; % therefore fractional division is not any more an issue as % it was in previous versions of this package. % +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \section{Normal use of \pack{widetable}} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% With this release of the bundle, the environment to be used +% is named |widetabular|, although the previous name, |widetable|, +% remains available for backwards compatibility. +% % This package may issue an error message when the -% environment includes other unhidden one; this is -% explained in the Implementation section. In plain words, -% if a |widetable| environment is nested into another |widetable| +% environment includes other unhidden ones; this is +% explained in the Implementation section. In plain words, +% if a |widetabular| environment is nested into another |widetabular| % one, the inner environment must be “hidden” within a group -% (a couple of paired braces); this is not necessary with other -% tabular-like environments. +% (i.e. a couple of paired braces); this might not be necessary +% with other tabular-like environments. -% Here it is assumed that the table is first typeset to its -% natural width; should it appear too small, and should it be -% typeset at a larger width, for example by filling the -% total |\linewidth| available at that specific point, then -% and only then the |tabular| environment is changed to -% |widetable|. Should the initial table be moderately larger -% than |\linewidth|, then it might be shrunk to |\linewidth| -% with |widetable|, provided there are enough columns, and -% therefore column delimiters, to be reduced in size. Of course it's -% impossible to typeset any table with any negative value -% of |\tabcolsep|; or better, it is possible, but the result -% in general is very messy. -% -% In other words |widetable| should be used as a second resort, -% so as to correct some typesetting features not considered -% aesthetically acceptable. +% Here it is assumed that the user first uses the standard tabular +% environment and typesets it to its natural width; should it appear +% too small, and should it be typeset at a larger width, for example +% by filling the total |\linewidth| available at that specific point, +% then and only then the user switches to |widetabular|. Should the +% initial table be moderately larger than |\linewidth|, then it might +% be shrunk to |\linewidth| by means of |widetabular|, provided there +% are enough columns, and therefore column delimiters, to be reduced in +% size. Of course it is impossible to typeset any tabular with any +% negative value of |\tabcolsep|; or better, the software does not care, +% but the result might get very messy. +% +% In other words |widetabular| should be used as a second resort, +% so as to correct some typesetting features of the standard environment +% not considered aesthetically acceptable. % -% The syntax for using the environment |widetable| is the -% same as that of the |tabular*| environment; the only difference +% The syntax for using the environment |widetabular| is the +% same as that of the |tabular*| one; the only difference % is the name. Therefore one has to specify: % \begin{flushleft}\obeylines% -% \Benv{widetable}\marg{width}\opz{alignment}\marg{column descriptors} +% \Benv{widetabular}\textcolor{red!90!black}{\marg{width}}\opz{alignment}\marg{column descriptors} % \meta{row of cells}\cs{\textbackslash} % \meta{row of cells}\cs{\textbackslash} % \texttt{...} % \meta{row of cells}\cs{\textbackslash} % \meta{row of cells}\cs{\textbackslash} -% \Eenv{widetable} +% \Eenv{widetabular} % \end{flushleft} % +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \section{The method} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The principle on which this little package is based is the -% following; suppose a certain table is typeset with an inter -% column glue $t_0=0\mathrm{\,pt}$ and that its width turns out to be $l_0$; -% suppose the same tabular material is typeset again with an -% inter column glue $t_1 >0\mathrm{\,pt}$ so that the table gets as -% large as $l_1>l_0$. Then, if the table has to be as wide as -% $l$ the inter column glue $t$ should be +% following one: suppose a certain tabular is typeset with an inter +% column glue $t_0=0\mathrm{\,pt}$ and that its width turns +% out to be $l_0$; suppose the same tabular material is typeset +% again with an inter column glue $t_1 >0\mathrm{\,pt}$ so that +% the table gets as large as $l_1>l_0$. Then, if the table has +% to be as wide as $l$ the inter column glue $t$ should be % \[ % t = \frac{l - l_0}{l_1 - l_0}\cdot t_1 % \] @@ -271,27 +258,29 @@ the sty file and the English documentation PDF file. % material with the two values of the inter column glue set % to zero and to $t_1$, respectively, so as to find the widths % $l_0$ and $l_1$. Afterwards we have to determine the correct -% final value $t$, and typeset once again the same tabular -% material for the last time. +% final value $t$ to get the desired value $l$, and typeset once +% again the same tabular material for the last time. % % Of course the first two runs must put their results into % suitable boxes so as to avoid outputting them into the output -% file, while at the same time allowing to record the width -% of the enclosing boxes. +% file, while at the same time allowing to record the width +% of such enclosing boxes. % +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \section{The \pack{xparse} package} -% The previous version of this package used the \pack{xparse} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% The previous version of this package already used the \pack{xparse} % package functionalitIes; but this latter package evolves and now % it is possible to “save” the body of the table as an argument -% to the opening commands, therefore now is much simpler to -% use the same table body several times. Of course this body +% to the opening commands, therefore now it is much simpler to +% use the same table-body several times. Of course this body % is saved in internal memory areas, but this task is % implemented by the internal macros written in the L3 % \LaTeX\ language. The advantage of using the \pack{xparse} -% package consists in a much shorter code and easier to read +% package consists in a much shorter code that is easier to read % and maintain. The number of macros for this package is % reduced by a factor of about four, compared to the previous -% version of this package. +% versions~1.x of this package. % % \section{Using the \eTeX\ facilities} % The L3 language and its libraries now offer the user some \LaTeX\ @@ -303,7 +292,7 @@ the sty file and the English documentation PDF file. % At the same time the \eTeX\ extended functionalities are now % part of all the interpreters of the \LaTeX\ language, % \prog{pdftex}, \prog{luatex}, and \prog{xetex}; this renders -% this package usable for all main typesetting programs, +% this package usable with any typesetting programs based on \LaTeX: % \prog{pdflatex}, \prog{lualatex}, and \prog{xelatex}. % % In facts such \eTeX\ extensions provide also a scaling operation: @@ -312,13 +301,13 @@ the sty file and the English documentation PDF file. % numbers, or two dimensions), such scaling operation scales % $L_1$ to $L_2$ by computing %\[ -% L_2 = L_1\cdot \frac{X_2}{X_1} +% L_2 = \frac{L_1 X_2}{X_1} %\] % The intermediate results are actually done with integer % arithmetics (internally lengths are coded as an integer number of -% scaled points) but are done in double words so as to avoid +% scaled points) but they are done in double words so as to avoid % underflows and overflows almost always. Some unusual situations -% might exist where underflows or overflows may occur, but +% might exist where underflows or overflows do occur, but % they must be very unusual, and very unlikely to happen for % the calculations of this package. This would happen if for any % reason no inter column glue is available; we have difficulties @@ -327,11 +316,16 @@ the sty file and the English documentation PDF file. % The use of the \eTeX\ extensions implies that this package % works correctly only with modern engines and kernel formats. % +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \section{Usage} -% As explained above, the normal usage of |widetable| requires the same +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% As explained above, the normal usage of |widetabular| requires the same % syntax as that of |tabular*| except that no explicit stretchable % glue has to be inserted in the column separators as it is necessary -% to do with |tabular*|. Examine the table shown in table~\ref{tab:tab} +% to do with |tabular*|. Examine the table shown in +% table~\ref{tab:tab}\footnote{Notice that here the name “table” is used +% to refer to the \amb{table} floating environment and its caption, +% while “tabular” is reserved to the tabular itself and its contents.} % that is typeset at its natural width. % \begin{table}\centering % \begin{tabular}{llr>{\raggedright}p{0.29\textwidth}} @@ -351,9 +345,10 @@ the sty file and the English documentation PDF file. % \end{table} % % The same table can be built with |tabular*| as in table~\ref{tab:tab*}. -% \begin{table}\centering -% \begin{tabular*}{\textwidth}% -% {@{\hskip\tabcolsep\extracolsep{\fill}}llr>{\raggedright}p{0.29\textwidth}} +%\begin{table}\centering +%\begin{tabular*}{\textwidth}% +% {@{\hskip\tabcolsep\extracolsep{\fill}}llr>{\raggedright}% +% p{0.29\textwidth}} % \toprule % Name & role & age & activity \tabularnewline % \midrule @@ -365,17 +360,17 @@ the sty file and the English documentation PDF file. % Jack Johnathan & son & 8 & elementary school pupil % \tabularnewline % \bottomrule -% \end{tabular*} +%\end{tabular*} % \caption{A table typeset with \texttt{tabular*} where the total % width has been set to \cs{textwidth}}\label{tab:tab*} -% \end{table} +%\end{table} % % As it can be seen, large inter column spaces are inserted right % at the left of the contents of every cell except the first one, % and the table appears too much spread out. % -% The table can be built also with the environment |tabularx|, -% defined by the |tabularx| package; see the result in +% The tabular can be built also with the environment |tabularx|, +% defined by the |tabularX| package; see the result in % table~\ref{tab:tabx}. % \begin{table}\centering % \begin{tabularx}{\textwidth}{llr>{\raggedright}X} @@ -395,13 +390,13 @@ the sty file and the English documentation PDF file. % has been set to \cs{textwidth}}\label{tab:tabx} % \end{table} % -% As it is noticeable the whole space to enlarge the table has -% been taken from the |X| column, and the table does not look right. +% As it is noticeable the whole space to enlarge the tabular has +% been used by the |X| column, and the table does not look right. % -% Now we show the difference by using the |widetable| environment +% Now we show the difference by using the |widetabular| environment % in table~\ref{tab:tabwide}. % \begin{table}\centering -% \begin{widetable}{\textwidth}{llr>{\raggedright}p{0.29\textwidth}} +% \begin{widetabular}{\textwidth}{llr>{\raggedright}p{0.29\textwidth}} % \toprule % Name & role & age & activity \tabularnewline % \midrule @@ -412,33 +407,36 @@ the sty file and the English documentation PDF file. % student\tabularnewline % Jack Johnathan & son & 8 & elementary school pupil\tabularnewline %\begin{tabular}{@{}ll@{}} -%Pippo & Pluto\\ -%Paperino & Topolino +%Goofy & Pluto\\ +%Donald Duck & Mickey Mouse %\end{tabular} & \relax & 4 & Walt Disney\tabularnewline % \bottomrule -% \end{widetable} -% \caption{A table typeset with \texttt{widetable} where the total width -% has been set to \cs{textwidth}}\label{tab:tabwide} +% \end{widetabular} +% \caption{A table typeset with \texttt{widetabular} where the total +% width has been set to \cs{textwidth}}\label{tab:tabwide} % \end{table} % % In table~\ref{tab:tabwide} the column specifications are the same -% as those used in the code of table~\ref{tab:tab}, but only the +% as those used in the code for table~\ref{tab:tab}, but only the % spaces separating the columns have been modified, not the column % types and widths. Of course one may object that the table spaces % are too wide and table~\ref{tab:tab} looks better. But if, for -% example, in a certain document all tables must span the whole width, -% the solution given in table~\ref{tab:tabwide} is the only one -% acceptable among the four shown in these examples. It's up to the -% user to chose among these four solutions in terms of the actual -% table contents and the stylistic constraints the document must -% fulfil. If the examples were typeset with the horizontal and +% example, in a certain document all tables are required to span +% the whole measure, the solution shown in table~\ref{tab:tabwide} +% is the only one acceptable among these four examples. +% It's up to the user to chose among these four solutions in terms +% of the actual tabular contents and the stylistic constraints the +% document must fulfil. +% If the examples were typeset with the (horizontal and % vertical rules that emphasise each cell (instead of using only % the |booktabs| horizontal rules) it would be more evident % how the various environments shape the cells and where they % insert the extra spacing so as to reach the desired width. % +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \section{Warnings} -% Normally |widetable| works well as described in the example +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Normally |widetabular| works well as described in the example % shown in table~\ref{tab:tabwide}. Nevertheless there are some % issues that may alter its smooth working. % @@ -454,7 +452,8 @@ the sty file and the English documentation PDF file. %(widetable) The table is typeset with the default %(widetable) column spacing on input line 415. %\end{verbatim} -% As usual the warning is contained into the |.aux| file. +% As usual the warning is contained into the |.aux| file and in +% the console, if the shell editor displays it.. % % When some adjacent cells are grouped with the |\multicolumn| % command; the table might come out of the correct specified width @@ -462,37 +461,45 @@ the sty file and the English documentation PDF file. % to the same columns, but the table looks very ugly; we cannot % say that |widetable| is responsible of this ugliness, or if % the table is ill formed because of using such overlapping -% spanned cells; the best suggestion is to never use such -% “acrobatic” table compositions. +% spanned cells; the best suggestion is to avoid using such +% “acrobatic” tabular compositions. % +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \section{Acknowledgements} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % I must deeply thank Enrico Gregorio for the revision of % this package macros and for his wise suggestions about % the correct programming style. If some glitch still % remains in the programming style, that is just my fault. % +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \StopEventually{} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %\iffalse %<*package> %\fi +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \section{Implementation} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% We identify the package and the necessary \LaTeX\ kernel +% This package has been already identified by the commands extracted +% by the |doctrip| package, during the |.dtx| file compilation. +% +% We require the |xparse| package in order to define the |widetable| +% environment with its extended commands. This package version should be +% younger the the specified date contained in the optional argument. +% If it is not, a warning is issued; but expect errors. It is a warning +% that urges the user to upgrade his/her \TeX\ system installation. % \begin{macrocode} -\ProvidesPackage{widetable}[2019-06-24 v.1.5 A simpler way to produce - tables of specified width] +\RequirePackage{xparse}[2019-05-01] % \end{macrocode} -% % % We require the |xparse| package in order to define the % environment % |widetable| with its extended commands. Tis package version should be % younger the the specified date contained in the optional argument. % If it is not, a warning is issued; but expect errors. It is a warning % that should urge the user to upgrade his/her \TeX\ system installation. -% \begin{macrocode} -\RequirePackage{xparse}[2019-05-01] -% \end{macrocode} % %The special environment opening macro requires the following syntax: %\begin{flushleft}\obeylines @@ -500,24 +507,22 @@ the sty file and the English documentation PDF file. %\meta{table body} %\Eenv{widetable} %\end{flushleft} -% At this point it will be the |widetable| environment -% responsibility to call |\WT@scale| with the proper arguments -% -% We further define the start of the tabular typesetting -% that will be useful in a while. Actually the table parameters -% are usable also in the closing part of the environment (thanks -% to \pack{xparse}), so that when the \meta{width} and the -% \meta{column descriptors} are given to the opening environment -% statement, these parameters can be used again and again. -% -% Actually the |widetable| environment can contain other -% environments, even another |widetable| environment, but +% +% We further define the |tabular| environment typesetting. Actually, +% with the new |xparse| faciltiies, the opening command parameters can +% be used also in the closing part of the environment, so that when the +% \meta{width} and the \meta{column descriptors} are given to the opening +% environment statement, they can be used again and again also by the +% closing commands. +% +% Actually the |widetabular| environment can contain other +% environments, even another |widetabular| ones, but % the external one should not be upset by the internal ones. % In order to achieve this result, it is necessary that % embedded environments are hidden within a group delimited by % a pair of matching braces; this is compulsory for an -% embedded |widetable| environment, while it is not strictly -% required for differently named environments. +% embedded |widetabular| environment, while it is not strictly +% required for other environments. % % The environment opening and closing actions % are defined by means of low level commands. @@ -527,7 +532,7 @@ the sty file and the English documentation PDF file. % command implementation and the correct parsing of the list % of argument descriptors % \begin{macrocode} -\DeclareDocumentEnvironment{widetable}{m O{c} m +b} +\DeclareDocumentEnvironment{widetabular}{m O{c} m +b} {% OPENING WIDETABLE COMMANDS }% % \end{macrocode} @@ -544,12 +549,14 @@ the sty file and the English documentation PDF file. % column descriptors and inter-column separators, possibly in % the extended forms provided by the \pack{array} package. %\item[Argument number four] It represents an \pack{xparse} functionality -% by which the whole environment body is usable as\texttt{\#4}. +% by which the whole environment body is internally saved in a sort +% of verbatim mode and become usable again and again as +% argument~\texttt{\#4}. %\end{description} % % The closing statement will actually do the whole job. It first sets % |\tabcolsep| to zero and typesets the resulting table into box zero; -% It uses, with parameter \texttt{\#4}, the table body collected with +% it uses, with parameter \texttt{\#4}, the table body collected with % the argument descriptor \texttt{b} of the opening command. % % Then it sets |\tabcolsep| to 6\,pt (the default value) and @@ -567,7 +574,7 @@ the sty file and the English documentation PDF file. % The table is eventually typeset without using boxes, while the % contents of box zero and box two, upon exiting the environment, % are restored to any value they might have contained before -% entering |widetable|. +% entering |widetabular|. % \begin{macrocode} {% CLOSING WIDETABLE \dimen0=#1 % required width @@ -576,7 +583,8 @@ the sty file and the English documentation PDF file. \tabcolsep=6pt\relax \setbox\tw@=\hbox{\tabular{#3}#4\endtabular}% \ifdim\dimen0>\wd\z@ - \tabcolsep=\dimexpr \tabcolsep*(\dimen0-\wd\z@)/(\wd\tw@-\wd\z@)\relax + \tabcolsep=% + \dimexpr\tabcolsep*(\dimen0-\wd\z@)/(\wd\tw@-\wd\z@)\relax \else \ifdim\dimen0<\wd\z@ \PackageWarning{widetable}{% @@ -592,22 +600,33 @@ the sty file and the English documentation PDF file. \ignorespacesafterend } % \end{macrocode} -% Notice the test and the warning: |widetable| modifies the table -% only if its width, typeset with |\tabcolsep| equal to zero, is -% smaller than the requested width; otherwise it typesets the -% table with the default inter column glue. The warning message -% is produced only if the requested width is smaller the minimum -% width. +% For backward compatibility we let the names |\widetable| and +% |\endwidetable| equal respectively to |\widetabular| and +% |\endwidetabular|, so that the old name of the environment +% provided by this package is still usable; compiling old +% documents is till possible; nevertheless these “old” names are +% discouraged; in a future they might not be available any more. +% \begin{macrocode} +\let\widetable\widetabular \let\endwidetable\endwidetabular +% \end{macrocode} +% Notice the test and the warning: |widetabular| modifies the table +% width only if its minimum width (obtained with |\tabcolsep| equal +% to zero) is smaller than the requested width; otherwise it typesets +% the table with the default inter column glue, and outputs the warning +% message. % +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \section{Conclusion} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Tables should always have their standard inter column spaces, but\dots\ % The default value of |\tabcolsep| is fixed by the document % class, it is not prescribed by a supreme law: therefore % what does it mean ``natural width''. Probably the one -% determined by the class default value of |\tabcolsep| -% so all tables have the same general look. But here we -% used the phrase “natural width” as the table width when the -% inter column glue is set to zero +% determined by the class default value of |\tabcolsep|, +% so that all tables have the same general look. But here we +% used the phrase “minimum width” as that of the tabulars width when the +% inter column glue is set to zero; we avoided speaking of the +% “natural width” because the phrase is not specific. % % Nevertheless sometimes a table is slightly wider than % the current measure; why not shrink the table by shrinking |