%% %% This is file `twoopt.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% twoopt.dtx (with options: `package') %% %% This file is part of the package `twoopt' for use with LaTeX2e. %% %% Function: Defining commands with two optional arguments. %% %% Copyright (C) 1998,1999 Heiko Oberdiek. %% %% This program can be redistributed and/or modified %% under the terms of the LaTeX Project Public License %% distributed from CTAN archives in directory %% macros/latex/base/lppl.txt; either version 1 of %% the License, or (at your option) any later version. %% %% Please send error reports and suggestions for improvements to %% Heiko Oberdiek . %% \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{twoopt} [1999/04/12 v1.3 Definitions with two optional arguments (HO)] %% \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 \~} %% \newcommand{\newcommandtwoopt}{% \@ifstar{\@newcommandtwoopt*}{\@newcommandtwoopt{}}% } \newcommand{\@newcommandtwoopt}{} \long\def\@newcommandtwoopt#1#2{% \expandafter\@@newcommandtwoopt \csname2\string#2\endcsname{#1}{#2}% } \newcommand{\@@newcommandtwoopt}{} \long\def\@@newcommandtwoopt#1#2#3[#4][#5][#6]{% \newcommand#2#3[1][{#5}]{% \to@ScanSecondOptArg#1{##1}{#6}% }% \newcommand#2#1[{#4}]% } \newcommand{\renewcommandtwoopt}{% \@ifstar{\@renewcommandtwoopt*}{\@renewcommandtwoopt{}}% } \newcommand{\@renewcommandtwoopt}{} \long\def\@renewcommandtwoopt#1#2{% \begingroup \escapechar\m@ne \xdef\@gtempa{{\string#2}}% \endgroup \expandafter\@ifundefined\@gtempa{% \@latex@error{\noexpand#2undefined}\@ehc }{}% \let#2\@undefined \expandafter\let\csname2\string#2\endcsname\@undefined \expandafter\@@newcommandtwoopt \csname2\string#2\endcsname{#1}{#2}% } \newcommand{\providecommandtwoopt}{% \@ifstar{\@providecommandtwoopt*}{\@providecommandtwoopt{}}% } \newcommand{\@providecommandtwoopt}{} \long\def\@providecommandtwoopt#1#2{% \begingroup \escapechar\m@ne \xdef\@gtempa{{\string#2}}% \endgroup \expandafter\@ifundefined\@gtempa{% \expandafter\@@newcommandtwoopt \csname2\string#2\endcsname{#1}{#2}% }{% \let\to@dummyA\@undefined \let\to@dummyB\@undefined \@@newcommandtwoopt\to@dummyA{#1}\to@dummyB }% } \newcommand{\to@ScanSecondOptArg}[3]{% \@ifnextchar[{% \expandafter#1\to@ArgOptToArgArg{#2}% }{% #1{#2}{#3}% }% } \newcommand{\to@ArgOptToArgArg}{} \long\def\to@ArgOptToArgArg#1[#2]{{#1}{#2}} \endinput %% %% End of file `twoopt.sty'.