% \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}
%</driver>
% \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