Vai al contenuto

I tuoi comandi con \newcommand

Scrivi \newcommand{\name}{replacement} nel preambolo, con [n] per gli argomenti da #1 a #n; da quel momento \name viene sostituito dalla sua definizione, nel testo e nella matematica.

Un comando senza argomenti

Un comando fa risparmiare battute e mantiene coerente la notazione. Definiscilo una volta nel preambolo e usalo ovunque.

Scorciatoie per insiemi e per il nome di un prodotto

\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}
Composto da Scissor LaTeX: Scorciatoie per insiemi e per il nome di un prodotto

Argomenti e un valore predefinito

[n] dopo il nome indica quanti argomenti prende il comando; all’interno della definizione sono #1, #2 e così via. Una seconda parentesi quadra dà al primo argomento un valore predefinito, rendendolo facoltativo.

Argomenti e un primo argomento facoltativo

\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}

Modificare un comando esistente

\renewcommand sostituisce un comando che esiste già, e \providecommand ne definisce uno solo se non esiste ancora. In un’installazione TeX, \newcommand per un nome già occupato è un errore; in quel caso usa \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}

Nomi di operatori

I nomi di funzione come sin e log sono composti in tondo con la spaziatura corretta. \DeclareMathOperator (amsmath) crea i tuoi; la forma con asterisco mette gli estremi sotto nelle formule in evidenza, come \max.

\DeclareMathOperator e la sua 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}

I tuoi ambienti

\newenvironment{name}[n]{before}{after} definisce un ambiente: il codice "before" viene eseguito a \begin{name} e il codice "after" a \end{name}. Gli argomenti si possono usare nella parte "before".

Un ambiente con un argomento

\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}

Cosa funziona

ComandoIn Scissor LaTeXNote
\newcommand, \renewcommand, \providecommandFunzionaFino a 9 argomenti, un primo argomento facoltativo con valore predefinito. Anche le forme con asterisco.
\DeclareRobustCommandFunzionaCome \newcommand.
\newenvironment, \renewenvironmentFunzionaCon argomenti e un valore predefinito.
\DeclareMathOperator, \DeclareMathOperator*Funziona
\def\name{...}, \gdef, \edef, \xdefIn parteLe definizioni semplici e gli argomenti nello stile #1 funzionano; i parametri delimitati come \def\pt(#1,#2){...} non vengono riconosciuti e producono un risultato confuso.
\let\new\oldFunziona
\NewDocumentCommand, \RenewDocumentCommand (xparse)Non supportatoLa definizione viene eliminata e il comando viene segnalato come sconosciuto dove viene usato.
\DeclarePairedDelimiter (mathtools)Funziona
\makeatletter, \makeatotherAccettatoI comandi con @ nel nome non vengono eseguiti.

Le definizioni vengono espanse prima della composizione, quindi un comando si può usare nel testo, nella matematica, nelle didascalie e nei titoli delle sezioni. Per proteggersi dai cicli, l’espansione si ferma a un limite di sicurezza, con un messaggio nella scheda Problemi.

Comandi xparse

\NewDocumentCommand di xparse non viene letto. La definizione viene eliminata e, dove il comando viene usato, il suo nome viene saltato con un messaggio mentre i suoi argomenti restano nel testo.

\NewDocumentCommand non è supportato

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

Scheda Problemi: Skipped 1 unknown command: \pair

Per correggerlo, scrivi lo stesso comando con \newcommand{\pair}[2]{(#1, #2)}. Per gli argomenti facoltativi, \newcommand con un valore predefinito copre il caso più comune.

Cosa cambia rispetto a un’installazione TeX

I manuali di xparse e mathtools sono su CTAN: xparse, mathtools. Per operatori e nomi di funzione, vedi anche Sommatorie, integrali e nomi di funzione.

Domande e risposte

Come si definisce un nuovo comando in LaTeX?

Scrivi \newcommand{\name}{text} nel preambolo. Aggiungi [2] dopo il nome per due argomenti e usa #1 e #2 nel testo.

Qual è la differenza tra \newcommand e \def?

\newcommand controlla che il nome sia libero e supporta un argomento facoltativo. \def è il comando TeX di basso livello; sovrascrive senza chiedere. Preferisci \newcommand e \renewcommand.

\NewDocumentCommand funziona in Scissor LaTeX?

No. Riscrivi questi comandi con \newcommand, che copre gli argomenti obbligatori e un argomento facoltativo.

Ogni esempio di questa pagina viene composto da Scissor LaTeX quando il sito viene generato. Ultimo aggiornamento: 2026-11-07.