summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/widetable/widetable.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/widetable/widetable.dtx')
-rw-r--r--macros/latex/contrib/widetable/widetable.dtx331
1 files changed, 175 insertions, 156 deletions
diff --git a/macros/latex/contrib/widetable/widetable.dtx b/macros/latex/contrib/widetable/widetable.dtx
index d774e9a7e6..11c3f5bc13 100644
--- a/macros/latex/contrib/widetable/widetable.dtx
+++ b/macros/latex/contrib/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