かすみん日記

暇なときに何か喋ります

【LaTeX】\secdef の意味

book.clsの中の \chapter の定義

\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}

の最後の行にある \secdef の意味。

 

もし \foo

\def\foo{<tokens>\secdef\fooA\fooB}

 のように定義されているとき、\foo が呼ばれた場合には

<tokens>\fooA

が実行され、\foo* が呼ばれた場合には

<tokens>\fooB

 が実行される。

 

 

参考 

tex.stackexchange.com

 

 

追記(2018/09/20) 

\foo なら \fooA,  \foo* なら \fooB

と出力するマクロを書きたいなら\@ifstarを使って

\newcommand\foo{\@ifstar\fooA\fooB}

と書こう。

アットマークを使うので、プリアンブルに書くときは

\makeatletter ~~~ \makeatother

としよう。