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

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.

  • Thanks! I had the feeling that I was just missing something elementary – Thomas Jun 9 '11 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}
}
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}
  • Is it a best practice to use \ensuremath? – xport Jun 9 '11 at 18:10

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.