8

I would like to do something like this

\newcommand{\pmat}[1][2][3][4]{\begin{pmatrix} #1 & #2 \\ #3 & #4\end{pmatrix}}

But this produces the error

ERROR: LaTeX Error: Missing \begin{document}.
...                                              
l.42 \newcommand{\pmat}[1][2][3
                               ][4]{\begin{pmatrix} #1 & #2 \\ #3 & #4\end{p..

How do I create a newcommand \pmat such that \pmat{1}{2}{3}{4} produces \begin{pmatrix} 1 & 2 \\ 3 & 4\end{pmatrix}?

Thanks, Thomas

3 Answers 3

12

It's because the proper syntax is

\newcommand{\pmat}[4]{\begin{pmatrix} #1 & #2 \\ #3 & #4\end{pmatrix}}

The argument between the brackets is the number of arguments, not the argument's name.

1
  • Thanks! I had the feeling that I was just missing something elementary
    – Thomas
    Commented Jun 9, 2011 at 16:32
5

The syntax for \newcommand (without optional argument) is

\newcommand{\<name>}[<number of arguments>]{<definition>}

so you can use

\newcommand{\pmat}[4]{%
  \begin{pmatrix} #1 & #2 \\ #3 & #4\end{pmatrix}
}
0
3
\documentclass{article}
\usepackage{amsmath}
\newcommand\pmat[4]{\ensuremath{\begin{pmatrix} #1 & #2 \\ #3 & #4\end{pmatrix}}}

\begin{document}
\pmat{1}{2}{3}{4}
\end{document}
1
  • Is it a best practice to use \ensuremath? Commented Jun 9, 2011 at 18:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .