summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/labelcas
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/labelcas')
-rw-r--r--Master/texmf-dist/source/latex/labelcas/labelcas.dtx1908
-rw-r--r--Master/texmf-dist/source/latex/labelcas/labelcas.ins54
2 files changed, 0 insertions, 1962 deletions
diff --git a/Master/texmf-dist/source/latex/labelcas/labelcas.dtx b/Master/texmf-dist/source/latex/labelcas/labelcas.dtx
deleted file mode 100644
index d3be1f91ac8..00000000000
--- a/Master/texmf-dist/source/latex/labelcas/labelcas.dtx
+++ /dev/null
@@ -1,1908 +0,0 @@
-% \iffalse meta-comment
-%
-% Copyright (C) 2006 by Ulrich Diez <ulrich.diez@alumni.uni-tuebingen.de>
-%
-% This Work may be distributed and/or modified under the conditions of
-% the LaTeX Project Public License, either version 1.3 of this license
-% or (at your option) any later version. The latest version of this
-% license is in:
-%
-% http://www.latex-project.org/lppl.txt
-%
-% and version 1.3 or later is part of all distributions of LaTeX version
-% 2003/12/01 or later.
-%
-% This Work has the LPPL maintenance status `author-maintained'.
-%
-% The Current Maintainer of this work is Ulrich Diez.
-%
-% This Work consists of the files labelcas.dtx, labelcas.ins, README and
-% the derived files labelcas.sty and labelcas.pdf.
-%
-% \fi
-%
-% \iffalse
-%<labelcas>\NeedsTeXFormat{LaTeX2e}
-%<labelcas>\ProvidesPackage{labelcas}
-%<labelcas> [2006/08/14 v1.12 check label-existence and fork accordingly]
-%<*driver>
-\documentclass[a4paper]{ltxdoc}
-\makeatletter
-\@ifdefinable\saved@wrindex{\global\let\saved@wrindex\@wrindex}
-\makeatother
-\usepackage[colorlinks, linkcolor=linkcolour, urlcolor=linkcolour
-%, draft%
-]{hyperref}
-\usepackage{color}
-\definecolor{linkcolour}{cmyk}{0.64,0,0.95,0.40}% <-Olive Green
-\usepackage[DefineLabelcase]{labelcas}
-\EnableCrossrefs
-\CodelineIndex
-\RecordChanges
-%\OnlyDescription
-\pagestyle{plain}%
-\setlength{\textheight}{52\baselineskip}
-\setlength{\topmargin}{\paperheight}
-\addtolength{\topmargin}{-\textheight}
-\setlength{\topmargin}{.5\topmargin}
-\addtolength{\topmargin}{-1in}
-\addtolength{\topmargin}{-\voffset}
-\addtolength{\topmargin}{-\headheight}
-\addtolength{\topmargin}{-\headsep}
-\setlength{\footskip}{\paperheight}
-\addtolength{\footskip}{-\textheight}
-\setlength{\footskip}{.15\footskip}
-\addtolength{\footskip}{\baselineskip}
-\makeatletter
-\@settopoint{\textheight}
-\@settopoint{\topmargin}
-\@settopoint{\footskip}
-\makeatother
-\begin{document}
- \DocInput{labelcas.dtx}
-\end{document}
-%</driver>
-% \fi
-%
-% \CheckSum{375}
-%
-% \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
-% Lower-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
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse meta-comment
-% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-% ! !
-% ! !!! In this TeX-input-file henceforth alignment-tab "&" is !!! !
-% ! !!! used for commenting- and line-breaking-purposes. !!! !
-% ! !
-% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-% \fi
-% \catcode`\&=14\relax
-%
-% \makeatletter
-%
-% & increase \MacroIndent so that 3-digit line-numbers don't stick out:
-%
-% \setlength\MacroIndent{1.5\MacroIndent}&
-%
-% & Add toc-entries and bookmarks to change-history and index, also put
-% & an 's' behind the word 'italic' in the index-prologue:
-%
-% \renewcommand\tableofcontents{&
-% \section*{&
-% \phantomsection
-% \Hy@raisedlink{\pdfbookmark[1]{\contentsname}{section.0}}&
-% \contentsname
-% \@mkboth{\MakeUppercase\contentsname}&
-% {\MakeUppercase\contentsname}&
-% }&
-% \@starttoc{toc}&
-% }&
-%
-% \renewcommand*\glossary@prologue{&
-% \section*{&
-% \phantomsection
-% \customaddcontentsline{toc}&
-% {section}&
-% {Change History}&
-% {\protect\numberline{\protect\null}}&
-% Change History&
-% \@mkboth{\MakeUppercase{Change History}}&
-% {\MakeUppercase{Change History}}&
-% }&
-% }&
-%
-% \renewcommand*\index@prologue{&
-% \section*{&
-% \phantomsection
-% \customaddcontentsline{toc}&
-% {section}&
-% {Index}&
-% {\protect\numberline{\protect\null}}&
-% Index&
-% \@mkboth{\MakeUppercase{Index}}&
-% {\MakeUppercase{Index}}&
-% }&
-% Numbers written in italics refer to the page where the
-% corresponding entry is described; numbers underlined refer to the
-% \ifcodeline@index code line of the \fi definition; numbers in roman
-% refer to the \ifcodeline@index code lines \else pages \fi where the
-% entry is used.&
-% }&
-%
-% \newcommand*\customaddcontentsline[4]{&
-% \begingroup
-% \let\label\@gobble
-% \let\textlatin\@firstofone
-% \ifx\@currentHref\@empty
-% \Hy@Warning{No destination for bookmark of
-% \string\customaddcontentsline,&
-% \MessageBreak destination is added}&
-% \phantomsection
-% \fi
-% \expandafter\ifx csname toclevel@#2\endcsname\relax
-% \begingroup
-% \def\Hy@tempa{#1}&
-% \ifx\Hy@tempa\Hy@bookmarkstype
-% \Hy@WarningNoLine{bookmark level for unknown #2 defaults to 0}&
-% \else
-% \Hy@Info{bookmark level for unknown #2 defaults to 0}&
-% \fi
-% \endgroup
-% \expandafter\gdef\csname toclevel@#2\endcsname{0}&
-% \fi
-% \edef\Hy@toclevel{\csname toclevel@#2\endcsname}&
-% \Hy@writebookmark{\csname the#2\endcsname}{#4#3}{\@currentHref}&
-% {\Hy@toclevel}{#1}&
-% \ifHy@verbose
-% \typeout{&
-% pdftex: bookmark at \the\inputlineno:
-% {\csname the#2\endcsname}{#4#3}{\@currentHref}{\Hy@toclevel}{#1}&
-% }&
-% \fi
-% \addtocontents{#1}&
-% {\protect
-% \customcontentsline{#2}{#3}&
-% {\thepage}{\@currentHref}{#4}}&
-% \endgroup
-% }&
-%
-% \newcommand*\customcontentsline[5]{&
-% \ifx\\#4\\
-% \csname l@#1\endcsname{#5#2}{#3}&
-% \else
-% \ifHy@linktocpage
-% \csname l@#1\endcsname{{#5#2}}&
-% {\hyper@linkstart
-% {link}{#4}{#3}&
-% \hyper@linkend
-% }&
-% \else
-% \csname l@#1\endcsname{#5&
-% \hyper@linkstart
-% {link}{#4}{#2}&
-% \hyper@linkend
-% }{#3}&
-% \fi
-% \fi
-% }&
-%
-% & Write the word '\if' from the tocs:
-% \DeclareRobustCommand\Outif{\string\if}&
-%
-% & Write the equal-sign in change-history:
-% \DeclareRobustCommand\ChgEq{$=$}&
-%
-% & Write macro-names with <prefix> into the margin:
-% \renewcommand*\PrintMacroName[1]{&
-% \strut
-% \ifx\pref\empty
-% \else
-% {\MacroFont\char`\\}&
-% {\footnotesize\meta{\pref}}&
-% \fi
-% \MacroFont\string #1&
-% }&
-%
-% & Write index-entries in main-text:
-% \newcommand*\MacroIndexEntry[1]{&
-% \@bsphack
-% {&
-% \let\special@index\index
-% \ifx\pref\empty
-% \SpecialIndex@{#1}{\encapchar usage}&
-% \else
-% \expandafter\SpecialIndex@
-% \expandafter{&
-% \expandafter<&
-% \pref!>#1}{\encapchar usage}&
-% \fi
-% }&
-% \@esphack
-% }&
-%
-% & Write macro-names with <prefix> into the index in macro-description:
-% \renewcommand*\SpecialMainIndex[1]{&
-% \@bsphack
-% \ifx\pref\empty
-% \SpecialIndex@{#1}{\encapchar main}&
-% \else
-% \expandafter\SpecialIndex@
-% \expandafter{&
-% \expandafter<&
-% \pref!>#1}{\encapchar main}&
-% \fi
-% \@esphack
-% }&
-%
-% & Write macro-names with <prefix> into the index in implementation:
-% \newcommand*\InsertPrefixedUsageToIndex[2]{&
-% \@bsphack
-% {&
-% \expandafter\edef
-% \expandafter\@tempa
-% \expandafter{&
-% \expandafter\string
-% \csname<#1!>#2\endcsname}&
-% \codeline@indextrue
-% \let\special@index\codeline@wrindex
-% \expandafter\SpecialIndex\expandafter{\@tempa}&
-% }&
-% \@esphack
-% }&
-%
-% & Compensate gap between macrocode-environments if no visible/
-% & printable material is between:
-% \newcommand*\macrocodeitemsep{0pt}&
-% \newcommand*\compensategap{&
-% \ifvmode\unskip\vskip\macrocodeitemsep\fi\@inlabeltrue
-% }&
-%
-% & Write macro-names with <prefix> into change-history:
-% \newcommand*\Patchsavedatmacroname{&
-% \ifx\pref\empty
-% \else
-% \expandafter\edef
-% \expandafter\saved@macroname
-% \expandafter{&
-% \expandafter\string
-% \csname<\pref!>\saved@macroname\endcsname}&
-% \fi
-% }&
-%
-% & The <prefix>-placeholder:
-% \newcommand*\pref{}&
-%
-% & Type stuff between angles in meta-format in index and change-history
-% & (\anglechange patches \dospecials which is called by \verb to make
-% & angle active also in verbatim-mode):
-% {&
-% \catcode`\<=13\relax
-% \catcode`\>=12\relax
-% \gdef\anglechange{&
-% \let\olddospecials\dospecials
-% \def\dospecials{&
-% \olddospecials
-% \catcode`\>=12
-% \catcode`\<=13
-% \def<####1>{\textrm{\meta{####1}}}&
-% }&
-% }&
-% }&
-%
-% & create document-title-date from package-filedate
-% \newcommand*\filedatetodate{%
-% \expandafter\@filedatetodate\filedate\@nil
-% }%
-% \@ifdefinable\@filedatetodate{&
-% \def\@filedatetodate#1/#2/#3\@nil{&
-% {&
-% \edef\@tempa{%
-% \ifcase#2\or January\or February\or March\or April\or May&
-% \or June\or July\or August\or September\or October&
-% \or November\or December&
-% \fi
-% \space\number#3, \number#1&
-% }&
-% \expandafter}\expandafter\date\expandafter{\@tempa}&
-% }&
-% }&
-%
-% & hyperref-support for index etc:
-%
-% \renewcommand*\SpecialIndex[1]{&
-% \@bsphack
-% \special@index{&
-% \expandafter\@gobble
-% \string #1\actualchar
-% \string\verb\quotechar*\verbatimchar\string#1\verbatimchar
-% \encapchar sourceusage&
-% }&
-% \@esphack
-% }&
-%
-% \newcommand*\@DefineIndexEntryFormat[4]{&
-% \expandafter\gdef\csname #4\endcsname##1{&
-% \csname @#4\endcsname##1,\@nnil,\@nnil,&
-% }&
-% \toks@{#1{#2{#3}}}&
-% \expandafter\xdef\csname @#4\endcsname##1,##2,{&
-% \noexpand\ifx\noexpand\@nnil##1&
-% \noexpand\expandafter\noexpand\@gobble
-% \noexpand\else
-% \noexpand\expandafter\noexpand\@firstofone
-% \noexpand\fi
-% {&
-% \noexpand\ifx\noexpand\@nnil##2&
-% \noexpand\expandafter\noexpand\@firstoftwo
-% \noexpand\else
-% \noexpand\expandafter\noexpand\@secondoftwo
-% \noexpand\fi
-% {&
-% \noexpand\bgroup
-% \the\toks@
-% \noexpand\lc@remleadspace,##1, ,,&
-% \csname @#4\endcsname##2,&
-% }&
-% {&
-% \noexpand\bgroup
-% \the\toks@
-% \noexpand\lc@remleadspace,##1, ,,&
-% , \csname @#4\endcsname##2,&
-% }&
-% }&
-% }&
-% }&
-%
-% \newcommand*\DefineIndexEntryFormat[3]{&
-% {&
-% \toks@{{\def\@tempa,##1,}}&
-% \edef\@tempa{\the\toks@}&
-% \toks@{{\egroup\link@sanitize##1-\@nil{#2}}}&
-% \edef\@tempb{\the\toks@}&
-% \expandafter\expandafter
-% \expandafter \@DefineIndexEntryFormat
-% \expandafter\@tempa
-% \@tempb{#3}{#1}&
-% }&
-% }&
-%
-% \@ifdefinable\link@sanitize{&
-% \def\link@sanitize#1-#2\@nil#3{\link@@sanitize#1,\@nil{#3}}&
-% }&
-% \@ifdefinable\link@@sanitize{&
-% \def\link@@sanitize#1,#2\@nil#3{\hyperlink{#3.#1}}&
-% }&
-% \global\let\@wrindex\saved@wrindex
-%
-% \DefineIndexEntryFormat{sourceusage}{line}{#1}&
-% \DefineIndexEntryFormat{main}{line}{\underline{#1}}&
-% \DefineIndexEntryFormat{usage}{page}{\textit{#1}}&
-% \DefineIndexEntryFormat{glossaryusage}{page}{#1}&
-%
-% \let\oldtheCodelineNo\theCodelineNo
-% \renewcommand*\theCodelineNo{&
-% \Hy@raisedlink{&
-% \hypertarget{line.\arabic{CodelineNo}}{}&
-% }&
-% \oldtheCodelineNo
-% }&
-%
-% \renewcommand*\changes@[3]{&
-% \protected@edef\@tempa{&
-% \noexpand\glossary{&
-% #1\levelchar
-% \ifx\saved@macroname\@empty
-% \space\actualchar\generalname
-% \else
-% \expandafter\@gobble\saved@macroname
-% \actualchar\string\verb\quotechar*\verbatimchar
-% \saved@macroname\verbatimchar
-% \fi
-% :\levelchar #3&
-% \noexpand\encapchar glossaryusage&
-% }&
-% }&
-% \@tempa\endgroup
-% \@esphack
-% }&
-%
-% \let\oldtheindex\theindex
-% \def\theindex{&
-% \oldtheindex
-% \let\oldbfseries\bfseries
-% \def\bfseries\hfil##1\hfil{&
-% \phantomsection
-% \oldbfseries\hfil##1\hfil
-% \Hy@raisedlink{\pdfbookmark[2]{##1}{index.##1}}&
-% }&
-% }&
-%
-% & suppress page-number of change-history-item:
-% \@ifdefinable\suppresspage{&
-% \DeclareRobustCommand\suppresspage[3]{\efill}%
-% }&
-%
-% & \nameref without hyperlink (to be used within \hyperref etc):
-% \@ifdefinable\nolinknameref{&
-% \DeclareRobustCommand*\nolinknameref[1]{&
-% \@safe@activestrue
-% \expandafter\real@setref
-% \csname r@#1\endcsname\@thirdoffive{#1}&
-% \@safe@activesfalse
-% }&
-% }&
-%
-% & end of hyperref-support-section
-%
-% \makeatother
-%
-% \changes{v1.0}{2006/01/04}%
-% {Initial public release.\suppresspage}
-% \changes{v1.01}{2006/01/06}%
-% {Fixed documentation-inaccuracies.\suppresspage}
-% \changes{v1.02}{2006/01/29}%
-% {Fixed documentation-inaccuracies.\suppresspage}
-% \changes{v1.04, v1.05}{2006/03/04 2006/03/09}%
-% {Fixed documentation-inaccuracies.\suppresspage}
-% \changes{v1.08}{2006/07/10}%
-% {DefineLabelcase-option declared within group for
-% \textsf{\mbox{hyperref}}-compatibility.\suppresspage}
-% \changes{v1.09}{2006/07/16}{Hyperlinks in documentation.\suppresspage}
-% \changes{v1.12}{2006/08/14}%
-% {Fixed documentation-inaccuracies.\suppresspage}
-% \DoNotIndex{\@empty,\@firstofone,\@firstoftwo,\@gobble,\@ifdefinable,&
-% \@nil,\@secondoftwo,\@sptoken,\@temptokena,\toks@,&
-% \begingroup,\csname,\DeclareOption,\DeclareRobustCommand,&
-% \def,\edef,\else,\endcsname,\endgroup,\expandafter,\fi,&
-% \futurelet,\global,\ifx,\let,\long,\newcommand,&
-% \ProcessOptions,\relax,\the}&
-%
-% \GetFileInfo{labelcas.sty}
-% \filedatetodate
-% \title{&
-% The \textsf{\mbox{labelcas}} package&
-% \thanks{&
-% \vtop{\noindent This document corresponds to
-% \mbox{\textsf{labelcas}~\fileversion}, dated \filedate.\newline
-% Usage and distribution under \textsf{\mbox{LPPL}}-conditions. See
-% \hyperref[sec6]{\emph{\ref*{sec6}~\nolinknameref{sec6}}} for more
-% details.&
-% }&
-% }&
-% }&
-% \author{Ulrich Diez}&
-% \maketitle
-%
-% \begin{abstract}
-% \noindent This \LaTeXe-package provides macros |\eachlabelcase| and
-% |\lotlabelcase| as a means of forking depending on whether specific
-% labels are defined in the current document.
-% \end{abstract}
-%
-% \tableofcontents
-%
-% \newpage
-% \section{Introduction}\label{sec1}
-%
-% The package's name \textsf{\mbox{labelcas}} is an eight-letter
-% abbreviation for the phrases ``label'' and ``case''.
-%
-% There are rare occasions where the author of a document would like to
-% have detected whether specific labels are defined/in use within the
-% document so that proper forking/referencing can take place.
-% This package provides the macros |\eachlabelcase| and |\lotlabelcase|
-% which might facilitate this task.
-%
-% A mechanism for branching depending on whether referencing-labels exist,
-% might be handy, e.g., when extracting a ``snippet'' from a large
-% document: In case that within the snippet a label/document-part is
-% referenced which is outside the snippet's scope, ugly `{\makeatletter
-% \nfss@text{\reset@font\bfseries??}}' will intersperse the resulting
-% output-file and warnings about undefined references will accumulate
-% within the log-file.
-%
-% By testing the label's existence, you can catch up the error and either
-% change the way of referencing (e.g., refer to the snippet's bibliography
-% instead) or completely suppress referencing for those cases. (By using
-% \textsf{\mbox{David Carlisle's}} \textsf{xr}- or
-% \textsf{\mbox{xr-hyper}}-package, you can make available labels of the
-% large document to the snippet also. A label not defined in the snippet
-% can be picked up from the large document\dots)
-%
-% \subsection{Space notation}
-%
-% When listing some piece of \TeX-source-code, you may need to visibly
-% distinguish word-separation from single space-characters. The symbol
-% \verb*+ + is chosen whenever it is important to give a visible
-% impression of a space-character in a (possibly ASCII-encoded) \TeX-&
-% input-file. {\verb*+ +}\nobreak\(_{x}\) does not represent a character
-% of an input-file but a token which occurs after tokenizing the input.
-% The token's category-code is \(x\), the character-number usually is
-% \(32\), which is the ASCII-number of the space-character.
-%
-% \section{Package-loading}\label{sec2}
-%
-% The package is to be loaded in the document-preamble by |\usepackage|.
-% \medskip
-%
-% |\usepackage{labelcas}|~~~or
-%
-% |\usepackage[DefineLabelcase]{labelcas}|.
-% \medskip
-%
-% The only package-option is |DefineLabelcase|. Its usage is described in
-% section~\hyperref[sec4]{\emph{\ref*{sec4}~\nolinknameref{sec4}}}.
-%
-% \newpage
-% \section{The macros}\label{sec3}
-%
-% \subsection{Basic usage}\label{sec3-1}
-%
-% \DescribeMacro{\eachlabelcase}
-% The macro |\eachlabelcase| iterates on a comma-separated list of
-% ``argument-triplets'', whereby each triplet specifies:~~\nobreak
-% {&
-% \makeatletter
-% \setbox\@tempboxa\hbox{3. Action if the label is undefined.}&
-% \@tempdima\dp\@tempboxa
-% \vtop{&
-% \noindent
-% 1. a label,\\
-% 2. action if the label is defined,\\
-% 3. action if the label is undefined.&
-% }&
-% \par\prevdepth\@tempdima
-% }&
-% \noindent
-% During the iteration, an ``action-queue'' is gathered up from these
-% specifications. After iterating, the ``action-queue'' will be executed.
-% You can also specify a new macro-name within an optional argument. If
-% you do so, the ``action-queue'' will not be executed but the macro will
-% be defined to perform the actions specified in the queue:
-% \bigskip
-%
-% \noindent
-% {&
-% \footnotesize
-% |\eachlabelcase[|\emph{\textbackslash macro}|]{|~~~\nobreak
-% \vtop{&
-% \noindent
-% \marg{label 1}\marg{action if label 1 defined}&
-% \marg{action if label 1 undefined}|,|\\
-% \marg{label 2}\marg{action if label 2 defined}&
-% \marg{action if label 2 undefined}| ,|\\
-% \hspace*{.275\hsize}\texttt{\dots}\\
-% \marg{label n}\marg{action if label n defined}&
-% \marg{action if label n undefined}\ \ \ |}|&
-% }&
-% }&
-% \bigskip
-%
-% \noindent Space-tokens which might surround the comma-separated triplets
-% will be gobbled.
-% \medskip
-%
-% \noindent
-% \DescribeMacro{\lotlabelcase}
-% The macro |\lotlabelcase| iterates on a comma-separated list of label-&
-% names and tests for each name if the corresponding label is defined.
-% Within the arguments you can specify actions for the cases:~~\nobreak
-% {&
-% \makeatletter
-% \setbox\@tempboxa\hbox{4. the list does not contain any label.}&
-% \@tempdima\dp\@tempboxa
-% \vtop{&
-% \noindent
-% 1. all labels are defined,\\
-% 2. none of the labels is defined,\\
-% 3. some labels are defined/some are undefined,\\
-% 4. the list does not contain any label.&
-% }&
-% \par\prevdepth\@tempdima
-% }&
-% \noindent
-% Like in |\eachlabelcase|, you can also specify a new macro-name within
-% an optional argument. If you do so, the action will not be executed but
-% the macro will be defined to perform the action:
-% \bigskip
-%
-% \noindent
-% {&
-% \footnotesize
-% |\lotlabelcase[|\emph{\textbackslash macro}|]|\nobreak
-% \vtop{&
-% \noindent
-% |{|\meta{label 1}|,|\meta{label 2}|,|\texttt{\dots}&
-% |,|\meta{label n}|}|\\
-% \marg{actions if all labels are defined}\\
-% \marg{actions if all labels are undefined}\\
-% \marg{actions if some labels are defined and
-% some labels are undefined}\\
-% \marg{actions if list is empty}&
-% }&
-% }&
-% \bigskip
-%
-% \noindent Space-tokens which might surround the label-names will be
-% gobbled. One level of braces will also be gobbled so that you can also
-% test for labels the names of which start or end by a space or contain
-% some comma.
-%
-% \subsubsection{Possible problems}\label{sec3-1-1}
-%
-% \begin{itemize}
-% \item Testing for labels which are \textbf{not definable} according to
-% the syntax-rules will lead to \TeX-internal error-messages and
-% deliver unexpected/unwanted results!
-% \item ``Label- and referencing management'' in \LaTeXe\ is done by
-% means of the aux-file, the content of which is gathered and
-% corrected during several \LaTeX-runs, and which does not yet
-% exist in the first run. So, in the first run, all labels from the
-% current document are undefined---when applying |\...labelcase| to
-% labels of the current document, it will in any case take at least
-% two \LaTeX-runs until everything matches out correctly.
-% \item It was mentioned that, in the macros |\eachlabelcase| and
-% |\lotlabelcase|, space-tokens which surround the argument-&
-% triplets/label-names, will be gobbled. There are situations where
-% the category-code of the input-character \verb*+ + is changed---&
-% e.g., due to a preceding |\obeyspaces| or when using some package
-% where the encoding of \TeX-input-files is played around with.
-% In such cases, the input-character \verb*+ + does not get
-% tokenized as space-token any more but as some \verb*+ +\nobreak&
-% \(_{\neq10}\)-token, so that in such cases, triplets/labels in
-% these macros may, in the input-file, not be surrounded by
-% \verb*+ +\nobreak-\nobreak characters.\\
-% If you want to have these \verb*+ +\nobreak\(_{\neq10}\)-tokens
-% gobbled anyway, you can easily achieve this by defining another
-% set of these macros where the appropriate token, e.g.,
-% \verb*+ +\nobreak\(_{13}\)~(active-space) instead of
-% \verb*+ +\nobreak\(_{10}\)~(space-token), is taken into account.
-% How this is done, is described in
-% section~\hyperref[sec4]{\emph{\ref*{sec4}~\nolinknameref{sec4}}}.
-% \item In the very unlikely case{\makeatletter\footnote{The case is very
-% unlikely because it is a convention in \LaTeXe\ to leave
-% {\verbatim@font\string\@nil} undefined. If labels are defined in
-% terms of macros, these macros are to expand to something that can
-% be evaluated by a {\verbatim@font\string\csname\dots\string&
-% \endcsname}-construct. If they are to expand to something, they
-% must be defined\dots}} that you wish |\lotlabelcase| (or variants
-% thereof\thinspace\footnote{\(\rightarrow\)&
-% \hyperref[sec4]{\emph{\ref*{sec4}~\nolinknameref{sec4}}}.})&
-% to scan for the label |\@nil|, |\@nil|
-% has to be put in braces and/or has to be surrounded by space-&
-% tokens. This is because the internal iterator-macros terminate on
-% |\@nil|.
-% \item Internally token-registers are used and temporary-macros get
-% defined. So the macros |\eachlabelcase| and |\lotlabelcase| (and
-% all variants&
-% \addtocounter{footnote}{-1}\addtocounter{Hfootnote}{-1}&
-% \footnotemark) are not ``full-expandable''. This means, |\edef| or
-% |\write| or control-sequences the like which evaluate their
-% arguments fully, cannot be applied to them.\footnote{In any case it
-% cannot be ensured that all arguments supplied are
-% ``full-expandable''\dots} Therefore they are declared robust.
-% \item |\lotlabelcase| and |\eachlabelcase| can be nested. Inner
-% instances will be gathered into the action-queues of outer
-% instances.
-% \item If the optional argument for defining a \meta{macro} rather than
-% having the action(s) executed immediately, is used, \meta{macro}
-% will only be defined within the group where the |\...labelcase|-&
-% command occurred.\\
-% |\@ifdefinable| is involved into the assignment-process, so that
-% an ``already-defined''-error is forced whenever an existing macro
-% is about to be overridden.\\
-% If you need it global, you can achieve this---after having
-% \meta{macro} defined---by something like
-% |\global\let\macro=\macro|.\\
-% If you need a ``long''-macro, you can achieve this---after having
-% \meta{macro} defined---by something like:\\
-% |\expandafter\renewcommand\expandafter\macro\expandafter{\macro}|&
-% .\\
-% But think about it. These macros don't take arguments!
-% \item If you use the arguments of |\lotlabelcase|/|\eachlabelcase| for
-% defining other referencing-labels, things can easily get very
-% confusing\dots
-% \end{itemize}
-%
-% \newpage
-% \subsubsection{Examples}\label{sec3-1-2}
-% \smallskip
-%
-% Within this document, only the labels |sec1|, |sec2|, |sec3|, |sec4|,
-% |sec5| and |sec6| are defined.\bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% \noindent
-% |\lotlabelcase{sec1, sec2 , {sec3} ,sec4}|\\
-% | {All labels are defined.}|\\
-% | {None of the labels is defined.}|\\
-% | {Some labels are defined, some not.}|\\
-% | {The list is empty.}|\medskip\\
-% yields:
-% \lotlabelcase{sec1, sec2 , {sec3} ,sec4}
-% {All labels are defined.}
-% {None of the labels is defined.}
-% {Some labels are defined, some not.}
-% {The list is empty.}&
-% \end{minipage}
-% \bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% \noindent
-% |\lotlabelcase{sec1, sec2 , UNDEFINED ,sec3}|\\
-% | {All labels are defined.}|\\
-% | {None of the labels is defined.}|\\
-% | {Some labels are defined, some not.}|\\
-% | {The list is empty.}|\medskip\\
-% yields:
-% \lotlabelcase{sec1, sec2 , UNDEFINED ,sec3}
-% {All labels are defined.}
-% {None of the labels is defined.}
-% {Some labels are defined, some not.}
-% {The list is empty.}&
-% \end{minipage}
-% \bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% \noindent
-% |\lotlabelcase{UNDEF1, UNDEF2 , {UNDEF3} ,UNDEF4}|\\
-% | {All labels are defined.}|\\
-% | {None of the labels is defined.}|\\
-% | {Some labels are defined, some not.}|\\
-% | {The list is empty.}|\medskip\\
-% yields:
-% \lotlabelcase{UNDEF1, UNDEF2 , {UNDEF2-1} ,UNDEF2-2}
-% {All labels are defined.}
-% {None of the labels is defined.}
-% {Some labels are defined, some not.}
-% {The list is empty.}&
-% \end{minipage}
-% \bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% \noindent
-% |\lotlabelcase{ ,, ,}|\\
-% | {All labels are defined.}|\\
-% | {None of the labels is defined.}|\\
-% | {Some labels are defined, some not.}|\\
-% | {The list is empty.}|\medskip\\
-% yields:
-% \lotlabelcase{ ,, ,}
-% {All labels are defined.}
-% {None of the labels is defined.}
-% {Some labels are defined, some not.}
-% {The list is empty.}&
-% \end{minipage}
-% \bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% \noindent
-% |\lotlabelcase[\test]{sec1, sec2 , UNDEFINED ,sec3}|\\
-% | {All labels are defined.}|\\
-% | {None of the labels is defined.}|\\
-% | {Some labels are defined, some not.}|\\
-% | {The list is empty.}|\medskip\\
-% defines: |\test|:{
-% \lotlabelcase[\test]{sec1, sec2 , UNDEFINED ,sec3}
-% {All labels are defined.}
-% {None of the labels is defined.}
-% {Some labels are defined, some not.}
-% {The list is empty.}&
-% {\makeatletter\verbatim@font\meaning\test}}
-% \end{minipage}
-% \bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% \noindent
-% |\eachlabelcase{ {sec1}{sec1 defined/}{sec1 undefined/},|\\
-% | {sec2}{sec2 defined/}{sec2 undefined/} ,|\\
-% | {UNDEF}{UNDEF defined/}{UNDEF undefined/} ,|\\
-% | {sec3}{sec3 defined.}{sec3 undefined.} }|&
-% \medskip\\
-% yields:
-% \eachlabelcase{ {sec1}{sec1 defined/}{sec1 undefined/},
-% {sec2}{sec2 defined/}{sec2 undefined/} ,
-% {UNDEF}{UNDEF defined/}{UNDEF undefined/} ,
-% {sec3}{sec3 defined.}{sec3 undefined.} }&
-% \end{minipage}
-% \bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% \noindent
-% |\eachlabelcase[\test]{ {sec1}{sec1 defined/}{sec1 undefined/},|\\
-% | {sec2}{sec2 defined/}{sec2 undefined/} ,|\\
-% | {UNDEF}{UNDEF defined/}{UNDEF undefined/} ,|&
-% \\
-% | {sec3}{sec3 defined.}{sec3 undefined.} }|&
-% \medskip\\
-% {&
-% \eachlabelcase[\test]{ {sec1}{sec1 defined/}{sec1 undefined/},
-% {sec2}{sec2 defined/}{sec2 undefined/} ,
-% {UNDEF}{UNDEF defined/}{UNDEF undefined/} ,
-% {sec3}{sec3 defined.}{sec3 undefined.} }&
-% defines: |\test|:
-%
-% \hskip\leftmargini
-% \vtop{{\makeatletter\verbatim@font\meaning\test}}&
-% }&
-% \end{minipage}
-%
-% \newpage
-% \subsection{&
-% \texorpdfstring
-% {&
-% Advanced usage (brace-matching, {\ttfamily\selectfont\Outif&
-% \dots\thinspace}, defining macros)&
-% }&
-% {&
-% Advanced usage (brace-matching, {\textbackslash if\dots}, defining
-% macros)&
-% }&
-% }
-%
-% \begin{itemize}
-% \item Braces within the arguments/comma-separated items must be
-% balanced.
-% \item Within the ``action-parts'' of |\eachlabelcase|'s argument-&
-% triplets from which the action-queue is formed, balancing
-% {\makeatletter\verbatim@font\mbox{\string\if\dots\string\else
-% \dots\string\fi}}-constructs is not required. But ensured must
-% be, that in the resulting action-queue everything is balanced
-% correctly in any case.
-% \bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% \noindent
-% |\eachlabelcase{ {sec1} {\if aa} {\if ab},|\\
-% | {sec2} {a is a\else} {a is b\else} ,|\\
-% | {sec3}{a is not a\fi.}{a is not b\fi.} }|&
-% \smallskip\\
-% is gathered to: |\if aaa is a\else a is not a\fi.|\\
-% Executing the queue yields:
-% \eachlabelcase{ {sec1} {\if aa} {\if aa},
-% {sec2} {a is a\else} {a is b\else} ,
-% {sec3}{a is not a\fi.}{a is not b\fi.}, }&
-% \end{minipage}
-% \bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% \noindent
-% |\eachlabelcase{ {sec1} {\if aa} {\if ab},|\\
-% | {UNDEF} {a is a\else} {a is b\else} ,|\\
-% | {sec3} {a is not a\fi.}{a is not b\fi.} }|&
-% \smallskip\\
-% is gathered to: |\if aaa is b\else a is not a\fi.|\\
-% Executing the queue yields:
-% \eachlabelcase{ {sec1} {\if aa} {\if aa},
-% {UNDEF} {a is a\else} {a is b\else} ,
-% {sec3} {a is not a\fi.}{a is not b\fi.}, }&
-% \end{minipage}
-% \medskip
-%
-% When trying such obscure things, you must be aware that brace/&
-% group-nesting is independent from conditional-nesting! You might
-% easily end up with a ``forgotten-endgroup''-error or some
-% ``extra |\else|\dots''-error when placing such things into other
-% {\makeatletter\verbatim@font\mbox{\string\if\dots\string\else
-% \dots\string\fi}}-constructs!
-%
-% \item If you wish to use the arguments/comma-separated items for
-% defining macros, no extra |#|-level is needed as everything is
-% accumulated within/pro\-ces\-sed by means of token-registers.
-% \bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% \noindent
-% |\eachlabelcase{ {sec1}{\def\testA#1#2#3}{\def\testB#1#2#3},|\\
-% | {sec2} {{#1,#2,#3}} {{#3,#2,#1}} }|&
-% \smallskip\\
-% is gathered to: |\def\testA#1#2#3{#1,#2,#3}|~~~.\\
-% Executing the queue defines:&
-% {&
-% \eachlabelcase{ {sec1}{\def\testA#1#2#3}{\def\testB#1#2#3},
-% {sec2} {{#1,#2,#3}} {{#3,#2,#1}} }
-% \vtop{&
-% |\testA|: {\makeatletter\verbatim@font\meaning\testA}\\
-% |\testB|: {\makeatletter\verbatim@font\meaning\testB}~~~.&
-% }&
-% }&
-% \end{minipage}
-% \bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% |\eachlabelcase{ {sec1}{\def\testA#1#2#3}{\def\testB#1#2#3},|\\
-% | {UNDEF} {{#1,#2,#3}} {{#3,#2,#1}} }|&
-% \smallskip\\
-% is gathered to: |\def\testA#1#2#3{#3,#2,#1}|~~~.\\
-% Executing the queue defines:&
-% {&
-% \eachlabelcase{ {sec1}{\def\testA#1#2#3}{\def\testB#1#2#3},
-% {UNDEF} {{#1,#2,#3}} {{#3,#2,#1}} }
-% \vtop{&
-% |\testA|: {\makeatletter\verbatim@font\meaning\testA}\\
-% |\testB|: {\makeatletter\verbatim@font\meaning\testB}~~~.&
-% }&
-% }&
-% \end{minipage}
-% \medskip
-% \end{itemize}
-%
-% \newpage
-% \section{&
-% \texorpdfstring
-% {Package option---Different spaces, different se\-pa\-ra\-tors}&
-% {Package option\textemdash Different spaces, different separators}&
-% }&
-% \label{sec4}
-%
-% Above was said that space-tokens (\verb*+ +\nobreak\(_{10}\)-tokens)
-% which surround the comma-list-arguments of |\eachlabelcase| and
-% |\lotlabelcase| are gobbled.
-%
-% There are circumstances where the category-code which gets assigned to
-% the input-character \verb*+ + during the tokenizing-process is changed,
-% and thus the gobbling-mechanism is broken for these input-characters.
-% E.g., due to a preceding |\obeyspaces| or when using some package where
-% the encoding of \TeX-input-files is played around with.
-% This is because space-gobbling internally is implemented by means of
-% macros with \verb*+ +\nobreak\(_{10}\)-token-delimited arguments.
-%
-% In normal circumstances, \verb*+ +\nobreak-characters in the input-file
-% which trail a control-word do not get tokenized when \TeX\ ``reads'' an
-% input. So it's kind of a problem to get space-tokens right behind the
-% name of a control-word, e.g., as first items of the parameter-text when
-% defining macros. A space within braces \verb*+{ }+ does get tokenized as
-% it is not preceded by a control-word, but by a brace-character. So a
-% solution to the problem is: Define a macro which takes an (en-braced)
-% argument and use this macro for defining the desired control-word
-% whereby the argument is placed right behind the name of the control-&
-% word which is about to be defined. (Henceforth the term \emph{definer&
-% -macro} is applied in order to call special attention to the fact that
-% defining other control-sequences is the only purpose of such a macro.)
-% A \verb*+ + as the definer-macro's argument gets tokenized while this
-% argument is used as the first item of the desired control-word's
-% parameter-text \(\rightarrow\) the first item of the desired control-&
-% word's parameter-text will be a space-token.
-%
-% \DescribeMacro{\DefineLabelcase}
-% In case of the \textsf{\mbox{labelcas}}-package, the problem of getting
-% space-tokens as delimiters right behind control-words, is also solved by
-% implementing such a definer-macro. It is called |\DefineLabelcase| and
-% used for defining both the user-level-macros |\eachlabelcase| and
-% |\lotlabelcase| and the internal-macros |\lc@iterate|,
-% |\lc@remtrailspace| and |\lc@remleadspace|.
-% Usually it is discarded/destroyed when defining these macros has taken
-% place. But you can specify the package-option |DefineLabelcase|. When
-% you do so, |\DefineLabelcase| does not get destroyed, and you can use it
-% for creating ``new variants'' of |\eachlabelcase| and |\lotlabelcase|
-% plus internals while specifying proper space-tokens and separators.
-% |\DefineLabelcase| takes four mandatory arguments:
-% \bigskip
-%
-% \noindent
-% |\DefineLabelcase|\marg{space}\marg{delimiter}\marg{prefix}&
-% \marg{global-indicator}
-%
-% \begin{description}
-% \item[\textnormal{\meta{space}}] specifies the argument-surrounding
-% token that is to be removed. Usually surrounding space-tokens
-% shall be discarded. Usually:~\verb*+ +\nobreak\(_{10}\)~(space).
-% \item[\textnormal{\meta{delimiter}}] specifies the delimiter/separator.
-% Usually the argument-triplets or label-lists are comma-separated.
-% Usually:~\verb*+,+\nobreak\(_{12}\)~(comma).
-% \item[\textnormal{\meta{prefix}}] specifies the macro-name-prefix. You
-% cannot assign the same name at the same time to different
-% control-sequences. Therefore, when creating new variants of
-% |\eachlabelcase| and |\lotlabelcase|, you have to specify a prefix
-% which gets inserted at the beginning of the macro-name. E.g.,
-% specifying the prefix |FOO| leads to defining the macro-set:\\
-% |\FOOeachlabelcase|\MacroIndexEntry{\<prefix!>eachlabelcase},
-% |\FOOlotlabelcase|\MacroIndexEntry{\<prefix!>lotlabelcase}
-% (user-macros) and\\
-% |\FOOlc@iterate|\MacroIndexEntry{\<prefix!>lc@iterate},
-% |\FOOlc@remtrailspace|\MacroIndexEntry{\<prefix!>lc@remtrailspace},
-% |\FOOlc@remleadspace|\MacroIndexEntry{\<prefix!>lc@remleadspace}
-% (internal).\\
-% The original versions are just called |\eachlabelcase|,
-% |\lotlabelcase|, |\lc@iterate|\dots (without a prefix in the
-% macro-name). Usually:~(empty).
-% \item[\textnormal{\meta{global-indicator}:}] In case that this argument
-% contains only the token |\global|, defining the new macro-set takes
-% place in terms of |\global|. Otherwise the scope is restricted to
-% the current grouping-level. Usually:~\verb*+\global+.
-% \end{description}
-%
-% Don't try weird things like specifying the same token both for
-% \meta{space} and \meta{delimiter}, or leaving any of those empty, or
-% specifying any of those to |\@nil| (,~which is reserved for terminating
-% the recursion)---unless you like error-messages! Please only specify
-% tokens which may be used for separating parameters from each other
-% within the parameter-text of a definition! Also please specify the
-% \meta{prefix} only in terms of letter-character-tokens! \textbf{There is
-% no extra error-checking implemented on these things!}
-% \bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% \noindent
-% |\begingroup|\\
-% |\obeyspaces|\\
-% |\endlinechar=-1\relax%|\\
-% \verb*|\DefineLabelcase{ }{/}{SPACEOBEYED}{local}%|\\
-% \verb*|\SPACEOBEYEDlotlabelcase[\test]{sec1/ sec2 / UNDEF /sec3}%|\\
-% \verb*|{All labels are defined.}%|\\
-% \verb*|{None of the labels is defined.}%|\\
-% \verb*|{Some labels are defined, some not.}%|\\
-% \verb*|{The list is empty.}%|\\
-% |\global\let\test\test%|\\
-% |\endgroup|\medskip\\
-% defines: |\test|:
-%\begingroup
-%\obeyspaces
-%\endlinechar=-1\relax&
-%\DefineLabelcase{ }{/}{SPACEOBEYED}{local}&
-%\SPACEOBEYEDlotlabelcase[\test]{sec1/ sec2 / UNDEF /sec3}&
-%{All labels are defined.}&
-%{None of the labels is defined.}&
-%{Some labels are defined, some not.}&
-%{The list is empty.}&
-%\global\let\test\test&
-%\endgroup
-% {&
-% \makeatletter
-% \def\spacereplace#1 #2\@nil{&
-% #1&
-% \def\@tempa{#2}&
-% \ifx\@tempa\@empty
-% \expandafter\@gobble
-% \else
-% \expandafter\@firstofone
-% \fi
-% {\char32\spacereplace#2\@nil}&
-% }&
-% \verbatim@font
-% \expandafter\expandafter
-% \expandafter\spacereplace
-% \expandafter\meaning
-% \expandafter\test
-% \space\@nil
-% }&
-% \global\let\test\undefined
-% \end{minipage}
-% \bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% \noindent
-% |\begingroup|\\
-% |\endlinechar=-1\relax|\\
-% |\DefineLabelcase{-}{/}{BAR}{local}%|\\
-% |\BARlotlabelcase[\test]{sec1/-sec2----/--%|\\
-% | ---/sec3}%|\\
-% |{All labels are defined.}%|\\
-% |{None of the labels is defined.}%|\\
-% |{Some labels are defined, some not.}%|\\
-% |{The list is empty.}%|\\
-% |\global\let\test\test|\\
-% |\endgroup|\medskip\\
-% defines: |\test|:
-% \begingroup
-% \endlinechar=-1\relax
-% \DefineLabelcase{-}{/}{BAR}{local}&
-% \BARlotlabelcase[\test]{sec1/-sec2----/--&
-% ---/sec3}&
-% {All labels are defined.}&
-% {None of the labels is defined.}&
-% {Some labels are defined, some not.}&
-% {The list is empty.}&
-% \global\let\test\test
-% \endgroup
-% {\makeatletter\verbatim@font\meaning\test}&
-% \global\let\test\undefined
-% \end{minipage}
-% \bigskip
-%
-% \noindent
-% \begin{minipage}{\linewidth}
-% \noindent
-% |\begingroup|\\
-% |\endlinechar=-1\relax|\\
-% |\DefineLabelcase{.}{/}{DOT}{local}%|\\
-% |\DOTeachlabelcase{.{sec1}..{sec1 defined/}{sec1 undefined/}/%|\\
-% |..................{sec2}...{sec2 defined/}...{sec2 undefined/}./..%|\\
-% |..................{UNDEF}{UNDEF defined/}...{UNDEF undefined/}./%|\\
-% |..................{sec3}{sec3 defined.}{sec3 undefined.}..}|\\
-% |\endgroup|\medskip\\
-% yields:
-% \begingroup
-% \endlinechar=-1\relax
-% \DefineLabelcase{.}{/}{DOT}{local}&
-% \DOTeachlabelcase{.{sec1}..{sec1 defined/}{sec1 undefined/}/&
-%...................{sec2}...{sec2 defined/}...{sec2 undefined/}./..&
-%...................{UNDEF}{UNDEF defined/}...{UNDEF undefined/}./&
-%...................{sec3}{sec3 defined.}{sec3 undefined.}..}&
-% \endgroup
-% \end{minipage}
-%
-% \newpage
-% \section{Thanks, Acknowledgements}\label{sec5}
-% \begin{itemize}
-% \item Many thanks to all who encouraged me in making the attempt of
-% getting things in this package less error-prone.
-% \item Thanks to everybody who took the macro-writing challenges
-% presented in the \textsf{\mbox{INFO-\TeX}-`Around the bend'}-&
-% department which was initiated back in the early 90's by
-% \textsf{\mbox{Michael Downes}} and regularly took place under his
-% guidance. His summaries of the solutions are archived and online
-% available at \href{http://www.tug.org/tex-archive/info/aro-bend/}&
-% {\textsf{http://www.tug.org/tex-archive/info/aro-bend/}}. The
-% information therein helps a great deal in understanding \TeX\ in
-% general and in learning about basic problem-solving-strategies---&
-% e.g., the removal of leading- and trailing spaces from an (almost)
-% arbitrary token-sequence (exercise.015/answer.015).
-% \item Thanks to everybody who provides valuable information at the
-% \TeX-news-groups and mailing-lists. I received great help
-% especially at \textsf{\mbox{comp.text.tex}}, where my---often
-% trivial---questions were answered patiently again and again.
-% \item Thanks to the \LaTeX-package authors, not only for providing means
-% of achieving special typesetting-goals, but also for hereby
-% delivering informative programming-examples.
-% \textsf{\mbox{labelcas}} actually was inspired by
-% \textsf{\mbox{David Carlisle's}} \textsf{xr}- and
-% \textsf{\mbox{xr-hyper}}-packages which make available the labels
-% of other \LaTeX-documents to the current one.
-% \end{itemize}
-%
-% \section{Legal Notes}\label{sec6}
-%
-% \textsf{\mbox{labelcas}}---Copyright (C) 2006 by \mbox{Ulrich Diez}
-% (\href{mailto:ulrich.diez@alumni.uni-tuebingen.de}&
-% {\textsf{ulrich.diez@alumni.uni-tuebingen.de}})
-% \medskip
-%
-% \textsf{\mbox{labelcas}} may be distributed and/or modified under the
-% conditions of the \textsf{\LaTeX\ Project Public Licence (LPPL)}, either
-% version 1.3 of this license or (at your option) any later version.&
-% \footnote{The latest version of this license is in
-% \href{http://www.latex-project.org/lppl.txt}&
-% {\textsf{http://www.latex-project.org/lppl.txt}}
-% and version 1.3 or later is part of all distributions of \LaTeX\ version
-% 2003/12/01 or later.}
-% The author and Current Maintainer of this Work is \mbox{Ulrich Diez}.
-% This Work has the LPPL maintenance status `author-maintained' and
-% consists of the files \textsf{\mbox{labelcas.dtx}},
-% \textsf{\mbox{labelcas.ins}}, \textsf{\mbox{README}} and the derived
-% files \textsf{\mbox{labelcas.sty}} and \textsf{\mbox{labelcas.pdf}}.
-% \medskip
-%
-% Usage of the \textsf{\mbox{labelcas}}-package is at your own risk. There
-% is no warranty---neither for the documentation nor for any other part of
-% the \textsf{\mbox{labelcas}}-package. If something breaks, you usually
-% may keep the pieces.
-%
-% \StopEventually{&
-% \let\PrintChanges\relax
-% \PrintIndex
-% }
-%
-% \newpage
-% \section{Implementation}
-%
-% \subsection{A note about removing leading and trailing spaces}
-%
-% The matter of removing trailing spaces from an (almost) arbitrary
-% token-sequence is elaborated in detail by \textsf{\mbox{Michael Downes},
-% `Around the Bend \#15, answers'}, a summary of internet-discussion which
-% took place under his guidance primarily at the \textsf{\mbox{INFO-\TeX}
-% list}, but also at \textsf{\mbox{comp.text.tex}} (usenet) and via
-% private e-mail; December 1993. Online archived at
-% \href{http://www.tug.org/tex-archive/info/aro-bend/answer.015}&
-% {\textsf{http://www.tug.org/tex-archive/info/aro-bend/answer.015}}.
-%
-% One basic approach suggested therein is using \TeX's scanning of
-% delimited parameters in order to detect and discard the ending space of
-% an argument:
-% \begin{quote}
-% \dots scan for a pair of tokens: a space-token and some well-chosen
-% bizarre token that can't possibly occur in the scanned text. If you
-% put the bizarre token at the end of the text, and if the text has a
-% trailing space, then \TeX's delimiter matching will match at that
-% point and not before, because the earlier occurrences of space don't
-% have the requisite other member of the pair.
-%
-% Next consider the possibility that the trailing space is absent:
-% \TeX\ will keep on scanning ahead for the pair \meta{space}&
-% \meta{bizarre} until either it finds them or it decides to give up and
-% signal a `Runaway argument?' error. So you must add a stop pair to
-% catch the runaway argument possibility: a second instance of the
-% bizarre token, preceded by a space. If \TeX\ doesn't find a match at
-% the first bizarre token, it will at the second one.
-% \end{quote}
-%
-% (Look up the macros |\KV@@sp@def|, |\KV@@sp@b|, |\KV@@sp@c| and
-% |\KV@@sp@d| in \textsf{\mbox{David Carlisle's} \mbox{keyval}-package}
-% for an interesting variation on this approach.)
-% \medskip
-%
-% When scanning for parameters ~~~|##1|\meta{space}\meta{bizarre}|##2|&
-% \meta{B1}~~~ the sequence:
-% \\
-% \meta{stuff where to remove trail-space}\meta{bizarre}\meta{space}&
-% \meta{bizarre}\meta{B1}&
-% \\
-% , you can fork two cases:
-% \begin{enumerate}
-% \parskip=0ex\relax
-% \item Trailing-space:\\
-% |##1|=\meta{stuff where to remove trail-space}, but with removed
-% space. (And possibly one removed brace-level!)\\
-% |##2| = \meta{space}\meta{bizarre}.
-% \item No trailing-space:\\
-% |##1|=\meta{stuff where to remove trail-space}\meta{bizarre}.\\
-% |##2| is empty.
-% \end{enumerate}
-%
-% So forking can be implemented depending on the emptiness of |##2|.
-%
-% You can easily prevent the brace-removal in the first case, e.g., by
-% adding (and later removing) something (e.g., a space-token) in front of
-% the \meta{stuff where to remove trail-space}.
-%
-% You can choose \meta{B1}=\meta{bizarre}\meta{space}.
-% \medskip
-%
-% \textsf{`Around the Bend \#15, answers'} also presents a similar way for
-% the removal of leading spaces from an (almost) arbitrary token-sequence:
-% \begin{quote}
-% The latter method is perhaps most straightforwardly done as a mirror-&
-% image of the method for removing a trailing space: make the delimiter
-% \meta{bizarre}\meta{space}, and call the macro [\dots] by putting
-% \meta{bizarre} before the scanned text and a stop pair \meta{bizarre}&
-% \meta{space} after it, in case a leading space is not present
-% \end{quote}
-%
-% When scanning for parameters ~~~|##1|\meta{bizarre}\meta{space}|##2|&
-% \meta{B2}~~~ the sequence:
-% \\
-% \meta{bizarre}\meta{stuff where to remove lead-space}\meta{bizarre}&
-% \meta{space}\meta{B2}&
-% \\
-% , you can fork two cases:
-% \begin{enumerate}\parskip=0ex\relax
-% \item Leading space:\\
-% |##1|= is empty.\\
-% |##2| = \meta{stuff where to remove lead-space}\meta{bizarre}&
-% \meta{space} (but with a leading-space removed from
-% \meta{stuff where to remove lead-space}).
-% \item No leading space:\\
-% |##1|=\meta{bizarre}\meta{stuff where to remove lead-space}.\\
-% |##2| is empty.
-% \end{enumerate}
-%
-% Thus forking can be implemented depending on the emptiness of either of
-% the two arguments.
-%
-% You can choose \meta{B2}=\meta{bizarre}\meta{bizarre}.
-%
-% \subsection{Flow of work}
-%
-% \begin{sloppypar}
-% Both |\|\meta{prefix}|eachlabelcase| and |\|\meta{prefix}|lotlabelcase|
-% iterate on (e.g., comma-) separated lists:
-% \settowidth\labelwidth{5.}&
-% \leftmargini=\labelwidth\relax
-% \advance\leftmargini\labelsep\relax
-% \advance\leftmargini\parindent\relax
-% \begin{enumerate}
-% \parskip=0ex\relax\itemsep=.25\baselineskip\relax
-% \item The list is passed as an argument to the user-macro.
-% \item The list is passed from the user-macro to
-% |\|\meta{prefix}|lc@iterate|\MacroIndexEntry{\<prefix!>lc@iterate}
-% whereby a leading \meta{space} is added for brace-removal-&
-% protection.
-% \item |\|\meta{prefix}|lc@iterate|\MacroIndexEntry{\<prefix!>lc@iterate}
-% recursively iterates on the list-items until the item
-% \meta{space}|\@nil| occurs:&
-% {\def\labelenumii{\theenumii)}&
-% \settowidth\labelwidth{a)}&
-% \leftmarginii=\labelwidth\relax
-% \advance\leftmarginii\labelsep\relax
-% \begin{enumerate}
-% \parskip=0ex\relax\itemsep=0ex\relax
-% \makeatletter\@topsep=0ex\relax\makeatother
-% \item The item will be passed to |\|\meta{prefix}|lc@remtrailspace|&
-% \MacroIndexEntry{\<prefix!>lc@remtrailspace}. Here trailing
-% \meta{space} is removed recursively. If after removing
-% trailing-space the result is empty, you can conclude that
-% everything (incl the previously inserted ``brace-removal-&
-% protection-\meta{space}'' was removed as either the item was
-% empty or consisted of a sequence of \meta{space}. If the
-% result does not imply an empty item, it will be passed to
-% \item |\|\meta{prefix}|lc@remleadspace|&
-% \MacroIndexEntry{\<prefix!>lc@remleadspace} where leading
-% \meta{space} (also the previously inserted one) is removed
-% recursively. After that |\|\meta{prefix}|lc@remleadspace|&
-% \MacroIndexEntry{\<prefix!>lc@remleadspace} passes the item to
-% the macro
-% \item |\@tempa| for further processing. |\@tempa| at this stage will
-% be locally defined within the user-macro. |\@tempa| initiates
-% the actual work which (hopefully!) results in adding the
-% appropriate action-sequence to the queue which is represented by
-% |\@temptokena|.
-% \item Before processing the next item in the next iteration-round, a
-% leading \meta{space} for brace-removal-protection will be added
-% in front of the remaining list by |\|\meta{prefix}|lc@iterate|&
-% \MacroIndexEntry{\<prefix!>lc@iterate}.
-% \end{enumerate}\unskip}&
-% \item After iterating the list within the user-macro, the routine
-% |\lc@macrodefiner|\MacroIndexEntry{\lc@macrodefiner} will check
-% for the user-macro's optional argument and, in case that it is
-% present, modify the action-queue-register, so that, when
-% ``flushing'' it, a macro will be produced instead of queue-&
-% execution.
-% \item The final step within the user-macro is ``flushing'' the action-&
-% queue-register.
-% \end{enumerate}
-% \end{sloppypar}
-%
-% \newpage
-% \subsection{Code}
-%
-% \begin{macro}{\DefineLabelcase}
-% |\DefineLabelcase| is used for providing parameters during the
-% definition of the macros~\nobreak
-% {&
-% \makeatletter
-% \setbox\@tempboxa\hbox{|\|\meta{prefix}|lc@remleadspace|
-% (internal).}&
-% \@tempdima\dp\@tempboxa
-% \vtop{&
-% \noindent
-% |\|\meta{prefix}|eachlabelcase|,
-% |\|\meta{prefix}|lotlabelcase| (user),\\
-% |\|\meta{prefix}|lc@iterate|,
-% |\|\meta{prefix}|lc@remtrailspace|,\\
-% |\|\meta{prefix}|lc@remleadspace| (internal).&
-% }&
-% \par\prevdepth\@tempdima
-% }&
-% \noindent
-% Parameters are:
-% |#1|\(=\)\meta{space}; |#2|\(=\)\meta{delimiter};
-% |#3|\(=\)\meta{prefix}; |#4|\(=\)\meta{global-indicator}.
-%
-% Defining of |\DefineLabelcase| takes place within a group, so that
-% after closing the group it gets discarded. Package-options will also
-% be evaluated within that group, right after defining
-% |\DefineLabelcase|. By the option |DefineLabelcase|,
-% |\DefineLabelcase| can be ``globalized'' before closing the group:
-% \iffalse
-%<*labelcas>
-% \fi
-% \begin{macrocode}
-\begingroup
-\DeclareOption{DefineLabelcase}%
- {\global\let\DefineLabelcase\DefineLabelcase}%
-\newcommand\DefineLabelcase[4]{%
-% \end{macrocode}
-% \end{macro}
-% \def\pref{prefix}
-% \begin{macro}{lc@remtrailspace}
-% \Patchsavedatmacroname
-% \changes{v1.01}{2006/01/06}{\meta{B1}\ChgEq\meta{bizarre}\nobreak
-% \meta{space}.}
-% \changes{v1.03}{2006/02/21}{Chan\-ged forking-mechanism to \string
-% \verb+\string\@firstoftwo+/\string\verb+\string\@secondoftwo+.}
-% \changes{v1.06}{2006/04/20}{\string\verb*+\string\@ifdefinable+ instead
-% of \string\verb*+\string\newcommand+.}
-% \changes{v1.10}{2006/07/21}{Empty-argument-check added.}
-% It is assured that \meta{delimiter} does not occur in the top-level of
-% the \meta{stuff where to remove trail-space}, for \meta{delimiter} is
-% used in the list for separating the single items of \meta{stuff where
-% to remove trail-space} from each other. Therefore you can choose
-% \meta{bizarre}=\meta{delimiter} and \meta{B1}=\meta{bizarre}&
-% \meta{space}=\meta{delimiter}\meta{space}:
-% \begin{macrocode}
- \expandafter\@ifdefinable\csname#3lc@remtrailspace\endcsname{%
- \expandafter\long
- \expandafter\def
- \csname#3lc@remtrailspace\endcsname##1#1#2##2#2#1{%
-% \end{macrocode}
-% \InsertPrefixedUsageToIndex{prefix}{lc@remtrailspace}&
-% Above was said that forking can take place depending on emptiness of
-% the second argument. The arguments come from the items of the comma-&
-% separated list---thus they might contain macro-definitions and/or
-% unbalanced {\makeatletter\verbatim@font\mbox{\string\if\dots\string
-% \else\dots\string\fi}}-constructs. So put the second argument into a
-% macro |\@tempa| by means of a token-register in order to prevent
-% errors related to parameter-numbering:
-% \begin{macrocode}
- \begingroup
- \toks@{##2}%
- \edef\@tempa{\the\toks@}%
-% \end{macrocode}
-% When forking takes place, the content of the arguments might---when
-% placed into the corresponding |\if|- or |\else|-branches directly---&
-% erroneously match up those constructs. In order to prevent this, the
-% action related to the different branches is handled by means of
-% |\@firstoftwo| and |\@secondoftwo| which get expanded when
-% ``choosing the forking-route'' is already accomplished:
-% \begin{macrocode}
- \expandafter\endgroup
- \ifx\@tempa\@empty
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
-% \end{macrocode}
-% The appropriate action in case of no more trailing \meta{space} is
-% checking if the item is not empty and if so, initiating the removal
-% of leading \meta{space}. In this case |##1| is terminated by
-% \meta{bizarre}. If the item is empty, the leading \meta{space}
-% inserted by the iterator for brace-protection is also removed so that
-% |##1| equals \meta{bizarre}. If the item is not empty, start leading-&
-% \meta{space}-removal, but add only \meta{space}\meta{B2} at the end
-% instead of \meta{bizarre}\meta{space}\meta{B2}---above was said that
-% \meta{B2}=\meta{bizarre}\meta{bizarre}=&
-% \meta{delimiter}\meta{delimiter} in |\|\meta{prefix}|lc@remleadspace|:
-% \begin{macrocode}
- {%
- {\toks@{##1}\edef\@tempa{\the\toks@}%
- \toks@{#2}\edef\@tempb{\the\toks@}%
- \expandafter}%
- \ifx\@tempa\@tempb
- \expandafter\@gobble
- \else
- \expandafter\@firstofone
- \fi
- {\csname#3lc@remleadspace\endcsname#2##1#1#2#2}%
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lc@remleadspace}&
-% \begin{macrocode}
- }%
-% \end{macrocode}
-% The appropriate action in case of trailing \meta{space} is checking
-% and possibly removing more thereof:
-% \begin{macrocode}
- {\csname#3lc@remtrailspace\endcsname##1#2#1#2#2#1}%
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lc@remtrailspace}&
-% \begin{macrocode}
- }%
- }%
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{lc@remleadspace}
-% \Patchsavedatmacroname
-% \changes{v1.01}{2006/01/06}{\meta{B2}\ChgEq\meta{bizarre}\meta{bizarre}.}
-% \changes{v1.03}{2006/02/21}{Chan\-ged forking-mechanism to
-% \string\verb+\string\@firstoftwo+/\string\verb+\string\@secondoftwo+.}
-% \changes{v1.06}{2006/04/20}{\string\verb*+\string\@ifdefinable+
-% instead of \string\verb*+\string\newcommand+.}
-% |\|\meta{prefix}|lc@remleadspace| is similar to
-% |\|\meta{prefix}|lc@remtrailspace|, but with \meta{B2}=\meta{bizarre}&
-% \meta{bizarre}=\meta{delimiter}\meta{delimiter}:
-% \begin{macrocode}
- \expandafter\@ifdefinable\csname#3lc@remleadspace\endcsname{%
- \expandafter\long
- \expandafter\def
- \csname#3lc@remleadspace\endcsname##1#2#1##2#2#2{%
-% \end{macrocode}
-% \InsertPrefixedUsageToIndex{prefix}{lc@remleadspace}&
-% Above was said that forking can take place e.g., depending on
-% emptiness of the first argument. Arguments still come from the list-&
-% items, so let's use token-registers for the same reasons as in
-% |\|\meta{prefix}|lc@remtrailspace|:
-% \begin{macrocode}
- \begingroup
- \toks@{##1}%
- \edef\@tempa{\the\toks@}%
-% \end{macrocode}
-% The single list-items might still contain macro-definitions, |\if|-&
-% forking and the like, therefore again choose the forking-route in
-% terms of |\@firstoftwo| and |\@secondoftwo|:
-% \begin{macrocode}
- \expandafter\endgroup
- \ifx\@tempa\@empty
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
-% \end{macrocode}
-% The appropriate action in case of leading \meta{space} is checking
-% and possibly removing more thereof:
-% \begin{macrocode}
- {\csname#3lc@remleadspace\endcsname#2##2#2#2}%
-% \end{macrocode}
-% \InsertPrefixedUsageToIndex{prefix}{lc@remleadspace}&
-% In case of no more leading \meta{space}, the actual work, which is
-% defined in user-macro's |\@tempa|, can be done:
-% \begin{macrocode}
- {\@tempa##1#2}%
- }%
- }%
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{lc@iterate}
-% \Patchsavedatmacroname
-% \changes{v1.06}{2006/04/20}{\string\verb*+\string\@ifdefinable+
-% instead of \string\verb*+\string\newcommand+.}
-% \changes{v1.07}{2006/04/27}{Define \string\verb*+\string\@tempa+
-% in terms of \string\verb*+\string\long+.}
-% \changes{v1.08}{2006/07/10}{Chan\-ged forking-mechanism to
-% \string\verb+\string\@firstoftwo+/\string\verb+\string\@secondoftwo+.}
-% \changes{v1.09}{2006/07/16}{Chan\-ged forking-mechanism so that
-% two temporary macros suffice.}
-% \changes{v1.10}{2006/07/21}{Empty-argument-check removed.}
-% |\|\meta{prefix}|lc@iterate| iterates on arguments which are
-% delimited by \meta{delimiter}.
-% \begin{macrocode}
- \expandafter\@ifdefinable\csname#3lc@iterate\endcsname{%
- \expandafter\long
- \expandafter\def
- \csname#3lc@iterate\endcsname##1#2{%
-% \end{macrocode}
-% \InsertPrefixedUsageToIndex{prefix}{lc@iterate}&
-% Make locally available the arguments as macros:\\
-% |\@tempa|\(=\)current argument\\
-% |\@tempb|\(=\)recursion-stop-item:
-% \begin{macrocode}
- \begingroup
- \toks@{##1}%
- \edef\@tempa{\the\toks@}%
- \toks@{#1\@nil}%
- \edef\@tempb{\the\toks@}%
-% \end{macrocode}
-% End the group and test if the current argument equals the
-% recursion-stop-item:
-% \begin{macrocode}
- \expandafter\endgroup\ifx\@tempa\@tempb
- \expandafter\@gobble
- \else
- \expandafter\@firstofone
- \fi
-% \end{macrocode}
-% If not: Start trailing-space-removal\dots, then continue iterating the
-% list and hereby add a preceding \meta{space} to the next item for
-% brace-protection during trailing-\meta{space}-removal in the next run:
-% \begin{macrocode}
- {%
- \csname#3lc@remtrailspace\endcsname##1#2#1#2#2#1%
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lc@remtrailspace}&
-% \begin{macrocode}
- \csname#3lc@iterate\endcsname#1%
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lc@iterate}&
-% \begin{macrocode}
- }%
- }%
- }%
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{eachlabelcase}
-% \Patchsavedatmacroname
-% \changes{v1.03}{2006/02/21}{Chan\-ged forking-mechanism to
-% \string\verb+\string\@firstoftwo+/\string\verb+\string\@secondoftwo+.}
-% \changes{v1.06}{2006/04/20}{\string\verb*+\string\@ifdefinable+
-% instead of \string\verb*+\string\newcommand+.}
-% |\|\meta{prefix}|eachlabelcase|'s optional argument is the possibly-&
-% to-be-defined control-sequence. The mandatory-argument contains the
-% argument-triplet-list.
-% \begin{macrocode}
- \expandafter\@ifdefinable\csname#3eachlabelcase\endcsname{%
- \expandafter\DeclareRobustCommand
- \csname#3eachlabelcase\endcsname[2][]{%
-% \end{macrocode}
-% \InsertPrefixedUsageToIndex{prefix}{eachlabelcase}&
-% Locally define |\@tempa|---it is called by
-% |\|\meta{prefix}|lc@remleadspace| for working on a list-item when all
-% surrounding \meta{space} has been removed:
-% \begin{macrocode}
- {%
-% \end{macrocode}
-% The stuff that results from \meta{space}-removing is surrounded by
-% \meta{delimiter}. It cannot be processed at this place, as first the
-% triplet needs to be split into its components by |\@tempb|:
-% \begin{macrocode}
- \long\def\@tempa#2####1#2{%
- \@tempb####1#2#1#2#2%
- }%
-% \end{macrocode}
-% |\@tempb| is used for splitting the triplet and removing \meta{space}
-% between the triplet's components. In this process it redefines itself
-% several times. In case that no label is defined the name thereof
-% corresponds to the first component, add the third component to
-% |\@temptokena|, otherwise add the second:
-% \begin{macrocode}
- \long\def\@tempb####1{%
- \begingroup
- \long\def\@tempb########1########2########3{%
- \expandafter\expandafter
- \expandafter\endgroup
- \expandafter\ifx
- \csname r@########1\endcsname\relax
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- {\@temptokena\expandafter{\the\@temptokena########3}}%
- {\@temptokena\expandafter{\the\@temptokena########2}}%
- }%
- \begingroup
- \toks@{}%
- \long\def\@tempb########1{%
- \long\def\@tempa#2################1#2{%
- \toks@\expandafter{\the\toks@{################1}}%
- \expandafter\endgroup\expandafter\@tempb\the\toks@
- }%
- \toks@\expandafter{\the\toks@{########1}}%
- \csname#3lc@remleadspace\endcsname#2%
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lc@remleadspace}&
-% \begin{macrocode}
- }%
- \toks@{{####1}}\csname#3lc@remleadspace\endcsname#2%
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lc@remleadspace}&
-% \begin{macrocode}
- }%
-% \end{macrocode}
-% Let's clear the register where the action-queue is accumulated:
-% \begin{macrocode}
- \@temptokena{}%
-% \end{macrocode}
-% Let's iterate on the list:
-% \begin{macrocode}
- \csname#3lc@iterate\endcsname#1##2#2\@nil#2%
-% \end{macrocode}
-% \InsertPrefixedUsageToIndex{prefix}{lc@iterate}&
-% In case that the optional argument is specified, the routine
-% |\lc@macrodefiner| will modify the register to define a macro:
-% \begin{macrocode}
- \lc@macrodefiner{##1}%
-% \end{macrocode}
-% Close the group and ``flush'' the register:
-% \begin{macrocode}
- \expandafter}\the\@temptokena
- }%
- }%
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{lotlabelcase}
-% \Patchsavedatmacroname
-% \changes{v1.06}{2006/04/20}{\string\verb*+\string\@ifdefinable+
-% instead of \string\verb*+\string\newcommand+.}
-% |\|\meta{prefix}|lotlabelcase|'s optional argument is the possibly-&
-% to-be-defined control-sequence. The five mandatory-arguments contain
-% the label-list and the actions that shall take place in the cases: All
-% of the labels are defined~/ none are defined~/ just some are defined~/
-% list is empty:
-% \begin{macrocode}
- \expandafter\@ifdefinable\csname#3lotlabelcase\endcsname{%
- \expandafter\DeclareRobustCommand
- \csname#3lotlabelcase\endcsname[6][]{%
-% \end{macrocode}
-% \InsertPrefixedUsageToIndex{prefix}{lotlabelcase}&
-% Locally define |\@tempa|---it is called by
-% |\|\meta{prefix}|lc@remleadspace| for working on a list-item when all
-% surrounding \meta{space} has been removed:
-% \begin{macrocode}
- {%
- \long\def\@tempa#2####1#2{%
-% \end{macrocode}
-% The list item is a label. In case that it is undefined, have the
-% helper-macro |\@tempb| defined/switched to |\relax|, otherwise do the
-% same but use |\@tempc| instead:
-% \begin{macrocode}
- {\expandafter\expandafter\expandafter}\expandafter
- \ifx\csname r@####1\endcsname\relax
- \let\@tempb\relax
- \else
- \let\@tempc\relax
- \fi
- }%
-% \end{macrocode}
-% Define |\@tempb| and |\@tempc| to empty. They may be ``switched'' to
-% |\relax| when |\@tempa| is called during iteration.
-% \begin{macrocode}
- \def\@tempb{}%
- \def\@tempc{}%
-% \end{macrocode}
-% Let's iterate on the list:
-% \begin{macrocode}
- \csname#3lc@iterate\endcsname#1##2#2\@nil#2%
-% \end{macrocode}
-% \InsertPrefixedUsageToIndex{prefix}{lc@iterate}&
-% Assign the register according to the label-defining-cases which are
-% now represented by the definitions of |\@tempb| and |\@tempc| which
-% are defined either |\relax| or |empty|:
-% \begin{macrocode}
- \ifx\@tempb\@empty
- \ifx\@tempc\@empty
- \@temptokena{##6}%
- \else
- \@temptokena{##3}%
- \fi
- \else
- \ifx\@tempc\@empty
- \@temptokena{##4}%
- \else
- \@temptokena{##5}%
- \fi
- \fi
-% \end{macrocode}
-% In case that the optional argument is specified, the routine
-% |\lc@macrodefiner| will modify the register to define a macro:
-% \begin{macrocode}
- \lc@macrodefiner{##1}%
-% \end{macrocode}
-% Close the group and ``flush'' the register:
-% \begin{macrocode}
- \expandafter}\the\@temptokena
- }%
- }%
-% \end{macrocode}
-% \end{macro}
-% If the \meta{global-indicator}-argument equals |\global|, the above
-% definitions need to be made |\global|:
-% \begin{macrocode}
- {\toks@{#4}\edef\@tempa{\the\toks@}\def\@tempb{\global}\expandafter}%
- \ifx\@tempa\@tempb
- \expandafter\global\expandafter\let
- \csname#3lc@remtrailspace\expandafter\endcsname
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lc@remtrailspace}&
-% \begin{macrocode}
- \csname#3lc@remtrailspace\endcsname
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lc@remtrailspace}&
-% \begin{macrocode}
- \expandafter\global\expandafter\let
- \csname#3lc@remleadspace\expandafter\endcsname
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lc@remleadspace}&
-% \begin{macrocode}
- \csname#3lc@remleadspace\endcsname
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lc@remleadspace}&
-% \begin{macrocode}
- \expandafter\global\expandafter\let
- \csname#3lc@iterate\expandafter\endcsname
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lc@iterate}&
-% \begin{macrocode}
- \csname#3lc@iterate\endcsname
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lc@iterate}&
-% \begin{macrocode}
- \expandafter\global\expandafter\let
- \csname#3eachlabelcase\expandafter\endcsname
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{eachlabelcase}&
-% \begin{macrocode}
- \csname#3eachlabelcase\endcsname
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{eachlabelcase}&
-% \begin{macrocode}
- \expandafter\global\expandafter\let
- \csname#3lotlabelase\expandafter\endcsname
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lotlabelcase}&
-% \begin{macrocode}
- \csname#3lotlabelcase\endcsname
-% \end{macrocode}
-% \compensategap
-% \InsertPrefixedUsageToIndex{prefix}{lotlabelcase}&
-% \begin{macrocode}
- \fi
-% \end{macrocode}
-% Now the definition of |\DefineLabelcase| is complete:
-% \begin{macrocode}
-}%
-% \end{macrocode}
-% Remember that a group was started for performing |\DefineLabelcase|'s
-% definition and that |\DefineLabelcase| will be gone when that group gets
-% closed---unless some ``globalizing'' takes place before. So this is the
-% time for checking if |\DefineLabelcase| shall be available to the user
-% and in this case for making it global:
-% \begin{macrocode}
-\ProcessOptions\relax
-% \end{macrocode}
-% Now the group which was started for defining |\DefineLabelcase| can be
-% closed---right after using it for defining the basic-usage-macros:
-% \begin{macrocode*}
-\expandafter\endgroup\DefineLabelcase{ }{,}{}{\global}%
-% \end{macrocode*}
-% \let\pref\empty
-% \begin{macro}{\lc@macrodefiner}
-% \changes{v1.06}{2006/04/20}{\string\verb*+\string\@ifdefinable+
-% instead of \string\verb*+\string\newcommand+.}
-% \changes{v1.11}{2006/08/04}{Unnecessary
-% \string\verb*+\string\expandafter+ removed.}
-% There is still the routine left which is applied by the user-macros
-% for having the action-queue-register modified, so that when
-% ``flushing'' it, a macro will be produced instead of queue-execution.
-% |\lc@macrodefiner| takes as its argument the optional argument of a
-% user-macro. In case that the argument is not empty, the action-queue-&
-% register is modified, so that ``flushing'' it yields the attempt of
-% defining a macro from the argument which expands to the former content
-% of the register:
-% \begin{macrocode}
-\newcommand\lc@macrodefiner[1]{%
- {\def\@tempa{#1}\expandafter}%
- \ifx\@tempa\@empty
- \else
- \@temptokena\expandafter{%
- \expandafter\begingroup
- \expandafter\toks@
- \expandafter\expandafter
- \expandafter {%
- \expandafter\expandafter
- \expandafter \@temptokena
- \expandafter\expandafter
- \expandafter {%
- \expandafter\the
- \expandafter\@temptokena
- \expandafter}%
- \expandafter}%
- \expandafter\@temptokena
- \expandafter{%
- \expandafter\@temptokena
- \expandafter{%
- \the\@temptokena}%
- \@ifdefinable#1{\edef#1{\the\@temptokena}}}%
- \expandafter\endgroup
- \the\expandafter\@temptokena
- \the\toks@
- }%
- \fi
-}%
-% \end{macrocode}
-% \end{macro}
-% \iffalse
-%</labelcas>
-% \fi
-% \newpage\anglechange\PrintChanges
-% \Finale
-\endinput
diff --git a/Master/texmf-dist/source/latex/labelcas/labelcas.ins b/Master/texmf-dist/source/latex/labelcas/labelcas.ins
deleted file mode 100644
index bbc70e03230..00000000000
--- a/Master/texmf-dist/source/latex/labelcas/labelcas.ins
+++ /dev/null
@@ -1,54 +0,0 @@
-%%
-%% Copyright (C) 2006 by Ulrich Diez <ulrich.diez@alumni.uni-tuebingen.de>
-%%
-%% This Work may be distributed and/or modified under the conditions of
-%% the LaTeX Project Public License, either version 1.3 of this license
-%% or (at your option) any later version. The latest version of this
-%% license is in:
-%%
-%% http://www.latex-project.org/lppl.txt
-%%
-%% and version 1.3 or later is part of all distributions of LaTeX version
-%% 2003/12/01 or later.
-%%
-%% This Work has the LPPL maintenance status `author-maintained'.
-%%
-%% The author and Current Maintainer of this Work is Ulrich Diez.
-%%
-%% This Work consists of the files labelcas.dtx, labelcas.ins, README and
-%% the derived files labelcas.sty and labelcas.pdf.
-%%
-\input docstrip.tex
-\keepsilent
-
-\usedir{tex/latex/labelcas}
-
-\preamble
-
-This is a generated file.
-
-Copyright (C) 2006 by Ulrich Diez <ulrich.diez@alumni.uni-tuebingen.de>
-
-This file may be distributed and/or modified under the conditions of
-the LaTeX Project Public License, either version 1.3 of this license
-or (at your option) any later version. The latest version of this
-license is in:
-
- http://www.latex-project.org/lppl.txt
-
-and version 1.3 or later is part of all distributions of LaTeX version
-2003/12/01 or later.
-
-\endpreamble
-
-\generate{\file{labelcas.sty}{\from{labelcas.dtx}{labelcas}}}
-
-\obeyspaces
-\Msg{*************************************************************}
-\Msg{* *}
-\Msg{* To finish the installation you have to move the following *}
-\Msg{* file into a directory searched by TeX: labelcas.sty *}
-\Msg{* *}
-\Msg{*************************************************************}
-
-\endbatchfile