3

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

\makebox(0,0){}

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 07:54

1 Answers1

8

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]

Ulrike Fischer
  • 327,261
  • Perhaps not xparse behaviour in the last paragraph? – Joseph Wright Apr 26 '19 at 08: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 09:15