This answer concerns two sorts of problems: errors of the form
! Missing number, treated as zero. <to be read again> g <*> [grump]and those where a single asterisk at the start of a line mysteriously fails to appear in the output.
Both problems arise because \
\
takes optional arguments. The
command \
\*
means "break the line here, and inhibit page break
following the line break"; the command \
\[
<dimen>]
means "break the line here and add <dimen> extra vertical space
afterwards".
So why does \
\
get confused by these things at the start of a
line? It's looking for the first non-blank thing, and in the test it
uses ignores the end of the line in your input text.
The solution is to enclose the stuff at the start of the new line in braces:
{\ttfamily /* C-language comment\\ {[grump]} I don't like this format\\ {*}/ }(The above text derives from an actual post to comp.text.tex; this particular bit of typesetting could plainly also be done using the
verbatim
environment.)
The problem also appears in maths mode, in arrays and so on. In this
case, large-scale bracketing of things is not a good idea; the
TeX primitive (which does nothing except to block
searches of this nature) may be used. From another
comp.text.tex example:
\begin{eqnarry} [a] &=& b \\ \relax[a] &=& b \end{eqnarry}