From eb15e60943eb3e31e4fab8cdaf8b0178b640f496 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 8 Oct 2007 16:33:10 +0000 Subject: coollist update (6oct07) git-svn-id: svn://tug.org/texlive/trunk@5139 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/coollist/coollist.dtx | 176 +++++++++++++++++++-- .../texmf-dist/source/latex/coollist/coollist.ins | 78 ++++----- 2 files changed, 203 insertions(+), 51 deletions(-) (limited to 'Master/texmf-dist/source') diff --git a/Master/texmf-dist/source/latex/coollist/coollist.dtx b/Master/texmf-dist/source/latex/coollist/coollist.dtx index 55100f3c6e2..964cda37de4 100644 --- a/Master/texmf-dist/source/latex/coollist/coollist.dtx +++ b/Master/texmf-dist/source/latex/coollist/coollist.dtx @@ -2,7 +2,7 @@ % %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesPackage{coollist} -% [2006/08/14 v1 COntent Oriented LaTeX Lists] +% [2007/10/06 v1.1 COntent Oriented LaTeX Lists] %\RequirePackage{ifthen} %\RequirePackage{amsmath} %\RequirePackage{amssymb} @@ -21,10 +21,9 @@ % % \fi % -% \iffalse meta-comment -% remove this comment to get a checksum -% \CheckSum{0} -% \fi +% +% \CheckSum{74} +% % %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -43,6 +42,8 @@ %% Right brace \} Tilde \~} % % \changes{v1.0}{2006/08/14}{Initial Release} +% \changes{v1.1}{2001/10/06}{Added documentation for commands in separate section.} +% \changes{v1.1}{2001/10/06}{Added test cases/examples} % % \GetFileInfo{coollist.sty} % @@ -101,8 +102,138 @@ % to access certain elements of the list while neglecting others---essentially turning lists into a sort of % array. % -% Lists elements are accessed by specifying the position of the object within the list (the index of the item) -% Lists start indexing at |1|. +% List elements are accessed by specifying the position of the object within the list (the index of the item) and +% all lists start indexing at |1|. +% +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\section{Commands \& Descriptions} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \DescribeMacro{\setlistStop} +% \DescribeMacro{\setlistEnd} +% |\setlistStop|\marg{string} and |\setlistEnd|\marg{string} allow the user to set the end of a list +% `character' in the rare event that the default values actually appear in the list. +% |listStop| is used to identify when the list actually terminates, while |listEnd| forces the reading macro to +% take in the entire list (without both entities, errors would occur if macros were included in the list). +% +% The default values are +% +% \begin{tabular}{ll} +% |listStop| & \makeatletter |@@| \makeatother \\ +% |listEnd| & \makeatletter |@@@| \makeatother +% \end{tabular} +% +% +% +% \DescribeMacro{\listval} +% |\listval|\marg{list}\marg{index} returns the \meta{index} item of the comma delimited list \meta{list} +% or nothing if \meta{index} is outside the number of elements of the list. +% The first element of the list has index $1$. +% +% +% +% \DescribeMacro{\liststore} +% |\liststore|\marg{list}\marg{macro\_base\_name} stores the elements of comma delimited list \meta{list} +% in a set of macros having the first part of \meta{macro\_base\_name} and ending with the roman numermal +% index of the list. +% +% For example, |\liststore{1,2,3}{list}| would define |\listi|, |\listii|, and |\listiii| each +% holding |1|, |2|, |3|, respectively. +% +% +% +% \DescribeMacro{\listlen} +% |\listlen|\marg{list} returns the length of the comma delimited list \meta{list}, though it is not useful for +% storing this length. +% If you need to record the list's length for later use, it is better to use the function |\listlenstore|. +% +% +% +% \DescribeMacro{\listlenstore} +% |\listlenstore|\marg{counter}\marg{list} stores the length of the comma delimited list \meta{list} is the counter +% \meta{counter}. +% +% +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\section{Test Cases} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % +%\subsection{\texttt{$\backslash$listval}} +% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \DescribeMacro{\listval} +% +% \begin{tabular}{ll} +% |\listval{1,2,3,4}{0}| & \listval{1,2,3,4}{0} (the null string) \\ +% |$\listval{\alpha,\beta,\gamma}{2}$| & $\listval{\alpha,\beta,\gamma}{2}$ \\ +% |\listval{a,b,c}{4}| & \listval{a,b,c}{4} (the null string) +% \end{tabular} +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % +%\subsection{\texttt{$\backslash$liststore}} +% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \DescribeMacro{\liststore} +% +% \begin{tabular}{ll} +% |\liststore{1,2,3,4}{temp}| +% \\ +% |\tempi;\tempii;\tempiii;\tempiv| & \liststore{1,2,3,4}{temp} \tempi;\tempii;\tempiii;\tempiv +% \\[1cm] +% |\liststore{a_1,a_2,a_3,a_4}{temp}| +% \\ +% |$\tempi;\tempii;\tempiii;\tempiv$| & \liststore{a_1,a_2,a_3,a_4}{temp} $\tempi;\tempii;\tempiii;\tempiv$ +% \\[1cm] +% |\liststore{a,b}{temp}| +% \\ +% |\tempi;\tempii| & \liststore{a,b,c}{temp} \tempi;\tempii +% \end{tabular} +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % +%\subsection{\texttt{$\backslash$listlen}} +% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \DescribeMacro{\listlen} +% +% \begin{tabular}{ll} +% |\listlen{1,2,3,4,5}| & \listlen{1,2,3,4,5} \\ +% |\listlen{}| & \listlen{} \\ +% |\listlen{1,2}| & \listlen{1,2} \\ +% |\listlen{1}| & \listlen{1} +% \end{tabular} +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % +%\subsection{\texttt{$\backslash$listlenstore}} +% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \DescribeMacro{\listlen} +% |\newcounter{thelistlength}| \newcounter{thelistlength} +% +% \begin{tabular}{ll} +% |\listlenstore{thelistlength}{1,2,3,4,5}| +% \\ +% |\arabic{thelistlength}| & \listlenstore{thelistlength}{1,2,3,4,5} \arabic{thelistlength} +% \\[1cm] +% |\listlenstore{thelistlength}{}| +% \\ +% |\arabic{thelistlength}| & \listlenstore{thelistlength}{} \arabic{thelistlength} +% \\[1cm] +% \end{tabular} % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -200,6 +331,7 @@ % % % \begin{macro}{\listval} +% \changes{v1.1}{2007/10/06}{alter behavior to do nothing for empty lists} % % |\listval|\marg{comma\_deliminated\_list}\marg{index} % @@ -213,16 +345,35 @@ \newcommand{\listval}[2]{% % \end{macrocode} % -% start at the beginning of the list, so initialize |listpointer| +% check to see if the submitted list is empty. if it is, do nothing % % \begin{macrocode} - \setcounter{COOL@listpointer}{1}% +\ifthenelse{\equal{#1}{}}% + {% +% \end{macrocode} +% +% set the listpointer to zero because the list has no length +% \begin{macrocode} + \setcounter{COOL@listpointer}{0}% + }% +% \end{macrocode} +% +% Else +% +% \begin{macrocode} + {% +% \end{macrocode} +% +% start at the beginning of the list, so initialize |listpointer| +% +% \begin{macrocode} + \setcounter{COOL@listpointer}{1}% % \end{macrocode} % -% Assume that the target will not be found---it will be set to true by ``the gobbler" if it is +% Assume that the target will not be found---it will be set to true by ``the gobbler" if it is % % \begin{macrocode} -\setboolean{COOL@found}{false}% + \setboolean{COOL@found}{false}% % \end{macrocode} % % Now call the gobbler---since the user shouldn't be forced to submit the end character (in fact @@ -231,7 +382,8 @@ % the entire list is read in by |\COOL@listgobbler| we need the list stop `character' too. % % \begin{macrocode} -\COOL@listgobble[#2]#1,\COOL@listStop,\COOL@listEnd% + \COOL@listgobble[#2]#1,\COOL@listStop,\COOL@listEnd% + }% }% % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/coollist/coollist.ins b/Master/texmf-dist/source/latex/coollist/coollist.ins index fb4089a1c29..cede022fdb1 100644 --- a/Master/texmf-dist/source/latex/coollist/coollist.ins +++ b/Master/texmf-dist/source/latex/coollist/coollist.ins @@ -1,40 +1,40 @@ -%% -%% Copyright (C) 2005 by nsetzer -%% -%% This file may be distributed and/or modified under the -%% conditions of the Limited General Product License -%% - -\input docstrip.tex - -\keepsilent - -\usedir{tex/latex/coollist} - -\preamble - -This is a generated file - -This file may be distributed and/or modified under the -conditions of the Limited General Product License - -\endpreamble - - -\generate{\file{coollist.sty}{\from{coollist.dtx}{package}}} - -\obeyspaces -\Msg{****************************************************} -\Msg{* *} -\Msg{* To finish the installation you have to move the *} -\Msg{* following file into a directory searched by TeX: *} -\Msg{* *} -\Msg{* coollist.sty *} -\Msg{* *} -\Msg{* To produce the documentation run the file *} -\Msg{* coollist.dtx through LaTeX. *} -\Msg{* *} -\Msg{* *} -\Msg{****************************************************} - +%% +%% Copyright (C) 2005 by nsetzer +%% +%% This file may be distributed and/or modified under the +%% conditions of the Limited General Product License +%% + +\input docstrip.tex + +\keepsilent + +\usedir{tex/latex/coollist} + +\preamble + +This is a generated file + +This file may be distributed and/or modified under the +conditions of the Limited General Product License + +\endpreamble + + +\generate{\file{coollist.sty}{\from{coollist.dtx}{package}}} + +\obeyspaces +\Msg{****************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the *} +\Msg{* following file into a directory searched by TeX: *} +\Msg{* *} +\Msg{* coollist.sty *} +\Msg{* *} +\Msg{* To produce the documentation run the file *} +\Msg{* coollist.dtx through LaTeX. *} +\Msg{* *} +\Msg{* *} +\Msg{****************************************************} + \endbatchfile \ No newline at end of file -- cgit v1.2.3