summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-03-07 23:22:23 +0000
committerKarl Berry <karl@freefriends.org>2016-03-07 23:22:23 +0000
commitd9eed51f22174ef543823392b76a190f3c7f83a4 (patch)
tree171993e52668bfb362abdb9dd2b3eec2d615626b /Master/texmf-dist/source
parent7ac81bc4c8445b925f4504174ad526d178221fcb (diff)
gobble (7mar16)
git-svn-id: svn://tug.org/texlive/trunk@39964 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/generic/gobble/gobble.dtx502
-rw-r--r--Master/texmf-dist/source/generic/gobble/gobble.ins13
2 files changed, 515 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/generic/gobble/gobble.dtx b/Master/texmf-dist/source/generic/gobble/gobble.dtx
new file mode 100644
index 00000000000..f09318d380b
--- /dev/null
+++ b/Master/texmf-dist/source/generic/gobble/gobble.dtx
@@ -0,0 +1,502 @@
+% \iffalse meta-comment
+%<=*COPYRIGHT>
+%% Copyright (C) 2012 by Martin Scharrer <martin@scharrer-online.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 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Martin Scharrer.
+%%
+%% This work consists of the files gobble.dtx and gobble.ins
+%% and the derived files gobble.sty, gobble-user.sty,
+%% gobble.tex and gobble-user.tex
+%%
+%<=/COPYRIGHT>
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{gobble.dtx}[%
+%<=*DATE>
+ 2012/06/09
+%<=/DATE>
+%<=*VERSION>
+ v0.1
+%<=/VERSION>
+ DTX file for the gobble package]
+\documentclass{ydoc}
+\GetFileInfo{gobble.dtx}
+\usepackage{gobble}[\filedate]
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{\jobname.dtx}
+ \PrintChanges
+ \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \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 \~}
+%
+%
+% \changes{v0.1}{2012/06/09}{First version.}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \GetFileInfo{gobble.dtx}
+% \author{Martin Scharrer}
+% \email{martin@scharrer-scharrer.de}
+% \ifdefined\repository
+% \repository{https://bitbucket.org/martin_scharrer/gobble}
+% \fi
+%
+% \maketitle
+%
+% \begin{abstract}\noindent
+% The \pkg{gobble} \LaTeX\ package provides more macros to discard (gobble)
+% macro arguments. These macros are by default only for package
+% and class writers, but are exported to the user level by the
+% \pkg{gobble-user} package.
+% The macros are also available as generic packages for other \TeX\ formats.
+% \end{abstract}
+%
+% \section{Macros}
+%
+% \subsection{Macros for Package/Class Writers}
+% The following macros are provided by the generic \file{gobble.tex} and the \LaTeX\ package \pkg{gobble}.
+% Some are already provided by the \LaTeX\ kernel.
+%
+% \DescribeMacro\@gobble
+% \DescribeMacro\@gobbletwo
+% \DescribeMacro\@gobblethree
+% \DescribeMacro\@gobblefour
+% Gobbles one, two, three or four mandatory arguments.
+%
+% \DescribeMacro\@gobbleopt
+% \DescribeMacro\@gobbletwoopt
+% \DescribeMacro\@gobbleallopt
+% Gobbles one, two or all found optional arguments if present.
+%
+% \DescribeMacro\@gobbletwoopttwo
+% Gobbles (up to) two optional arguments if present and then two mandatory arguments.
+%
+% \DescribeMacro\@firstofone
+% Reads one argument and expands to it, i.e.\ removes the braces around it.
+%
+% \DescribeMacro\@firstoftwo
+% Reads two arguments and expands to the first one while discarding the second one.
+%
+% \DescribeMacro\@secondoftwo
+% Reads two arguments and expands to the second one while discarding the first one.
+%
+% \DescribeMacro\@firstofthree
+% \DescribeMacro\@secondofthree
+% \DescribeMacro\@thirdofthree
+% These macros read three arguments and expand to the first, second or third one, respectively, while discarding the other.
+%
+% \DescribeMacro\@gobbletofi{<code>}<discarded code>\AlsoMacro{fi}
+% \DescribeMacro\@gobbletoelse{<code>}<discarded code>\AlsoMacro{else}
+% \DescribeMacro\@gobbletoor{<code>}<discarded code>\AlsoMacro{or}
+% These macros read one argument and then gobble everything to the next \Macro{fi}, \Macro{else} or \Macro{or},
+% respectively. Afterwards they expand to the first argument.
+% This allows to break out of an \Macro{if..} or \Macro{ifcase} branch, which is sometimes required if code should be
+% executed after the conditional.
+%
+% \subsection{User Level Macros}
+% The following macros are provided by the generic \file{gobble-user.tex} and the \LaTeX\ package \pkg{gobble-user}.
+% These also load the \file{gobble.tex} file or package \pkg{gobble} package, respectively.
+%
+% They macros are identical to the corresponding versions with the leading `|@|', but can be used freely in a user
+% document.
+%
+%
+% \DescribeMacro\gobble
+% \DescribeMacro\gobbletwo
+% \DescribeMacro\gobblethree
+% \DescribeMacro\gobblefour
+%
+% \DescribeMacro\gobbleopt
+% \DescribeMacro\gobbletwoopt
+% \DescribeMacro\gobbleallopt
+%
+% \DescribeMacro\gobbletwoopttwo
+%
+% \DescribeMacro\firstofone
+%
+% \DescribeMacro\firstoftwo
+% \DescribeMacro\secondoftwo
+%
+% \DescribeMacro\firstofthree
+% \DescribeMacro\secondofthree
+% \DescribeMacro\thirdofthree
+%
+% \DescribeMacro\gobbletofi
+% \DescribeMacro\gobbletoelse
+% \DescribeMacro\gobbletoor
+%
+%
+% \StopEventually{}
+% \clearpage
+% \section{Implementation}
+%
+% \iffalse
+%<*gobble.sty>
+% \fi
+% \begin{macrocode}
+%<!COPYRIGHT>
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{gobble}[%
+%<!DATE>
+%<!VERSION>
+%<*DRIVER>
+ 2099/01/01 develop
+%</DRIVER>
+ Provides more gobble macros]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\input{gobble}
+% \end{macrocode}
+
+% \iffalse
+%</gobble.sty>
+% \fi
+%
+% \iffalse
+%<*gobble-user.sty>
+% \fi
+% \begin{macrocode}
+%<!COPYRIGHT>
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{gobble-user}[%
+%<!DATE>
+%<!VERSION>
+%<*DRIVER>
+ 2099/01/01 develop
+%</DRIVER>
+ Provides user level macros]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\RequiresPackage{gobble}
+\input{gobble-user}
+% \end{macrocode}
+
+% \iffalse
+%</gobble-user.sty>
+% \fi
+%
+% \iffalse
+%<*gobble.tex>
+% \fi
+%
+% \begin{macrocode}
+\expandafter\ifx\csname gobble.tex loaded\endcsname\relax
+ \expandafter\def\csname gobble.tex loaded\endcsname{1}%
+\else
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\gobbletex@catcode}
+% \begin{macrocode}
+\expandafter\edef\csname gobbletex@catcode\endcsname{%
+ \catcode`\noexpand\@=\the\catcode`\@%
+}%
+\catcode`\@=11
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@gobble}
+% \begin{macro}{\@gobbletwo}
+% \begin{macro}{\@gobblethree}
+% \begin{macro}{\@gobblefour}
+% \begin{macrocode}
+\long\def\@gobble#1{}%
+\long\def\@gobbletwo#1#2{}%
+\long\def\@gobblethree#1#2#3{}%
+\long\def\@gobblefour#1#2#3#4{}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\@gobbleopt}
+% \begin{macrocode}
+\long\def\@gobbleopt{%
+ \@ifnextchar[%
+ {\@gobbleopt@}%
+ {}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@gobbleopt@}
+% \begin{macrocode}
+\def\@gobbleopt@[#1]{}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@gobbletwoopt}
+% \begin{macrocode}
+\long\def\@gobbletwoopt{%
+ \@ifnextchar[%
+ {\@gobbletwoopt@}%
+ {}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@gobbletwoopt@}
+% \begin{macrocode}
+\def\@gobbletwoopt@[#1]{\@gobbleopt}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@gobbleallopt}
+% \begin{macrocode}
+\long\def\@gobbleallopt{%
+ \@ifnextchar[%
+ {\@gobbleallopt@}%
+ {}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@gobbleallopt@}
+% \begin{macrocode}
+\long\def\@gobbleallopt@[#1]{%
+ \@ifnextchar[%
+ {\@gobbleallopt@}%
+ {}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\@gobbletwoopttwo}
+% \begin{macrocode}
+\long\def\@gobbletwoopttwo{%
+ \@ifnextchar[%
+ {\@gobbletwoopttwo@}%
+ {\@gobbletwo}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@gobbletwoopttwo@}
+% \begin{macrocode}
+\long\def\@gobbletwoopttwo@[#1]{%
+ \@ifnextchar[%
+ {\@gobbletwoopttwo@@}%
+ {\@gobbletwo}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@gobbletwoopttwo@@}
+% \begin{macrocode}
+\long\def\@gobbletwoopttwo@@[#1]{%
+ \@gobbletwo
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@firstofone}
+% \begin{macrocode}
+\long\def\@firstofone#1{#1}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@firstoftwo}
+% \begin{macro}{\@secondoftwo}
+% \begin{macrocode}
+\long\def\@firstoftwo#1#2{#1}%
+\long\def\@secondoftwo#1#2{#2}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\@firstofthree}
+% \begin{macro}{\@secondofthree}
+% \begin{macro}{\@thirdofthree}
+% \begin{macrocode}
+\long\def\@firstofthree#1#2#3{#1}%
+\long\def\@secondofthree#1#2#3{#2}%
+\long\def\@thirdofthree#1#2#3{#3}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\@gobbletofi}
+% \begin{macro}{\@gobbletoelse}
+% \begin{macro}{\@gobbletoor}
+% \begin{macrocode}
+\long\def\@gobbletofi#1#2\fi{\fi#1}%
+\long\def\@gobbletoelse#1#2\else{\else#1}%
+\long\def\@gobbletoor#1#2\or{\or#1}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+\gobbletex@catcode
+% \end{macrocode}
+%
+% \iffalse
+%</gobble.tex>
+% \fi
+%
+% \iffalse
+%<*gobble-user.tex>
+% \fi
+% \begin{macrocode}
+\expandafter\ifx\csname gobble-user.tex loaded\endcsname\relax
+ \expandafter\def\csname gobble-user.tex loaded\endcsname{1}%
+\else
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\input{gobble}
+% \end{macrocode}
+%
+% \begin{macro}{\gobbletex@catcode}
+% \begin{macrocode}
+\expandafter\edef\csname gobbletex@catcode\endcsname{%
+ \catcode`\noexpand\@=\the\catcode`\@%
+}%
+\catcode`\@=11
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\gobble}
+% \begin{macro}{\gobbletwo}
+% \begin{macro}{\gobblethree}
+% \begin{macro}{\gobblefour}
+% \begin{macrocode}
+\let\gobble\@gobble
+\let\gobbletwo\@gobbletwo
+\let\gobblethree\@gobblethree
+\let\gobblefour\@gobblefour
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\gobbleopt}
+% \begin{macrocode}
+\let\gobbleopt\@gobbleopt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\gobbletwoopt}
+% \begin{macrocode}
+\let\gobbletwoopt\@gobbletwoopt
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\gobbleallopt}
+% \begin{macrocode}
+\let\gobbleallopt\@gobbleallopt
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\gobbletwoopttwo}
+% \begin{macrocode}
+\let\gobbletwoopttwo\@gobbletwoopttwo
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\firstofone}
+% \begin{macrocode}
+\let\firstofone\@firstofone
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\firstoftwo}
+% \begin{macro}{\secondoftwo}
+% \begin{macrocode}
+\let\firstoftwo\@firstoftwo
+\let\secondoftwo\@secondoftwo
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\firstofthree}
+% \begin{macro}{\secondofthree}
+% \begin{macro}{\thirdofthree}
+% \begin{macrocode}
+\let\firstofthree\@firstofthree
+\let\secondofthree\@secondofthree
+\let\thirdofthree\@thirdofthree
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\gobbletofi}
+% \begin{macro}{\gobbletoelse}
+% \begin{macro}{\gobbletoor}
+% \begin{macrocode}
+\let\gobbletofi\@gobbletofi
+\let\gobbletoelse\@gobbletoelse
+\let\gobbletoor\@gobbletoor
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+\gobbletex@catcode
+% \end{macrocode}
+%
+% \iffalse
+%</gobble-user.tex>
+% \fi
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/generic/gobble/gobble.ins b/Master/texmf-dist/source/generic/gobble/gobble.ins
new file mode 100644
index 00000000000..b0643029efc
--- /dev/null
+++ b/Master/texmf-dist/source/generic/gobble/gobble.ins
@@ -0,0 +1,13 @@
+\input ydocstrip.tex
+\keepsilent
+\askforoverwritefalse
+
+\generate{%
+ \file{gobble.sty}{\nopreamble\from{gobble.dtx}{gobble.sty}}%
+ \file{gobble.tex}{\nopreamble\from{gobble.dtx}{gobble.tex}}%
+ \file{gobble-user.sty}{\nopreamble\from{gobble.dtx}{gobble-user.sty}}%
+ \file{gobble-user.tex}{\nopreamble\from{gobble.dtx}{gobble-user.tex}}%
+}
+\endbatchfile
+
+%% vim: ft=tex