Deprecated fromv5.3.0(seeProcedure Definition Syntax)
- What follows is a formal presentation of the syntax of the
\definepragma, using railroad diagrams. A simpler overview is also available.
space denotes a sequence of whitespace characters.
The macro's name is a sequence of non-whitespace characters other than ( or >.
The parameter declaration list (params) has the following syntax:
The parameter separator (sep) is any sequence of characters that does not match a param-name. Among other things, this includes commas, spaces and linefeeds.
A param-name is a sequence of letters (A–Z, a–z), digits (0–9), hyphens (-) and underscores (_).
Each individual param has the following syntax:
The optional default value of a parameter is specified as follows:
The rest of the definition has the following syntax:
lf denotes a linefeed.
The snippet is any sequence of characters that doesn't terminate the macro definition. That is to say, a single-line snippet cannot contain a linefeed, and a multi-line snippet cannot contain \end on a line of its own.
The snippet can contain placeholders with the following syntax: