summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/mh/mhsetup.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/mh/mhsetup.dtx')
-rw-r--r--Master/texmf-dist/source/latex/mh/mhsetup.dtx653
1 files changed, 0 insertions, 653 deletions
diff --git a/Master/texmf-dist/source/latex/mh/mhsetup.dtx b/Master/texmf-dist/source/latex/mh/mhsetup.dtx
deleted file mode 100644
index d1fe0bcb154..00000000000
--- a/Master/texmf-dist/source/latex/mh/mhsetup.dtx
+++ /dev/null
@@ -1,653 +0,0 @@
-% \iffalse meta-comment
-%
-% Copyright (C) 2002-2007,2010 by Morten Hoegholm
-%
-% 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".
-%
-% This Current Maintainer of this work is
-% Lars Madsen, Will Robertson and Joseph Wright.
-%
-% This work consists of the main source file mhsetup.dtx
-% and the derived files
-% mhsetup.sty, mhsetup.pdf, mhsetup.ins, mhsetup.drv.
-%
-% Distribution:
-% CTAN:macros/latex/contrib/mh/mhsetup.dtx
-% CTAN:macros/latex/contrib/mh/mhsetup.pdf
-%
-% Unpacking:
-% (a) If mhsetup.ins is present:
-% tex mhsetup.ins
-% (b) Without mhsetup.ins:
-% tex mhsetup.dtx
-% (c) If you insist on using LaTeX
-% latex \let\install=y\input{mhsetup.dtx}
-% (quote the arguments according to the demands of your shell)
-%
-% Documentation:
-% (a) If mhsetup.drv is present:
-% latex mhsetup.drv
-% (b) Without mhsetup.drv:
-% latex mhsetup.dtx; ...
-% The class ltxdoc loads the configuration file ltxdoc.cfg
-% if available. Here you can specify further options, e.g.
-% use A4 as paper format:
-% \PassOptionsToClass{a4paper}{article}
-%
-% Programm calls to get the documentation (example):
-% pdflatex mhsetup.dtx
-% makeindex -s gind.ist mhsetup.idx
-% pdflatex mhsetup.dtx
-% makeindex -s gind.ist mhsetup.idx
-% pdflatex mhsetup.dtx
-%
-% Installation:
-% TDS:tex/latex/mh/mhsetup.sty
-% TDS:doc/latex/mh/mhsetup.pdf
-% TDS:source/latex/mh/mhsetup.dtx
-%
-%<*ignore>
-\begingroup
- \def\x{LaTeX2e}
-\expandafter\endgroup
-\ifcase 0\ifx\install y1\fi\expandafter
- \ifx\csname processbatchFile\endcsname\relax\else1\fi
- \ifx\fmtname\x\else 1\fi\relax
-\else\csname fi\endcsname
-%</ignore>
-%<*install>
-\input docstrip.tex
-\Msg{************************************************************************}
-\Msg{* Installation}
-\Msg{* Package: mhsetup 2010/01/21 v1.2a mhsetup}
-\Msg{************************************************************************}
-
-\keepsilent
-\askforoverwritefalse
-
-\preamble
-
-This is a generated file.
-
-Copyright (C) 2002-2007,2010 by Morten Hoegholm
-
-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".
-
-This Current Maintainer of this work is
-Lars Madsen, Will Robertson and Joseph Wright.
-
-This work consists of the main source file mhsetup.dtx
-and the derived files
- mhsetup.sty, mhsetup.pdf, mhsetup.ins, mhsetup.drv.
-
-\endpreamble
-
-\generate{%
- \file{mhsetup.ins}{\from{mhsetup.dtx}{install}}%
- \file{mhsetup.drv}{\from{mhsetup.dtx}{driver}}%
- \usedir{tex/latex/mh}%
- \file{mhsetup.sty}{\from{mhsetup.dtx}{package}}%
-}
-
-\obeyspaces
-\Msg{************************************************************************}
-\Msg{*}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* file into a directory searched by TeX:}
-\Msg{*}
-\Msg{* mhsetup.sty}
-\Msg{*}
-\Msg{* To produce the documentation run the file `mhsetup.drv'}
-\Msg{* through LaTeX.}
-\Msg{*}
-\Msg{* Happy TeXing!}
-\Msg{*}
-\Msg{************************************************************************}
-
-\endbatchfile
-%</install>
-%<*ignore>
-\fi
-%</ignore>
-%<*driver>
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{mhsetup.drv}%
- [2010/01/21 v1.2a programming setup (MH)]
-\documentclass{ltxdoc}
-\usepackage{mhsetup}
-
-\addtolength\oddsidemargin{30pt}
-\providecommand*\pkg[1]{\textsf{#1}}
-\providecommand*\env[1]{\texttt{#1}}
-\providecommand*\opt[1]{\texttt{#1}}
-\def\MakePrivateLetters{%
- \makeatletter\catcode`\_=11\relax \catcode`\:=11\relax
-}
-
-
-
-\def\MHmarg#1{{\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}\endgroup}
-\DeclareRobustCommand\marg{\begingroup\MakePrivateLetters\MHmarg}%
-\def\MHarg#1{{\ttfamily\char`\{#1\ttfamily\char`\}}\endgroup}
-\DeclareRobustCommand\arg{\begingroup\MakePrivateLetters\MHarg}%
-\def\MHcs#1{\texttt{\char`\\#1}\endgroup}
-\DeclareRobustCommand\cs{\begingroup\MakePrivateLetters\MHcs}
-\makeatletter
-\providecommand*\eTeX{$\m@th\varepsilon$-\TeX}
-\makeatother
-\begin{document}
- \DocInput{mhsetup.dtx}
-\end{document}
-%</driver>
-% \fi
-%
-% \CheckSum{298}
-%
-% \GetFileInfo{mhsetup.drv}
-%
-% \title{The \pkg{mhsetup} package\thanks{This package has version
-% number \fileversion, last revised on \filedate.}}
-% \author{Morten H\o gholm}
-% \date{\filedate}
-% \maketitle
-%
-% \begin{abstract}
-% The \pkg{mhsetup} package provides tools for a \LaTeX{}
-% programming environment similar to the one described in
-% \texttt{expl3} on \textsc{ctan} although not as extensive. It is
-% a required part of both the \pkg{mathtools} and \pkg{empheq}
-% packages.
-% \end{abstract}
-%
-% The description below was made before the extensive changes made to
-% the expl3 code available from the LaTeX Project website.
-%
-% \section{The new internal syntax}
-%
-%
-% The \LaTeX3 package \pkg{ldcsetup} defines the command
-% \cs{InternalSyntaxOn} which makes |_| and |:| letters and then
-% automatically restores the category codes at the end of the
-% package. This usually works fine but when you try to load
-% \pkg{amstext} you will experience that \TeX{} goes into an
-% infinite loop. Packages containing code like
-% |\@for\@tempa:=\@tempb\do{...}| will not work correctly either,
-% thus we provide an alternative version here with the pair of
-% commands
-% \DescribeMacro{\MHInternalSyntaxOn}\cs{MHInternalSyntaxOn} and
-% \DescribeMacro{\MHInternalSyntaxOff}\cs{MHInternalSyntaxOff}. They
-% are to be used only as a pair, because \cs{MHInternalSyntaxOn}
-% defines \cs{MHInternalSyntaxOff} so that it restores the category
-% codes correctly.
-%
-%
-% \section{Handling optional arguments}
-%
-% The standard behavior of scanning for optional arguments in
-% \LaTeX{} allows any number of spaces preceding the optional
-% argument and that is not always good in math. For that reason
-% \pkg{amsmath} makes sure that commands like |\\| disallows spaces
-% before the optional argument but at the same time it fails to
-% provide ``safe'' environments. What would you expect from the
-% following input?
-% \begin{verbatim}
-% \[
-% \begin{gathered}
-% [v] = 100 \\
-% [t] = 200
-% \end{gathered}
-% \]
-% \end{verbatim}
-% \LaTeX{} will see the \texttt{[v]} as an optional argument of
-% \env{gathered} and use it. In this case the test inside
-% \env{gathered} checks if it's a \texttt{t} or \texttt{b} and if
-% it's neither it'll choose \cs{vcenter} internally. So you get no
-% warning, only missing output. Another example, this time from the
-% \pkg{empheq} package used with its \opt{overload} option: If
-% preceding spaces are allowed, the input
-% \begin{verbatim}
-% \begin{gather}
-% [a] = [b]
-% \end{gather}
-% \end{verbatim}
-% results in the rather strange error message
-% \begin{verbatim}
-% ! Package keyval Error: a undefined.
-% \end{verbatim}
-%
-% When using \cs{newcommand} etc.\ for defining commands and
-% environments with optional arguments, the peek ahead is done by
-% \cs{kernel@ifnextchar} (since \LaTeX{} release 2003/12/01, else
-% \cs{@ifnextchar}) and it is \emph{hardwired at definition time} by
-% \cs{@xargdef}. With the commands
-% \DescribeMacro{\MHPrecedingSpacesOff}\cs{MHPrecedingSpacesOff} and
-% \DescribeMacro{\MHPrecedingSpacesOn}\cs{MHPrecedingSpacesOn}
-% \pkg{mhsetup} provides an interface to define commands and
-% environments where the optional argument cannot have preceding
-% spaces. You simply wrap them around the definitions:
-% \begin{verbatim}
-% \MHPrecedingSpacesOff
-% \newenvironment*{test}[1][default]{Start, arg: (#1)}{Ending.}
-% \MHPrecedingSpacesOn
-% \begin{test}
-% [text]
-% \end{test}
-% \begin{test}[text]
-% \end{test}
-% \end{verbatim}
-% \MHPrecedingSpacesOff
-% \newenvironment*{test}[1][default]{Start, arg: (#1)}{Ending.}
-% \MHPrecedingSpacesOn
-% \begin{quote}
-% \begin{test}
-% [text]
-% \end{test}
-% \begin{test}[text]
-% \end{test}
-% \end{quote}
-% It is of somewhat limited use in commands (control words in \TeX{}
-% terminology), because \TeX{} discards the spaces. The exception is
-% \emph{control symbols} where \TeX{} obeys following spaces but
-% there are rather few of them available. All is not lost however.
-% In the \env{aligned} environment from \pkg{amsmath} (shown below)
-% a command is used as argument grabber.
-% \begin{verbatim}
-% \newenvironment{aligned}{%
-% \let\@testopt\alignsafe@testopt
-% \aligned@a
-% }{%
-% \crcr\egroup
-% \restorecolumn@
-% \egroup
-% }
-% \newcommand{\aligned@a}[1][c]{\start@aligned{#1}\m@ne}
-% \end{verbatim}
-% By applying our trick on the grabber function, we get a space
-% obeying version:
-% \begin{verbatim}
-% \MHPrecedingSpacesOff
-% \renewcommand*\aligned@a[1][c]{\start@aligned{#1}\m@ne}
-% \MHPrecedingSpacesOn
-% \end{verbatim}
-% This way a nested \env{aligned} environment is still safe from
-% empty first cells.
-%
-% \StopEventually{}
-%
-%
-% \section{First bits of a new programming environment}
-%
-%
-% \begin{macrocode}
-%<*package>
-\ProvidesPackage{mhsetup}%
- [2010/01/21 v1.2a programming setup (MH)]
-% \end{macrocode}
-% \subsection{The new internal syntax}
-% \begin{macro}{\MHInternalSyntaxOn}
-% \begin{macro}{\MHInternalSyntaxOff}
-% Almost copy of \cs{InternalSyntaxOn}.
-% \begin{macrocode}
-\def\MHInternalSyntaxOn{
- \edef\MHInternalSyntaxOff{%
- \catcode`\noexpand\~=\the\catcode`\~\relax
- \catcode`\noexpand\ =\the\catcode`\ \relax
- \catcode`\noexpand\^^I=\the\catcode`\^^I\relax
- \catcode`\noexpand\@=\the\catcode`\@\relax
- \catcode`\noexpand\:=\the\catcode`\:\relax
- \catcode`\noexpand\_=\the\catcode`\_\relax
- \endlinechar=\the\endlinechar\relax
- }%
- \catcode`\~=10\relax
- \catcode`\ =9\relax
- \catcode`\^^I=9\relax
- \makeatletter
- \catcode`\_=11\relax
- \catcode`\:=11\relax
- \endlinechar=` %
- \relax
-}
-\MHInternalSyntaxOn
-\AtEndOfPackage{\MHInternalSyntaxOff}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \subsection{Programming tools}
-%
-% The whole idea is to provide programming tools that are convenient
-% but not yet widely available. I hope this'll be obsolete soon!
-%
-% Firstly we setup a few helper functions.
-% \begin{macro}{\MH_let:NwN}
-% An alias for \cs{let}.
-% \begin{macrocode}
-\let\MH_let:NwN \let
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\MH_let:cN}
-% This one takes a \cs{csname}-\cs{endcsname} name and \cs{let}s it
-% to a single macro. We'll use this to setup our conditionals.
-% \begin{macrocode}
-\def\MH_let:cN #1#2{
- \expandafter\MH_let:NwN \csname#1\endcsname#2}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\MH_let:cc}
-% This one has takes a \cs{csname}-\cs{endcsname} name and \cs{let}s
-% it to a another \cs{csname}-\cs{endcsname} name. To be used in
-% constructions with weird characters like \texttt{*} or alike in
-% them and can take a \cs{global} prefix if wanted (we want that
-% later on).
-% \begin{macrocode}
-\def\MH_let:cc #1#2{
- \expandafter\MH_let:NwN\csname#1\expandafter\endcsname
- \csname#2\endcsname}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\MH_new_boolean:n}
-% \begin{macro}{\MH_set_boolean_F:n}
-% \begin{macro}{\MH_set_boolean_T:n}
-% \begin{macro}{\MH_if_boolean:nTF}
-% \begin{macro}{\MH_if_boolean:nT}
-% \begin{macro}{\MH_if_boolean:nF}
-% Sets up conditionals. For instance
-% \begin{quote}
-% \cs{MH_new_boolean:n} \marg{name}
-% \end{quote}
-% defines the boolean \meta{name} but also the conditional
-% \cs{if_boolean_\meta{name}:} to be used in the ordinary
-% \begin{tabbing}
-% \mbox{}\quad\= \kill
-% \cs{if_boolean_\meta{name}:}\\
-% \> \meta{true code} \\
-% \cs{else:} \\
-% \> \meta{false code} \\
-% \cs{fi:}
-% \end{tabbing}
-% There is also a more ``\LaTeX-like'' interface available by using
-% the commands
-% \begin{quote}
-% \cs{MH_if_boolean:nT}\marg{name}\marg{arg}
-% \end{quote}
-% which will execute the argument if the current value of the
-% boolean is `true' while
-% \begin{quote}
-% \cs{MH_if_boolean:nF}\marg{name}\marg{arg}
-% \end{quote}
-% is the equivalent with `false'. Finally we have
-% \begin{quote}
-% \cs{MH_if_boolean:nTF}\marg{name}\marg{true code}\marg{false code}.
-% \end{quote}
-% This is the interface I have used in this package.
-%
-% Initially \cs{if_boolean_\meta{name}:} is `false'. This can be
-% changed by saying
-% \begin{tabbing}
-% \quad \= \LaTeX:\quad \= \kill
-% \> \TeX: \> \cs{boolean_\meta{name}_true:} \quad \emph{or}\\
-% \> \LaTeX: \> \cs{MH_set_boolean_T:n}\marg{name}
-% \end{tabbing}
-% and changed back again by
-% \begin{tabbing}
-% \quad \= \LaTeX:\quad \= \kill
-% \> \TeX: \> \cs{boolean_\meta{name}_false:} \quad \emph{or}\\
-% \> \LaTeX: \> \cs{MH_set_boolean_F:n}\marg{name}
-% \end{tabbing}
-%
-% And yes, we're also using alternative names for \cs{else} and
-% \cs{fi} now. That way a simple search and replace will be all that
-% is needed for this package to be a certified \LaTeX3 package (well,
-% maybe a little more is needed, but not much).
-% \begin{macrocode}
-\def\MH_new_boolean:n #1{
- \expandafter\@ifdefinable\csname if_boolean_#1:\endcsname{
- \@namedef{boolean_#1_true:}
- {\MH_let:cN{if_boolean_#1:}\iftrue}
- \@namedef{boolean_#1_false:}
- {\MH_let:cN{if_boolean_#1:}\iffalse}
- \@nameuse{boolean_#1_false:}%
- }
-}
-\def\MH_set_boolean_F:n #1{ \@nameuse{boolean_#1_false:} }
-\def\MH_set_boolean_T:n #1{ \@nameuse{boolean_#1_true:} }
-\def\MH_if_boolean:nTF #1{
- \@nameuse{if_boolean_#1:}
- \expandafter\@firstoftwo
- \else:
- \expandafter\@secondoftwo
- \fi:
-}
-\def\MH_if_boolean:nT #1{
- \@nameuse{if_boolean_#1:}
- \expandafter\@firstofone
- \else:
- \expandafter\@gobble
- \fi:
-}
-\def\MH_if_boolean:nF #1{
- \@nameuse{if_boolean_#1:}
- \expandafter\@gobble
- \else:
- \expandafter\@firstofone
- \fi:
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\if:w}
-% \changes{v1.0b}{2004/10/10}{Use different test}
-% \begin{macro}{\if_meaning:NN}
-% \changes{v1.0b}{2004/10/10}{Use different test}
-% \begin{macro}{\else:}
-% \changes{v1.0b}{2004/10/10}{Use different test}
-% \begin{macro}{\fi:}
-% \changes{v1.0b}{2004/10/10}{Use different test}
-% \begin{macro}{\if_num:w}
-% \changes{v1.0b}{2004/10/10}{Use different test}
-% \changes{v1.2a}{2010/01/21}{Define at start of document}
-% \begin{macro}{\if_dim:w}
-% \changes{v1.0b}{2004/10/10}{Use different test}
-% \changes{v1.2a}{2010/01/21}{Define at start of document}
-% \begin{macro}{\if_case:w}
-% \changes{v1.0b}{2004/10/10}{Use different test}
-% \changes{v1.2a}{2010/01/21}{Define at start of document}
-% \begin{macro}{\or:}
-% \changes{v1.0b}{2004/10/10}{Use different test}
-% Copies of \TeX{} primitives.
-% \begin{macrocode}
-\@ifundefined{if:w}{\MH_let:NwN \if:w =\if}{}
-\@ifundefined{if_meaning:NN}{\MH_let:NwN \if_meaning:NN =\ifx}{}
-\@ifundefined{else:}{\MH_let:NwN \else:=\else}{}
-\@ifundefined{fi:}{\MH_let:NwN \fi:=\fi}{}
-\AtBeginDocument{
- \@ifundefined{if_num:w}{\MH_let:NwN \if_num:w =\ifnum}{}
- \@ifundefined{if_dim:w}{\MH_let:NwN \if_dim:w =\ifdim}{}
- \@ifundefined{if_case:w}{\MH_let:NwN \if_case:w =\ifcase}{}
-}
-\@ifundefined{or:}{\MH_let:NwN \or:=\or}{}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\MH_cs_to_str:N}
-% Strip off the backslash of a macro name.
-% \begin{macrocode}
-\def\MH_cs_to_str:N {\expandafter\@gobble\string}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\MH_protected:}
-% \begin{macro}{\MH_setlength:dn}
-% \changes{v1.0a}{2004/08/23}{Fixed bug in \cs{MH_setlength:dn} so that
-% it now uses the \pkg{calc} definition of \cs{setlength}}
-% \begin{macro}{\MH_addtolength:dn}
-% \changes{v1.0a}{2004/08/23}{Fixed bug in \cs{MH_addtolength:dn} so that
-% it now uses the \pkg{calc} definition of \cs{addtolength}}
-% We might as well make use of some of the extended features from
-% \eTeX. We use \cs{dimexpr} for some simple calculations as it
-% saves a lot of the scanning that goes on inside \pkg{calc}. The
-% \cs{protected} primitive comes in handy when we want to declare a
-% robust command, that cannot be `robustified' with
-% \cs{DeclareRobustCommand}. If we don't have \eTeX{} we'll just let
-% our private macros be aliases for the less effective alternatives.
-% \begin{macrocode}
-\@ifundefined{eTeXversion}
- {
- \MH_let:NwN \MH_protected:\relax
- \def\MH_setlength:dn{\setlength}
- \def\MH_addtolength:dn{\addtolength}
- }
- {
- \MH_let:NwN \MH_protected:\protected
- \def\MH_setlength:dn #1#2{#1=\dimexpr#2\relax\relax}
- \def\MH_addtolength:dn #1#2{\advance#1 \dimexpr#2\relax\relax}
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-
-% \begin{macro}{\MH_keyval_alias_with_addon:nnnn}
-% \begin{macro}{\MH_keyval_alias:nnn}
-% A way to make aliases with \pkg{keyval}. This will come in
-% handy later.
-% \begin{macrocode}
-\def\MH_keyval_alias_with_addon:nnnn #1#2#3#4{
- \@namedef{KV@#1@#2}{\@nameuse{KV@#1@#3}#4}
- \@namedef{KV@#1@#2@default}{\@nameuse{KV@#1@#3@default}#4}}
-\def\MH_keyval_alias:nnn #1#2#3{
- \MH_keyval_alias_with_addon:nnnn {#1}{#2}{#3}{}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\MH_use_choice_i:nnnn}
-% \begin{macro}{\MH_use_choice_ii:nnnn}
-% \begin{macro}{\MH_use_choice_iii:nnnn}
-% \begin{macro}{\MH_use_choice_iv:nnnn}
-% I need to be able to pick up individual arguments in a list of
-% four (similar to \cs{@secondoftwo}).
-% \begin{macrocode}
-\def\MH_use_choice_i:nnnn #1#2#3#4{#1}
-\def\MH_use_choice_ii:nnnn #1#2#3#4{#2}
-\def\MH_use_choice_iii:nnnn #1#2#3#4{#3}
-\def\MH_use_choice_iv:nnnn #1#2#3#4{#4}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\MH_nospace_ifnextchar:Nnn}
-% \begin{macro}{\MH_nospace_nextchar:}
-% \begin{macro}{\MH_nospace_testopt:nn}
-% \begin{macro}{\MH_nospace_protected_testopt:n}
-% Scanning for the next character but disallow spaces.
-% \begin{macrocode}
-\long\def\MH_nospace_ifnextchar:Nnn #1#2#3{
- \MH_let:NwN\reserved@d=~#1
- \def\reserved@a{#2}
- \def\reserved@b{#3}
- \futurelet\@let@token\MH_nospace_nextchar:
-}
-\def\MH_nospace_nextchar:{
- \if_meaning:NN \@let@token\reserved@d
- \MH_let:NwN \reserved@b\reserved@a
- \fi:
- \reserved@b
-}
-\long\def\MH_nospace_testopt:nn #1#2{
- \MH_nospace_ifnextchar:Nnn[
- {#1}
- {#1[{#2}]}
-}
-\def\MH_nospace_protected_testopt:n #1{
- \if_meaning:NN \protect\@typeset@protect
- \expandafter\MH_nospace_testopt:nn
- \else:
- \@x@protect#1
- \fi:
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\kernel@ifnextchar}
-% \begin{macro}{\MH_kernel_xargdef:nwwn}
-% \begin{macro}{\MH_nospace_xargdef:nwwn}
-% \begin{macro}{\MHPrecedingSpacesOff}
-% \begin{macro}{\MHPrecedingSpacesOn}
-% The code for the space sensitive peek ahead.
-% \begin{macrocode}
-\@ifundefined{kernel@ifnextchar}
- {\MH_let:NwN \kernel@ifnextchar \@ifnextchar}
- {}
-\MH_let:NwN \MH_kernel_xargdef:nwwn \@xargdef
-\long\def\MH_nospace_xargdef:nwwn #1[#2][#3]#4{
- \@ifdefinable#1{
- \expandafter\def\expandafter#1\expandafter{
- \expandafter
- \MH_nospace_protected_testopt:n
- \expandafter
- #1
- \csname\string#1\endcsname
- {#3}}
- \expandafter\@yargdef
- \csname\string#1\endcsname
- \tw@
- {#2}
- {#4}}}
-\providecommand*\MHPrecedingSpacesOff{
- \MH_let:NwN \@xargdef \MH_nospace_xargdef:nwwn
-}
-\providecommand*\MHPrecedingSpacesOn{
- \MH_let:NwN \@xargdef \MH_kernel_xargdef:nwwn
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\MH_group_align_safe_begin:}
-% \begin{macro}{\MH_group_align_safe_end:}
-% \begin{macrocode}
-\def \MH_group_align_safe_begin: {\iffalse{\fi\ifnum0=`}\fi}
-\def \MH_group_align_safe_end: {\ifnum0=`{}\fi}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macrocode}
-%</package>
-% \end{macrocode}
-%
-% \Finale
-\endinput