Eigene Befehle mit \newcommand
Schreiben Sie \newcommand{\name}{Ersetzung} in die Präambel, mit [n] für die Argumente #1 bis #n; ab dann wird \name durch seine Definition ersetzt, im Text und in Formeln.
Ein Befehl ohne Argumente
Ein Befehl spart Tipparbeit und hält die Notation einheitlich. Definieren Sie ihn einmal in der Präambel und verwenden Sie ihn überall.
Abkürzungen für Mengen und einen Produktnamen
\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}Argumente und ein Standardwert
[n] nach dem Namen gibt an, wie viele Argumente der Befehl erhält; in der Definition heißen sie #1, #2 und so weiter. Eine zweite eckige Klammer gibt dem ersten Argument einen Standardwert und macht es damit optional.
Argumente und ein optionales erstes Argument
\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}Einen vorhandenen Befehl ändern
\renewcommand ersetzt einen Befehl, der bereits existiert, und \providecommand definiert einen Befehl nur, wenn es ihn noch nicht gibt. \newcommand für einen vergebenen Namen ist in einer TeX-Installation ein Fehler; verwenden Sie dann \renewcommand.
\renewcommand und \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}Operatornamen
Funktionsnamen wie sin und log werden aufrecht und mit den richtigen Abständen gesetzt. \DeclareMathOperator (amsmath) erzeugt eigene; die Form mit Stern setzt Grenzen in abgesetzten Formeln darunter, wie bei \max.
\DeclareMathOperator und seine Form mit Stern
\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}Eigene Umgebungen
\newenvironment{name}[n]{before}{after} definiert eine Umgebung: Der Code „before“ läuft bei \begin{name}, der Code „after“ bei \end{name}. Argumente lassen sich im Teil „before“ verwenden.
Eine Umgebung mit einem Argument
\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}Was funktioniert
| Befehl | In Scissor LaTeX | Hinweise |
|---|---|---|
\newcommand, \renewcommand, \providecommand | Funktioniert | Bis zu 9 Argumente, ein optionales erstes Argument mit Standardwert. Auch die Formen mit Stern. |
\DeclareRobustCommand | Funktioniert | Wie \newcommand. |
\newenvironment, \renewenvironment | Funktioniert | Mit Argumenten und Standardwert. |
\DeclareMathOperator, \DeclareMathOperator* | Funktioniert | |
\def\name{...}, \gdef, \edef, \xdef | Teilweise | Einfache Definitionen und Argumente im Stil #1 funktionieren; begrenzte Parameter wie \def\pt(#1,#2){...} werden nicht erkannt und ergeben eine verstümmelte Ausgabe. |
\let\new\old | Funktioniert | |
\NewDocumentCommand, \RenewDocumentCommand (xparse) | Nicht unterstützt | Die Definition wird verworfen, und der Befehl wird dort, wo er verwendet wird, als unbekannt gemeldet. |
\DeclarePairedDelimiter (mathtools) | Funktioniert | |
\makeatletter, \makeatother | Akzeptiert | Befehle mit @ im Namen werden nicht ausgeführt. |
Definitionen werden vor dem Setzen expandiert; ein Befehl lässt sich also im Text, in Formeln, in Beschriftungen und in Abschnittstiteln verwenden. Zum Schutz vor Endlosschleifen endet die Expansion an einer Sicherheitsgrenze, mit einer Meldung im Tab Probleme.
xparse-Befehle
\NewDocumentCommand aus xparse wird nicht gelesen. Die Definition wird verworfen, und wo der Befehl verwendet wird, wird sein Name mit einer Meldung übersprungen, während seine Argumente im Text bleiben.
\NewDocumentCommand wird nicht unterstützt
\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand{\pair}{m m}{(#1, #2)}
\begin{document}
The pair \pair{a}{b} loses its parentheses and comma.
\end{document}Tab „Probleme“: Skipped 1 unknown command: \pair
Zur Abhilfe schreiben Sie denselben Befehl mit \newcommand{\pair}[2]{(#1, #2)}. Für optionale Argumente deckt \newcommand mit Standardwert den häufigen Fall ab.
Was sich von einer TeX-Installation unterscheidet
Die Handbücher von xparse und mathtools stehen auf CTAN: xparse, mathtools. Zu Operatoren und Funktionsnamen siehe auch Summen, Integrale und Funktionsnamen.
Fragen und Antworten
Wie definiere ich in LaTeX einen neuen Befehl?
Schreiben Sie \newcommand{\name}{Text} in die Präambel. Fügen Sie nach dem Namen [2] für zwei Argumente hinzu und verwenden Sie #1 und #2 im Text.
Was ist der Unterschied zwischen \newcommand und \def?
\newcommand prüft, ob der Name frei ist, und unterstützt ein optionales Argument. \def ist der elementare TeX-Befehl; er überschreibt ohne Nachfrage. Verwenden Sie lieber \newcommand und \renewcommand.
Funktioniert \NewDocumentCommand in Scissor LaTeX?
Nein. Schreiben Sie solche Befehle mit \newcommand neu, das Pflichtargumente und ein optionales Argument abdeckt.
Jedes Beispiel auf dieser Seite wird beim Erstellen der Website von Scissor LaTeX gesetzt. Zuletzt aktualisiert am 2026-11-07.