TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

With newcommand I can define customized command like \ABC. Is there any way to define a command with arguments. For example I want \brat{A}{B} be the same as [\![A,B]\!].

share|improve this question
Just to make sure: You want use to round parentheses and one comma (and no spaces) to set off the two parameters? – Mico Jul 13 '14 at 12:32
No, I want to feed the arguments, I don't know how. – user69453 Jul 13 '14 at 12:33
So would \brat{A}{B} be acceptable syntax? – Mico Jul 13 '14 at 12:35
\newcommand\ABC[3]{Something with #1, #2 and #3} where the number is the number of parameters. – Manuel Jul 13 '14 at 12:42
This might be relevant: tex.stackexchange.com/questions/28042/…. – Ethan Bolker Jul 13 '14 at 13:38
up vote 12 down vote accepted

The general form of \newcommand is

\newcommand\commandname[number of arguments][value of optional argument]{code}

(Most of the time there won't be an optional argument, in which case this is omitted.) The arguments are given as #1, #2 etc in code.

To define your \brat command you would write


You then use this macro by writing \brat{A}{B}, \brat{A}{C} and so on. If almost all of the time you wanted the first argument to be A then you could instead use an optional first argument and define


You use this version of the macro n almost exactly the same way except that you do not need to specify A: so \Brat{B} produces the same as \brat{A}{B} before. To change the value of the optional argument from A to C, say, you would write \Brat[C]{B}. This is the same as \brat{C}{B} using the first macro.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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