Just wondering where I can find documentation for the following syntax, which is shown at https://tex.stackexchange.com/a/34929/187592?


I thought only [] or {} are the valid brackets for the macros? Is parenthesis tex or latex syntax? Could not find the answer on the web.

  • 3
    Round parentheses are the so-called picture mode arguments and widely used by graphical tools like picture mode, TikZ etc. to denote x and y coordinate. – TeXnician Apr 26 '19 at 7:54

There are quite a number of argument delimiters in use. Standard for an optional argument is []. But () (picture mode, tikz) and <> (beamer) is used a lot too. For verbatim input you can use \verb+some text+. Quotes have also been used.

But the braces {} are the only "real" argument delimiters. They must be matched, that means for every opening brace they should be a closing brace and they can nested: an argument {abc {xyz} def} will correctly find the closing brace and be read as abc {xyz} def.

All other argument delimiters work by looking for a char and then searching for a matching closing char. This means that one has to be a bit careful with the input. With standard LaTeX commands e.g. [abc [xyz] def] will be give you the argument abc [xyz unless you protect the inner bracket with braces: [abc {[xyz]} def]. With commands defined with xparse [abc [xyz] def] will work, but here one would have to protect an unmatched opening delimiter: [abc {[}xyz def]

  • Perhaps not xparse behaviour in the last paragraph? – Joseph Wright Apr 26 '19 at 8:53
  • @JosephWright I never realized that xparse is actually matching such delimiters too. That is not really obvious from the documentation imho. It only says for for e.g. o "A standard LATEX optional argument". – Ulrike Fischer Apr 26 '19 at 9:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.