改段落を含むマクロ

\defでマクロを定義すると、定義途中で1行空き*1があるとエラーになる。

\def\bold#1{\bf #1}

\bold{ほげ} %これとか

\bold{ほげ
ほげ}       %これは大丈夫だが

\bold{ほげ

ほげ}       %こうなるとだめ

そんなときは\longという命令を使って\long\defとする。
\newcommandだと定義中に改行が入っていてもいいんだけど、内部ではこれをやっているらしい。

*1:というかそれによって内部で呼び出される\par命令(改段落)