diff options
author | Karl Berry <karl@freefriends.org> | 2024-05-04 19:46:33 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-05-04 19:46:33 +0000 |
commit | e77172451cff51dbe73e3e4adce1fb4175181edb (patch) | |
tree | 6510eab21c838a001bc792d5d47dfc0581ffa231 /Master/texmf-dist/source/latex/arraycols/arraycols.dtx | |
parent | 03a7e56cb8d9d5372816c07677652915266ac47c (diff) |
arraycols (4may24)
git-svn-id: svn://tug.org/texlive/trunk@71168 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/arraycols/arraycols.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/arraycols/arraycols.dtx | 148 |
1 files changed, 91 insertions, 57 deletions
diff --git a/Master/texmf-dist/source/latex/arraycols/arraycols.dtx b/Master/texmf-dist/source/latex/arraycols/arraycols.dtx index b3a438be983..aebd0bb195f 100644 --- a/Master/texmf-dist/source/latex/arraycols/arraycols.dtx +++ b/Master/texmf-dist/source/latex/arraycols/arraycols.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2019-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr> +% Copyright (C) 2019-2024 by Antoine Missier <antoine.missier@ac-toulouse.fr> % % This file may be distributed and/or modified under the conditions of % the LaTeX Project Public License, either version 1.3 of this license @@ -20,16 +20,16 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2005/12/01] \ProvidesPackage{arraycols} - [2023/09/13 v1.4 .dtx arraycols file] + [2024/05/04 v1.5 .dtx New column types for array and tabular] %</package> %<*driver> \documentclass{ltxdoc} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[french,english]{babel} -\usepackage{lmodern} +\usepackage[charter]{mathdesign} \usepackage{arraycols} - +\usepackage{spacingtricks} \usepackage{sectsty} \usepackage{xcolor} \definecolor{darkbrown}{rgb}{0.5,0.1,0.1} @@ -56,7 +56,7 @@ %</driver> % \fi % -% \CheckSum{46} +% \CheckSum{42} % % \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 @@ -81,23 +81,29 @@ % minor changes in documentation} % \changes{v1.2}{2021/09/20}{Incompatibility with siunitx package % (called by pstricks-add) is solved} -% \changes{v1.3}{2023/08/09}{Small changes in documentation} -% \changes{v1.4}{2023/09/13}{More changes in documentation} +% \changes{v1.3}{2023/08/09}{A few changes in the documentation} +% \changes{v1.4}{2023/09/13}{More changes in the documentation} +% \changes{v1.5}{2024/05/04}{Mention of the tabularray and mdwtab packages in the doc; +% explanations about the gape and Gape macros from the makecell package} % % \GetFileInfo{arraycols.sty} % % \title{The \textsf{arraycols} package\thanks{This document % corresponds to \textsf{arraycols}~\fileversion, dated \filedate. -% Thanks to François Bastouil for assistance with the English translation.}} +% Thanks to François Bastouil for initial assistance with the English translation.}} % \author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}} -% \date{September 13, 2023} +% \date{May 4, 2024} % \maketitle % % \section{Introduction} % -% This package introduces new predefined column types for tables, in addition to -% the \textsf{array} package by Frank Mittelbach and David Carlisle~\cite{ARRAY}. -% It also includes a command for wide horizontal rule drawing. +% Although the remarkable \textsf{tabularray} package by Jianrui Lyu~\cite{TABUL}, +% developed in \LaTeX 3, offers many new possibilities and great flexibility +% in composing tables, many users are still familiar with +% Frank Mittelbach and David Carlisle's \textsf{array} package~\cite{ARRAY}. +% In addition to \textsf{array}, this modest \textsf{arraycols} package introduces +% new predefined column types for tables and also includes a command +% for wide horizontal rule drawing. % Below is a summary of the column types and macro defined by \textsf{arraycols}, % which will be detailed in the following section. % @@ -142,7 +148,7 @@ % \end{tabular} % \end{center} % -% Note that if a column type has been previously defined by another package, +% If a column type has been previously defined by another package, % using \textsf{arraycols} will overwrite it and display a warning message. % % In addition to loading the \textsf{array} package, \textsf{arraycols} @@ -151,13 +157,10 @@ % Moreover it relies on % \textsf{tabularx}~\cite{TABX} for \texttt{T} and \texttt{Z} column types and % loads \textsf{makecell}~\cite{MKCELL} for creation of multilined tabular cells. -% It's worth mentioning that the \textsf{tablestyles} package~\cite{TBLSTY} -% also defines L, C, R and Z column types, but differently. -% Nevertheless, \textsf{tablestyles} is incompatible with \textsf{makecell} -% and consequently with \textsf{arraycols} as well. -% -% With its minimal code, \textsf{arraycols} makes no claim to develop new macros. -% Its purpose is to combine and configure functionalities derived from other packages. +% Note that the \textsf{tablestyles} package~\cite{TBLSTY} +% also defines the column types L, C, R and Z, but differently. +% However, \textsf{tablestyles} is incompatible with \textsf{makecell} +% and therefore also with \textsf{arraycols} as well. % % \section{Usage} % @@ -171,14 +174,13 @@ % in a \texttt{tabular} environment. % For instance, using the declaration "\begin{tabular}{|l|C|r|}" sets the second column % in centered mathematical mode. Similarly, using the declaration "\begin{array}{|L|c|c|}" -% sets the first column in text mode, left-aligned\footnote{The declarations -% \texttt{L, C, R} do not work in a \texttt{tabularx} environment. +% sets the first column in text mode, left-aligned +% \footnote{The declarations \texttt{L, C, R} do not work in a \texttt{tabularx} environment. % Additionally, the \mbox{\textsf{tabulary}} package by David Carlisle~\cite{TABY} % already defines the \texttt{L, C, R} (and \texttt{J}) column types for specific alignments % in tables of the same type as \texttt{tabularx}. -% However, there is no incompatibility with \textsf{arraycols} because these column definitions -% apply exclusively within \texttt{tabulary} environments. -% }. +% However, there is no incompatibility with \textsf{arraycols} because these +% column definitions apply exclusively within \texttt{tabulary} environments.}. % % \medskip % \DescribeEnv{t\marg{width}} @@ -230,17 +232,18 @@ % \end{array} % \] % -% The \textsf{cellspace} package is loaded with the \texttt{math} option\footnote{The -% \texttt{math} option loads the \textsf{amsmath} package. +% The \textsf{cellspace} package is loaded with the \texttt{math} option +% \footnote{The \texttt{math} option loads the \textsf{amsmath} package. % As mentionned in the \textsf{cellspace} package documentation: % \og the \textsf{amsmath} package can be loaded beforehand with other % packages (such as \texttt{empheq} or \texttt{mathtools}), % were an incompatibility to arise from one’s loading it later\fg.} % to efficiently manage row heights, including in matrices. % Another option of \textsf{cellspace}, \texttt{column=Q} -% (with \texttt{S} being the default in \textsf{cellspace})\footnote{The -% letter Q is a substitute for the default column modifier S of the \textsf{cellspace} -% package.}, was necessary to prevent any compatibility issues +% (with \texttt{S} being the default in \textsf{cellspace}) +% \footnote{The letter Q is a substitute for the default column modifier +% S of the \textsf{cellspace} package.}, +% was necessary to prevent any compatibility issues % with the \textsf{siunitx} package (also loaded by \textsf{pstricks-add}). % The \texttt{Q} declaration serves as a \og modifier \fg{} % that, when placed before a column type declaration, @@ -253,19 +256,44 @@ % excellent row height adjustment. However, regrettably, it doesn't handle the height % of vertical separators ``"|"''. % In order to achieve a similar vertical adjustment as \textsf{booktabs}, -% we set the \textsf{cellspace} parameters as follows:\\ -% \indent\indent"\setlength{\cellspacetoplimit}{3pt}", \\ -% \indent\indent"\setlength{\cellspacebottomlimit}{2pt}". -% -% Additionally, it's worth mentioning the \textsf{tabls} package by Donald Arneseau~\cite{TABLS} -% that makes a good adjustment of row heights as well, but it is incompatible -% with the \textsf{array} and \textsf{numprint} packages. +% we set the \textsf{cellspace} parameters as follows: +% \begin{center} +% \begin{tabular}{l} +% "\setlength{\cellspacetoplimit}{3pt}", \\ +% "\setlength{\cellspacebottomlimit}{2pt}". +% \end{tabular} +% \end{center} % % \medskip -% Finally, manual adjustments can also be achieved using the "\vstrut" command -% from the \textsf{spacingtricks} package~\cite{SPA}, or by utilizing "\gape" and "\Gape" -% from the \textsf{makecell} package~\cite{MKCELL}, -% as well as employing "\bigstrut" from the \textsf{bigstrut} package~\cite{STRUT}. +% A common issue with \LaTeX\ tables is that there isn’t enough space +% around horizontal rules. As seen previously, +% \textsf{cellspace} partially addresses this issue, +% but if you want to add some more space around the horizontal rules, it's not straightforward. +% First, note that Donald Arsenau's \textsf{tabls} package~\cite{TABLS} produces +% a nice and automatic solution in this regard, but is not compatible with \textsf{array} +% nor with \textsf{numprint}. +% +% Several other methods can be employed: +% you can increase the space on top or bottom of a particular cell +% by using +% \begin{center} +% "\gape"\oarg{\texttt{t} or \texttt{b}}\marg{text} +% or "\Gape"\oarg{height}\oarg{depth}\marg{text} +% \end{center} +% from the \textsf{makecell} package~\cite{MKCELL}. +% You have also the "\bigstrut" command from the \textsf{bigstrut} package~\cite{STRUT}, +% but it's less efficient and convenient. +% An efficient method is provided by the \textsf{mdwtab} package +% of Mark Wooding~\cite{MDWTAB} with its macros +% "\vgap"\marg{length} or "\hlx"\marg{hlx-cmd}, +% where in \marg{hlx-cmd} you can place "h", representing "\hline", and "s"\oarg{length}, +% meaning "\vgap" (among others). +% This package provides also many other interesting features. +% Finally, manual adjustments of particular rows can be achieved using +% the "\vstrut"\oarg{depth}\marg{height} command +% from the \textsf{spacingtricks} package~\cite{SPA}, +% These packages are not loaded by \textsf{arraycols}, except \textsf{makecell}. +% Have a look at their documentation. % % \medskip % \DescribeEnv{z\marg{width}} @@ -281,16 +309,19 @@ % the \texttt{X} column definition, which calculates its width in relation to % the required width for the entire table. It aligns text to the left % similar to \texttt{p}\marg{width}. -% For instance, using "\begin{tabularx}{8cm}{|c|X|X|}" +% Using "\begin{tabularx}{8cm}{|c|X|X|}" % adjusts the width of the \texttt{X} columns % to achieve a total width of 8\,cm. To complement this, we offer % the \texttt{T} declaration, which performs a similar function % but centers the content horizontally. % Additionally the \texttt{Z} declaration activates mathematical % mode and adjusts -% line heights, comparable to \texttt{x} or \texttt{z}). Here's an example with -% "\begin{tabularx}{\linewidth}{|T|y|x|Z|T|}". +% line heights, comparable to \texttt{x} or \texttt{z}). +% The following example is obtained with % \begin{center} +% "\begin{tabularx}{\linewidth}{|T|y|x|Z|T|}". +% +% \medskip % \begin{tabularx}{\linewidth}{|T|y|x|Z|T|} % \hline % A good job & @@ -301,6 +332,7 @@ % \hline % \end{tabularx} % \end{center} +% % Observe that cells 3 and 4 are not vertically centered to preserve % the precise alignment of fraction bars within mathematical formulas % across cells. @@ -317,7 +349,8 @@ % compared to the one achieved % with the standard declaration ``"|"''. For selecting the line thickness, % we additionally provide the column -% definition \texttt{V}\marg{thickness}\footnote{The definition of \texttt{V} +% definition \texttt{V}\marg{thickness} +% \footnote{The definition of \texttt{V} % would have been simplified by utilizing an optional argument for \texttt{I}, % but unfortunately, this approach doesn't function.}. % @@ -334,14 +367,12 @@ % Horizontal rules at the beginning and end of the table are accomplished using "\whline", % while a "\Xhline{0.8pt}" rule is employed after the legend rows. % The formatting of header rows is achieved using the "\thead" command -% from the \textsf{makecell} package. By default, \textsf{arraycols} sets: -% "\renewcommand\theadfont{\footnotesize\sffamily}" -% (in \textsf{makecell} it is |\footnotesize| only, without "\sffamily"). +% from the \textsf{makecell} package. % Lastly, following a recommendation of the \textsf{array} package~\cite{ARRAY}, % an additional 1\,pt has been added to the standard height of each row within this table. % This adjustment is implemented with the command -% "\setlength{\extrarowheight}{1pt}"\footnote{As stated -% in the \textsf{array} package documentation: +% "\setlength{\extrarowheight}{1pt}" +% \footnote{As stated in the \textsf{array} package documentation: % \og This is important for tables with horizontal lines because those % lines normally touch the capital letters\fg.}. % @@ -362,8 +393,8 @@ % The \textsf{cellspace} package provides the \texttt{S} modifier % (we used \texttt{Q} instead), which, % when placed before a column declaration, allows for the adjustment of cell content height -% to prevent any overlap with horizontal rules. The spacing between the content and the rules -% is governed by the parameters +% to prevent any overlap with horizontal rules. The spacing between the content and the +% horizontal rules is governed by the parameters % "\cellspacetoplimit" and "\cellspacebottomlimit". % % \begin{macrocode} @@ -400,32 +431,35 @@ \newcolumntype{V}[1]{!{\vrule width #1}} \newlength\savedwidth \newcommand{\whline}{% - \noalign{\global\savedwidth\arrayrulewidth\global\arrayrulewidth 1pt} + \noalign{\global\savedwidth\arrayrulewidth + \global\arrayrulewidth 1pt} \hline \noalign{\global\arrayrulewidth\savedwidth} } -\renewcommand\theadfont{\footnotesize\sffamily} % \end{macrocode} % % \bigskip -% \begin{thebibliography}{11} +% \begin{thebibliography}{13} +% \bibitem{TABUL} \emph{Tabularray -- Typeset Tabulars and Arrays with \LaTeX 3}, +% Jianrui Lyu, CTAN, 2024A 2024/02/16. % \bibitem{ARRAY} \emph{A new implementation of LATEX’s \textsf{tabular} and \textsf{array} % environment}, Frank Mittelbach, David Carlisle, CTAN, v2.4k revised 2018/12/30. % \bibitem{CELLSP} \emph{The \textsf{cellspace} package}, Josselin Noirel, CTAN, % v1.8.1 2019/03/11. % \bibitem{TABX} \emph{The \textsf{tabularx} package}, David Carlisle, CTAN, v2.11.b 2016/02/03. % \bibitem{MKCELL} \emph{The \textsf{makecell} package}, Olga Lapko, CTAN, v0.1e 2009/08/03. -% \bibitem{TABY} \emph{The \textsf{tabulary} package}, David Carlisle, CTAN, v1.10 2014/06/11. % \bibitem{TBLSTY} \emph{The \textsf{tablestyles} package}, Matthias Pospiech, CTAN, % v0.1 2014/06/27. +% \bibitem{TABY} \emph{The \textsf{tabulary} package}, David Carlisle, CTAN, v1.10 2014/06/11. % \bibitem{BOOK} \emph{Publication quality tables in \LaTeX}, package \textsf{booktabs} by % Simon Fear, CTAN, v1.618033 2016/04/29. % \bibitem{TABLS} \emph{The \textsf{tabls} package}, Donald Arseneau, CTAN, v3.5 2010/02/26. % \bibitem{STRUT} \emph{The \textsf{multirow}, \textsf{bigstrut} % and \textsf{bigdelim} packages}, % Piet van Oostrum, Øystein Bache, Jerry Leichter, CTAN, v2.4 2019/01/01. +% \bibitem{MDWTAB} \emph{The \textsf{mdwtab} package}, Mark Wooding, CTAN, v1.9 1998/04/28. % \bibitem{SPA} \emph{The \textsf{spacingtricks} package}, Antoine Missier, -% CTAN, v1.3 2020/11/02. +% CTAN, v1.8 2023/12/06. % \bibitem{COMP} \emph{The \LaTeX\ Companion}. Frank Mittelbach, Michel Goossens, % Johannes Braams, David Carlisle, Chris Rowley, 2nd edition, Pearson Education, 2004. % \end{thebibliography} |