diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/generic/commado/commado.sty |
Initial commit
Diffstat (limited to 'macros/generic/commado/commado.sty')
-rw-r--r-- | macros/generic/commado/commado.sty | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/macros/generic/commado/commado.sty b/macros/generic/commado/commado.sty new file mode 100644 index 0000000000..25f5b687ad --- /dev/null +++ b/macros/generic/commado/commado.sty @@ -0,0 +1,90 @@ + \input plainpkg +% \NeedsTeXFormat{LaTeX2e}[1994/12/01] +\ProvidesPackage{commado}[2012/11/30 v0.11 iterate on CSL (UL)] +%% +%% Copyright (C) 2012 Uwe Lueck, +%% http://www.contact-ednotes.sty.de.vu +%% -- author-maintained in the sense of LPPL below -- +%% +%% This file can be redistributed and/or modified under +%% the terms of the LaTeX Project Public License; either +%% version 1.3c of the License, or any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% We did our best to help you, but there is NO WARRANTY. +%% +%% Please report bugs, problems, and suggestions via +%% +%% http://www.contact-ednotes.sty.de.vu +%% +\PushCatMakeLetterAt +%% == Auxiliaries == +\ifltx \else %% unless provided by LaTeX already + \long\def\@firstoftwo#1#2{#1} + \long\def\@secondoftwo#1#2{#1} +\fi +%% ... 4 less than +% \long\def\@firstsecondofthree#1#2#3{#1#2} +% \long\def\@firstthirdofthree#1#2#3{#1#3} +%% +%% == Processing a Comma-Separated List == +%% Most of the following code aims at removing the final +%% space in the comma-separated list. +%% % `\<cmd>' usually may either refer to a string starting +%% % with a backslash or to the \emph{token} with the name +%% % \qtdcode{<cmd>} +%% % (cf. "\TeX's Tokens" in the \ctanpkgref{dowith} documentation). +%% A variant of parsing as in 'fifinddo.sty' +%% (\ctanpkgdref{nicetext} bundle) and +%% \ctanpkgstyref{bitelist}\urlfoot{CtanPkgRef}{bitelist} +%% package is employed %% ^ 2012/11/30 +%% (while I am about to use different approaches there, +%% one may see here how, inspired by `\@ifblank' in +%% \ctanpkgstyref{url}).\urlfoot{CtanPkgRef}{url} +%% The purpose of the following `\edef' of +%% |\DoWithCSL{<cmd>}{<list>}| +%% is to get a space token after `\@firstoftwo' in the parameter text. +%% \pagebreak[3] +\let\CD@final@comma\relax +\edef\DoWithCSL#1#2{% + \CD@final@comma#2\CD@final@comma %% 2nd \ 2012/11/30 + \noexpand\@firstoftwo +% \noexpand\@firstsecondofthree + \space\CD@final@comma + \noexpand\@secondoftwo +% \noexpand\@firstthirdofthree + \noexpand\end{#1}{#2}} +\def\CD@final@comma#1 \CD@final@comma#2#3\end#4#5{% +% \expandafter\@secondfirstoftwo\expandafter{% +% #2{#1}#5}{\do@with@csl#4}% + #2{\do@with@csl{#4}#1}{\do@with@csl{#4}#5}% +%% ... 15 vs.\ 13: +% #2{\do@with@csl{#4}}{#1}{#5}% + ,\StopDoing,} +\catcode`\Q=3 %% not in #1 +\def\do@with@csl#1#2#3,{% +%% #1 is <cmd>. #2 takes the first token from (remaining) <list> +%% that is not a space token. Trying to enter a blank +%% list item would result in using the +%% \emph{next comma as a list item!}---The following +%% is an alternative to the analogue in 'domore.sty': + \unless@stop@doing#2#3\StopDoing + #1{#2#3}\do@with@csl{#1}\StopDoing Q} +\def\unless@stop@doing#1\StopDoing#2\StopDoing#3Q{#2} +%% ... somewhat replaces `\@secondfirstoftwo'---but will the +%% latter be dropped? `\unless@stop@doing' is specific +%% for `\StopDoing'---but can be used with `\DoWith' too. +%% TODO %% 2012/11/24 +\catcode`\Q=11 +%% +%% == Leaving the Package File == +\PopLetterCatAt +\endinput +%% +%% == \acro{VERSION HISTORY} == + +v0.1 2012/11/24f. started + 2012/11/26 code ready + 2012/11/27 documented +v0.11 2012/11/30 code typo corrected, removing final space, + doc. \urlfoot's |