Tus propios comandos con \newcommand
Escribe \newcommand{\name}{replacement} en el preámbulo, con [n] para los argumentos #1 a #n; a partir de ahí, \name se sustituye por su definición, en el texto y en las matemáticas.
Un comando sin argumentos
Un comando ahorra escritura y mantiene la notación coherente. Defínelo una vez en el preámbulo y úsalo donde quieras.
Atajos para conjuntos y un nombre de producto
\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}Argumentos y un valor predeterminado
[n] después del nombre indica cuántos argumentos recibe el comando; dentro de la definición son #1, #2 y así sucesivamente. Un segundo corchete da al primer argumento un valor predeterminado, lo que lo hace opcional.
Argumentos y un primer 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}Cambiar un comando existente
\renewcommand sustituye un comando que ya existe, y \providecommand define uno solo si todavía no existe. En una instalación de TeX, usar \newcommand con un nombre ya ocupado es un error; en ese caso usa \renewcommand.
\renewcommand y \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}Nombres de operadores
Los nombres de funciones como sin y log se escriben en redonda con el espaciado correcto. \DeclareMathOperator (amsmath) crea los tuyos; la forma con asterisco pone los límites debajo en las fórmulas destacadas, como \max.
\DeclareMathOperator y su forma con 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}Tus propios entornos
\newenvironment{name}[n]{before}{after} define un entorno: el código «before» se ejecuta en \begin{name} y el código «after» en \end{name}. Los argumentos se pueden usar en la parte «before».
Un entorno con un 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}Qué funciona
| Comando | En Scissor LaTeX | Notas |
|---|---|---|
\newcommand, \renewcommand, \providecommand | Funciona | Hasta 9 argumentos, con un primer argumento opcional con valor predeterminado. También las formas con asterisco. |
\DeclareRobustCommand | Funciona | Como \newcommand. |
\newenvironment, \renewenvironment | Funciona | Con argumentos y un valor predeterminado. |
\DeclareMathOperator, \DeclareMathOperator* | Funciona | |
\def\name{...}, \gdef, \edef, \xdef | En parte | Las definiciones simples y los argumentos del tipo #1 funcionan; los parámetros delimitados como \def\pt(#1,#2){...} no se reconocen y dan un resultado ilegible. |
\let\new\old | Funciona | |
\NewDocumentCommand, \RenewDocumentCommand (xparse) | No compatible | La definición se descarta y el comando se señala como desconocido allí donde se usa. |
\DeclarePairedDelimiter (mathtools) | Funciona | |
\makeatletter, \makeatother | Se acepta | Los comandos con @ en su nombre no se ejecutan. |
Las definiciones se expanden antes de componer, así que un comando se puede usar en el texto, en las matemáticas, en las leyendas y en los títulos de sección. Para evitar bucles, la expansión se detiene al llegar a un límite de seguridad, con un aviso en la pestaña Problemas.
Comandos de xparse
\NewDocumentCommand de xparse no se lee. La definición se descarta y, donde se usa el comando, su nombre se omite con un aviso, mientras que sus argumentos se quedan en el texto.
\NewDocumentCommand no es compatible
\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand{\pair}{m m}{(#1, #2)}
\begin{document}
The pair \pair{a}{b} loses its parentheses and comma.
\end{document}Pestaña Problemas: Skipped 1 unknown command: \pair
Para arreglarlo, escribe el mismo comando con \newcommand{\pair}[2]{(#1, #2)}. Para argumentos opcionales, \newcommand con un valor predeterminado cubre el caso habitual.
Diferencias con una instalación de TeX
Los manuales de xparse y mathtools están en CTAN: xparse, mathtools. Para operadores y nombres de funciones, consulta también Sumas, integrales y nombres de funciones.
Preguntas y respuestas
¿Cómo defino un comando nuevo en LaTeX?
Escribe \newcommand{\name}{text} en el preámbulo. Añade [2] después del nombre para dos argumentos y usa #1 y #2 en el texto.
¿Qué diferencia hay entre \newcommand y \def?
\newcommand comprueba que el nombre esté libre y admite un argumento opcional. \def es el comando de TeX de bajo nivel; sobrescribe sin preguntar. Es mejor usar \newcommand y \renewcommand.
¿Funciona \NewDocumentCommand en Scissor LaTeX?
No. Reescribe esos comandos con \newcommand, que cubre los argumentos obligatorios y un argumento opcional.
Scissor LaTeX compone cada ejemplo de esta página al generar el sitio. Última actualización: 2026-11-07.