diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/vtable/vtable.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/vtable/vtable.tex | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/vtable/vtable.tex b/Master/texmf-dist/doc/latex/vtable/vtable.tex new file mode 100644 index 00000000000..6e4ab8df9e1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/vtable/vtable.tex @@ -0,0 +1,240 @@ +% Copyright (c) 2015-2019 Robert Ryszard Paciorek <rrp@opcode.eu.org> +% +% MIT License +% +% Permission is hereby granted, free of charge, to any person obtaining a copy +% of this software and associated documentation files (the "Software"), to deal +% in the Software without restriction, including without limitation the rights +% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +% copies of the Software, and to permit persons to whom the Software is +% furnished to do so, subject to the following conditions: +% +% The above copyright notice and this permission notice shall be included in all +% copies or substantial portions of the Software. +% +% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +% SOFTWARE. + +\documentclass[a4paper]{article} + +\usepackage{vtable,hhline,xcolor} +\usepackage{fvextra,geometry,lipsum} +\fvset{breaklines=true, breakafter={/\}\{}, breakaftersymbolpre={}, breakaftersymbolpost={\tiny\ensuremath{\ \hookrightarrow\ }}} +\geometry{tmargin=20mm, bmargin=27mm, lmargin=21mm, rmargin=21mm} + +\begin{document} + +\title{The \texttt{vtable} package} +\author{Robert Ryszard Paciorek <rrp@opcode.eu.org>} +\date{2019-05-13} +\maketitle + +\section{Introduction} + +This package allow vertical alignement of table cell + by providing \texttt{Z}, \texttt{L}, \texttt{C}, \texttt{R}, \texttt{J} and \texttt{I} column types + and \Verb$\nextRow$, \Verb$\lb$, \Verb$\setMultiColRow$, \Verb$\setMultiColumn$, \Verb$\setMultiRow$ and \Verb$\tableFormatedCell$ commands + for \texttt{tabular} and similar environment. + +\section{Column types} + +\subsection{\texttt{Z}} + +\texttt{Z} column type have 6 arguments: +\begin{enumerate} + \item max width of cell + \item min width of cell (optional – can be empty) + \item horizontal align mode, supported values: + \begin{description} + \item[l] left + \item[c] center + \item[r] right + \item[j] justify + \end{description} + \item number of columns to span this cell + \item vertical align mode, supported values: + \begin{description} + \item[t] top + \item[m] middle + \item[b] bottom + \end{description} + \item number of rows to span this cell +\end{enumerate} + +\subsection{\texttt{L}, \texttt{C}, \texttt{R} and \texttt{J}} + +\texttt{L}, \texttt{C}, \texttt{R} and \texttt{J} column types are shortcuts for Z column type and have 3 arguments: +\begin{enumerate} + \item max width of cell + \item min width of cell (optional – can be empty) + \item vertical align mode, supported values: + \begin{description} + \item[t] top + \item[m] middle + \item[b] bottom + \end{description} +\end{enumerate} +\texttt{L} is left ragged column, \texttt{C} is center ragged column, \texttt{R} is right ragged column and \texttt{J} is justifying column. + +\subsection{\texttt{I}} + +\texttt{I} column type insert vertical frame line and have 3 arguments: +\begin{enumerate} + \item formatting command (eg. \Verb$\color$) + \item line width, second argument of \Verb$\hdashrule$ + \item line style, third argument of \Verb$\hdashrule$ +\end{enumerate} + + +\section{Commands} + +\subsection{nextRow an lb} +{\bfseries Each row (even last) MUST be ended with \Verb$\nextRow$ command} (insted of \Verb$\\$ or \Verb$\tabularnewline$). +Line break in table cell can be do with \Verb$\lb$ (shortcut for \Verb$\linebreak$), \Verb$\linebreak$ or \Verb$\newline$. + +\subsection{setMultiColRow} +\Verb$\setMultiColRow{col num}{row num}{max width}{min width}{hmode}{vmode}{left sep}{right sep}{text}$ command allow span cells on rows and columns create multi column at the same time. +It have 9 arguments: +\begin{description} + \item[col num] number of columns to span this cell + \item[row num] number of rows to span this cell + \item[max width] max width of cell + \item[min width] min width of cell (optional – can be empty) + \item[hmode] horizontal align mode, supported values: + \begin{description} + \item[l] left + \item[c] center + \item[r] right + \item[j] justify + \end{description} + \item[vmode] vertical align mode, supported values: + \begin{description} + \item[t] top + \item[m] middle + \item[b] bottom + \end{description} + \item[left sep] left cell frame element + \item[right sep] right cell frame element + \item[text] cell content +\end{description} + +\Verb$\setMultiColRow$ command MUST be repeated in each row of multirow set. +Only first call CAN (and MUST) have not empty last argument (cell content). +Every next call of \Verb$\setMultiColRow$ in single multirow set MUST have empty last argument (cell content). + +\subsection{setMultiColumn} +\Verb$\setMultiColumn{col num}{max width}{min width}{hmode}{vmode}{left sep}{right sep}{text}$ command allow create multi column cell. +It have 8 arguments meaningful as corresponding args in \Verb$\setMultiColRow$ command. + +\subsection{setMultiRow} +\Verb$\setMultiRow{col num}[minimal height]{text}$ command allow create multi row cell. +Next cells in multirow set should be empty. +Horizontal lines between cells in multirow set should be manualy removed (via setting \Verb$\hhline$ parametrs). + +\subsection{tableFormatedCell} +\Verb$\tableFormatedCell{max width}[min width]{hmode}{vmode}$ command allow change formatting for single cell. +It have 4 arguments meaningful as corresponding args in \Verb$\setMultiColRow$ command. + +\subsection{forceRowHeight} +\Verb$\forceRowHeight{value}$ enforce current row minimum height to value. + + +\section{Examples} + +\begin{center} +\begin{tabular}{ + | C{2cm}{}{t} | C{2cm}{1.5cm}{m} | C{2cm}{}{b} | L{2cm}{}{m} | + R{2cm}{}{t} | J{2cm}{}{t} I{\color{red}}{1pt}{0.5mm 0.5mm 0.5mm 0mm} + } + \hline + top & middle & bottom & middle left & top right & top justify + \nextRow \hline + A \lb xxx \lb X & B & C & + \setMultiRow{3}{ -- \lipsum[1][1] -- \lb -- \lipsum[1][2] -- } & + q & q + \nextRow \hhline{---~--} + D \lb d & E \lb xxx xx \lb X \lb X & F \lb f & & q & q + \nextRow \hhline{---~--} + G & H & I \lb xxx \lb Xj & & q & q + \nextRow \hline + G & + \setMultiColumn{2}{4cm}{3cm}{c}{t}{}{|} {top, center: \lb \lipsum[1][3]} & + xx & q & q + \nextRow \hline + G & + \multicolumn{2}{Z{4cm}{3cm}{l}{2}{t}{1}|} {top, left: \lb \lb \lipsum[1][4]} & + LL LL\lb xxx\lb X\lb X & RR RR\lb xxx\lb X\lb X & BB BB\lb xxx\lb X\lb X + \nextRow \hline + G & + \tableFormatedCell{3.5cm}[3cm]{r}{b}I I \lb xxxxxxx \lb a a Xj & + y & \lipsum[1][1] & \lipsum[1][1] & \lipsum[1][1] + \nextRow \hline +\end{tabular} +\end{center} + +\begin{Verbatim} +\begin{tabular}{ + | C{2cm}{}{t} | C{2cm}{1.5cm}{m} | C{2cm}{}{b} | L{2cm}{}{m} | + R{2cm}{}{t} | J{2cm}{}{t} I{\color{red}}{1pt}{0.5mm 0.5mm 0.5mm 0mm} + } + \hline + top & middle & bottom & middle left & top right & top justify + \nextRow \hline + A \lb xxx \lb X & B & C & + \setMultiRow{3}{ -- \lipsum[1][1] -- \lb -- \lipsum[1][2] -- } & + q & q + \nextRow \hhline{---~--} + D \lb d & E \lb xxx xx \lb X \lb X & F \lb f & & q & q + \nextRow \hhline{---~--} + G & H & I \lb xxx \lb Xj & & q & q + \nextRow \hline + G & + \setMultiColumn{2}{4cm}{3cm}{c}{t}{}{|} {top, center: \lb \lipsum[1][3]} & + xx & q & q + \nextRow \hline + G & + \multicolumn{2}{Z{4cm}{3cm}{l}{2}{t}{1}|} {top, left: \lb \lb \lipsum[1][4]} & + LL LL\lb xxx\lb X\lb X & RR RR\lb xxx\lb X\lb X & BB BB\lb xxx\lb X\lb X + \nextRow \hline + G & + \tableFormatedCell{3.5cm}[3cm]{r}{b}I I \lb xxxxxxx \lb a a Xj & + y & \lipsum[1][1] & \lipsum[1][1] & \lipsum[1][1] + \nextRow \hline +\end{tabular} +\end{Verbatim} + +\subsection{multicolumn, multirow} + +\begin{center} +\begin{tabular}{| C{2cm}{}{t} | C{2cm}{}{m} | C{2cm}{}{b} | L{2cm}{}{m} |} + \hline + \setMultiColRow{2}{3}{4cm}{3cm}{c}{m}{|}{|}{ multi multi multi multi multi multi multi multi multi } & c1 & d1 + \nextRow\hhline{~~--} + \setMultiColRow{2}{3}{4cm}{3cm}{c}{m}{|}{|}{} & c2 & d2 + \nextRow\hhline{~~--} + \setMultiColRow{2}{3}{4cm}{3cm}{c}{m}{|}{|}{} & c3 & d3 + \nextRow\hline + a4 & b4 & c4 & d4 + \nextRow\hline +\end{tabular} +\end{center} + +\begin{Verbatim} +\begin{tabular}{| C{2cm}{}{t} | C{2cm}{}{m} | C{2cm}{}{b} | L{2cm}{}{m} |} + \hline + \setMultiColRow{2}{3}{4cm}{3cm}{c}{m}{|}{|}{ multi multi multi multi multi multi multi multi multi } & c1 & d1 + \nextRow\hhline{~~--} + \setMultiColRow{2}{3}{4cm}{3cm}{c}{m}{|}{|}{} & c2 & d2 + \nextRow\hhline{~~--} + \setMultiColRow{2}{3}{4cm}{3cm}{c}{m}{|}{|}{} & c3 & d3 + \nextRow\hline + a4 & b4 & c4 & d4 + \nextRow\hline +\end{tabular} +\end{Verbatim} +\end{document} |