1 %%%%%%% Internal basic commands for package 2 b\newcommand{\relax}{} 3 \newcommand{\@empty}{} 4 \newcommand{\@gooble}[1]{} 5 \let\@gobble\@gooble 6 %%%%%% Iter #1 on #3, a #2 separated list of non-empty elements 7 \def\@iter 8 #1#2#3{% 9 %\hva@warn{\@iter '#1' '#2' '#3'}% 10 \def\@test{#3}% 11 \ifx\@test\@empty\else 12 \def\@@iter##1#2{% 13 %\hva@warn{\@@iter '##1'}% 14 \def\@test{##1}% 15 \ifx\@test\@empty 16 \let\@next\relax\else 17 #1{##1}% 18 \let\@next\@@iter\fi 19 \@next}% 20 \@callsubst{\@@iter}{#3#2#2}\fi} 21 %%%%%%%%%% eat leading spaces in argument 22 \def\@eatspaces#1,{#1}% 23 %%%%% 24 \newcommand{\@Let}[2]{\ifu#2\else\let#1#2\fi} 25 \newcommand{\IfDisplay}[2]{\ifdisplay#1\else#2\fi} 26 \newcommand{\@non@kk}[2][]{} 27 \newcommand{\@non@k}[1][]{\@non@kk} 28 \newcommand{\NoCommand}[1]{\@non@k} 29 %%%shortcuts for defining/using strange csname %%% 30 \newcommand{\@namedef}[1]{\def\csname#1\endcsname} 31 \newcommand{\@nameuse}[1]{\csname#1\endcsname}