Pular para o conteúdo

Seus próprios comandos com \newcommand

Escreva \newcommand{\nome}{substituição} no preâmbulo, com [n] para os argumentos #1 a #n; a partir daí, \nome é substituído pela sua definição, no texto e na matemática.

Um comando sem argumentos

Um comando poupa digitação e mantém a notação consistente. Defina-o uma vez no preâmbulo e use-o em qualquer lugar.

Atalhos para conjuntos e um nome de produto

\documentclass{article}
\usepackage{amssymb}
\newcommand{\R}{\mathbb{R}}
\newcommand{\product}{Scissor LaTeX}
\begin{document}
Every $x \in \R$ has a square $x^2 \ge 0$.
This page was typeset by \product.
\end{document}
Renderizado pelo Scissor LaTeX: Atalhos para conjuntos e um nome de produto

Argumentos e um valor padrão

[n] depois do nome diz quantos argumentos o comando recebe; dentro da definição eles são #1, #2 e assim por diante. Um segundo colchete dá ao primeiro argumento um valor padrão, o que o torna opcional.

Argumentos e um primeiro argumento opcional

\documentclass{article}
\newcommand{\vect}[1]{\mathbf{#1}}
\newcommand{\norm}[1]{\left\lVert #1 \right\rVert}
\newcommand{\greet}[2][Hello]{#1, #2!}
\begin{document}
The length of $\vect{v}$ is $\norm{\vect{v}}$.
\greet{Erika} \greet[Good morning]{John}
\end{document}

Alterando um comando existente

\renewcommand substitui um comando que já existe, e \providecommand define um comando só se ele ainda não existir. Usar \newcommand com um nome já ocupado é um erro em uma instalação do TeX; nesse caso, use \renewcommand.

\renewcommand e \providecommand

\documentclass{article}
\renewcommand{\emph}[1]{\textbf{#1}}
\providecommand{\R}{\mathbb{R}}
\begin{document}
This is \emph{emphasised} in bold now, and $\R$ is defined.
\end{document}

Nomes de operadores

Nomes de funções como sin e log são compostos em letra reta, com o espaçamento certo. \DeclareMathOperator (amsmath) cria os seus; a forma com asterisco põe os limites embaixo nas fórmulas destacadas, como \max.

\DeclareMathOperator e sua forma com asterisco

\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\Var}{Var}
\DeclareMathOperator*{\argmax}{arg\,max}
\begin{document}
\[
  \Var(X) = \mathbb{E}\left[(X - \mu)^2\right],
  \qquad
  \hat{\theta} = \argmax_{\theta} L(\theta)
\]
\end{document}

Seus próprios ambientes

\newenvironment{nome}[n]{antes}{depois} define um ambiente: o código "antes" é executado em \begin{nome} e o código "depois" em \end{nome}. Os argumentos podem ser usados na parte "antes".

Um ambiente com um argumento

\documentclass{article}
\newenvironment{task}[1]
  {\par\noindent\textbf{Task #1.}\ }
  {\par}
\begin{document}
\begin{task}{44}
Measure the rainfall every morning.
\end{task}
\end{document}

O que funciona

ComandoNo Scissor LaTeXObservações
\newcommand, \renewcommand, \providecommandFuncionaAté 9 argumentos, com um primeiro argumento opcional com valor padrão. As formas com asterisco também.
\DeclareRobustCommandFuncionaComo \newcommand.
\newenvironment, \renewenvironmentFuncionaCom argumentos e um valor padrão.
\DeclareMathOperator, \DeclareMathOperator*Funciona
\def\name{...}, \gdef, \edef, \xdefEm parteDefinições simples e argumentos no estilo #1 funcionam; parâmetros delimitados como \def\pt(#1,#2){...} não são reconhecidos e geram uma saída embaralhada.
\let\new\oldFunciona
\NewDocumentCommand, \RenewDocumentCommand (xparse)Não suportadoA definição é descartada e o comando é relatado como desconhecido onde é usado.
\DeclarePairedDelimiter (mathtools)Funciona
\makeatletter, \makeatotherAceitoComandos com @ no nome não são executados.

As definições são expandidas antes da composição, então um comando pode ser usado no texto, na matemática, nas legendas e nos títulos de seção. Para evitar laços infinitos, a expansão para em um limite de segurança, com uma mensagem na aba Problemas.

Comandos do xparse

\NewDocumentCommand do xparse não é lido. A definição é descartada e, onde o comando é usado, o nome dele é pulado com uma mensagem, enquanto os argumentos continuam no texto.

\NewDocumentCommand não é suportado

\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand{\pair}{m m}{(#1, #2)}
\begin{document}
The pair \pair{a}{b} loses its parentheses and comma.
\end{document}

Aba Problemas: Skipped 1 unknown command: \pair

Para corrigir, escreva o mesmo comando com \newcommand{\pair}[2]{(#1, #2)}. Para argumentos opcionais, \newcommand com um valor padrão cobre o caso mais comum.

O que difere de uma instalação do TeX

Os manuais do xparse e do mathtools estão no CTAN: xparse, mathtools. Para operadores e nomes de funções, veja também Somas, integrais e nomes de funções.

Perguntas e respostas

Como eu defino um novo comando no LaTeX?

Escreva \newcommand{\nome}{texto} no preâmbulo. Acrescente [2] depois do nome para dois argumentos e use #1 e #2 no texto.

Qual é a diferença entre \newcommand e \def?

\newcommand verifica se o nome está livre e suporta um argumento opcional. \def é o comando de baixo nível do TeX; ele sobrescreve sem perguntar. Prefira \newcommand e \renewcommand.

O \NewDocumentCommand funciona no Scissor LaTeX?

Não. Reescreva esses comandos com \newcommand, que cobre argumentos obrigatórios e um argumento opcional.

Cada exemplo desta página é composto pelo Scissor LaTeX quando o site é gerado. Última atualização: 2026-11-07.