The macro name and the first argument, and any two consecutive arguments, can be optionally separated by exactly one newline character, e.g.:
is equivalent to:
which is also equivalent to:
This allows to greatly improve the readability of long argument lists by having them one per line.
\H
[2]
{scope}
[Design goals]
\H[2]{scope}[Design goals]
\H[2]{scope}
[Design goals]
There is one exception to this however: inside an insane header, any newline is interpreted as the end of the insane header. This is why the following works as expected:
and the
== My header 2 `some code`
{id=asdf}
id
gets assigned to the header rather than the trailing code element.