From 9be1534fe41a6da18ab8eda4f92a7ca40f0be8d0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 1 Jun 2007 16:59:17 +0000 Subject: makecell update (25may07) git-svn-id: svn://tug.org/texlive/trunk@4400 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/makecell/README | 36 +- .../texmf-dist/doc/latex/makecell/makecell-rus.tex | 588 ++++++++++++--- Master/texmf-dist/doc/latex/makecell/makecell.pdf | Bin 186580 -> 224236 bytes Master/texmf-dist/doc/latex/makecell/makecell.xml | 15 +- .../texmf-dist/doc/latex/makecell/tablists-rus.tex | 576 +++++++++++++++ Master/texmf-dist/doc/latex/makecell/tablists.pdf | Bin 0 -> 158815 bytes Master/texmf-dist/doc/latex/makecell/tablists.xml | 20 + .../texmf-dist/source/latex/makecell/makecell.dtx | 633 ++++++++++++---- .../texmf-dist/source/latex/makecell/tablists.dtx | 793 +++++++++++++++++++++ Master/texmf-dist/tex/latex/makecell/makecell.sty | 139 +++- Master/texmf-dist/tpm/makecell.tpm | 12 +- Master/texmf/lists/makecell | 4 + 12 files changed, 2554 insertions(+), 262 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/makecell/tablists-rus.tex create mode 100644 Master/texmf-dist/doc/latex/makecell/tablists.pdf create mode 100644 Master/texmf-dist/doc/latex/makecell/tablists.xml create mode 100644 Master/texmf-dist/source/latex/makecell/tablists.dtx (limited to 'Master') diff --git a/Master/texmf-dist/doc/latex/makecell/README b/Master/texmf-dist/doc/latex/makecell/README index b20342c2dc2..8577d815a77 100644 --- a/Master/texmf-dist/doc/latex/makecell/README +++ b/Master/texmf-dist/doc/latex/makecell/README @@ -1,12 +1,24 @@ -makecell 0.1c -Tabular column heads and multilined cells. - - Package offers a command, based on one-column tabular environment, - which allows to support a common layout for tabular column heads - in whole document. Another offered command is for creation of - multilined tabular cells. There are also: 1) a macro, which - changes vertical spaces around all cells in tabular, like in tabls - package, but based on macros of array package; 2) macros for - multirow cells/heads, which use macro from multirow package. - -Documentation: makecell.pdf. \ No newline at end of file +makecell 0.1d +Managing of tabular column heads and cells. + + Package offers a command, based on one-column tabular environment, which + allows to support a common layout for tabular column heads in whole + document. Another offered command is for creation of multilined tabular + cells. There are also: 1) a macro, which changes vertical spaces + around all cells in tabular, like in tabls package, but based on array + package; 2) macros for multirow cells/heads, which use macro from + multirow package; 3) macros for numbered rows of cells or skipping + cells in tabulars; 4) diagonally divided cells; 5) macros for + horizonral lines in tabulars with defined thickness. + +Documentation: makecell.pdf. + +tablists 0.0a (beta) +Tabulated list of short items (exersizes in textbooks). + + Package offers environments and commands for one-level and two-level + lists of short items (exersizes in textbooks). The environments follow + support of optional arguments of item numbering as enumerate or paralist + packages. + +Documentation: tablists.pdf. diff --git a/Master/texmf-dist/doc/latex/makecell/makecell-rus.tex b/Master/texmf-dist/doc/latex/makecell/makecell-rus.tex index bd5d1b07690..5ea5537e700 100644 --- a/Master/texmf-dist/doc/latex/makecell/makecell-rus.tex +++ b/Master/texmf-dist/doc/latex/makecell/makecell-rus.tex @@ -1,6 +1,6 @@ % \iffalse % -% makecell.dtx - tabular column heads and multilined cells. +% makecell.dtx - Managing of tabular column heads and cells. % Russian documentation. % (c) 2005--2006 Olga Lapko (Lapko.O@g23.relcom.ru) % @@ -57,45 +57,83 @@ % \author{% % Ольга Лапко\\ % {\tt Lapko.O@g23.relcom.ru} } -% \date{2006/06/28} +% \date{2007/05/24} % \maketitle % \begin{abstract} +%^^A% This package helps to create common layout for tabular material. +%^^A% The |\thead| command, based on one-column tabular environment, is offered +%^^A% for creation of tabular column heads. This macro allows to support common +%^^A% layout for tabular column heads in whole documentation. Another command, +%^^A% |\makecell|, is offered for creation of multilined tabular cells. % Данный пакет помогает создать единое оформление для таблиц во всём % документе. Команда |\thead|, использующая окружение одноколоночной % таблицы, позволяет создать единообразное оформление для заголовков -% табличных колонок в документе. Ещё одна команда, |\makecell|, -% предлагается для создания многострочных ячеек в таблицах. +% табличных колонок в~документе. Ещё одна команда, |\makecell|, +% предлагается для создания многострочных ячеек в~таблицах. % -% Также предлагается: \quad 1)\nobreak\enskip макрокоманда |\makegapedcells|, +%^^A% Package also offers: \quad 1)\nobreak\enskip macro |\makegapedcells|, +%^^A% which changes vertical spaces around all cells in tabular, like in +%^^A% \pkg{tabls} package, but uses code of \pkg{array} package. (Macro +%^^A% |\makegapedcells| redefines macro |\@classz| from \pkg{array} package. +%^^A% Macro |\nomakegapedcells| cancels this redefinition.); +%^^A% \quad 2)\nobreak\enskip macros |\multirowhead| and |\multirowcell|, +%^^A% which use |\multirow| macro from \pkg{multirow} package; +%^^A% \quad 3)\nobreak\enskip numbered lines |\nline| or skipping cells |\eline| +%^^A% in tabulars; +%^^A% \quad 4)\nobreak\enskip diagonally divided cells (|\diaghead|); +%^^A% \quad 5)\nobreak\enskip |\hline| and |\cline| width necessary thickness: +%^^A% |\Xhline| and |\Xcline| consequently. +% Также предлагается: \qquad 1)\nobreak\enskip макрокоманда |\makegapedcells|, % которая изменяет вертикальные отбивки вокруг табличных ячеек, аналогично -% пакету \pkg{tabls}, но использует пакет \pkg{array}. (Макрокоманда -% |\makegapedcells| переопределяет макрокоманду |\@classz| этого пакета. -% Макрокоманда |\nomakegapedcells| отменяет переопределение.); \quad -% 2)\nobreak\enskip макрокоманды |\multirowhead| и |\multirowcell|, -% использующие макрокоманду |\multirow| из пакета \pkg{multirow}.% +% пакету \pkg{tabls}, но использует пакет \pkg{array}. (Команда +% |\makegapedcells| переопределяет макрокоманду |\@classz| пакета +% \pkg{array}. Макрокоманда |\nomakegapedcells| отменяет переопределение.); +% \qquad 2)\nobreak\enskip макрокоманды |\multirowhead| и~|\multirowcell|, +% использующие макрокоманду |\multirow| из пакета \pkg{multirow}; +% \qquad 3)\nobreak\enskip ряд нумерованных |\nline| или пропущенных |\eline| +% ячеек; +% \qquad 4)\nobreak\enskip ячейки разделённые диагональю (|\diaghead|); +% \qquad 5)\nobreak\enskip линейки |\hline| и~|\cline| с~заданной толщиной: +% |\Xhline| и~|\Xcline|. % \smallskip % % \end{abstract} % -% \section{Табличные ячейки и заголовки колонок} +% \clearpage +% \tableofcontents % +% \clearpage +%^^A% \section{Tabular Cells and Column Heads} +% \section{Табличные ячейки и~заголовки колонок} +% +%^^A% \subsection{Building Commands} % \subsection{Основные команды} % % \DescribeMacro{\makecell} -% Макрокоманда создаёт окружение одноколоночной таблицы с предопределёнными общими -% параметрами выключки, интерлиньяжа и вертикальных отбивок вокруг +%^^A% Macro creates one-column tabular with predefined common settings of +%^^A% alignment, spacing and vertical spaces around (see section~\ref{sec:sets}). +%^^A% This will be useful for creation of multilined cells. This macro allows +%^^A% optional alignment settings. +% Макрокоманда создаёт окружение одноколоночной таблицы с~предопределёнными общими +% параметрами выключки, интерлиньяжа и~вертикальных отбивок вокруг % (см. разд.~\ref{sec:sets}). Её удобно использовать для % многострочных ячеек. Дополнительный аргумент команды позволяет % изменить выключку таблицы. % \begin{quote} % |\makecell|\oarg{vertical or/and horizontal alignment}\marg{cell text} % \end{quote} +%^^A% For vertical alignment you use \texttt{t}, \texttt{b}, or \texttt{c}---%^^A +%^^A% this letters you usually put in optional argument of \env{tabular} or +%^^A% \texttt{array} environments. For horizontal alignment you may use alignment +%^^A% settings like \texttt{r}, \texttt{l}, or \texttt{c}, or more complex, like +%^^A% |{p{3cm}}|. Since this package loads \pkg{array} package, you may +%^^A% use such alignment settings like |{>{\parindent1cm}p{3cm}}|. % Для вертикальной выключки используются обозначения \texttt{t}, \texttt{b}, -% или \texttt{c} "--- эти буквы используются в дополнительном аргументе окружений +% или \texttt{c} \cdash--- эти буквы используются в~дополнительном аргументе окружений % \env{tabular} или \texttt{array}. Для горизонтальной выключки вы можете % использовать обозначения \texttt{r}, \texttt{l}, или \texttt{c}, или более % сложные: |{p{3cm}}|. Поскольку данный пакет загружает пакет \pkg{array}, вы -% можете использовать и такие определения выключки: |{>{\parindent1cm}p{3cm}}|. +% можете использовать и~такие определения выключки: |{>{\parindent1cm}p{3cm}}|. %\begin{verbatim} %\begin{tabular}{|c|c|} %\hline @@ -138,25 +176,42 @@ % \end{tabular}} % \end{table} % -% |*|-форма команды, |\makecell*|, создаёт вертикальные отбивки равные |\jot|. +%^^A% Starred form of command, |\makecell*|, creates vertical |\jot| spaces +%^^A% around. +% Звёздная форма команды, |\makecell*|, создаёт вертикальные отбивки равные~|\jot|. % -% \emph{Замечание}. При определении выключки колонки типа |{p{3cm}}| в -% дополнительном аргументе, нужно соблюдать следующие правила: +%^^A% \emph{Note}. When you define column alignment like |p{3cm}| in optional +%^^A% argument of |\makecell| (or |\thead|, see below), please follow these +%^^A% rules: \quad 1)\nobreak\enskip if vertical +%^^A% alignment defined, write column alignment in group, e.g. |[c{p{3cm}}]|; +%^^A% \quad 2)\nobreak\enskip if vertical alignment is absent, +%^^A% write column alignment in double +%^^A% group---|[{{p{3cm}}}]|, or add empty group---|[{}{p{3cm}}]|. Be also +%^^A% careful with vertical alignment when you define column alignment as +%^^A% paragraph block: e.g., use |{{b{3cm}}}| for bottom alignment (and +%^^A% |{{m{3cm}}}| for centered vertical alignment). +% \emph{Замечание}. При определении выключки колонки типа |{p{3cm}}| +% в~дополнительном аргументе команды |\makecell| (или |\thead|, см.~ниже), +% нужно соблюдать следующие правила: % \quad 1)\nobreak\enskip если есть -% обозначение вертикальной выключки, взять выключку колонки в группу: +% обозначение вертикальной выключки, взять выключку колонки в~группу: % |[c{p{3cm}}]|; \quad -% 2)\nobreak\enskip если его нет, взять выключку -% колонки в двойную группу "--- |[{{p{3cm}}}]| или добавить пустую группу -% "--- |[{}{p{3cm}}]|. -% Будьте внимательны с вертикальной выключкой ячейки при задании выключки -% колонки в виде абзаца: +% 2)\nobreak\enskip если вертикальной выключки нет, взять выключку +% колонки в~двойную группу \cdash--- |[{{p{3cm}}}]| или добавить пустую группу +% \cdash--- |[{}{p{3cm}}]|. +% Будьте внимательны с~вертикальной выключкой ячейки при задании выключки +% колонки в~виде абзаца: % например, нужно использовать |{b{3cm}}| для выключки по нижней линии -% (и |{m{3cm}}| для выключки по средней линии). +% (и~|{m{3cm}}| для выключки по средней линии). % % \DescribeMacro{\thead} +%^^A% Macro creates one-column \texttt{tabular} for column heads with predefined +%^^A% common settings (see table~\ref{tab:thead}). This macro uses common layout +%^^A% for column heads: font, alignment, spacing, and vertical spaces around +%^^A% (see section~\ref{sec:sets}). % Макрокоманда создаёт окружение одноколоночной таблицы для заголовков колонок -% с предопределёнными -% общими параметрами выключки и интерлиньяжа (см.~табл.~\ref{tab:thead}). +% с~предопределёнными +% общими параметрами выключки и~интерлиньяжа (см.~табл.~\ref{tab:thead}). % Эта макрокоманда использует общие установки для заголовков колонок: шрифт, % выключку, интерлиньяж, вертикальные отбивки вокруг (см. разд.~\ref{sec:tsets}). %\begin{verbatim} @@ -184,16 +239,24 @@ % \end{tabular}} % \end{table} % -% |*|-форма команды, |\thead*|, создаёт вертикальные отбивки равные|\jot|. +%^^A% Starred form of command, |\thead*|, creates vertical |\jot| spaces around. +% Звёздная форма команды, |\thead*|, создаёт вертикальные отбивки равные~|\jot|. % % \DescribeMacro{\rothead} +%^^A% Creates table heads rotated by 90$^\circ$ counterclockwise. +%^^A% Macro uses the same font and spacing settings as previous +%^^A% one, but column alignment changed to |p{\rotheadsize}| with |\raggedright| +%^^A% justification: in this case left side of all text lines ``lies'' +%^^A% on one base line. % Создаёт заголовки колонок, развёрнутые на 90$^\circ$ против часовой стрелки. -% Макрокоманда использует те же установки шрифта и интерлиньяжа как и предыдущая, -% но выключка колонки изменена на |p{\rotheadsize}| с выравниванием вправо -% (|\raggedright|): в результате левый край строк заголовка оказывается +% Макрокоманда использует те же установки шрифта и~интерлиньяжа как и~предыдущая, +% но выключка колонки изменена на |p{\rotheadsize}| с~выравниванием вправо +% (|\raggedright|): в~результате левый край строк заголовка оказывается % на одной базовой линии. % % \DescribeMacro{\rotheadsize} +%^^A% This parameter defines the width of rotated tabular heads. You may define +%^^A% that like: % Данный параметр определяет ширину колонки для развёрнутых вертикально заголовков. % Его можно определить как: % \begin{quote} @@ -203,8 +266,9 @@ % \begin{quote} % |\settowidth\rotheadsize{\theadfont |\meta{Widest head text}|}| % \end{quote} -% как сделано в следующем примере (табл.~\ref{tab:rotheads}): -% \begin{table}[b] +%^^A% like in following example: +% как сделано в~следующем примере (табл.~\ref{tab:rotheads}): +% \begin{table} % \ttabbox % {\caption{Пример заголовков колонок, развёрнутых вертикально}\label{tab:rotheads}}% % {\settowidth\rotheadsize{\theadfont Second multilined}%^^A @@ -229,60 +293,85 @@ %\end{tabular} %\end{verbatim} % +%^^A% \subsection{Settings For Tabular Cells}\label{sec:sets} % \subsection{Установки для табличных ячеек}\label{sec:sets} % -% В данном разделе приведены команды, которые задают оформление -% многострочных ячеек, заданных командой |\makecell|. -% Команда |\cellset| используется также командой |\thead|. +%^^A% This section describes macros, which make layout tuning for multilined +%^^A% cells, created by |\makecell| macro (and also |\multirowcell| and +%^^A% |\rotcell| macros). The |\cellset| macro also is used by |\thead| +%^^A% (|\rothead|, |\multirowtead|) macro. +% В~данном разделе приведены команды, которые задают оформление +% многострочных ячеек, заданных командой |\makecell| (а~также +% |\multirowcell| и~|\rotcell|). +% Команда |\cellset| используется также командой |\thead| (а~также +% |\rothead|, |\multirowtead|). % % \DescribeMacro{\cellset} +%^^A% Spacing settings for cells. Here you could use commands like: % Установки интерлиньяжа для табличных ячеек. Здесь можно использовать следующие % команды: % \begin{quote} % |\renewcommand\cellset{\renewcommand\arraytretch{1}%|\\ % | \setlength\extrarowheight{0pt}}| % \end{quote} -% как определено в данном пакете. -% Данные установки используются как командой |\makecell| так и командой |\thead| -% (|\rothead|). +%^^A% as was defined in current package. +% как определено в~данном пакете. % % \DescribeMacro{\cellalign} -% Выключка по умолчанию для табличных ячеек. Пакет предлагает вертикальную и -% горизонтальную выключку по центру, определённую следующим образом: +%^^A% Default align for cells. Package offers vertical and horizontal centering +%^^A% alignment, it defined like: +% Выключка по умолчанию для табличных ячеек. Пакет предлагает вертикальную +% и~горизонтальную выключку по центру, определённую следующим образом: % \begin{quote} % |\renewcommand\cellalign{cc}| % \end{quote} % % \DescribeMacro{\cellgape} +%^^A% Define vertical spaces around |\makecell|, using |\gape| command if +%^^A% necessary. It defined like: % Определяет вертикальные отбивки вокруг ячейки (|\makecell|), используя, % если нужно, команду |\gape|. Она определена как: % \begin{quote} % |\renewcommand\cellgape{}| % \end{quote} +%^^A% You may define this command like % Можно определить макрокоманду как % \begin{quote} % |\renewcommand\cellgape{\Gape[1pt]}| % \end{quote} +%^^A% or % или % \begin{quote} % |\renewcommand\cellgape{\gape[t]}| % \end{quote} -% (См. также разд.~\ref{sec:gape} о команде |\gape|.) +%^^A% (See also section~\ref{sec:gape} about |\gape| and |\gape| command.) +% (См.~также разд.~\ref{sec:gape} о~командах |\gape| и~|\Gape|.) % % \DescribeMacro{\cellrotangle} -% Угол поворота для развёрнутых ячеек и заголовков колонок. -% По умолчанию задан угол 90 (против часовой стрелки). +%^^A% The angle for rotated cells and column heads. The default value 90 +%^^A% (counterclockwise). This value definition is used by both |\rotcell| and +%^^A% |\rothead| macros. +% Угол поворота для развёрнутых ячеек и~заголовков колонок. +% По умолчанию задан угол 90 (против часовой стрелки). Это определение +% используется командами |\rotcell| и~|\rothead|. % +%^^A% \subsection{Settings For Column Heads} % \subsection{Установки для заголовков колонок}\label{sec:tsets} % -% В данном разделе приведены команды, которые позволяют настроить оформление заголовков -% табличных колонок, заданных командой |\thead| (|\rothead|). +%^^A% This section describes macros, which make layout tuning for tabular column +%^^A% heads, created by |\thead| (|\rothead|, |\multirowtead|) macro. +% В~данном разделе приведены команды, которые позволяют настроить оформление заголовков +% табличных колонок, заданных командой |\thead| (|\rothead|, |\multirowtead|). % % \DescribeMacro{\theadfont} +%^^A% Sets a special font for column heads. It could be smaller size % Задаёт шрифт для заголовков колонок. Может быть задан меньший кегель % \begin{quote} % |\renewcommand\theadfont{\foonotesize}| % \end{quote} +%^^A% as was defined in current package (here we suppose that +%^^A% \verb|\small| command used for tabular contents itself). +%^^A% Next example defines italic shape % как определено в данном пакете (здесь учитывается, что задана % команда \verb|\small| для шрифта самой таблицы). % Следующий пример задаёт курсивное начертание @@ -291,6 +380,7 @@ % \end{quote} % % \DescribeMacro{\theadset} +%^^A% Spacing settings for column heads. Here you could use commands like: % Установки интерлиньяжа для заголовков колонок. Здесь можно использовать следующие % команды: % \begin{quote} @@ -299,42 +389,62 @@ % \end{quote} % % \DescribeMacro{\theadalign} +%^^A% Default align for tabular column heads. Here also offered centering +%^^A% alignment: % Выключка по умолчанию для заголовков колонок. Здесь также задана выключка по центру: % \begin{quote} % |\renewcommand\theadalign{cc}| % \end{quote} % % \DescribeMacro{\theadgape} -% Определяет вертикальные отбивки вокруг заголовка колонки (|\makecell|), используя, +%^^A% Define vertical spaces around column head (|\thead|), +%^^A% using |\gape| command if necessary. +%^^A% It defined like: +% Определяет вертикальные отбивки вокруг заголовка колонки (|\thead|), используя, % если нужно, команду |\gape|. Определена как: % \begin{quote} % |\renewcommand\theadgape{\gape}| % \end{quote} % % \DescribeMacro{\rotheadgape} +%^^A% Analogous definition for rotated column heads. Default is absent: % То же самое для вертикальных заголовков. По умолчанию отсутствует: % \begin{quote} % |\renewcommand\rotheadgape{}| % \end{quote} % +% \clearpage +%^^A% \section{Changing of Height and Depth of Boxes}\label{sec:gape} % \section{Изменение высоты и глубины боксов}\label{sec:gape} % +%^^A% Sometimes \env{tabular} or \env{array} cells, or some elements in text need a +%^^A% height/depth correction. The |\raisebox| command could help for it, but +%^^A% usage of that macro in these cases, especially inside math, is rather +%^^A% complex. Current package offers the |\gape| macro, which usage is similar +%^^A% to |\smash| macro. The |\gape| macro allows to change height and/or depth +%^^A% of included box with necessary dimension. % Иногда заголовки табличных колонок, табличные ячейки или элементы текста требуют % коррекции высоты/глубины. Макрокоманда |\raisebox| может помочь, -% но использование её в подобных ситуациях, особенно в математике, довольно громоздко. +% но использование её в~подобных ситуациях, особенно в~математике, довольно громоздко. % Данный пакет предлагает макрокоманду |\gape|, которая используется аналогично % команде |\smash|. Макрокоманда |\gape| позволяет изменить высоту и/или глубину бокса % на необходимую величину. % % \DescribeMacro{\gape} +%^^A% This macro changes included box by |\jot| value (usually 3\,pt). It is +%^^A% defined with optional and mandatory arguments, like |\smash| macro, which +%^^A% (re)defined by \pkg{amsmath} package. Optional argument sets change of +%^^A% height only (\texttt{t}) or depth only~(\texttt{b}). Mandatory argument +%^^A% includes text. % Первая макрокоманда изменяет бокс на величину |\jot| (обычно 3\,pt). Она задаётся -% дополнительным и обязательным аргументами, как и команда |\smash|, +% дополнительным и~обязательным аргументами, как и~команда |\smash|, % (пере)определённая пакетом \pkg{amsmath}. Дополнительный аргумент задаёт % изменение только высоты (\texttt{t}) или только глубины % (\texttt{b}). Обязательный включает собственно текст. % \begin{quote} % |\gape|\oarg{\texttt{t} or \texttt{b}}\marg{text} % \end{quote} +%^^A% Examples of usage: % Примеры использования: % \begin{quote} % \noindent @@ -356,18 +466,25 @@ % \end{quote} % % \DescribeMacro{\Gape} +%^^A% Another way of height/depth modification. This macro allows different +%^^A% correction for height and depth of box: % Другой вариант изменения высоты/глубины. Данная макрокоманда позволяет сделать -% корректировку отдельно для высоты и глубины бокса: +% корректировку отдельно для высоты и~глубины бокса: % \begin{quote} % |\Gape|\oarg{height corr}\oarg{depth corr}\marg{text} % \end{quote} % +%^^A% If both arguments absent, |\Gape| command works like |\gape|\marg{text}, in +%^^A% other words, command uses |\jot| as correction value for height and depth +%^^A% of box. % Если отсутствуют оба необязательных аргумента, команда |\Gape| работает аналогично -% |\gape|\marg{text}, другими словами, использует для корректировки высоты и глубины -% величину |\jot|. +% |\gape|\marg{text}, другими словами, использует для корректировки высоты и~глубины +% величину~|\jot|. % +%^^A% If only one optional argument exists, |\Gape| command uses value +%^^A% from this argument for both height and depth box corrections. % Если присутствует только один необязательный аргумент, команда |\Gape| использует -% его значение для корректировки высоты и глубины бокса. +% его значение для корректировки высоты и~глубины бокса. % \begin{quote} % \noindent % \vbox{\halign{#\cr @@ -392,47 +509,77 @@ % \crcr}} % \end{quote} % +%^^A% You may also use |\height| and |\depth| parameters in optional arguments +%^^A% of |\Gape| macro, parameters was borrowed from |\raisebox| command. +% В~опциях команды |\Gape| вы можете использовать параметры |\height| и~|\depth|, +% которые позаимствованы из команды |\raisebox|. +% % \DescribeMacro{\bottopstrut} % \DescribeMacro{\topstrut} % \DescribeMacro{\botstrut} +%^^A% These three macros modify standard |\strut| by |\jot| value: +%^^A% |\bottopstrut| changes both height and depth; +%^^A% \nopagebreak|\topstrut| changes only height; +%^^A% |\botstrut| changes only depth. +%^^A% These commands could be useful, for example, in first and last table rows. % Эти три команды изменяют стандартную команду |\strut| на величину |\jot|: -% |\bottopstrut| изменяет и высоту и глубину; +% |\bottopstrut| изменяет и~высоту и~глубину; % |\topstrut| изменяет только высоту; % |\botstrut| изменяет только глубину. -% Эти команды можно использовать, например, в первом и последнем рядах таблицы. +% Эти команды можно использовать, например, в~первом и~последнем рядах таблицы. % +%^^A% \emph{Note}. If you use +%^^A% \pkg{bigstrut} package note that these macros duplicate \cmd{\bigstrut}, +%^^A% \cmd{\bigstrut[t]}, and \cmd{\bigstrut[b]} commands consequently. Please +%^^A% note that value, which increases strut in \cmd{\topstrut} etc. equals to +%^^A% \cmd{\jot}, but \cmd{\bigstrut} and others use a special dimension +%^^A% \cmd{\bigstrutjot}. % \emph{Замечание}. Если % вы используете пакет \pkg{bigstrut}, обратите внимание, что эти три команды -% дублируют \cmd{\bigstrut}, \cmd{\bigstrut[t]}, и \cmd{\bigstrut[b]} соответственно. -% Обратите также внимание что величина, изменяющая \cmd{\strut} в команде -% \cmd{\topstrut} и других равна \cmd{\jot}, а команда -% \cmd{\bigstrut} и использует специальную величину \cmd{\bigstrutjot}. +% дублируют \cmd{\bigstrut}, \cmd{\bigstrut[t]}, и~\cmd{\bigstrut[b]} соответственно. +% Обратите также внимание что величина, изменяющая \cmd{\strut} в~команде +% \cmd{\topstrut} и~других равна \cmd{\jot}, а~команда +% \cmd{\bigstrut} и~использует специальную величину \cmd{\bigstrutjot}. % +% \clearpage +%^^A% \section{How to Change Vertical Spaces Around +%^^A% in Whole Table}\label{sec:beta} % \section{Как изменить вертикальные отбивки во всей таблице}\label{sec:beta} % +%^^A% This section describes macros which try to emulate one of possibilities of +%^^A% \pkg{tabls} package: to get necessary vertical spacing around cells. % Данный раздел описывает макрокоманды, которые пытаются эмулировать % одну из возможностей пакета \pkg{tabls}: % создание необходимых отбивок вокруг ячеек таблицы. % % \DescribeMacro{\setcellgapes} -% Определяет параметры для вертикальных отбивок. Команда похожа на команду |\gape*| -% без аргумента \marg{text}: +%^^A% Sets the parameters for vertical spaces: +% Определяет параметры для вертикальных отбивок: % \begin{quote} % |\setcellgapes|\oarg{\texttt{t} or \texttt{b}}\marg{value} % \end{quote} +%^^A% The next examples with array and tabular use following settings: % Примеры таблиц, приведённые ниже используют следующие установки: % \begin{quote} % |\setcellgapes{5pt}| % \end{quote} +%^^A% You may also try to load negative values if you wish. This macro you may +%^^A% put in the preamble as common settings. % Вы можете также ввести отрицательные значения. Данную макрокоманду можно поместить -% в преамбуле документа как общие установки. +% в~преамбуле документа как общие установки. % % \DescribeMacro{\makegapedcells} % \DescribeMacro{\nomakegapedcells} +%^^A% The first macro switches on vertical spacing settings. The second cancels +%^^A% first~one. % Первая макрокоманда включает создание вертикальных отбивок. Вторая отменяет первую. % +%^^A% The \cmd{\makegapedcells} macro temporarily redefines macro +%^^A% |\@classz| of \pkg{array} package, so use this mechanism carefully. +%^^A% Load |\makegapedcells| inside group or inside environment +%^^A% (see table~\ref{tab:gaped}): % Макрокоманда \cmd{\makegapedcells} временно переопределяет макрокоманду -% |\@classz| из пакета \pkg{array}, поэтому используйте её осто\-рожно. +% |\@classz| из пакета \pkg{array}, поэтому используйте её осторожно. % Вводите команду |\makegapedcells| внутри группы или внутри окружения % (см.~табл.~\ref{tab:gaped}): %\begin{verbatim} @@ -445,7 +592,7 @@ % \begin{table} % \makegapedcells % \ttabbox -% {\caption{Пример многострочных ячеек с дополнительными вертикальными отбивками}%^^A +% {\caption{Пример многострочных ячеек с~дополнительными вертикальными отбивками}%^^A % \label{tab:gaped}}% % {\begin{tabular}{|c|c|} % \hline @@ -467,45 +614,71 @@ % \end{tabular}} % \end{table} % -% Обратите внимание, что отбивка заданная в |\setcellgapes| и отбивки, которые -% создаёт макрокоманда |\gape| (|\Gape|) в командах ячеек (обычно в |\thead| -% или в |\makecell*|) суммируются. +%^^A% Please note that space defined in |\setcellgapes| and space which creates +%^^A% |\gape| mechanism in commands +%^^A% for tabular cells (usually |\thead| or |\makecell*|) are summarized. +% Обратите внимание, что отбивка заданная в~|\setcellgapes| и~отбивки, которые +% создаёт макрокоманда |\gape| (|\Gape|) в~командах ячеек (обычно в~|\thead| +% или в~|\makecell*|) суммируются. % -% \section{Заголовки колонок и ячейки, занимающие несколько рядов} +% \clearpage +%^^A% \section{Multirow Table Heads and Cells} +% \section{Заголовки колонок и~ячейки, занимающие несколько рядов} % +%^^A% The next examples show usage of macros which use |\multirow| command from +%^^A% \pkg{multirow} package.\nopagebreak % Следующие примеры показывают использование макрокоманд, использующих команду % |\multirow| из пакета \pkg{multirow}.\nopagebreak % -% В начале краткое повторение значений аргументов макрокоманды |\multirow|: +%^^A% At first goes short repetition of arguments of |\multirow| macro itself: +% В~начале краткое повторение значений аргументов команды |\multirow|: % \begin{quote} % |\multirow|\marg{nrow}\oarg{njot}\marg{width}\oarg{vmove}\marg{contents} % \end{quote} +%^^A% \marg{nrow} sets number of rows (i.e. text lines); % \marg{nrow} задаёт число рядов (то есть строк текста); +%^^A% \oarg{njot} is mainly used if you've used \pkg{bigstrut} package: it makes +%^^A% additional tuning of vertical position (see comments in +%^^A% \pkg{multirow} package); % \oarg{njot} обычно используется если вы используете пакет \pkg{bigstrut}: делает -% дополнительную настройку вертикального положения (см. пояснения в пакете +% дополнительную настройку вертикального положения (см. пояснения в~пакете % \pkg{mutirow}); -% \marg{width} определяет ширину включённого текста, знак |*| используется +%^^A% \marg{width} defines width of contents, the |*| sign used to indicate that +%^^A% the text argument's natural width is to be used; +% \marg{width} определяет ширину включённого текста, знак~|*| используется % для указания, что используется натуральная ширина включённого текста; +%^^A% \oarg{vmove} is a length used for fine tuning: the text will be raised (or +%^^A% lowered, if \meta{vmove} is negative) by that length; % \oarg{vmove} величина, используемая для тонкой настройки: текст может быть % поднят (или опущен, если \meta{vmove} отрицательна) на эту величину; +%^^A% \marg{contents} includes ``|\multirow|'ed'' text.\smallskip % \marg{contents} <<многорядный>> текст.\smallskip\pagebreak[3] % % \DescribeMacro{\multirowcell} % \DescribeMacro{\multirowthead} +%^^A% These two macros use following arguments (example uses |\multirowcell| +%^^A% command): % Эти две команды используют следующие аргументы (пример использует команду % |\multirowcell|): % \begin{quote} % |\multirowcell|\marg{nrow}\oarg{vmove}\oarg{v or/and h alignment}\marg{contents} % \end{quote} -% в этих макрокомандах опущены аргументы \oarg{njot} и \marg{width}. +%^^A% in these macros were skipped \oarg{njot} and \marg{width}. Instead of +%^^A% tuning optional argument \oarg{njot} for vertical +%^^A% correction used \oarg{vmove} optional argument. +%^^A% For the \marg{width} argument both |\multirowcell| and |\multirowthead| +%^^A% macros use natural width of contents (i.e. the |*| argument used). +% в~этих макрокомандах опущены аргументы \oarg{njot} и~\marg{width}. % Вместо дополнительного аргумента \oarg{njot} для вертикальной настройки % используется дополнительный аргумент \oarg{vmove}. -% В качестве аргумента \marg{width} макрокоманды |\multirowcell| и |\multirowthead| +% В~качестве аргумента \marg{width} макрокоманды |\multirowcell| и~|\multirowthead| % используют натуральную величину включённого текста (то есть используется % аргумент |*|). % -% Первый пример (табл.~\ref{tab:mrowI}) с <<многорядными>> заголовками -% табличных колонок и ячейками: +%^^A% First example (table~\ref{tab:mrowI}) with ``|\multirow|'ed'' column heads +%^^A% and cells: +% Первый пример (табл.~\ref{tab:mrowI}) с~<<многорядными>> заголовками +% табличных колонок и~ячейками: %\begin{verbatim} %\renewcommand\theadset{\def\arraystretch{.85}}% %\begin{tabular}{|l|c|c|} @@ -562,8 +735,11 @@ % \end{tabular}} % \end{table} % -% Второй пример (табл.~\ref{tab:mrowII}) с <<многорядными>> заголовками колонок -% и ячейками использует команду |\makegapedcells|. Команда |\theadgape| ничего +%^^A% Second example (table~\ref{tab:mrowII}) with ``multirow'ed'' column heads +%^^A% and cells uses |\makegapedcells| command. The |\theadgape| command does +%^^A% nothing: +% Второй пример (табл.~\ref{tab:mrowII}) с~<<многорядными>> заголовками колонок +% и~ячейками использует команду |\makegapedcells|. Команда |\theadgape| ничего % не делает: %\begin{verbatim} %\makegapedcells @@ -575,7 +751,7 @@ %\renewcommand\theadset{\def\arraystretch{.85}}% %\renewcommand\theadgape{} % \ttabbox -% {\caption{Пример <<многорядных>> ячеек с дополнительными вертикальными +% {\caption{Пример <<многорядных>> ячеек с~дополнительными вертикальными % отбивками}\label{tab:mrowII}}% % {\begin{tabular}{|l|c|c|} % \hline @@ -605,8 +781,10 @@ % \end{table} % \bigskip % +%^^A% The last example (table~\ref{tab:mrowIII}) uses \env{tabularx} environment +%^^A% with |\hsize| in the width argument. % Последний пример (табл.~\ref{tab:mrowIII}) использует окружение \env{tabularx} -% со значением |\hsize| в аргументе ширины таблицы. +% со значением |\hsize| в~аргументе ширины таблицы. %\begin{verbatim} %\makegapedcells %\renewcommand\theadset{\def\arraystretch{.85}}% @@ -620,7 +798,8 @@ %\hline %\end{tabularx} %\end{verbatim} -% Как можно видеть, ячейки |\makecells| в последних двух рядах определены как +%^^A% As you may see the |\makecell|'s in last two rows defined as +% Как можно видеть, ячейки |\makecell| в~последних двух рядах определены как % \begin{quote} % |\makecell[{{p{\hsize}}}]{...}| % \end{quote} @@ -628,6 +807,7 @@ % \begin{quote} % |\makecell[{{>{\parindent1em}p{\hsize}}}]{...}| % \end{quote} +%^^A% consequently. % соответственно. % \begin{table}\makegapedcells %\renewcommand\theadset{\def\arraystretch{.85}}% @@ -663,30 +843,43 @@ % \end{tabularx}} % \end{table} % +%^^A% \subsection{Multirow Table Heads and Cells: Second Variant} % \subsection{Ячейки на несколько рядов: второй вариант} % +%^^A% Another, simplified, variant of multirow cell: use +%^^A% |\makecell| and |\thead| commands, and set |\\| with +%^^A% negative space at the end, for example % Второй, упрощённый, вариант задания ячейки на несколько рядов: \cdash--- -% использовать команды |\makecell| и |\thead|, а в конце аргумента задать |\\| -% с отрицательной отбивкой, например +% использовать команды |\makecell| и~|\thead|, а~в~конце аргумента задать |\\| +% с~отрицательной отбивкой, например %\begin{quote} % |\thead{First Column head\\[-5ex]}| %\end{quote} -% при этом у ячеек в одном <<многоярусном>> ряду, сколько бы строк они ни имели бы, +%^^A% cells, which stay in one ``multi row'' will have the same value of this +%^^A% negative space, in spite of different number of lines in their contents. +% при этом у~ячеек в~одном <<многоярусном>> ряду, сколько бы строк они ни имели бы, % отрицательная отбивка будет всегда одинаковая. % -% \section{Нумерованные ряды ячеек в таблицах} +% \clearpage\suppressfloats[t] +%^^A% \section{Numbered Lines in Tabulars} +% \section{Нумерованные ряды ячеек в~таблицах} % +%^^A% The three commands |\eline|, |\nline|, |\rnline| allow to skip: % Команды |\eline|, |\nline|, |\rnline| позволяют пропустить несколько ячеек: % \begin{quote} % |\eline|\marg{number of cells} % \end{quote} -% и пронумеровать (|\nline|) несколько или все ячейки в ряду: +% и~пронумеровать (|\nline|) несколько или все ячейки в~ряду: % \begin{quote} % |\nline|\oarg{numbering type}\oarg{start number}\marg{number of cells} % \end{quote} +%^^A% Command |\rnline| does the same as |\nline|, but allows numbering by +%^^A% Russian letters (it redefines +%^^A% \LaTeX's |\Alph| and |\alph| with |\Asbuk| and |\asbuk| consequently). +%^^A% (see table~\ref{tab:elines}) % Команда |\rnline| работает так же как |\nline|, но вместо нумерации % латинскими буквами задаётся нумерация русскими (переопределяются счётчики -% \LaTeX'а |\Alph| а |\alph| на |\Asbuk| и |\asbuk| соответственно). +% \LaTeX'а |\Alph| а~|\alph| на |\Asbuk| и~|\asbuk| соответственно). % (см.~табл.~\ref{tab:elines}) %\begin{verbatim} % \begin{tabular}{|*{12}{c|}} @@ -699,7 +892,7 @@ % \end{tabular} %\end{verbatim} % -% \begin{table} +% \begin{table}[htb] % \ttabbox % {\caption{Примеры заполнения ячеек}\label{tab:elines}}% % {\begin{tabular}{|*{12}{c|}} @@ -712,5 +905,226 @@ % \end{tabular}} %\end{table} % +% \clearpage +%^^A% \section{Diagonally Divided Cell} +% \section{Ячейки, разделённые по диагонали} +% +%^^A% This variant of head's positioning is not too popular nowadays, but in +%^^A% the some cases it could be used. Instead of creating of +%^^A% multicolumn head above a wide couple of all column heads except the +%^^A% very left column, the most left column head (upper left cell) +%^^A% divided by diagonal line. The lower head is usually head of very left +%^^A% column and upper head---``multicolumn'' to all other column heads of +%^^A% table to the right. +% Сейчас такой вариант расположения заголовков колонок не так популярен, +% но всё же иногда используется. Вместо создания большого +% заголовка-перереза над большим числом колонок, самый левый заголовок +% (верхняя левая ячейка таблицы) разделяется диагональю, где в~нижнем +% треугольнике обычно помещают заголовок боковика, а~в~верхнем \cdash--- +% заголовок относящийся к~колонкам прографки (заголовкам всех колонок справа). +% +%^^A% This package offers macro based on possibilities of \env{picture} +%^^A% environment. +% Данный пакет предлагает макрокоманду, в~основе которой используется +% окружение \env{picture}. +% \begin{quote} +% |\diaghead|\texttt{(}\meta{\texttt{\textup{H}} ratio,%^^A +% \textup{\texttt{V}} ratio}\texttt{)}%^^A +% \marg{Text set for column width}|%|\\ +% \phantom{/diaghead }\marg{First head}\marg{Second head} +% \end{quote} +%^^A% where \texttt{(}\meta{\textup{\texttt{H ratio}},%^^A +%^^A% \textup{\texttt{V ratio}}}\texttt{)} sets the ratios like in |\line| +%^^A% command (digits from~|1| up to~|6|). This argument is optional, +%^^A% the default ratio (|\line| +%^^A% direction) defined as~|(5,-2)|. +% где \texttt{(}\meta{\textup{\texttt{H ratio}},%^^A} +% \textup{\texttt{V ratio}}}\texttt{)} определяет отношение диагонали, как +% в~первом аргументе команды |\line| +% (целые числа от~|1| до~|6|). Аргумент не является обязательным, отношение, +% заданное по умолчанию (направление диагонали |\line|) равно~|(5,-2)|. +% +%^^A% The \marg{Text set for column width} +%^^A% defined by hand, for example: +%^^A% \quad 1)\nobreak\enskip sets the width, using longest text lines from +%^^A% both heads---in this case you must put |\theadfont| macro, if you use +%^^A% |\thead|s; \quad 2)\nobreak\enskip the longest text from the rest of +%^^A% column; \quad 3)\nobreak\enskip |\hskip|\meta{value}, even |\hskip\hsize| +%^^A% the case of |p| column (or |X| column in \env{tabularx} environment). +%^^A% The \marg{First head} +%^^A% is head in lower corner (usually for first or very left column), +%^^A% \marg{Second head}---in the upper corner (head for the all right columns). +% Аргумент \marg{Text set for column width} +% задаётся обычно подбором, например: +% \quad 1)\nobreak\enskip задаёт ширину, используя самые длинные строки +% в~обоих заголовках \cdash--- в~этом случае, если вы +% используете в~таблицах команды |\thead|, нужно задать |\theadfont|; +% \quad 2)\nobreak\enskip самую длинную строку боковика, +% если она больше заголовков; +% \quad 3)\nobreak\enskip горизонтальную отбивку |\hskip|\meta{value}, +% можно использовать даже такое: |\hskip\hsize| если это +% колонка |p| (или |X| из окружения \env{tabularx}). +% Аргумент \marg{First head} \cdash--- +% заголовок в~нижнем углу (обычно для боковика), +% \marg{Second head} \cdash--- в~верхнем углу (заголовок для прографки +% \cdash--- остальных колонок). +% +%^^A% Here is code of table~\ref{tab:diaghead}. +% Здесь приведён код табл.~\ref{tab:diaghead}. +%\begin{verbatim} +% \begin{tabular}{|c|c|c|}% +% \hline +% \diaghead{\theadfont Diag ColumnmnHead II}%^^A +% {Diag \\Column Head I}{Diag Column\\ Head II}& +% \thead{Second\\column}&\thead{Third\\column}\\ +% ... +% \end{tabular}\medskip +% +% \begin{tabularx}{.62\hsize}{|X|c|c|}% +% \hline +% \diaghead(4,1){\hskip\hsize}% +% %^^A{\theadfont Diag ColuDiag Column}%^^A +% {Diag \\Column Head I}{Diag Column \\Head II}& +% \thead{Second\\column}&\thead{Third\\column}\\ +% ... +% \end{tabularx}\medskip +% +% \nomakegapedcells +% \begin{tabular}{|l|c|c|}% +% \hline +% \diaghead(-4,1){\hskip4.2cm}%^^A +% {Diag \\Column Head I}{Diag Column \\Head II}& +% \thead{Second\\column}&\thead{Third\\column}\\ +% ... +% \end{tabular}% +%\end{verbatim}% +% +% \begin{table}[!bp]\makegapedcells +% \begin{tabular}{|c|c|c|}% +% \hline +% \diaghead{\theadfont Diag ColumnmnHead II}%^^A +% {Diag \\Column Head I}{Diag Column\\ Head II}& +% \thead{Second\\column}&\thead{Third\\column}\\ +% \hline +% \makecell[l]{Left aligned \\ cell text} & A & 37--43\\ +% \hline +% \makecell*[r]{Right aligned \\ cell text} & B & 37--43\\ +% \hline +% \makecell[b]{Bottom aligned\\ cell text} & C & 52--58\\ +% \hline +% \end{tabular}% +% \medskip +% +% \begin{tabularx}{.62\hsize}{|X|c|c|}% +% \hline +% \diaghead(4,1){\hskip\hsize}% +% %^^A{\theadfont Diag ColuDiag Column}%^^A +% {Diag \\Column Head I}{Diag Column \\Head II}& +% \thead{Second\\column}&\thead{Third\\column}\\ +% \hline +% \makecell[l]{Left aligned \\ cell text} & A & 37--43\\ +% \hline +% \makecell*[r]{Right aligned \\ cell text} & B & 37--43\\ +% \hline +% \makecell[b]{Bottom aligned\\ cell text} & C & 52--58\\ +% \hline +% \end{tabularx}% +% \medskip +% +% \nomakegapedcells +% \begin{tabular}{|l|c|c|}% +% \hline +% \diaghead(-4,1){\hskip4.2cm}%^^A +% {Diag \\Column Head I}{Diag Column \\Head II}& +% \thead{Second\\column}&\thead{Third\\column}\\ +% \hline +% \makecell[l]{Left aligned \\ cell text} & A & 37--43\\ +% \hline +% \makecell*[r]{Right aligned \\ cell text} & B & 37--43\\ +% \hline +% \makecell[b]{Bottom aligned\\ cell text} & C & 52--58\\ +% \hline +% \end{tabular}% +% \caption{Пример таблиц с~ячейками поделёнными по +% диагонали}\label{tab:diaghead} +% \end{table}% +%^^A% The correct position of diagonal ends depends of width of column. If cell width +%^^A% is narrower then necessary +%^^A% column ends of diagonal don't touch corners of cell. +% Точное попадание концов диагонали в~углы ячейки зависит от её ширины. Если ячейка +% \'уже необходимого то концы диагонали не «дотягиваются» до углов. +% +% \clearpage +%^^A% \section{Thick \cmd{\hline} and \cmd{\cline}} +% \section{Команды \cmd{\hline} и~\cmd{\cline} заданной толщины} +% +%^^A% For horizontal rules in tabular there were added two commands +%^^A% \cmd{\Xhline} and \cmd{\Xcline} +%^^A% They use additional mandatory argument with defined rule width. +% Для горизонтальных линеек в~табличном материале добавлены две команды +% \cmd{\Xhline} и~\cmd{\Xcline} +% Они имеют обязательный аргумент с~заданием ширины линейки. +% +%^^A% The example, with result in table~\ref{tab:XmrowIII}. +% Пример применения команд см.~в~табл.~\ref{tab:XmrowIII}. +%\begin{verbatim}% +%\begin{table} +%\renewcommand\theadset{\def\arraystretch{.85}}% +%\renewcommand\theadgape{} +%\ttabbox +%{\caption{...}\label{...}}% +%{\begin{tabular}{!{\vrule width1.2pt}c +% !{\vrule width1.2pt}c|c +% !{\vrule width1.2pt}} +%\Xhline{1.2pt} +%\multirowthead{4}{First Column head}& +%\multicolumn{2}{c!{\vrule width1.2pt}}{\thead{Multicolumn head}}\\ +%\Xcline{2-3}{1.2pt} +% & \thead{Second \\multlined \\ column head} & +% \thead{Third \\ column head}\\ +%\Xhline{1.2pt} +%Cell text & A &\multirowcell{4}{28--31}\\ +%... +%\Xhline{1.2pt} +%\end{tabular}} +%\end{table} +%\end{verbatim}% +% +% \begin{table}\makegapedcells\relax +%\renewcommand\theadset{\def\arraystretch{.85}}% +%\renewcommand\theadgape{} +% \ttabbox +% {\caption{Пример окружения \env{tabular} с~использованием толстых +% линеек}\label{tab:XmrowIII}}% +% {\begin{tabular}{!{\vrule width1.2pt}c +% !{\vrule width1.2pt}c|c!{\vrule width1.2pt}} +% \Xhline{1.2pt} +% \multirowthead{4}{First Column head}& +% \multicolumn{2}{c!{\vrule width1.2pt}}{\thead{Multicolumn head}}\\ +% \Xcline{2-3}{1.2pt} +% & \thead{Second \\multlined \\ column head} & +% \thead{Third \\ column head}\\ +% \Xhline{1.2pt} +% Cell text & A &\multirowcell{4}{28--31}\\ +% \cline{1-2} +% \makecell{Multilined \\Cell text} & B& \\ +% \hline +% \makecell[l]{Left aligned \\ cell text} & C +% & \multirowcell{4}[0ex][l]{37--43}\\ +% \cline{1-2} +% \makecell[r]{Right aligned \\ cell text} & D & \\ +% \hline +% \makecell[b]{Bottom aligned \\ cell text} & E & +% \multirowcell{6}[0ex][r]{37--43\\52--58}\\ +% \cline{1-2} +% \makecell[{{p{5cm}}}]{Cell long long long long long long text with +% predefined width} & F & \\ +% \cline{1-2} +% \makecell[{{>{\parindent1em}p{5cm}}}]{Cell long long long long long +% long text with predefined width} & G & \\ +% \Xhline{1.2pt} +% \end{tabular}} +% \end{table} +% % \Finale \endinput diff --git a/Master/texmf-dist/doc/latex/makecell/makecell.pdf b/Master/texmf-dist/doc/latex/makecell/makecell.pdf index bebe20e3917..9eebee507fd 100644 Binary files a/Master/texmf-dist/doc/latex/makecell/makecell.pdf and b/Master/texmf-dist/doc/latex/makecell/makecell.pdf differ diff --git a/Master/texmf-dist/doc/latex/makecell/makecell.xml b/Master/texmf-dist/doc/latex/makecell/makecell.xml index 7178b529f23..6b90ffba159 100644 --- a/Master/texmf-dist/doc/latex/makecell/makecell.xml +++ b/Master/texmf-dist/doc/latex/makecell/makecell.xml @@ -1,21 +1,26 @@ - + makecell - Tabular column heads and multilined cells. + Managing of tabular column heads and cells. - + This package offers a command, based on one-column tabular environment, which allows to support a common layout for tabular column heads in whole document. Another offered command is for creation of multilined tabular cells. There are also: 1) a macro, which changes vertical spaces - around all cells in tabular (like in tabls package) but based + around all cells in tabular (like in tabls + package) but based on macros of array package; 2) macros for multirow cells/heads, which use macro from - multirow package. + multirow package; + 3) macros numbered rows of cells or skipping cells + in tabulars; + 4) diagonally divided cells; + 5) horizonral lines in tabulars with defined thickness. diff --git a/Master/texmf-dist/doc/latex/makecell/tablists-rus.tex b/Master/texmf-dist/doc/latex/makecell/tablists-rus.tex new file mode 100644 index 00000000000..071d7e98b65 --- /dev/null +++ b/Master/texmf-dist/doc/latex/makecell/tablists-rus.tex @@ -0,0 +1,576 @@ +% \iffalse +% +% tablists-rus.dtx - tabulated list of short items. +% Russian documentation. +% (c) 2007 Olga Lapko (Lapko.O@g23.relcom.ru) +% +% This program is provided under the terms of the +% LaTeX Project Public License distributed from CTAN +% archives in directory macros/latex/base/lppl.txt. +% +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{tablists-rus.tex} +\documentclass{ltxdoc} + +\usepackage{mathtext} +\usepackage[T2A]{fontenc} +\usepackage[cp1251]{inputenc} +\usepackage[english,russian]{babel} + +\usepackage{paralist} +\usepackage{makecell} +\usepackage{tablists} +\IfFileExists{hyperref.sty}{\usepackage{hyperref}}{} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\makeatletter +\@beginparpenalty10000 +\widowpenalty10000 +\clubpenalty10000 +\makeatother +\providecommand*{\file}[1]{\texttt{#1}} +\providecommand*{\pkg}[1]{\textsf{#1}} +\providecommand*{\cls}[1]{\textsf{#1}} +\providecommand*{\env}[1]{\texttt{#1}} + +%\OnlyDescription +\begin{document} + \DocInput{tablists-rus.tex} + \PrintChanges +\end{document} +% +% \fi +% +% \CheckSum{0} +% +% \GetFileInfo{tablists-rus.tex} +% +% \DoNotIndex{\newcommand,\newenvironment} +% +% +% \title{Пакет \textsf{tablists}} +% \author{% +% Ольга Лапко\\ +% {\tt Lapko.O@g23.relcom.ru} } +% \date{2007/05/24} +% \maketitle +% \begin{abstract} +%^^A% This package gives variant of environment for creating of list of short +%^^A% items in the way of tabular alignment. That could be useful for list of +%^^A% exercises in math educational literature. It allows to build one-level +%^^A% and two-level tabulated lists. +% Данный пакет даёт вариант окружения для создания перечня коротких пунктов +% выровненных по колонкам. Это может быть полезно для разделов упражнений +% в~математических учебниках. Можно создать одноуровневые и~двухуровневые +% перечни. +% \end{abstract} +% +% \tableofcontents +% +%\newpage +%^^A% \section{Building Commands} +% \section{Основные команды} +% +% \DescribeMacro{tabenum} +% \DescribeMacro{\tabenumitem} +% \DescribeMacro{\item} +%^^A% The \env{tabenum} list creates list of short items aligned in columns. +% Окружение \env{tabenum} размещает короткие пункты в~виде таблицы. +% +%^^A% Each item starts with |\tabenumitem| command; you may use the |\item| +%^^A% macro instead of |\tabenumitem| in this environment. +%^^A% First example of \env{tabenum} list---please note that you may set optional +%^^A% argument in the same way as in \pkg{paralist} +%^^A% environments: +% Каждый пункт начинается с~команды |\tabenumitem|; можно также использовать |\item| +% вместо |\tabenumitem|. +% Первый вариант окружения \env{tabenum}---обратите внимание что можно задать +% опцию так же как и~в~окружениях пакетов \pkg{enumerate} или \pkg{paralist}: +%\par\begin{small}% +%\begin{verbatim} +%\begin{tabenum}[\bfseries1)]% +%\tabenumitem +%$z=\displaystyle\frac xy$; +%\tabenumitem +%$2^x=9;$\cr +% +%\tabenumitem +%$3^{2x+3}=16 $; +%\tabenumitem +%$z=2x^2+4y^2$;\par +%\item +%$u=\sqrt{x^2+y^2+z^2}$; +%\item +%$v=gt+\displaystyle\frac{g}{4}t$;\\[1ex] +%\item +%$u=2^{5x-3y+z}$; +%\item +%$w=(v+7)^2+(u-3)^2$; +% +% +%\item +%$5^x=\displaystyle\frac{4}{3} ;$ +%\item +%$z=(x+1)^2+y^2$;\\* +%\item +%$2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$ +%\item +%$t=5u^2+8v^2$; +%\end{tabenum} +%\end{verbatim} +%\end{small}% +% \begin{tabenum}[\bfseries1)]% +% \tabenumitem +% $z=\displaystyle\frac xy$; +% \tabenumitem +% $2^x=9;$\cr +% +% \tabenumitem +% $3^{2x+3}=16 $; +% \tabenumitem +% $z=2x^2+4y^2$;\par +% \item +% $u=\sqrt{x^2+y^2+z^2}$; +% \item +% $v=gt+\displaystyle\frac{g}{4}t$;\\[1ex] +% \item +% $u=2^{5x-3y+z}$; +% \item +% $w=(v+7)^2+(u-3)^2$; +% +% +% \item +% $5^x=\displaystyle\frac{4}{3} ;$ +% \item +% $z=(x+1)^2+y^2$;\\* +% \item +% $2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$ +% \item +% $t=5u^2+8v^2$; +% \end{tabenum} +% +%^^A% You may see that empty line (or |\par| command), |\\| command and |\cr| +%^^A% do the same: start a new row. The |\\| command works like in array environment +%^^A% and allows optional argument with vertical correction. +%^^A% (Also the |\\*| command suppresses breaking between pages, see next example.) +% Из примера видно что пустая строка (или команда |\par|), команды +% |\\| и~|\cr| +% все начинают новый ряд. Команда |\\| позволяет в~опции задать вертикальную +% корректирующую отбивку. +% (Кроме этого действует и~команда |\\*|, запрещающая переход на новую страницу.) +% +%^^A% Please note that two or more |\par|'s +%^^A% |\cr|'s or |\\|'s (and also any combination of these three commands) +%^^A% create additional empty lines. +% Обратите в~примере внимание, что две и~более команд |\par| +% |\cr| или |\\| (а~также их любая комбинация) создают дополнительные пустые строки. +% +% +% \DescribeMacro{\notabenumitem} +% \DescribeMacro{\noitem} +% \DescribeMacro{\skipitem} +%^^A% On the next step you can wish to do the list like before more compact. The +%^^A% |\multicolumn| does not work here correctly\footnote{ +%^^A% Also the plain \TeX's commands like \cs{omit} and \cs{span}/\cs{multispan} commands, +%^^A% I think, need too complex code.}. At first you may use plain \TeX's +%^^A% command |\hidewidth| to hide width of widest column entry; then you may use +%^^A% other variant of |\tabenumitem|(|\item|) command---|\notabenumitem|(|\noitem|)---%^^A +%^^A% this command increases list entry, but does not create a new column; +%^^A% third command |\skipitem| allows you to skip +%^^A% one \env{tabenum} column\footnote{The \env{tabenum} column includes two columns: +%^^A% it works like \texttt{rl} columns in \env{tabular} environment. Thus, \cs{skipitem} +%^^A% equals to \texttt{\&\&} combination.}. +%^^A% Next example show usage of these three commands: +% Глядя на этот пример, вы захотите сделать такой список более компактным. Команда +% |\multicolumn| не будет работать здесь корректно\footnote{ +% Я~думаю, что и~команды plain \TeX'а \cs{omit} и~\cs{span}/\cs{multispan}, +% тоже потребуют сложной записи.}. Во"=первых можно воспользоваться командой +% plain \TeX'а +% |\hidewidth| чтобы «скрыть» ширину самого широкого пункта; во"=вторых можно +% использовать вариант команды |\tabenumitem|~(|\item|) +% \cdash--- |\notabenumitem|~(|\noitem|) \cdash--- +% в~этом случае создаётся нумерация пункта, но не создаётся новая колонка; +% третья команда, |\skipitem|, позволяет пропустить +% одну колонку пунктов \env{tabenum}\footnote{Колонка пунктов \env{tabenum} +% состоит из двух колонок: +% это ничто иное как две колонки \texttt{rl} окружения \env{tabular}. +% Отсюда, вместо \cs{skipitem} +% можно записать комбинацию двух знаков табуляции:~\texttt{\&\&}.}. +% Следующий пример демонстрирует использование этих трёх команд: +%\par\begin{small}% +%\begin{verbatim} +%\begin{tabenum}[\bfseries1)]% +%\tabenumitem +%$z=\displaystyle\frac xy$; +%\notabenumitem +%$2^x=9;$ +%\tabenumitem +%$3^{2x+3}=16 $. +%\tabenumitem +%$z=2x^2+4y^2$;\nopagebreak +% +%\item +%$u=\sqrt{x^2+y^2+z^2}$; +%\item +%$v=gt+\displaystyle\frac{g}{4}t$, +%\item +%$u=2^{5x-3y+z}$.\cr +%\item +%$w=(v+7)^2+(u-3)^2$; +%\item +%$5^x=\displaystyle\frac{4}{3} ;$ +%\item +%$z=(x+1)^2+y^2$;\\* +%\item +%$2+5+8+ \ldots +(3n+2)=155$, +% $n\in \mathrm{N};$\hidewidth\skipitem +%\item +%$t=5u^2+8v^2$; +%\end{tabenum} +%\end{verbatim} +%\end{small}% +% \begin{tabenum}[\bfseries1)]% +% \tabenumitem +% $z=\displaystyle\frac xy$; +% \notabenumitem +% $2^x=9;$ +% \tabenumitem +% $3^{2x+3}=16 $. +% \tabenumitem +% $z=2x^2+4y^2$;\nopagebreak +% +% \item +% $u=\sqrt{x^2+y^2+z^2}$; +% \item +% $v=gt+\displaystyle\frac{g}{4}t$, +% \item +% $u=2^{5x-3y+z}$.\cr +% \item +% $w=(v+7)^2+(u-3)^2$; +% \item +% $5^x=\displaystyle\frac{4}{3} ;$ +% \item +% $z=(x+1)^2+y^2$;\\* +% \item +% $2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$\hidewidth\skipitem +% \item +% $t=5u^2+8v^2$; +% \end{tabenum} +% +% +%^^A% \subsection{Spacing} +% \subsection{Отбивки} +% +%^^A% Vertical spaces around tabulated list are equal to the list ones |\topsep+\partopsep|. +% Вертикальные отбивки вокруг перечня равны отбивкам вокруг обычного перечня: +% |\topsep+\partopsep|. +% +%^^A% Space between rows depends on the |\jot| value, like in \pkg{amsmath} environments +%^^A% like \env{align}, \pkg{gather} etc. +% Отбивки между рядами зависят от величины |\jot|, как и~в~окружениях многострочных +% формул в~окружениях пакета \pkg{amsmath}: +% \env{align}, \pkg{gather} и~т.\,д. +% +% \DescribeMacro{\tabenumsep} +%^^A% The horizontal spacing between items of list. It defined like: +% Определяет горизонтальные отбивки между пунктами. Задаётся следующим образом: +% \begin{quote} +% |\newcommand\tabenumsep{\hskip1em}| +% \end{quote} +%^^A% The |\labelsep| parameter is used after item number. +% Отбивка |\labelsep| задаётся после номера. +% +%^^A% \subsection{The \env{tabenum} environment inside a proper list} +% \subsection{Окружение \env{tabenum} внутри настоящего перечня} +% +% \DescribeMacro{\tabenumindent} +%^^A% The |\tabenumindent| macro sets left margin of \env{tabenum}. That could be useful +%^^A% inside, e.g., a proper list environments like \env{enumerate} or \env{itemise}. +%^^A% It can be defined like horizontal space/skip or text. +%^^A% For example: +% Команда |\tabenumindent| определяет левое поле \env{tabenum}. Это может быть полезно +% внутри настоящего перечня, типа \env{enumerate} или \env{itemise}. +% Она может быть определена как отбивка или текст (или всё вместе). +% Например: +% \begin{quote} +% |\renewcommand\tabenumindent{\hskip\parindent}| +% \end{quote} +% или +% \begin{quote} +% |\renewcommand\tabenumindent{Word }| +% \end{quote} +% +% \DescribeMacro{\liststrut} +%^^A% This command can be useful after alone list number (and not only with +%^^A% \env{tabenum} environment). The command raises first line of next +%^^A% text block at the baseline of previous. Without any option it puts negative +%^^A% baselineskip. If there is a high element (any math sentence) in the first +%^^A% line of next text, you may repeat this element in option argument without |$|'s. +% Эта команда пригодится если окружение \env{tabenum} идёт сразу после номера перечня. +% Команда поднимает первую строку следующего за пунктом блока текста +% на базовую линию предыдущего. Команда без опции даёт отбивку равную отрицательному +% интерлиньяжу. Если в~первой строке следующего блока текста встретился высокий элемент +% (обычно это математическое выражение) +% его повторяют в~опции команды |\liststrut| и~по его высоте рассчитываются +% компенсирующие отбивки. Элемент записывается без знаков |$|. +% +%^^A% Here the combination of these two commands: +% В~примере комбинация этих двух команд: +%\par\begin{small}% +%\begin{verbatim} +%\begin{enumerate}[\bfseries1)]% +%\item\renewcommand\tabenumindent{1)\hskip\labelsep}% +% \liststrut[\displaystyle\frac xy] +%\begin{tabenum}[a)]% +%... +%\end{verbatim}% +%\end{small}% +% \begin{enumerate}[\bfseries1)]% +% \item\renewcommand\tabenumindent{1)\hskip\labelsep}% +% \liststrut[\frac /y] +% \begin{tabenum}[a)]% +%^^A% \item aaaa\par +% \tabenumitem +% {$z=\frac xy$}; +% \notabenumitem +% {$2^x=9;$} +% \tabenumitem +% {$3^{2x+3}=16 $}. +% \tabenumitem +% {$z=2x^2+4y^2$};\nopagebreak +% +% \item +% $u=\sqrt{x^2+y^2+z^2}$; +% \item +% $v=gt+\displaystyle\frac{g}{4}t$, +% \item +% $u=2^{5x-3y+z}$.\\ +% \item +% $w=(v+7)^2+(u-3)^2$; +% \item +% $5^x=\displaystyle\frac{4}{3} ;$ +% \item +% $z=(x+1)^2+y^2$;\cr +% \item +% $2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$\hidewidth\skipitem +% \item +% $t=5u^2+8v^2$; +% \end{tabenum} +% \end{enumerate}% +% +% +%^^A% \subsection{The \env{subtabenum} environment: second level, variant I} +% \subsection{Окружение \env{subtabenum}: второй уровень, вариант I} +% +% \DescribeMacro{subtabenum} +%^^A% The second level of equations/exersizes list \env{subtabenum} based on \env{tabular} +%^^A% environment. +% Второй уровень уравнений, окружение \env{subtabenum}, основывается на окружении +% \env{tabular}. +% +%\begin{small}% +%\begin{verbatim} +%\begin{tabenum}[\bfseries 1)]% +%\item +%\begin{subtabenum}[a)]% +%\tabenumitem +%$z=\displaystyle\frac xy$; +%\notabenumitem +%$2^x=9;$ +%\tabenumitem +%$3^{2x+3}=16 $. +%\tabenumitem +%$z=2x^2+4y^2$; +%\end{subtabenum} +% +%\item +%\begin{subtabenum}[a)]% +%\item +%$u=\sqrt{x^2+y^2+z^2}$; +%\item +%$v=gt+\displaystyle\frac{g}{4}t$, +%\item +%$u=2^{5x-3y+z}$.\\ +%\item +%$w=(v+7)^2+(u-3)^2$; +%\item +%$5^x=\displaystyle\frac{4}{3} ;$ +%\item +%$z=(x+1)^2+y^2$;\\ +%\item +%$2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$\hidewidth\strut\skipitem +%\item +%$t=5u^2+8v^2$; +%\end{subtabenum} +%\end{tabenum} +%\end{verbatim}% +%\end{small}% +% \begin{tabenum}[\bfseries 1)]% +% \tabenumitem +% \begin{subtabenum}[a)]% +% \tabenumitem +% $z=\displaystyle\frac xy$; +% \notabenumitem +% $2^x=9;$ +% \tabenumitem +% $3^{2x+3}=16 $. +% \tabenumitem +% $z=2x^2+4y^2$; +% \end{subtabenum} +% +% \tabenumitem +% \begin{subtabenum}[a)] +% \item +% $u=\sqrt{x^2+y^2+z^2}$; +% \item +% $v=gt+\displaystyle\frac{g}{4}t$, +% \item +% $u=2^{5x-3y+z}$.\\ +% \item +% $w=(v+7)^2+(u-3)^2$; +% \item +% $5^x=\displaystyle\frac{4}{3} ;$ +% \item +% $z=(x+1)^2+y^2$;\\ +% \item +% $2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$\hidewidth\strut\skipitem +% \item +% $t=5u^2+8v^2$; +% \end{subtabenum} +% \end{tabenum} +%^^A% Please note that |\hidewidth| skip is followed by the |\strut| command inside +%^^A% \env{subtabenum} environment: +%^^A% the skips at the ``edges'' of \env{tabular} columns doesn't work. +% Обратите внимание, что внутри окружения \env{subtabenum} после команды +% отбивки |\hidewidth| должна обязательно идти +% команда |\strut|: +% отбивки по «краям» окружения \env{tabular} не работают. +% +%^^A% \subsection{The \cs{subtabenumitem}/\cs{subitem} macros: second level, variant II} +% \subsection{Команды \cs{subtabenumitem}/\cs{subitem}: второй уровень, вариант II} +% +%^^A% The previous example shows that columns were destroyed from one +%^^A% \env{subtabenum} environment to another. +% Предыдущий пример показал, что выравнивание колонок от одного окружения +% \env{subtabenum} к~другому пропадает. +% +%^^A% This command can be useful after alone list number (and not only with +%^^A% \env{tabenum} environment). The command raises first line of next +%^^A% text block at the baseline of previous. Without any option it puts negative +%^^A% baselineskip. If there is a high element (any math sentence) in the first +%^^A% line of next text, you may repeat this element in option argument without |$|'s. +% Далее идёт ещё один вариант двухуровневого перечня. Если вы зададите вторую опцию +% в~окружении \env{tabenum}, вы можете использовать команды +% |\subtabenumitem|/\allowbreak|\subitem| +% для второго уровня\footnote{Если вторая опция не задана, эти команды работают как +% команды \cs{tabenumitem}/\cs{item}.}. +% +% \DescribeMacro{\subtabenumitem} +% \DescribeMacro{\subitem} +%^^A% If you put |\subitem| after |\item|, you get extra space between +%^^A% two numbers, created by |\tabenumsep| skip. The |\negtabenumsep| command +%^^A% cancels this skip. +% Если задать команду |\subitem| сразу после |\item|, то получится лишний +% пробел между нумерацией, созданный отбивкой |\tabenumsep|. Команда |\negtabenumsep| +% отменяет эту отбивку. +%\par\begin{small}\openup-.75pt +%\begin{verbatim} +%\def\tabenumsep{\qquad} +%\begin{tabenum}[\bfseries 1)][a)]% +%\tabenumitem\negtabenumsep +%\subtabenumitem +%$z=\displaystyle\frac xy$; +%\nosubtabenumitem +%$2^x=9;$ +%\subtabenumitem +%$3^{2x+3}=16 $. +%\subtabenumitem +%$z=2x^2+4y^2$;\\ +%\startnumber{4}\startsubnumber{1} +%\item\negtabenumsep +%\subitem +%$u=\sqrt{x^2+y^2+z^2}$; +%\subitem +%$v=gt+\displaystyle\frac{g}{4}t$, +%\subitem +%$u=2^{5x-3y+z}$.\\\skipitem\negtabenumsep +%\subitem +%$w=(v+7)^2+(u-3)^2$; +%\subitem +%$5^x=\displaystyle\frac{4}{3} ;$ +%\subitem +%$z=(x+1)^2+y^2$;\\\skipitem\negtabenumsep +%\subitem +%$2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$\hidewidth\skipitem +%\subitem +%$t=5u^2+8v^2$; +%\end{tabenum} +%\end{verbatim}% +%\end{small}% +% \begin{tabenum}[\bfseries 1)][a)]% +% \tabenumitem\negtabenumsep +% \subtabenumitem +% $z=\displaystyle\frac xy$; +% \nosubtabenumitem +% $2^x=9;$ +% \subtabenumitem +% $3^{2x+3}=16 $. +% \subtabenumitem +% $z=2x^2+4y^2$;\\ +%\startnumber{4}\startsubnumber{1} +% \item\negtabenumsep +% \subitem +% $u=\sqrt{x^2+y^2+z^2}$; +% \subitem +% $v=gt+\displaystyle\frac{g}{4}t$, +% \subitem +% $u=2^{5x-3y+z}$.\\\skipitem\negtabenumsep +% \subitem +% $w=(v+7)^2+(u-3)^2$; +% \subitem +% $5^x=\displaystyle\frac{4}{3} ;$ +% \subitem +% $z=(x+1)^2+y^2$;\\\skipitem\negtabenumsep +% \subitem +% $2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$\hidewidth\skipitem +% \subitem +% $t=5u^2+8v^2$; +% \end{tabenum} +%^^A% There were used two commands |\startnumber| and |\startsubnumber| which set +%^^A% next start numbers for items of each of two levels. There is not restarting commands +%^^A% for numeration of second level inside environment, +%^^A% so, in this case, we need set new start of sublevel by hand. The +%^^A% |\startnumber|\footnote{The \cs{startnumber} command can be used inside any list +%^^A% environment.} +%^^A% allows you to divide \env{tabenum} environment and restart with necessary counter. +%^^A% You may still use the traditional |\setcounter{enum..}{..}| combination, +%^^A% if you know the level of your list and \env{tabenum}/\allowbreak\env{subtabenum} %^^A% environments. +% В~примере были использованы две команды |\startnumber| и~|\startsubnumber| которые +% задают начало нумерации для каждого из двух уровней. Внутри окружения \env{tabenum} +% перенумерация второго уровня не задаётся, +% поэтому её приходится задавать вручную. Команда +% |\startnumber|\footnote{Команда \cs{startnumber} может быть использована для любого +% окружения перечня.} +% позволяет вам разделить окружение \env{tabenum} и~начать нумерацию с~нужного номера. +% Но можно использовать и~традиционную комбинацию |\setcounter{enum..}{..}|, +% если вы знаете уровень ваших окружений перечней +% и~\env{tabenum}/\allowbreak\env{subtabenum}. +% +%^^A% \subsection{Restoring of \cs{item} as command from list environments} +% \subsection{Восстановление оригинальной команды \cs{item} для перечней} +% +%^^A% \DescribeMacro{\restorelistitem} +%^^A% For the cases when standard lists appear inside \env{tablist}, you may +%^^A% restore original |\item| meaning. +% \DescribeMacro{\restorelistitem} +% Если внутри окружения \env{tablist} появится окружение обычного перечня, вы можете +% восстановить оригинальную команду |\item|. +% +% \Finale +\endinput +%% +%% End of file tablists-rus.tex \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/makecell/tablists.pdf b/Master/texmf-dist/doc/latex/makecell/tablists.pdf new file mode 100644 index 00000000000..2929cc65306 Binary files /dev/null and b/Master/texmf-dist/doc/latex/makecell/tablists.pdf differ diff --git a/Master/texmf-dist/doc/latex/makecell/tablists.xml b/Master/texmf-dist/doc/latex/makecell/tablists.xml new file mode 100644 index 00000000000..262e944582f --- /dev/null +++ b/Master/texmf-dist/doc/latex/makecell/tablists.xml @@ -0,0 +1,20 @@ + + + + tablists + Tabulated lists of short items (exersizes in textbooks). + + + + + This package offers environments and commands for one-level and two-level + lists of short items (exersizes in textbooks). The environments follow + support of optional arguments of item numbering as + enumerate or + paralist packages. + + + + + + diff --git a/Master/texmf-dist/source/latex/makecell/makecell.dtx b/Master/texmf-dist/source/latex/makecell/makecell.dtx index b26f47ba5b0..6e1b30b6ba1 100644 --- a/Master/texmf-dist/source/latex/makecell/makecell.dtx +++ b/Master/texmf-dist/source/latex/makecell/makecell.dtx @@ -1,7 +1,7 @@ % \iffalse % -% makecell.dtx - tabular column heads and multilined cells. -% (c) 2005--2006 Olga Lapko (Lapko.O@g23.relcom.ru) +% makecell.dtx - Managing of tabular column heads and cells. +% (c) 2005--2007 Olga Lapko (Lapko.O@g23.relcom.ru) % % This program is provided under the terms of the % LaTeX Project Public License distributed from CTAN @@ -16,7 +16,7 @@ %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesPackage{makecell} %<*package> - [2006/06/28 v0.1c Multilined Cells and Tabular Heads] + [2007/05/24 V0.1d Managing of Tab Column Heads and Cells] % % %<*batchfile> @@ -36,7 +36,7 @@ \documentclass{ltxdoc} \usepackage{makecell} \IfFileExists{rotating.sty}{\usepackage{rotating}}{} -\IfFileExists{footmisc.sty}{\usepackage[perpage]{footmisc}}{} +\IfFileExists{footmisc.sty}{\usepackage[perpage,bottom]{footmisc}}{} \IfFileExists{multirow.sty}{\usepackage{multirow}}{} \IfFileExists{hyperref.sty}{\usepackage{hyperref}}{} \IfFileExists{hypcap.sty}{\usepackage{hypcap}}{} @@ -70,7 +70,7 @@ % % \fi % -% \CheckSum{887} +% \CheckSum{1238} % % \GetFileInfo{makecell.dtx} % @@ -92,16 +92,26 @@ % layout for tabular column heads in whole documentation. Another command, % |\makecell|, is offered for creation of multilined tabular cells. % -% Package also offers: \quad 1)\nobreak\enskip macro |\makegapedcells|, which -% changes vertical spaces around all cells in tabular, like in \pkg{tabls} -% package, but uses code of \pkg{array} package. (Macro |\makegapedcells| -% redefines macro |\@classz| from this package. Macro |\nomakegapedcells| -% cancels this redefinition.); \quad 2)\nobreak\enskip macros |\multirowhead| -% and |\multirowcell|, which use |\multirow| macro from \pkg{multirow} -% package.\smallskip +% Package also offers: \quad 1)\nobreak\enskip macro |\makegapedcells|, +% which changes vertical spaces around all cells in tabular, like in +% \pkg{tabls} package, but uses code of \pkg{array} package. (Macro +% |\makegapedcells| redefines macro |\@classz| from \pkg{array} package. +% Macro |\nomakegapedcells| cancels this redefinition.); +% \quad 2)\nobreak\enskip macros |\multirowhead| and |\multirowcell|, +% which use |\multirow| macro from \pkg{multirow} package; +% \quad 3)\nobreak\enskip numbered rows |\nline| or skipping cells |\eline| +% in tabulars; +% \quad 4)\nobreak\enskip diagonally divided cells (|\diaghead|); +% \quad 5)\nobreak\enskip |\hline| and |\cline| with defined thickness: +% |\Xhline| and |\Xcline| consequently. +% \smallskip % % \end{abstract} % +% \clearpage +% \tableofcontents +% +% \clearpage % \section{Tabular Cells and Column Heads} % % \subsection{Building Commands} @@ -109,8 +119,8 @@ % \DescribeMacro{\makecell} % Macro creates one-column tabular with predefined common settings of % alignment, spacing and vertical spaces around (see section~\ref{sec:sets}). -% This will be useful for creation of multilined cells. This macro allows optional -% alignment settings. +% This will be useful for creation of multilined cells. This macro allows +% optional alignment settings. % \begin{quote} % |\makecell|\oarg{vertical or/and horizontal alignment}\marg{cell text} % \end{quote} @@ -162,23 +172,25 @@ % \end{tabular}} % \end{table} % -% Starred form of command, |\makecell*|, creates vertical |\jot| spaces around. +% Starred form of command, |\makecell*|, creates vertical |\jot| spaces +% around. % -% \emph{Note}. When you define column alignment like |p{3cm}| in optional argument -% of |\makecell| (or |\thead|, see below), please follow these rules: \quad -% 1)\nobreak\enskip if -% vertical alignment defined, write column alignment in group, e.g. |[c{p{3cm}}]|; -% \quad 2)\nobreak\enskip if it is absent, write column alignment in double -% group---|[{{p{3cm}}}]|, or add empty group---|[{}{p{3cm}}]|. Be also careful -% with vertical alignment when you define column alignment as paragraph block: -% e.g., use |{{b{3cm}}}| for bottom alignment (and |{{m{3cm}}}| for centered -% vertical alignment). +% \emph{Note}. When you define column alignment like |{p{3cm}}| in optional +% argument of |\makecell| (or |\thead|, see below), please follow these +% rules: \quad 1)\nobreak\enskip if vertical +% alignment defined, write column alignment in group, e.g. |[c{p{3cm}}]|; +% \quad 2)\nobreak\enskip if vertical alignment is absent, +% write column alignment in double +% group---|[{{p{3cm}}}]|, or add empty group---|[{}{p{3cm}}]|. Be also +% careful with vertical alignment when you define column alignment as +% paragraph block: e.g., use |{{b{3cm}}}| for bottom alignment (and +% |{{m{3cm}}}| for centered vertical alignment). % % \DescribeMacro{\thead} % Macro creates one-column \texttt{tabular} for column heads with predefined -% common settings (see table~\ref{tab:thead}). This macro uses common layout for -% column heads: font, alignment, spacing, and vertical spaces around -% (see section~\ref{sec:sets}). +% common settings (see table~\ref{tab:thead}). This macro uses common layout +% for column heads: font, alignment, spacing, and vertical spaces around +% (see section~\ref{sec:tsets}). %\begin{verbatim} %\renewcommand\theadset{\def\arraystretch{.85}}% %\begin{tabular}{|l|c|} @@ -223,7 +235,7 @@ % \begin{quote} % |\settowidth\rotheadsize{\theadfont |\meta{Widest head text}|}| % \end{quote} -% like in following example: +% like in following example (table~\ref{tab:rotheads}): %\begin{verbatim} %\settowidth\rotheadsize{\theadfont Second multilined} %\begin{tabular}{|l|c|} @@ -237,7 +249,7 @@ %\end{verbatim} % \begin{table}[h] % \ttabbox -% {\caption{Example of rotated column heads}}% +% {\caption{Example of rotated column heads}\label{tab:rotheads}}%^^A% % {\settowidth\rotheadsize{\theadfont Second multilined}%^^A % \begin{tabular}{l|l} % \hline @@ -251,10 +263,10 @@ % % \subsection{Settings For Tabular Cells}\label{sec:sets} % -% This section describes macros, which make layout tuning for multilined cells, -% created by |\makecell| macro (and also |\multirowcell| and |\rotcell| macros). -% The |\cellset| macro also is used by |\thead| (|\rothead|, |\multirowtead|) -% macro. +% This section describes macros, which make layout tuning for multilined +% cells, created by |\makecell| macro (and also |\multirowcell| and +% |\rotcell| macros). The |\cellset| macro also is used by |\thead| +% (|\rothead|, |\multirowtead|) macro. % % \DescribeMacro{\cellset} % Spacing settings for cells. Here you could use commands like: @@ -262,8 +274,7 @@ % |\renewcommand\cellset{\renewcommand\arraytretch{1}%|\\ % | \setlength\extrarowheight{0pt}}| % \end{quote} -% as was defined in current package. These settings -% used by both |\makecell| and |\thead| (|\rothead|, |\multirowtead|) commands. +% as was defined in current package. % % \DescribeMacro{\cellalign} % Default align for cells. Package offers vertical and horizontal centering @@ -271,8 +282,10 @@ % \begin{quote} % |\renewcommand\cellalign{cc}| % \end{quote} -% Define vertical spaces around |\makecell|, using |\gape| command if necessary. -% It defined like: +% +% \DescribeMacro{\cellgape} +% Define vertical spaces around |\makecell|, using |\gape| command if +% necessary. It defined like: % \begin{quote} % |\renewcommand\cellgape{}| % \end{quote} @@ -284,17 +297,17 @@ % \begin{quote} % |\renewcommand\cellgape{\gape[t]}| % \end{quote} -% (See also section~\ref{sec:gape} about |\gape| command.) +% (See also section~\ref{sec:gape} about |\gape| and |\Gape| command.) % % \DescribeMacro{\cellrotangle} % The angle for rotated cells and column heads. The default value 90 % (counterclockwise). This value definition is used by both |\rotcell| and % |\rothead| macros. % -% \subsection{Settings For Column Heads} +% \subsection{Settings For Column Heads}\label{sec:tsets} % -% This section describes macros, which make layout tuning for tabular column heads, -% created by |\thead| (|\rothead|, |\multirowtead|) macro. +% This section describes macros, which make layout tuning for tabular column +% heads, created by |\thead| (|\rothead|, |\multirowtead|) macro. % % \DescribeMacro{\theadfont} % Sets a special font for column heads. It could be smaller size @@ -316,13 +329,15 @@ % \end{quote} % % \DescribeMacro{\theadalign} -% Default align for tabular column heads. Here also offered centering alignment: +% Default align for tabular column heads. Here also offered centering +% alignment: % \begin{quote} % |\renewcommand\theadalign{cc}| % \end{quote} % % \DescribeMacro{\theadgape} -% Define vertical spaces around, using |\gape| command if necessary. +% Define vertical spaces around column head (|\thead|), +% using |\gape| command if necessary. % It defined like: % \begin{quote} % |\renewcommand\theadgape{\gape}| @@ -334,20 +349,22 @@ % |\renewcommand\rotheadgape{}| % \end{quote} % +% \clearpage % \section{Changing of Height and Depth of Boxes}\label{sec:gape} % % Sometimes \env{tabular} or \env{array} cells, or some elements in text need a -% height/depth correction. The |\raisebox| command could help for it, but usage -% of that macro in these cases, especially inside math, is rather complex. -% Current package offers the |\gape| macro, which usage is similar to |\smash| -% macro. The |\gape| macro allows to change height and/or depth of included -% box with necessary dimension. +% height/depth correction. The |\raisebox| command could help for it, but +% usage of that macro in these cases, especially inside math, is rather +% complex. Current package offers the |\gape| macro, which usage is similar +% to |\smash| macro. The |\gape| macro allows to change height and/or depth +% of included box with necessary dimension. % % \DescribeMacro{\gape} -% This macro changes included box by |\jot| value (usually 3\,pt). It is defined -% with optional and mandatory arguments, like |\smash| macro, which (re)defined by -% \pkg{amsmath} package. Optional argument sets change of height only (\texttt{t}) -% or depth only~(\texttt{b}). Mandatory argument includes text. +% This macro changes included box by |\jot| value (usually 3\,pt). It is +% defined with optional and mandatory arguments, like |\smash| macro, which +% (re)defined by \pkg{amsmath} package. Optional argument sets change of +% height only (\texttt{t}) or depth only~(\texttt{b}). Mandatory argument +% includes text. % \begin{quote} % |\gape|\oarg{\texttt{t} or \texttt{b}}\marg{text} % \end{quote} @@ -372,14 +389,15 @@ % \end{quote} % % \DescribeMacro{\Gape} -% Another way of height/depth modification. This macro allows different correction -% for height and depth of box: +% Another way of height/depth modification. This macro allows different +% correction for height and depth of box: % \begin{quote} % |\Gape|\oarg{height corr}\oarg{depth corr}\marg{text} % \end{quote} % -% If both arguments absent, |\Gape| command works like |\gape|\marg{text}, in other -% words, command uses |\jot| as correction value for height and depth of box. +% If both arguments absent, |\Gape| command works like |\gape|\marg{text}, in +% other words, command uses |\jot| as correction value for height and depth +% of box. % % If only one optional argument exists, |\Gape| command uses value % from this argument for both height and depth box corrections. @@ -407,6 +425,9 @@ % \crcr}} % \end{quote} % +% You may also use |\height| and |\depth| parameters in optional arguments +% of |\Gape| macro, parameters was borrowed from |\raisebox| command. +% % \DescribeMacro{\bottopstrut} % \DescribeMacro{\topstrut} % \DescribeMacro{\botstrut} @@ -418,18 +439,20 @@ % % \emph{Note}. If you use % \pkg{bigstrut} package note that these macros duplicate \cmd{\bigstrut}, -% \cmd{\bigstrut[t]}, and \cmd{\bigstrut[b]} commands consequently. Please note -% that value, which increases strut in \cmd{\topstrut} etc. equals to \cmd{\jot}, -% but \cmd{\bigstrut} and others use a special dimension \cmd{\bigstrutjot}. +% \cmd{\bigstrut[t]}, and \cmd{\bigstrut[b]} commands consequently. Please +% note that value, which increases strut in \cmd{\topstrut} etc. equals to +% \cmd{\jot}, but \cmd{\bigstrut} and others use a special dimension +% \cmd{\bigstrutjot}. % -% \section{How to Change Vertical Spaces Around in Whole Table}\label{sec:beta} +% \clearpage +% \section{How to Change Vertical Spaces Around Cells +% in Whole Table}\label{sec:beta} % % This section describes macros which try to emulate one of possibilities of % \pkg{tabls} package: to get necessary vertical spacing around cells. % % \DescribeMacro{\setcellgapes} -% Sets the parameters for vertical spaces. It looks like |\gape*| command without -% \marg{text} argument: +% Sets the parameters for vertical spaces: % \begin{quote} % |\setcellgapes|\oarg{\texttt{t} or \texttt{b}}\marg{value} % \end{quote} @@ -437,8 +460,8 @@ % \begin{quote} % |\setcellgapes{5pt}| % \end{quote} -% You may also try to load negative values if you wish. This macro you may put in -% the preamble as common settings. +% You may also try to load negative values if you wish. This macro you may +% put in the preamble as common settings. % % \DescribeMacro{\makegapedcells} % \DescribeMacro{\nomakegapedcells} @@ -475,16 +498,17 @@ % \hline % \makecell*[{{p{3cm}}}]{Cell long text with predefined width} & 52--58\\ % \hline -% \makecell[{{>{\parindent1em}p{3cm}}}]{Cell long text with predefined width} -% & 52--58\\ +% \makecell[{{>{\parindent1em}p{3cm}}}]{Cell long text with +% predefined width} & 52--58\\ % \hline % \end{tabular}} % \end{table} % -% Please note that space defined in |\setcellgapes| and space which creates |\gape| -% mechanism -% in commands for tabular cells (usually |\thead| or |\makecell*|) are summarized. +% Please note that space defined in |\setcellgapes| and space which creates +% |\gape| mechanism in commands +% for tabular cells (usually |\thead| or |\makecell*|) are summarized. % +% \clearpage % \section{Multirow Table Heads and Cells} % % The next examples show usage of macros which use |\multirow| command from @@ -496,8 +520,8 @@ % \end{quote} % \marg{nrow} sets number of rows (i.e. text lines); % \oarg{njot} is mainly used if you've used \pkg{bigstrut} package: it makes -% additional tuning of vertical position (see comments in \pkg{multirow} -% package); +% additional tuning of vertical position (see comments in +% \pkg{multirow} package); % \marg{width} defines width of contents, the |*| sign used to indicate that % the text argument's natural width is to be used; % \oarg{vmove} is a length used for fine tuning: the text will be raised (or @@ -506,15 +530,16 @@ % % \DescribeMacro{\multirowcell} % \DescribeMacro{\multirowthead} -% These two macros use following arguments (example uses |\multirowcell| command): +% These two macros use following arguments (example uses |\multirowcell| +% command): % \begin{quote} % |\multirowcell|\marg{nrow}\oarg{vmove}\oarg{hor alignment}\marg{contents} % \end{quote} -% in these macros were skipped \oarg{njot} and \marg{width}. Instead of tuning -% optional argument \oarg{njot} for vertical +% in these macros were skipped \oarg{njot} and \marg{width}. Instead of +% tuning optional argument \oarg{njot} for vertical % correction used \oarg{vmove} optional argument. -% For the \marg{width} argument both |\multirowcell| and |\multirowthead| macros -% use natural width of contents (i.e. the |*| argument used). +% For the \marg{width} argument both |\multirowcell| and |\multirowthead| +% macros use natural width of contents (i.e. the |*| argument used). % % First example (table~\ref{tab:mrowI}) with ``|\multirow|'ed'' column heads % and cells: @@ -551,14 +576,16 @@ % \cline{1-2} % \makecell{Multilined\\Cell text} & B& \\ % \hline -% \makecell[l]{Left aligned\\ cell text} & C & \multirowcell{4}[1ex][l]{37--43}\\ +% \makecell[l]{Left aligned\\ cell text} & C +% & \multirowcell{4}[1ex][l]{37--43}\\ % \cline{1-2} % \makecell[r]{Right aligned\\ cell text} & D & \\ % \hline % \makecell[b]{Bottom aligned\\ cell text} & E & % \multirowcell{5}[1ex][r]{37--43\\52--58}\\ % \cline{1-2} -% \makecell[{{p{5cm}}}]{Cell long long long long text with predefined width} & F & \\ +% \makecell[{{p{5cm}}}]{Cell long long long long text with predefined width} +% & F & \\ % \cline{1-2} % \makecell[{{>{\parindent1em}p{5cm}}}]{Cell long long long long text with % predefined width} & G & \\ @@ -566,8 +593,9 @@ % \end{tabular}} % \end{table} % -% Second example (table~\ref{tab:mrowII}) with ``multirow'ed'' column heads and -% cells uses |\makegapedcells| command. The |\theadgape| command does nothing: +% Second example (table~\ref{tab:mrowII}) with ``multirow'ed'' column heads +% and cells uses |\makegapedcells| command. The |\theadgape| command does +% nothing: %\begin{verbatim} %\makegapedcells %\renewcommand\theadset{\def\arraystretch{.85}}% @@ -592,7 +620,8 @@ % \cline{1-2} % \makecell{Multilined \\Cell text} & B& \\ % \hline -% \makecell[l]{Left aligned \\ cell text} & C & \multirowcell{4}[0ex][l]{37--43}\\ +% \makecell[l]{Left aligned \\ cell text} & C +% & \multirowcell{4}[0ex][l]{37--43}\\ % \cline{1-2} % \makecell[r]{Right aligned \\ cell text} & D & \\ % \hline @@ -609,8 +638,8 @@ % \end{table} % \bigskip % -% The last example (table~\ref{tab:mrowIII}) uses \env{tabularx} environment with -% |\hsize| in the width argument. +% The last example (table~\ref{tab:mrowIII}) uses \env{tabularx} environment +% with |\hsize| in the width argument. %\begin{verbatim} %\makegapedcells %\renewcommand\theadset{\def\arraystretch{.85}}% @@ -650,7 +679,8 @@ % \cline{1-2} % \makecell{Multilined \\Cell text} & B& \\ % \hline -% \makecell[l]{Left aligned \\ cell text} & C & \multirowcell{4}[0ex][l]{37--43}\\ +% \makecell[l]{Left aligned \\ cell text} & C +% & \multirowcell{4}[0ex][l]{37--43}\\ % \cline{1-2} % \makecell[r]{Right aligned \\ cell text} & D & \\ % \hline @@ -677,6 +707,7 @@ % cells, which stay in one ``multi row'' will have the same value of this % negative space, in spite of different number of lines in their contents. % +% \clearpage\suppressfloats[t] % \section{Numbered Lines in Tabulars} % % The three commands |\eline|, |\nline|, |\rnline| allow to skip: @@ -702,7 +733,7 @@ % \end{tabular} %\end{verbatim} % -% \begin{table} +% \begin{table}[hbt] % \ttabbox % {\caption{Examples of filling of cells}\label{tab:elines}}% % {\begin{tabular}{|*{6}{c|}} @@ -715,6 +746,188 @@ % \end{tabular}} %\end{table} % +% \clearpage +% \section{Diagonally Divided Cell} +% +% This variant of head's positioning is not too popular nowadays, but in +% the some cases it could be used. Instead of creating of +% multicolumn head above a wide couple of all column heads except the +% very left column, the most left column head (upper left cell) +% divided by diagonal line. The lower head is usually head of very left +% column and upper head---``multicolumn'' to all other column heads of +% table to the right. +% +% This package offers macro based on possibilities of \env{picture} +% environment. +% \begin{quote} +% |\diaghead|\texttt{(}\meta{\texttt{\textup{H}} ratio,%^^A +% \textup{\texttt{V}} ratio}\texttt{)}%^^A +% \marg{Text set for column width}|%|\\ +% \phantom{/diaghead }\marg{First head}\marg{Second head} +% \end{quote} +% where \texttt{(}\meta{\textup{\texttt{H ratio}},%^^A +% \textup{\texttt{V ratio}}}\texttt{)} sets the ratios like in |\line| +% command (digits from~|1| up to~|6|). This argument is optional, +% the default ratio (|\line| +% direction) defined as~|(5,-2)|. +% +% The \marg{Text set for column width} +% defined by hand, for example: +% \quad 1)\nobreak\enskip sets the width, using longest text lines from +% both heads---in this case you must put |\theadfont| macro, if you use +% |\thead|'s; \quad 2)\nobreak\enskip the longest text from the rest of +% column; \quad 3)\nobreak\enskip |\hskip|\meta{value}, even |\hskip\hsize| +% the case of |p| column (or |X| column in \env{tabularx} environment). +% The \marg{First head} +% is head in lower corner (usually for first or very left column), +% \marg{Second head}---in the upper corner (head for the all right columns). +% +% Here is code of table~\ref{tab:diaghead}. +%\begin{verbatim}\makegapedcells +%\begin{tabular}{|l|c|c|}\hline +%\diaghead{\theadfont Diag ColumnmnHead II}% +% {Diag Column \\Head I}{Diag\\Column Head II}& +%\thead{Second\\column}&\thead{Third\\column}\\ +%\hline... +%\end{tabular}\medskip +% +%\begin{tabularx}{.62\hsize}{|X|c|c|}\hline +%\diaghead(-4,1){\hskip\hsize}% +% {Diag \\Column Head I}{Diag Column \\Head II}& +%\thead{Second\\column}&\thead{Third\\column}\\ +%\hline... +%\end{tabularx}\medskip +% +% \nomakegapedcells +% \begin{tabular}{|l|c|c|}\hline +% \diaghead(4,1){\hskip4.2cm}% +% {Diag \\Column Head I}{Diag Column \\Head II}& +% \thead{Second\\column}&\thead{Third\\column}\\ +%... +%\end{verbatim}% +% +% \begin{table}[!bp]\makegapedcells +% \begin{tabular}{|c|c|c|}% +% \hline +% \diaghead{\theadfont Diag ColumnmnHead II}%^^A +% {Diag \\Column Head I}{Diag Column\\ Head II}& +% \thead{Second\\column}&\thead{Third\\column}\\ +% \hline +% \makecell[l]{Left aligned \\ cell text} & A & 37--43\\ +% \hline +% \makecell*[r]{Right aligned \\ cell text} & B & 37--43\\ +% \hline +% \makecell[b]{Bottom aligned\\ cell text} & C & 52--58\\ +% \hline +% \end{tabular}% +% \medskip +% +% \begin{tabularx}{.62\hsize}{|X|c|c|}% +% \hline +% \diaghead(4,1){\hskip\hsize}% +% %^^A{\theadfont Diag ColuDiag Column}%^^A +% {Diag \\Column Head I}{Diag Column \\Head II}& +% \thead{Second\\column}&\thead{Third\\column}\\ +% \hline +% \makecell[l]{Left aligned \\ cell text} & A & 37--43\\ +% \hline +% \makecell*[r]{Right aligned \\ cell text} & B & 37--43\\ +% \hline +% \makecell[b]{Bottom aligned\\ cell text} & C & 52--58\\ +% \hline +% \end{tabularx}% +% \medskip +% +% \nomakegapedcells +% \begin{tabular}{|l|c|c|}% +% \hline +% \diaghead(-4,1){\hskip4.2cm}%^^A +% {Diag \\Column Head I}{Diag Column \\Head II}& +% \thead{Second\\column}&\thead{Third\\column}\\ +% \hline +% \makecell[l]{Left aligned \\ cell text} & A & 37--43\\ +% \hline +% \makecell*[r]{Right aligned \\ cell text} & B & 37--43\\ +% \hline +% \makecell[b]{Bottom aligned\\ cell text} & C & 52--58\\ +% \hline +% \end{tabular}% +% +% \caption{Examples of tabulars with diagonally divided +% cells}\label{tab:diaghead} +% +% \end{table}% +% The correct position of diagonal ends depends of width of column. If cell width +% is narrower then necessary +% column ends of diagonal don't touch corners of cell. +% +% \clearpage +% \section{Thick \cmd{\hline} and \cmd{\cline}} +% +% For horizontal rules in tabular there were added two commands +% \cmd{\Xhline} and \cmd{\Xcline} +% They use additional mandatory argument with defined rule width. +% +% The example, with result in table~\ref{tab:XmrowIII}. +%\begin{verbatim}% +%\begin{table} +%\renewcommand\theadset{\def\arraystretch{.85}}% +%\renewcommand\theadgape{} +%\ttabbox +%{\caption{...}\label{...}}% +%{\begin{tabular}{!{\vrule width1.2pt}c +% !{\vrule width1.2pt}c|c +% !{\vrule width1.2pt}} +%\Xhline{1.2pt} +%\multirowthead{4}{First Column head}& +%\multicolumn{2}{c!{\vrule width1.2pt}}{\thead{Multicolumn head}}\\ +%\Xcline{2-3}{1.2pt} +% & \thead{Second \\multlined \\ column head} & +% \thead{Third \\ column head}\\ +%\Xhline{1.2pt} +%Cell text & A &\multirowcell{4}{28--31}\\ +%... +%\Xhline{1.2pt} +%\end{tabular}} +%\end{table} +%\end{verbatim}% +% +% \begin{table}\makegapedcells\relax +%\renewcommand\theadset{\def\arraystretch{.85}}% +%\renewcommand\theadgape{} +% \ttabbox +% {\caption{Example of \env{tabular} environment with +% thick lines}\label{tab:XmrowIII}}% +% {\begin{tabular}{!{\vrule width1.2pt}c +% !{\vrule width1.2pt}c|c!{\vrule width1.2pt}} +% \Xhline{1.2pt} +% \multirowthead{4}{First Column head}& +% \multicolumn{2}{c!{\vrule width1.2pt}}{\thead{Multicolumn head}}\\ +% \Xcline{2-3}{1.2pt} +% & \thead{Second \\multlined \\ column head} & +% \thead{Third \\ column head}\\ +% \Xhline{1.2pt} +% Cell text & A &\multirowcell{4}{28--31}\\ +% \cline{1-2} +% \makecell{Multilined \\Cell text} & B& \\ +% \hline +% \makecell[l]{Left aligned \\ cell text} & C +% & \multirowcell{4}[0ex][l]{37--43}\\ +% \cline{1-2} +% \makecell[r]{Right aligned \\ cell text} & D & \\ +% \hline +% \makecell[b]{Bottom aligned \\ cell text} & E & +% \multirowcell{6}[0ex][r]{37--43\\52--58}\\ +% \cline{1-2} +% \makecell[{{p{5cm}}}]{Cell long long long long long long text with +% predefined width} & F & \\ +% \cline{1-2} +% \makecell[{{>{\parindent1em}p{5cm}}}]{Cell long long long long long +% long text with predefined width} & G & \\ +% \Xhline{1.2pt} +% \end{tabular}} +% \end{table} +% % \StopEventually{}\clearpage % % \section{Code of package} @@ -727,9 +940,9 @@ % \end{macrocode} % % \begin{macro}{\makecell} -% The definition of command for multilined cells. At first defined |\gape| stuff. -% Non-star form loads special setting for vertical space around (if it used). -% Star form always creates additional vertical |\jot|-spaces. +% The definition of command for multilined cells. At first defined |\gape| +% stuff. Non-star form loads special setting for vertical space around (if it +% used). Star form always creates additional vertical |\jot|-spaces. % \begin{macrocode} \newcommand\makecell{\@ifstar{\let\tabg@pe\gape\makecell@}% {\let\tabg@pe\cellgape\makecell@}} @@ -753,10 +966,10 @@ \newcommand\thead{\@ifstar{\let\tabg@pe\gape\thead@}% {\let\tabg@pe\theadgape\thead@}} % \end{macrocode} -% Next macro loads vertical and horizontal common alignment for column heads and -% loads redefined spacing parameters |\arraystretch| and |\extrarowheight| -% if these parameters were redefined. -% (First go settings for cells, as for |\makecell|, then special settings for column heads.) +% Next macro loads vertical and horizontal common alignment for column heads +% and loads redefined spacing parameters |\arraystretch| and |\extrarowheight| +% if these parameters were redefined. (First go settings +% for cells, as for |\makecell|, then special settings for column heads.) % % For column heads also loaded font settings. % \begin{macrocode} @@ -784,8 +997,8 @@ \let\tabg@pe\empty\let\t@bset\cellset\makecell@} {\@ifnextchar[{\@rotcell}{\@@rotcell}}} % \end{macrocode} -% For rotated cell default column setting is similar to |p{\rotheadsize}| (plus some -% additional justification settings) +% For rotated cell default column setting is similar to |p{\rotheadsize}| (plus +% some additional justification settings) % \begin{macrocode} \@ifdefinable\@rotcell{} \def\@rotcell[#1]#2{\makecell{\\[-.65\normalbaselineskip] @@ -799,8 +1012,8 @@ % \end{macro} % % \begin{macro}{\rothead} -% The macro for rotated tabular column heads. If no \pkg{rotating} package loaded -% this macro works like |\thead|. +% The macro for rotated tabular column heads. If no \pkg{rotating} package +% loaded this macro works like |\thead|. % \begin{macrocode} \newcommand\rothead{\@ifundefined{turn}% {\PackageWarning{makecell}{\string\rothead\space @@ -810,8 +1023,8 @@ {\let\theadgape\rotheadgape \@ifnextchar[{\@rothead}{\@@rothead}}} % \end{macrocode} -% For rotated column head default column setting is similar to |p{\rotheadsize}| -% (plus some additional justification settings) +% For rotated column head default column setting is similar to +% |p{\rotheadsize}| (plus some additional justification settings) % \begin{macrocode} \@ifdefinable\@rothead{} \def\@rothead[#1]#2{\thead{\\[-.65\normalbaselineskip] @@ -879,9 +1092,9 @@ % settings for |\makecell| (|\thead|) blocks. % \begin{macrocode} \newcommand\mcell@l{\def\mcell@ii{l}\let\mcell@c\mcell@ic - \global\let\mcell@left\empty} + \global\let\mcell@left\relax} \newcommand\mcell@r{\def\mcell@ii{r}\let\mcell@c\mcell@ic - \global\let\mcell@right\empty} + \global\let\mcell@right\relax} \newcommand\mcell@t{\def\mcell@i{t}\let\mcell@c\mcell@iic} \newcommand\mcell@b{\def\mcell@i{b}\let\mcell@c\mcell@iic} \newcommand\mcell@{} @@ -926,9 +1139,9 @@ \fi}\next} % \end{macrocode} % -% The |\mcell@@tabular| macro at first calls |\mcell@setalign| macro for sorting of -% alignment arguments, -% then calls |\mcell@@@tabular| macro, which created tabular cell or column head. +% The |\mcell@@tabular| macro at first calls |\mcell@setalign| macro for +% sorting of alignment arguments, then calls |\mcell@@@tabular| +% macro, which created tabular cell or column head. % \begin{macrocode} \def\mcell@@tabular#1#2\@nil#3{% \expandafter\mcell@setalign\mcell@align\@nil @@ -955,18 +1168,18 @@ \def\mcell@c{\def\mcell@ii{c}}% \mcell@ifinlist{#1}{l,r,t,b,c,}{\@nameuse{mcell@#1}}% % \end{macrocode} -% If argument is not \texttt{l}, \texttt{r}, \texttt{c}, \texttt{t}, or \texttt{b} -% it could define horizontal alignment only. +% If argument is not \texttt{l}, \texttt{r}, \texttt{c}, \texttt{t}, +% or \texttt{b} it could define horizontal alignment only. % \begin{macrocode} {\def\mcell@ii{#1}\let\mcell@c\mcell@ic - \let\mcell@left\empty\let\mcell@right\empty}% + \let\mcell@left\relax\let\mcell@right\relax}% \mcell@ifinlist{#2}{l,r,t,b,c,}{\@nameuse{mcell@#2}}% % \end{macrocode} -% If argument is not \texttt{l}, \texttt{r}, \texttt{c}, \texttt{t}, or \texttt{b} -% it could define horizontal alignment only. +% If argument is not \texttt{l}, \texttt{r}, \texttt{c}, \texttt{t}, +% or \texttt{b} it could define horizontal alignment only. % \begin{macrocode} {\def\mcell@ii{#2}\let\mcell@c\mcell@ic - \let\mcell@left\empty\let\mcell@right\empty}% + \let\mcell@left\relax\let\mcell@right\relax}% % \end{macrocode} % Here goes repeated check for first argument, if it is |c|-argument % we call |\mcell@c| command, which can be now redefined. @@ -980,7 +1193,8 @@ % First (and last) go commands which align |\makecell| and |\thead| % blocks like \texttt{l}, \texttt{r}, or \texttt{c} (if they loaded). % Then goes check whether math mode exists. -% The |\mcell@multirow| emulation macro transforms to |\multirow| when necessary. +% The |\mcell@multirow| emulation macro transforms to |\multirow| +% when necessary. % \begin{macrocode} \def\mcell@@@tabular#1#2\@nil#3{%\mcell@mstyle \ifdim\parindent<\z@\leavevmode\else\noindent\fi @@ -1031,8 +1245,8 @@ % \begin{macrocode} \newcommand\theadfont{\footnotesize} % \end{macrocode} -% Special spacing settings for tabular spacing in column heads (like |\arraystretch| -% or/and |\extrarowheight|). +% Special spacing settings for tabular spacing in column heads (like +% |\arraystretch| or/and |\extrarowheight|). % \begin{macrocode} \newcommand\theadset{} % \end{macrocode} @@ -1062,8 +1276,8 @@ % % \begin{macro}{\gape} % \begin{macro}{\setcellgapes} -% The macro itself. It uses analogous to |\smash| macro from \pkg{amsmath} package. -% Starred form has additional mandatory argument for value of |\gape|. +% The macro itself. It uses analogous to |\smash| macro from \pkg{amsmath} +% package. % \begin{macrocode} \newcommand\gape{\@ifnextchar[\@gape{\@gape[tb]}} % \end{macrocode} @@ -1080,15 +1294,23 @@ \@ifdefinable\@setcellgapes{} \def\mcell@setgapes#1[#2]#3{\expandafter\let\csname mcell@#1@\expandafter\endcsname\csname mcell@mb@#2\endcsname - \@namedef{mcell@#1jot}{#3}} + \@namedef{mcell@#1jot}{#3}% +% \end{macrocode} +% Negative compensate inside |\makegapedsells| area. +% \begin{macrocode} + \@namedef{mcell@#1negjot}{-#3}\@namedef{mcell@#1negtb}{#2}} +% \end{macrocode} +% +% \begin{macrocode} +\newcommand\negjot[1]{{\jot\mcell@MBnegjot\gape[mcell@MBnegtb]{#1}}} % \end{macrocode} % % The macros which count advanced height and depth of boxes. % \begin{macrocode} -\newcommand\mcell@mb@t[2]{\@tempdima\ht#1\advance\@tempdima#2% - \ht#1\@tempdima} -\newcommand\mcell@mb@b[2]{\@tempdimb\dp#1\advance\@tempdimb#2% - \dp#1\@tempdimb} +\newcommand\mcell@mb@t[2]{% + \@tempdima\ht#1\advance\@tempdima#2\ht#1\@tempdima} +\newcommand\mcell@mb@b[2]{% + \@tempdimb\dp#1\advance\@tempdimb#2\dp#1\@tempdimb} \newcommand\mcell@mb@tb[2]{\mcell@mb@t{#1}{#2}\mcell@mb@b{#1}{#2}} % \end{macrocode} % @@ -1156,7 +1378,8 @@ % \begin{macrocode} \@ifdefinable\mcell@oriclassz{\let\mcell@oriclassz\@classz} % \end{macrocode} -% This macros redefine and restore the |\@classz| macro from \pkg{array} package. +% This macros redefine and restore the |\@classz| macro from \pkg{array} +% package. % \begin{macrocode} \newcommand\makegapedcells{\let\@classz\mcell@classz} \newcommand\nomakegapedcells{\let\@classz\mcell@oriclassz} @@ -1216,6 +1439,7 @@ % The rows of numbered cells. The |\rnline| command replaces |\Alph| and % |\alph| counter by |\Asbuk| and |\asbuk| consequently. % \begin{macrocode} +\newcounter{nlinenum} \newcommand\rnline{\gdef \TeXr@rus{\let\@Alph\@Asbuk\let\@alph\@asbuk}\@nline} \newcommand\nline{\gdef\TeXr@rus{}\@nline} @@ -1225,15 +1449,16 @@ \def\@@nline[#1]{\@ifnextchar[%] {\@@@nline[#1]}{\@@@nline[#1][1]}} \@ifdefinable\@@@nline{} -\def\@@@nline[#1][#2]#3{\count@ #3% +\def\@@@nline[#1][#2]#3{\count@ #3 + \def\TeXr@label{\TeXr@label@{nlinenum}}% \expandafter\TeXr@loop\@gobble{}#1\@@@ \xdef\Num{\the\TeXr@lab}% - \@tempcnta#2\relax% + \c@nlinenum#2\relax% \expandafter\@temptokena\expandafter{\Num - \global\advance\@tempcnta\@ne}% + \global\advance\c@nlinenum\@ne}% \advance\count@\m@ne \loop\@temptokena\expandafter{\the\@temptokena& - \Num \global\advance\@tempcnta\@ne}% + \Num \global\advance\c@nlinenum\@ne}% \advance\count@\m@ne \ifnum\count@>\z@ \repeat \the\@temptokena\ignorespaces} % \end{macrocode} @@ -1263,9 +1488,10 @@ % tokens |A a I i 1|, and is thrown away. |#1| will be a command % like |\Roman|. % \begin{macrocode} -\def\TeXr@label#1#2{% - \xdef\TeXr@the{\noexpand#1\@tempcnta}% - \TeXr@lab\expandafter{\the\TeXr@lab\TeXr@rus\TeXr@the}% +\def\TeXr@label@#1#2#3{% + \edef\TeXr@the{\noexpand#2{#1}}% + \TeXr@lab\expandafter + {\the\TeXr@lab\TeXr@rus\csname the#1\endcsname}% \advance\@tempcnta1 \TeXr@loop} % \end{macrocode} @@ -1312,11 +1538,11 @@ % \end{macrocode} % \begin{macrocode} \def\TeXr@loop@{% - \ifx A\TeXr@temp \def\@tempa{\TeXr@label\@Alph }\else - \ifx a\TeXr@temp \def\@tempa{\TeXr@label\@alph }\else - \ifx i\TeXr@temp \def\@tempa{\TeXr@label\@roman }\else - \ifx I\TeXr@temp \def\@tempa{\TeXr@label\@Roman }\else - \ifx 1\TeXr@temp \def\@tempa{\TeXr@label\@arabic}\else + \ifx A\TeXr@temp \def\@tempa{\TeXr@label\Alph }\else + \ifx a\TeXr@temp \def\@tempa{\TeXr@label\alph }\else + \ifx i\TeXr@temp \def\@tempa{\TeXr@label\roman }\else + \ifx I\TeXr@temp \def\@tempa{\TeXr@label\Roman }\else + \ifx 1\TeXr@temp \def\@tempa{\TeXr@label\arabic}\else \ifx \@sptoken\TeXr@temp \let\@tempa\TeXr@space \else \ifx \bgroup\TeXr@temp \let\@tempa\TeXr@group \else \ifx \@@@\TeXr@temp \let\@tempa\@gobble \else @@ -1337,5 +1563,148 @@ % \end{macrocode} % \end{macro} % +% \subsection{Diagonally separated column heads} +% +% \begin{macro}{\diaghead} +% Macro for diagonally separated column heads. +% \begin{macrocode} +\newcommand\diaghead{\@ifnextchar({\mcell@diaghead}{\mcell@diagheads}} +\@ifdefinable\mcell@diaghead{} +\def\mcell@diaghead(#1){\def\celldiagratio{(#1)}\mcell@diagheads} +% \end{macrocode} +% The default value of diagonal ratio. +% \begin{macrocode} +\newcommand\celldiagratio{(5,-2)} +% \end{macrocode} +% The building itself +% \begin{macrocode} +\newcommand\mcell@diagheads[3]{\hbox\bgroup\expandafter + \mcell@getcelldiagratios\celldiagratio\relax + \@tempswafalse +% \end{macrocode} +% depends of sign of ratios. +% \begin{macrocode} + \ifnum\mcell@Hratio<\z@\count@-\mcell@Hratio\relax + \edef\mcell@Hratio{\the\count@}\relax + \ifnum\mcell@Vratio<\z@\count@-\mcell@Vratio\relax + \edef\mcell@Vratio{\the\count@}\else\@tempswatrue + \fi + \else + \ifnum\mcell@Vratio<\z@\count@-\mcell@Vratio\relax + \edef\mcell@Vratio{\the\count@}\@tempswatrue\else + \fi + \fi + \settowidth\@tempdima{#1}\advance\@tempdima2\tabcolsep + \edef\mcell@diagH{\the\@tempdima}\divide\@tempdima\mcell@Hratio + \@tempdima\mcell@Vratio\@tempdima\edef\mcell@diagV{\the\@tempdima}% +% \end{macrocode} +% The |\unitlength| here is |\relaxed|, we use just real dimensions. +% \begin{macrocode} + \let\mcell@oriunitlength\unitlength\let\unitlength\relax + \kern-\tabcolsep\kern-\@wholewidth + \setbox\z@\hbox{\theadfont{\strut}}\@tempdima\dp\z@ +% \end{macrocode} +% The value of compensate vertical spacing defined here experimentally +% and equals to 2~default line thickness. +% \begin{macrocode} + \advance\@tempdima.8\p@%2\@wholewidth +% \end{macrocode} +% If |\makedgapedcells| switched on for the table there is +% compensate spacing. +% \begin{macrocode} + {\ifx\@classz\mcell@classz + \setbox\z@\hbox{#1}\ht\z@\z@\dp\z@\z@ + \mcell@MB@\z@\mcell@MBjot + \global\dimen@\@tempdima\global\@tempdimb\@tempdimb + \else\global\dimen@\z@\global\@tempdimb\z@\fi + }% + \advance\@tempdima\dimen@ + \edef\mcell@diagVoffset{\the\@tempdima}% + \@tempdima\mcell@diagV\advance\@tempdima-\mcell@diagVoffset + \advance\@tempdima-\@tempdimb + \edef\mcell@diagVcorr{\the\@tempdima}% + \noindent\nomakegapedcells\hbox{\begin{tabular}{@{}c@{}}% +% \end{macrocode} +% At least a~|\normallineskip| vertical space from top and bottom of cell. +% \begin{macrocode} + \ifdim\jot<2\p@\jot2\p@\fi + \if@tempswa +% \end{macrocode} +% For South-East or North-West directions. +% \begin{macrocode} + \begin{picture}(\mcell@diagH,\mcell@diagVcorr)(\z@,\mcell@diagVoffset)% + \put(\z@,\mcell@diagV){\makebox(\z@,\z@)[tl]% + {\edef\tempa{(\mcell@Hratio,-\mcell@Vratio)}\expandafter + \line\tempa{\mcell@diagH}}} + \put(\tabcolsep,\jot)% + {\makebox(\z@,\z@)[bl]{\theadfont + \let\cellset\theadset\makecell[bl]{\strut#2}}} + \@tempdima\mcell@diagH\advance\@tempdima-\tabcolsep + \@tempdimb\mcell@diagV\advance\@tempdimb-\jot + \put(\@tempdima,\@tempdimb)% + {\makebox(\z@,\z@)[tr]{\theadfont + \let\cellset\theadset\makecell[tr]{#3\strut}}} + \end{picture}% + \else +% \end{macrocode} +% For South-West or North-East directions. +% \begin{macrocode} + \begin{picture}(\mcell@diagH,\mcell@diagVcorr)(\z@,\mcell@diagVoffset)% + \put(\z@,\mcell@diagV){\makebox(\z@,\z@)[tl]% + {\edef\tempa{(\mcell@Hratio,\mcell@Vratio)}\expandafter + \line\tempa{\mcell@diagH}}} + \@tempdima\mcell@diagV\advance\@tempdima-\jot + \put(\tabcolsep,\@tempdima)% + {\makebox(\z@,\z@)[tl]{\theadfont + \let\cellset\theadset\makecell[tl]{\strut#3}}} + \@tempdima\mcell@diagH\advance\@tempdima-\tabcolsep + \put(\@tempdima,\jot)% + {\makebox(\z@,\z@)[br]% + {\theadfont + \let\cellset\theadset{\makecell[br]{#2\strut}}}} + \end{picture}% + \fi + \end{tabular}% + \kern-\tabcolsep\kern-\@wholewidth + }\let\unitlength\mcell@oriunitlength\egroup\par + \ifvmode\strut + \vspace*{-\normalbaselineskip}\vspace*{-\normallineskip} + \fi +} +% \end{macrocode} +% \end{macro} +% Macro used by previous one. Extracts ratios for defining of height of cell. +% \begin{macrocode} +\@ifdefinable\mcell@getcelldiagratios{} +\def\mcell@getcelldiagratios(#1,#2){\def\mcell@Hratio{#1}\def\mcell@Vratio{#2}} +% \end{macrocode} +% +% \subsection{The \cmd{\hline} and \cmd{\cline} with necessary thickness} +% +% \begin{macro}{\Xhline} +% The commands for |\hline| and |\cline| with necessary thickness. +% \begin{macrocode} +\newcommand\Xhline[1]{\noalign{\ifnum0=`}\fi\arrayrulewidth#1% + \hrule\@height\arrayrulewidth\futurelet\reserved@a\@xhline} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Xcline} +% \begin{macrocode} +\def\Xcline#1#2{\@Xcline#1;#2\@nil} +\def\@Xcline#1-#2;#3\@nil{% + \omit + \@multicnt#1% + \advance\@multispan\m@ne + \ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi + \@multicnt#2% + \advance\@multicnt-#1% + \advance\@multispan\@ne + \leaders\hrule\@height#3\hfill + \cr + \noalign{\vskip-#3}} +% \end{macrocode} +% \end{macro} +% % \Finale \endinput diff --git a/Master/texmf-dist/source/latex/makecell/tablists.dtx b/Master/texmf-dist/source/latex/makecell/tablists.dtx new file mode 100644 index 00000000000..0390c886b40 --- /dev/null +++ b/Master/texmf-dist/source/latex/makecell/tablists.dtx @@ -0,0 +1,793 @@ +% \iffalse +% +% tablists.dtx - tabulated list of short items. +% (c) 2007 Olga Lapko (Lapko.O@g23.relcom.ru) +% +% This program is provided under the terms of the +% LaTeX Project Public License distributed from CTAN +% archives in directory macros/latex/base/lppl.txt. +% +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{tablists.dtx} +% +%\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%\ProvidesPackage{tablists} +%<*package> + [2007/05/24 v0.0a (beta) Tabulated list of short items] +% +% +%<*batchfile> +\begingroup + +\input docstrip.tex + +\keepsilent +\askforoverwritefalse + +\generate{\file{tablists.sty}{\from{tablists.dtx}{package}}} + +\endgroup +% +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{paralist} +\usepackage{makecell} +\usepackage{tablists} +\IfFileExists{hyperref.sty}{\usepackage{hyperref}}{} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\makeatletter +\@beginparpenalty10000 +\widowpenalty10000 +\clubpenalty10000 +\makeatother +\providecommand*{\file}[1]{\texttt{#1}} +\providecommand*{\pkg}[1]{\textsf{#1}} +\providecommand*{\cls}[1]{\textsf{#1}} +\providecommand*{\env}[1]{\texttt{#1}} + +%\OnlyDescription +\begin{document} + \DocInput{tablists.dtx} + \PrintChanges +\end{document} +% +% \fi +% +% \CheckSum{447} +% +% \GetFileInfo{tablists.dtx} +% +% \DoNotIndex{\newcommand,\newenvironment} +% +% +% \title{The \textsf{tablists} package\thanks{This +% file has version number \fileversion, +% last revised \filedate.}} +% \author{% +% Olga Lapko\\ +% {\tt Lapko.O@g23.relcom.ru} } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% This package gives variant of environment for creating of list of short +% items in the way of tabular alignment. That could be useful for list of +% exercises in math educational literature. It allows to build one-level +% and two-level tabulated lists. +% \end{abstract} +% +% \tableofcontents +% +%\newpage +% \section{Building Commands} +% +% \DescribeMacro{tabenum} +% \DescribeMacro{\tabenumitem} +% \DescribeMacro{\item} +% The \env{tabenum} environment prints short items aligned in columns. +% +% Each item starts with |\tabenumitem| command; you may use the |\item| +% macro instead of |\tabenumitem| in this environment. +% First example of \env{tabenum} list---please note that you may set optional +% argument in the same way as in modified environments from \pkg{enumerate} +% or \pkg{paralist} packages: +%\par\begin{small}% +%\begin{verbatim} +%\begin{tabenum}[\bfseries1)]% +%\tabenumitem +%$z=\displaystyle\frac xy$; +%\tabenumitem +%$2^x=9;$\cr +% +%\tabenumitem +%$3^{2x+3}=16 $; +%\tabenumitem +%$z=2x^2+4y^2$;\par +%\item +%$u=\sqrt{x^2+y^2+z^2}$; +%\item +%$v=gt+\displaystyle\frac{g}{4}t$;\\[1ex] +%\item +%$u=2^{5x-3y+z}$; +%\item +%$w=(v+7)^2+(u-3)^2$; +% +% +%\item +%$5^x=\displaystyle\frac{4}{3} ;$ +%\item +%$z=(x+1)^2+y^2$;\\* +%\item +%$2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$ +%\item +%$t=5u^2+8v^2$; +%\end{tabenum} +%\end{verbatim} +%\end{small}% +% \begin{tabenum}[\bfseries1)]% +% \tabenumitem +% $z=\displaystyle\frac xy$; +% \tabenumitem +% $2^x=9;$\cr +% +% \tabenumitem +% $3^{2x+3}=4 $; +% \tabenumitem +% $z=2x^2+4y^2$;\par +% \item +% $u=\sqrt{x^2+y^2+z^2}$; +% \item +% $v=gt+\displaystyle\frac{g}{4}t$;\\[1ex] +% \item +% $u=2^{5x-3y+z}$; +% \item +% $w=(v+7)^2+(u-3)^2$; +% +% +% \item +% $5^x=\displaystyle\frac{4}{3} ;$ +% \item +% $z=(x+1)^2+y^2$;\\* +% \item +% $2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$ +% \item +% $t=5u^2+8v^2$; +% \end{tabenum} +% +% You may see that empty line (or |\par| command), |\\| command and |\cr| +% do the same: start a new row. The |\\| macro works like in array environment +% and allows optional argument with vertical correction. +% (Also the |\\*| command suppresses breaking between pages, see next example.) +% +% Please note that two or more |\par|'s +% |\cr|'s or |\\|'s (and also any combination of these three commands) +% create additional empty lines. +% +% +% \DescribeMacro{\notabenumitem} +% \DescribeMacro{\noitem} +% \DescribeMacro{\skipitem} +% On the next step you can wish to do the list like before more compact. The +% |\multicolumn| does not work here correctly\footnote{ +% Also the plain \TeX's commands like \cs{omit} and \cs{span}/\cs{multispan} commands, +% I think, need too complex code.}. At first you may use plain \TeX's +% command |\hidewidth| to hide width of widest column entry; then you may use +% other variant of |\tabenumitem|(|\item|) command---|\notabenumitem|(|\noitem|)---%^^A +% this command increases list entry, but does not create a new column; +% third command |\skipitem| allows you to skip +% one \env{tabenum} column\footnote{The \env{tabenum} column includes two columns: +% it works like \texttt{rl} columns in \env{tabular} environment. Thus, \cs{skipitem} +% equals to \texttt{\&\&} combination.}. +% Next example show usage of these three commands: +%\par\begin{small}% +%\begin{verbatim} +%\begin{tabenum}[\bfseries1)]% +%\tabenumitem +%$z=\displaystyle\frac xy$; +%\notabenumitem +%$2^x=9;$ +%\tabenumitem +%$3^{2x+3}=4 $. +%\tabenumitem +%$z=2x^2+4y^2$;\nopagebreak +% +%\item +%$u=\sqrt{x^2+y^2+z^2}$; +%\item +%$v=gt+\displaystyle\frac{g}{4}t$, +%\item +%$u=2^{5x-3y+z}$.\cr +%\item +%$w=(v+7)^2+(u-3)^2$; +%\item +%$5^x=\displaystyle\frac{4}{3} ;$ +%\item +%$z=(x+1)^2+y^2$;\\* +%\item +%$2+5+8+ \ldots +(3n+2)=155$, +% $n\in \mathrm{N};$\hidewidth\skipitem +%\item +%$t=5u^2+8v^2$; +%\end{tabenum} +%\end{verbatim} +%\end{small}% +% \begin{tabenum}[\bfseries1)]% +% \tabenumitem +% $z=\displaystyle\frac xy$; +% \notabenumitem +% $2^x=9;$ +% \tabenumitem +% $3^{2x+3}=4 $. +% \tabenumitem +% $z=2x^2+4y^2$;\nopagebreak +% +% \item +% $u=\sqrt{x^2+y^2+z^2}$; +% \item +% $v=gt+\displaystyle\frac{g}{4}t$, +% \item +% $u=2^{5x-3y+z}$.\cr +% \item +% $w=(v+7)^2+(u-3)^2$; +% \item +% $5^x=\displaystyle\frac{4}{3} ;$ +% \item +% $z=(x+1)^2+y^2$;\\* +% \item +% $2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$\hidewidth\skipitem +% \item +% $t=5u^2+8v^2$; +% \end{tabenum} +% +% +% \subsection{Spacing} +% +% Vertical spaces around tabulated list are equal to the list ones |\topsep+\partopsep|. +% +% Space between rows depends on the |\jot| value, like in \pkg{amsmath} environments +% like \env{align}, \pkg{gather} etc. +% +% \DescribeMacro{\tabenumsep} +% The horizontal spacing between items of list. It defined like: +% \begin{quote} +% |\newcommand\tabenumsep{\hskip1em}| +% \end{quote} +% The |\labelsep| parameter is used after item number. +% +% \subsection{The \env{tabenum} environment inside a proper list} +% +% \DescribeMacro{\tabenumindent} +% The |\tabenumindent| macro sets left margin of \env{tabenum}. That could be useful +% inside, e.g., a proper list environments like \env{enumerate} or \env{itemise}. +% It can be defined like horizontal space/skip or text. +% For example: +% \begin{quote} +% |\renewcommand\tabenumindent{\hskip\parindent}| +% \end{quote} +% or +% \begin{quote} +% |\renewcommand\tabenumindent{Word }| +% \end{quote} +% +% \DescribeMacro{\liststrut} +% This command can be useful after alone list number (and not only with +% \env{tabenum} environment). The command raises first line of next +% text block at the baseline of previous. Without any option it puts negative +% baselineskip. If there is a high element (any math sentence) in the first +% line of next text, it must be written in option, the height of this argument used for +% compensating skips argument without |$|'s. +% +% Here the combination of these two commands: +%\par\begin{small}% +%\begin{verbatim} +%\begin{enumerate}[\bfseries1)]% +%\item\renewcommand\tabenumindent{1)\hskip\labelsep}% +% \liststrut[\displaystyle\frac xy] +%\begin{tabenum}[a)]% +%... +%\end{verbatim}% +%\end{small}% +% \begin{enumerate}[\bfseries1)]% +% \item\renewcommand\tabenumindent{1)\hskip\labelsep}% +% \liststrut[\displaystyle\frac /y] +% \begin{tabenum}[a)]% +% \tabenumitem +% {$z=\displaystyle\frac xy$}; +% \notabenumitem +% {$2^x=9;$} +% \tabenumitem +% {$3^{2x+3}=4 $}. +% \tabenumitem +% {$z=2x^2+4y^2$};\nopagebreak +% +% \item +% $u=\sqrt{x^2+y^2+z^2}$; +% \item +% $v=gt+\displaystyle\frac{g}{4}t$, +% \item +% $u=2^{5x-3y+z}$.\\ +% \item +% $w=(v+7)^2+(u-3)^2$; +% \item +% $5^x=\displaystyle\frac{4}{3} ;$ +% \item +% $z=(x+1)^2+y^2$;\cr +% \item +% $2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$\hidewidth\skipitem +% \item +% $t=5u^2+8v^2$; +% \end{tabenum} +% \end{enumerate}% +% +% \subsection{The \env{subtabenum} environment: second level, variant I} +% +% \DescribeMacro{subtabenum} +% The second level of equations/exersizes list \env{subtabenum} based on \env{tabular} +% environment. +% +%\begin{small}% +%\begin{verbatim} +%\begin{tabenum}[\bfseries 1)]% +%\item +%\begin{subtabenum}[a)]% +%\tabenumitem +%$z=\displaystyle\frac xy$; +%\notabenumitem +%$2^x=9;$ +%\tabenumitem +%$3^{2x+3}=4 $. +%\tabenumitem +%$z=2x^2+4y^2$; +%\end{subtabenum} +% +%\item +%\begin{subtabenum}[a)]% +%\item +%$u=\sqrt{x^2+y^2+z^2}$; +%\item +%$v=gt+\displaystyle\frac{g}{4}t$, +%\item +%$u=2^{5x-3y+z}$.\\ +%\item +%$w=(v+7)^2+(u-3)^2$; +%\item +%$5^x=\displaystyle\frac{4}{3} ;$ +%\item +%$z=(x+1)^2+y^2$;\\ +%\item +%$2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$\hidewidth\strut\skipitem +%\item +%$t=5u^2+8v^2$; +%\end{subtabenum} +%\end{tabenum} +%\end{verbatim}% +%\end{small}% +% \begin{tabenum}[\bfseries 1)]% +% \tabenumitem +% \begin{subtabenum}[a)]% +% \tabenumitem +% $z=\displaystyle\frac xy$; +% \notabenumitem +% $2^x=9;$ +% \tabenumitem +% $3^{2x+3}=4 $. +% \tabenumitem +% $z=2x^2+4y^2$; +% \end{subtabenum} +% +% \tabenumitem +% \begin{subtabenum}[a)] +% \item +% $u=\sqrt{x^2+y^2+z^2}$; +% \item +% $v=gt+\displaystyle\frac{g}{4}t$, +% \item +% $u=2^{5x-3y+z}$.\\ +% \item +% $w=(v+7)^2+(u-3)^2$; +% \item +% $5^x=\displaystyle\frac{4}{3} ;$ +% \item +% $z=(x+1)^2+y^2$;\\ +% \item +% $2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$\hidewidth\strut\skipitem +% \item +% $t=5u^2+8v^2$; +% \end{subtabenum} +% \end{tabenum} +% Please note that |\hidewidth| skip is followed by the |\strut| command inside +% \env{subtabenum} environment: +% the skips at the ``edges'' of \env{tabular} columns doesn't work. +% +% \subsection{The \cs{subtabenumitem}/\cs{subitem} macros: second level, variant II} +% +% The previous example shows that columns were destroyed from one +% \env{subtabenum} environment to another. +% +% There is another variant for two-level tabulated list. If you use second option +% in \env{tabenum} environment, you may use |\subtabenumitem|/|\subitem| commands +% for the second level. +% +% \DescribeMacro{\subtabenumitem} +% \DescribeMacro{\subitem} +% If you put |\subitem| after |\item|, you get extra space between +% two numbers, created by |\tabenumsep| skip. The |\negtabenumsep| command +% cancels this skip. +%\par\begin{small}\openup-.75pt +%\begin{verbatim} +%\def\tabenumsep{\qquad} +%\begin{tabenum}[\bfseries 1)][a)]% +%\tabenumitem\negtabenumsep +%\subtabenumitem +%$z=\displaystyle\frac xy$; +%\nosubtabenumitem +%$2^x=9;$ +%\subtabenumitem +%$3^{2x+3}=4 $. +%\subtabenumitem +%$z=2x^2+4y^2$;\\ +%\startnumber{4}\startsubnumber{1} +%\item\negtabenumsep +%\subitem +%$u=\sqrt{x^2+y^2+z^2}$; +%\subitem +%$v=gt+\displaystyle\frac{g}{4}t$, +%\subitem +%$u=2^{5x-3y+z}$.\\\skipitem\negtabenumsep +%\subitem +%$w=(v+7)^2+(u-3)^2$; +%\subitem +%$5^x=\displaystyle\frac{4}{3} ;$ +%\subitem +%$z=(x+1)^2+y^2$;\\\skipitem\negtabenumsep +%\subitem +%$2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$\hidewidth\skipitem +%\subitem +%$t=5u^2+8v^2$; +%\end{tabenum} +%\end{verbatim}% +%\end{small}% +% \begin{tabenum}[\bfseries 1)][a)]% +% \tabenumitem\negtabenumsep +% \subtabenumitem +% $z=\displaystyle\frac xy$; +% \nosubtabenumitem +% $2^x=9;$ +% \subtabenumitem +% $3^{2x+3}=4 $. +% \subtabenumitem +% $z=2x^2+4y^2$;\\ +%\startnumber{4}\startsubnumber{1} +% \item\negtabenumsep +% \subitem +% $u=\sqrt{x^2+y^2+z^2}$; +% \subitem +% $v=gt+\displaystyle\frac{g}{4}t$, +% \subitem +% $u=2^{5x-3y+z}$.\\\skipitem\negtabenumsep +% \subitem +% $w=(v+7)^2+(u-3)^2$; +% \subitem +% $5^x=\displaystyle\frac{4}{3} ;$ +% \subitem +% $z=(x+1)^2+y^2$;\\\skipitem\negtabenumsep +% \subitem +% $2+5+8+ \ldots +(3n+2)=155$, $n\in \mathrm{N};$\hidewidth\skipitem +% \subitem +% $t=5u^2+8v^2$; +% \end{tabenum} +% There were used two commands |\startnumber| and |\startsubnumber| which set +% next start numbers for items of each of two levels. There is not restarting commands +% for numeration of second level inside environment, +% so, in this case, we need set new start of sublevel by hand. The +% |\startnumber|\footnote{The \cs{startnumber} command can be used inside any list +% environment.} +% allows you to divide \env{tabenum} environment and restart with necessary counter. +% You may still use the traditional |\setcounter{enum..}{..}| combination, +% if you know the level of your list and \env{tabenum}/\allowbreak\env{subtabenum} % environments. +% +% \subsection{Restoring of \cs{item} as command from list environments} +% +% \DescribeMacro{\restorelistitem} +% For the cases when standard lists appear inside \env{tablist}, you may +% restore original |\item| meaning. +% +% \StopEventually{}\clearpage +% +% \section{Code of package} +% +% First goes request of \pkg{makecell} package. +% \begin{macrocode} +\RequirePackage{makecell} +% \end{macrocode} +% +% The horizontal separation space between items/columns. +% \begin{macrocode} +\newcommand\tabenumsep{\hskip1em} +\newcommand\negtabenumsep{\settowidth\@tempdima{\tabenumsep}\hspace*{-\@tempdima}} +% \end{macrocode} +% +% \begin{macro}{\tabenumitem} +% \begin{macro}{\subtabenumitem} +% Definition of aligned items of `tabular'ed list +% \begin{macrocode} +\newcommand\tabenumitem{&\@ifnextchar[%] + {\TeXr@@tabenumitem{&}}% + {\TeXr@tabenumitem{&}{\@enumctr}}} +% \end{macrocode} +% The macro for second level of tabulated items. +% \begin{macrocode} +\newcommand\subtabenumitem{&\@ifnextchar[%] + {\TeXr@@tabenumitem{&}}% + {\TeXr@tabenumitem{&}{\@subenumctr}}} +% \end{macrocode} +% The macros for list and optional numeration. +% \begin{macrocode} +\newcommand\TeXr@tabenumitem[2]{% + \refstepcounter{#2}\@nameuse{label#2}#1} +\@ifdefinable\TeXr@@tabenumitem{} +\def\TeXr@@tabenumitem#1[#2]{{#2}#1} +% \end{macrocode} +% \end{macro}% +% \end{macro}% +% +% \begin{macro}{\notabenumitem} +% \begin{macro}{\nosubtabenumitem} +% Definition of not aligned items with emulation of spaces around. +% The starred form of |\notabenumitem| skips space before number. +% \begin{macrocode} +\newcommand\notabenumitem{\@ifstar + {\TeXr@notabenumitem{\@enumctr}}% + {\tabenumsep\TeXr@notabenumitem{\@enumctr}}} +% \end{macrocode} +% The macro for second level of tabulated items. +% \begin{macrocode} +\newcommand\nosubtabenumitem{\@ifstar + {\TeXr@notabenumitem{\@subenumctr}}% + {\tabenumsep\TeXr@notabenumitem{\@subenumctr}}} +\newcommand\TeXr@notabenumitem[1]{\@ifnextchar[%] + {\TeXr@@tabenumitem{\hskip\labelsep}}% + {\TeXr@tabenumitem{\hskip\labelsep}{#1}}} +% \end{macrocode} +% \end{macro}% +% \end{macro}% +% +% \begin{macro}{\skipitem} +% Command allows to skip column of items in tabulated list. +% One item column occupies two tabular ones and needs |&&| for skipping +% \begin{macrocode} +\newcommand\skipitem[1][1]{\count@=#1\multiply\count@2\advance\count@\@ne + \eline{\count@}} +% \end{macrocode} +% \end{macro}% +% +% \begin{macro}{\tabenumindent} +% If this command empty there is no any indentation. To set necessary indentation +% you may define this command as any text or horizontal skip. +% \begin{macrocode} +\newcommand\tabenumindent{} +% \end{macrocode} +% \end{macro}% +% +% \begin{environment}{tabenum} +% \begin{environment}{rtabenum} +% Start of definition of tabulated lists themselves---\env{tabenum} +% and \env{rtabenum}. +% They allow usage of optional argument in the same way as in +% \env{enumerate} environment from \pkg{paralist} package. +% The second definition, \env{rtabenum}, replaces |\Alph|/|\alph| +% numeration for \texttt{A}/texttt{a} entries by Russian +% |\Asbuk|/|\asbuk| numeration. +% \begin{macrocode} +\newenvironment{rtabenum}{\let\Alph\Asbuk\let\alph\asbuk + \begin{tabenum}}{\end{tabenum}} +% \end{macrocode} +% +% These environments use mechanism of optional argument from |\@enumlabel@| +% command. +% \begin{macrocode} +\newcommand\tabenum{\@ifnextchar[{\TeXr@tabenum@}{\TeXr@tabenum@[]}} +\@ifdefinable\TeXr@tabenum@{} +\def\TeXr@tabenum@[#1]{\@ifnextchar[{\TeXr@tabenum@@[#1]}{\TeXr@tabenum@@[#1][]}} +% \end{macrocode} +% +% These environments allow two options for item numeration and subitem numeration. +% \begin{macrocode} +\@ifdefinable\TeXr@tabenum@@{} +\long\def\TeXr@tabenum@@[#1][#2]{\par + \addpenalty\@beginparpenalty +% \end{macrocode} +% Vertical spaces around \env{tabenum} similar to spaces in list environments. +% The space above reduced by |\jot| to make it equal to the space below. +% \begin{macrocode} + \@topsepadd\topsep\advance\@topsepadd\partopsep + \advance\@topsepadd-\jot + \ifdim\@topsepadd<\z@\@topsepadd=\z@\fi + \if@nobreak\else\addvspace\@topsepadd\fi +% \end{macrocode} +% Interline spacing enlarged by |\jot| as in \pkg{amsmath}'s environments like +% \env{align} etc. +% \begin{macrocode} + \openup\jot +% \end{macrocode} +% Check for list depth and settings for first level. +% If it exceeded, the error message pops out. +% \begin{macrocode} + \ifnum\@enumdepth>\thr@@ + \@toodeep + \else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \setcounter{\@enumctr}\z@ + \let\item\tabenumitem\let\noitem\notabenumitem +% \end{macrocode} +% Check for list depth and settings for second level. +% If it exceeded, one level used. +% \begin{macrocode} + \ifnum\@enumdepth>\thr@@ + \PackageWarning{tablists}{tablist has one level}{}% + \let\subitem\tabenumitem\let\nosubitem\notabenumitem% + \else + \let\subitem\subtabenumitem\let\nosubitem\nosubtabenumitem + \advance\@enumdepth\@ne + \edef\@subenumctr{enum\romannumeral\the\@enumdepth}% + \setcounter{\@subenumctr}\z@ + \fi + \fi +% \end{macrocode} +% Checks for first option. If option is absent used default enumerating. +% \begin{macrocode} + \def\tempa{#1}\ifx\tempa\empty\else + \TeXr@enumlabel@{#1}{\@enumctr}\fi +% \end{macrocode} +% Checks for second option. If option is absent used default enumerating. +% \begin{macrocode} + \def\tempa{#2}\ifx\tempa\empty\else + \TeXr@enumlabel@{#2}{\@subenumctr}\fi + \@TeXr@tabenum + } +% \end{macrocode} +% There building macro for item/subitem labels. +% \begin{macrocode} +\newcommand\TeXr@enumlabel@[2]{% + \@tempcnta0 + \TeXr@lab{}\def\TeXr@label{\TeXr@label@{#2}}% + \expandafter\TeXr@loop\@gobble{}#1\@@@ + \ifnum\@tempcnta=1\else + \PackageWarning{tablists}{Incorrect label; no or multiple + counters.\MessageBreak The label is: \@gobble#1}% + \fi + \expandafter\edef\csname label#2\endcsname{\the\TeXr@lab}% + \expandafter\let\csname the#2\endcsname\TeXr@the% +} +% \end{macrocode} +% +% For column alignment is used |\halign| command of plain \TeX. +% In this case \env{tabenum}/\env{rtabenum} environments can run through a few pages. +% \begin{macrocode} +\newcommand{\@TeXr@tabenum}{\begingroup + \let\\\TeXr@arraycr\TeXr@tlist@arrayjot\let\par=\cr + \settowidth\@tempdima{\tabenumindent}% + \settowidth\@tempdimb{\tabenumsep}% + \halign\bgroup + \strut##\hskip\@tempdima + \hskip-\@tempdimb&&\tabenumsep\hfil##\hskip\labelsep&##\hfil\cr} +% \end{macrocode} +% +% Finish of \env{tabenum} environment. +% \begin{macrocode} +\def\endtabenum{\crcr\egroup\endgroup\gdef\tabenumindent{}\par + \addpenalty\@endparpenalty + \advance\@topsepadd\jot + \addvspace\@topsepadd} +% \end{macrocode} +% \end{environment}% +% \end{environment}% +% +% \begin{environment}{subtabenum} +% \begin{environment}{rsubtabenum} +% The tabulated list of second level. This list uses a real \env{tabular} +% environment. In this case it is placed in one page. This list as its +% parent environment use optional argument in the way of \pkg{paralist}'s +% \env{enumerate}. +% \begin{macrocode} +\newcommand\subtabenum[1][]{\TeXr@tlist@arrayjot + \setcounter{\@subenumctr}\z@ + \def\tempa{#1}\ifx\tempa\empty\else + \TeXr@enumlabel@{#1}{\@subenumctr}\fi + \let\item\subtabenumitem\let\noitem\nosubtabenumitem + \let\tabenumitem\subtabenumitem\let\notabenumitem\nosubtabenumitem + \let\subitem\subtabenumitem\let\nosubitem\nosubtabenumitem + \@TeXr@subtabenum + } +\newcommand{\@TeXr@subtabenum}{% + \hbox{\ifnum0=`}\fi + \begin{tabular}[t]{@{\tabenumindent}l@{}*{12}{r@{\hskip\labelsep}l@{\tabenumsep}}@{}}% + } +\def\endsubtabenum{\end{tabular}% + \ifnum0=`{\fi}\gdef\tabenumindent{}} +% \end{macrocode} +% +% Russified environment with |\Asbuk|/|\asbuk| counters instead of +% |\Alph|/|\alph|. +% \begin{macrocode} +\newenvironment{rsubtabenum}{\let\Alph\Asbuk\let\alph\asbuk + \begin{subtabenum}}{\end{subtabenum}} +% \end{macrocode} +% \end{environment}% +% \end{environment}% +% +% \begin{macro}{\arrayjot} +% The redefinition of |\\| command inside tabular to enlarge interline spacing +% by |\jot| value---to create analogous spacing to parent, \env{tabenum}, environment. +% \begin{macrocode} +\@ifdefinable\TeXr@rixarraycr{} +\let\TeXr@rixarraycr\TeXr@xarraycr +\newcommand\TeXr@Xarraycr{\@ifnextchar [ \TeXr@Xargarraycr {\@argarraycr[\jot]}} +\@ifdefinable\TeXr@Xargarraycr{} +\def\TeXr@Xargarraycr[#1]{\@tempdima\jot\advance\@tempdima#1% + \@argarraycr[\@tempdima]} +\@ifdefinable\TeXr@arrayjot{} +\def\TeXr@arrayjot [#1]{\let\@xarraycr\TeXr@Xarraycr\jot#1} +\def\noarrayjot{\let\@xarraycr\TeXr@rixarraycr} +\newcommand\TeXr@tlist@arrayjot {\@ifnextchar[\TeXr@arrayjot{\TeXr@arrayjot[\jot]}} +\AtBeginDocument{\let\arrayjot\TeXr@tlist@arrayjot} +\def\TeXr@arraycr{% + \relax\iffalse{\fi\ifnum 0=`}\fi\@ifstar{\vadjust{\penalty\@M}\@xarraycr}\@xarraycr} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\startnumber} +% The variant of |\setcounter{enum..}{..}| sentence. +% This command sets start number of current list (you must put this command +% inside of list or \env{tabenum} environment). +% The |\setcounter{enum..}{..}| sentence needs previous number, +% but |\startnumber| needs a real start number of a list. +% \begin{macrocode} +\newcommand\startnumber[1]{\count@#1\advance\count@-1% + \global\expandafter\csname c@\@enumctr\endcsname\count@} +\newcommand\startsubnumber[1]{\count@#1\advance\count@-1% + \global\expandafter\csname c@\@subenumctr\endcsname\count@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\liststrut} +% For the cases of \env{tablist} appears just after empty +% \env{enumerate} (or analogous) list entry. +% This command inserts negative |\baselineskip| and put start of +% `tabular'ed list on the baseline of list number. +% +% Optional argument allows to align baselines in the case of height +% elements in first line of \env{tablist} +% \begin{macrocode} +\newcommand\liststrut[1][]{\def\tempa{#1}\ifx\tempa\empty + \strut + \@tempdima-1.3\baselineskip + \vspace*{\@tempdima}\par% + \else\settoheight\@tempdima{{$#1$}}\strut + \advance\@tempdima\lineskip + \noindent\vrule\@height\@tempdima\@width\z@\@depth\z@ + \strut\advance\@tempdima.3\baselineskip + \vspace*{-\@tempdima}\par% + \fi + \@nobreaktrue} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\restorelistitem} +% For the cases when standard lists appear inside \env{tablist}. +% \begin{macrocode} +\let\TeXr@orilistitem\item +\newcommand\restorelistitem{\let\item\TeXr@orilistitem} +% \end{macrocode} +% \end{macro} +% +% \Finale +\endinput +%% +%% End of file tablists.dtx \ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/makecell/makecell.sty b/Master/texmf-dist/tex/latex/makecell/makecell.sty index eef95d7b4e6..cf7b88295d0 100644 --- a/Master/texmf-dist/tex/latex/makecell/makecell.sty +++ b/Master/texmf-dist/tex/latex/makecell/makecell.sty @@ -22,7 +22,7 @@ %% in the same archive or directory.) \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{makecell} - [2006/06/28 v0.1c Multilined Cells and Tabular Heads] + [2007/05/24 V0.1d Managing of Tab Column Heads and Cells] \RequirePackage{array} \newcommand\makecell{\@ifstar{\let\tabg@pe\gape\makecell@}% {\let\tabg@pe\cellgape\makecell@}} @@ -86,9 +86,9 @@ \@ifdefinable\mcell@multirow{} \def\mcell@multirow#1#2[#3]{}% \newcommand\mcell@l{\def\mcell@ii{l}\let\mcell@c\mcell@ic - \global\let\mcell@left\empty} + \global\let\mcell@left\relax} \newcommand\mcell@r{\def\mcell@ii{r}\let\mcell@c\mcell@ic - \global\let\mcell@right\empty} + \global\let\mcell@right\relax} \newcommand\mcell@t{\def\mcell@i{t}\let\mcell@c\mcell@iic} \newcommand\mcell@b{\def\mcell@i{b}\let\mcell@c\mcell@iic} \newcommand\mcell@{} @@ -119,10 +119,10 @@ \def\mcell@c{\def\mcell@ii{c}}% \mcell@ifinlist{#1}{l,r,t,b,c,}{\@nameuse{mcell@#1}}% {\def\mcell@ii{#1}\let\mcell@c\mcell@ic - \let\mcell@left\empty\let\mcell@right\empty}% + \let\mcell@left\relax\let\mcell@right\relax}% \mcell@ifinlist{#2}{l,r,t,b,c,}{\@nameuse{mcell@#2}}% {\def\mcell@ii{#2}\let\mcell@c\mcell@ic - \let\mcell@left\empty\let\mcell@right\empty}% + \let\mcell@left\relax\let\mcell@right\relax}% \ifx\@tempa\@tempc\mcell@c\fi } \def\mcell@@@tabular#1#2\@nil#3{%\mcell@mstyle @@ -151,11 +151,13 @@ \@ifdefinable\@setcellgapes{} \def\mcell@setgapes#1[#2]#3{\expandafter\let\csname mcell@#1@\expandafter\endcsname\csname mcell@mb@#2\endcsname - \@namedef{mcell@#1jot}{#3}} -\newcommand\mcell@mb@t[2]{\@tempdima\ht#1\advance\@tempdima#2% - \ht#1\@tempdima} -\newcommand\mcell@mb@b[2]{\@tempdimb\dp#1\advance\@tempdimb#2% - \dp#1\@tempdimb} + \@namedef{mcell@#1jot}{#3}% + \@namedef{mcell@#1negjot}{-#3}\@namedef{mcell@#1negtb}{#2}} +\newcommand\negjot[1]{{\jot\mcell@MBnegjot\gape[mcell@MBnegtb]{#1}}} +\newcommand\mcell@mb@t[2]{% + \@tempdima\ht#1\advance\@tempdima#2\ht#1\@tempdima} +\newcommand\mcell@mb@b[2]{% + \@tempdimb\dp#1\advance\@tempdimb#2\dp#1\@tempdimb} \newcommand\mcell@mb@tb[2]{\mcell@mb@t{#1}{#2}\mcell@mb@b{#1}{#2}} \@ifdefinable\@gape{}\@ifdefinable\@@gape{} \def\@gape[#1]{\mcell@setgapes{mb}[#1]{\jot}\@@gape} @@ -208,6 +210,7 @@ \loop \@temptokena\expandafter{\the\@temptokena&}% \advance\count@\m@ne \ifnum\count@>\z@\repeat \the\@temptokena\ignorespaces} +\newcounter{nlinenum} \newcommand\rnline{\gdef \TeXr@rus{\let\@Alph\@Asbuk\let\@alph\@asbuk}\@nline} \newcommand\nline{\gdef\TeXr@rus{}\@nline} @@ -217,22 +220,24 @@ \def\@@nline[#1]{\@ifnextchar[%] {\@@@nline[#1]}{\@@@nline[#1][1]}} \@ifdefinable\@@@nline{} -\def\@@@nline[#1][#2]#3{\count@ #3% +\def\@@@nline[#1][#2]#3{\count@ #3 + \def\TeXr@label{\TeXr@label@{nlinenum}}% \expandafter\TeXr@loop\@gobble{}#1\@@@ \xdef\Num{\the\TeXr@lab}% - \@tempcnta#2\relax% + \c@nlinenum#2\relax% \expandafter\@temptokena\expandafter{\Num - \global\advance\@tempcnta\@ne}% + \global\advance\c@nlinenum\@ne}% \advance\count@\m@ne \loop\@temptokena\expandafter{\the\@temptokena& - \Num \global\advance\@tempcnta\@ne}% + \Num \global\advance\c@nlinenum\@ne}% \advance\count@\m@ne \ifnum\count@>\z@ \repeat \the\@temptokena\ignorespaces} \newtoks\TeXr@lab \def\TeXr@qmark{?} -\def\TeXr@label#1#2{% - \xdef\TeXr@the{\noexpand#1\@tempcnta}% - \TeXr@lab\expandafter{\the\TeXr@lab\TeXr@rus\TeXr@the}% +\def\TeXr@label@#1#2#3{% + \edef\TeXr@the{\noexpand#2{#1}}% + \TeXr@lab\expandafter + {\the\TeXr@lab\TeXr@rus\csname the#1\endcsname}% \advance\@tempcnta1 \TeXr@loop} \def\TeXr@rus{} @@ -242,11 +247,11 @@ \def\TeXr@other#1{\TeXr@lab\expandafter{\the\TeXr@lab#1}\TeXr@loop} \def\TeXr@loop{\futurelet\TeXr@temp\TeXr@loop@} \def\TeXr@loop@{% - \ifx A\TeXr@temp \def\@tempa{\TeXr@label\@Alph }\else - \ifx a\TeXr@temp \def\@tempa{\TeXr@label\@alph }\else - \ifx i\TeXr@temp \def\@tempa{\TeXr@label\@roman }\else - \ifx I\TeXr@temp \def\@tempa{\TeXr@label\@Roman }\else - \ifx 1\TeXr@temp \def\@tempa{\TeXr@label\@arabic}\else + \ifx A\TeXr@temp \def\@tempa{\TeXr@label\Alph }\else + \ifx a\TeXr@temp \def\@tempa{\TeXr@label\alph }\else + \ifx i\TeXr@temp \def\@tempa{\TeXr@label\roman }\else + \ifx I\TeXr@temp \def\@tempa{\TeXr@label\Roman }\else + \ifx 1\TeXr@temp \def\@tempa{\TeXr@label\arabic}\else \ifx \@sptoken\TeXr@temp \let\@tempa\TeXr@space \else \ifx \bgroup\TeXr@temp \let\@tempa\TeXr@group \else \ifx \@@@\TeXr@temp \let\@tempa\@gobble \else @@ -255,6 +260,96 @@ \fi\fi\fi\fi\fi\fi\fi\fi \@tempa} \providecommand\TeXr@hook{} +\newcommand\diaghead{\@ifnextchar({\mcell@diaghead}{\mcell@diagheads}} +\@ifdefinable\mcell@diaghead{} +\def\mcell@diaghead(#1){\def\celldiagratio{(#1)}\mcell@diagheads} +\newcommand\celldiagratio{(5,-2)} +\newcommand\mcell@diagheads[3]{\hbox\bgroup\expandafter + \mcell@getcelldiagratios\celldiagratio\relax + \@tempswafalse + \ifnum\mcell@Hratio<\z@\count@-\mcell@Hratio\relax + \edef\mcell@Hratio{\the\count@}\relax + \ifnum\mcell@Vratio<\z@\count@-\mcell@Vratio\relax + \edef\mcell@Vratio{\the\count@}\else\@tempswatrue + \fi + \else + \ifnum\mcell@Vratio<\z@\count@-\mcell@Vratio\relax + \edef\mcell@Vratio{\the\count@}\@tempswatrue\else + \fi + \fi + \settowidth\@tempdima{#1}\advance\@tempdima2\tabcolsep + \edef\mcell@diagH{\the\@tempdima}\divide\@tempdima\mcell@Hratio + \@tempdima\mcell@Vratio\@tempdima\edef\mcell@diagV{\the\@tempdima}% + \let\mcell@oriunitlength\unitlength\let\unitlength\relax + \kern-\tabcolsep\kern-\@wholewidth + \setbox\z@\hbox{\theadfont{\strut}}\@tempdima\dp\z@ + \advance\@tempdima.8\p@%2\@wholewidth + {\ifx\@classz\mcell@classz + \setbox\z@\hbox{#1}\ht\z@\z@\dp\z@\z@ + \mcell@MB@\z@\mcell@MBjot + \global\dimen@\@tempdima\global\@tempdimb\@tempdimb + \else\global\dimen@\z@\global\@tempdimb\z@\fi + }% + \advance\@tempdima\dimen@ + \edef\mcell@diagVoffset{\the\@tempdima}% + \@tempdima\mcell@diagV\advance\@tempdima-\mcell@diagVoffset + \advance\@tempdima-\@tempdimb + \edef\mcell@diagVcorr{\the\@tempdima}% + \noindent\nomakegapedcells\hbox{\begin{tabular}{@{}c@{}}% + \ifdim\jot<2\p@\jot2\p@\fi + \if@tempswa + \begin{picture}(\mcell@diagH,\mcell@diagVcorr)(\z@,\mcell@diagVoffset)% + \put(\z@,\mcell@diagV){\makebox(\z@,\z@)[tl]% + {\edef\tempa{(\mcell@Hratio,-\mcell@Vratio)}\expandafter + \line\tempa{\mcell@diagH}}} + \put(\tabcolsep,\jot)% + {\makebox(\z@,\z@)[bl]{\theadfont + \let\cellset\theadset\makecell[bl]{\strut#2}}} + \@tempdima\mcell@diagH\advance\@tempdima-\tabcolsep + \@tempdimb\mcell@diagV\advance\@tempdimb-\jot + \put(\@tempdima,\@tempdimb)% + {\makebox(\z@,\z@)[tr]{\theadfont + \let\cellset\theadset\makecell[tr]{#3\strut}}} + \end{picture}% + \else + \begin{picture}(\mcell@diagH,\mcell@diagVcorr)(\z@,\mcell@diagVoffset)% + \put(\z@,\mcell@diagV){\makebox(\z@,\z@)[tl]% + {\edef\tempa{(\mcell@Hratio,\mcell@Vratio)}\expandafter + \line\tempa{\mcell@diagH}}} + \@tempdima\mcell@diagV\advance\@tempdima-\jot + \put(\tabcolsep,\@tempdima)% + {\makebox(\z@,\z@)[tl]{\theadfont + \let\cellset\theadset\makecell[tl]{\strut#3}}} + \@tempdima\mcell@diagH\advance\@tempdima-\tabcolsep + \put(\@tempdima,\jot)% + {\makebox(\z@,\z@)[br]% + {\theadfont + \let\cellset\theadset{\makecell[br]{#2\strut}}}} + \end{picture}% + \fi + \end{tabular}% + \kern-\tabcolsep\kern-\@wholewidth + }\let\unitlength\mcell@oriunitlength\egroup\par + \ifvmode\strut + \vspace*{-\normalbaselineskip}\vspace*{-\normallineskip} + \fi +} +\@ifdefinable\mcell@getcelldiagratios{} +\def\mcell@getcelldiagratios(#1,#2){\def\mcell@Hratio{#1}\def\mcell@Vratio{#2}} +\newcommand\Xhline[1]{\noalign{\ifnum0=`}\fi\arrayrulewidth#1% + \hrule\@height\arrayrulewidth\futurelet\reserved@a\@xhline} +\def\Xcline#1#2{\@Xcline#1;#2\@nil} +\def\@Xcline#1-#2;#3\@nil{% + \omit + \@multicnt#1% + \advance\@multispan\m@ne + \ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi + \@multicnt#2% + \advance\@multicnt-#1% + \advance\@multispan\@ne + \leaders\hrule\@height#3\hfill + \cr + \noalign{\vskip-#3}} \endinput %% %% End of file `makecell.sty'. diff --git a/Master/texmf-dist/tpm/makecell.tpm b/Master/texmf-dist/tpm/makecell.tpm index aa03b7438e0..5a52613bfd2 100644 --- a/Master/texmf-dist/tpm/makecell.tpm +++ b/Master/texmf-dist/tpm/makecell.tpm @@ -3,7 +3,7 @@ makecell Package - 2006/06/30 13:14:33 + 2007/05/23 18:28:00 karl Tabular column heads and multilined cells @@ -22,18 +22,22 @@ The Package offers also: 270854 - + texmf-dist/tex/latex/makecell/makecell.sty texmf-dist/tpm/makecell.tpm - + texmf-dist/doc/latex/makecell/README texmf-dist/doc/latex/makecell/makecell-rus.tex texmf-dist/doc/latex/makecell/makecell.pdf texmf-dist/doc/latex/makecell/makecell.xml +texmf-dist/doc/latex/makecell/tablists-rus.tex +texmf-dist/doc/latex/makecell/tablists.pdf +texmf-dist/doc/latex/makecell/tablists.xml - + texmf-dist/source/latex/makecell/makecell.dtx +texmf-dist/source/latex/makecell/tablists.dtx Package/makecell diff --git a/Master/texmf/lists/makecell b/Master/texmf/lists/makecell index eeceec0e045..97ed5083ecf 100644 --- a/Master/texmf/lists/makecell +++ b/Master/texmf/lists/makecell @@ -2,7 +2,11 @@ texmf-dist/doc/latex/makecell/README texmf-dist/doc/latex/makecell/makecell-rus.tex texmf-dist/doc/latex/makecell/makecell.pdf texmf-dist/doc/latex/makecell/makecell.xml +texmf-dist/doc/latex/makecell/tablists-rus.tex +texmf-dist/doc/latex/makecell/tablists.pdf +texmf-dist/doc/latex/makecell/tablists.xml texmf-dist/source/latex/makecell/makecell.dtx +texmf-dist/source/latex/makecell/tablists.dtx texmf-dist/tex/latex/makecell/makecell.sty texmf-dist/tpm/makecell.tpm -- cgit v1.2.3