% \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