Kein echtes Problem aber ein für mich merkwürdiges Verhalten ist mir aufgefallen. Folgendes Minimalbeispiel:

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass[a4paper]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\newcommand{\test}[1][A]{x^{#1}}
\begin{document}
$\test[\begin{smallmatrix} 1 \\ 2 \end{smallmatrix}]$
\[\test[\begin{smallmatrix} 1 \\ 2 \end{smallmatrix}]\]
\begin{align*}\test[\begin{smallmatrix} 1 \\ 2\end{smallmatrix}]\end{align*}
$\test[\begin{smallmatrix} 1 & 2 \end{smallmatrix}]$
\[\test[\begin{smallmatrix} 1 & 2 \end{smallmatrix}]\]
%\begin{align*}\test[\begin{smallmatrix} 1 & 2 \end{smallmatrix}]\end{align*}
\begin{align*}\test[{\begin{smallmatrix} 1 & 2 \end{smallmatrix}}]\end{align*}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

In der align-Umgebung ist es beim zweiten Block notwendig, eine weitere geschweifte Klammer zu setzen, ansonsten wird das Dokument nicht kompiliert. Gibt es einen Grund weshalb die Klammer notwendig ist?

Beispiel mit Matrix als Defaultwert:

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\newcommand{\test}[1][A]{x^{#1}}
\newcommand{\testneu}[1][\begin{smallmatrix} 3 & 4\end{smallmatrix}]{x^{#1}}
\begin{document}
%\begin{align*}\test[\begin{smallmatrix} 1 & 2 \end{smallmatrix}]\end{align*}
\begin{align*}\test[{\begin{smallmatrix} 1 & 2 \end{smallmatrix}}]\end{align*}
\begin{align*}\testneu\end{align*}
\[\testneu[\begin{smallmatrix} 1 & 2 \end{smallmatrix}]\]
% \begin{align*}\test[\begin{smallmatrix} 1 & 2 \end{smallmatrix}]\end{align*}
\begin{align*}\testneu[{\begin{smallmatrix} 1 & 2 \end{smallmatrix}}]\end{align*}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

gefragt 06 Dez '17, 15:23

Hirshy's gravatar image

Hirshy
73143745
Akzeptiert-Rate: 0%

bearbeitet 07 Dez '17, 07:54


Du hast ein & im optionalen Argument. Wenn du das nicht mit der Klammer schützt, erzeugt es eine neue Zelle der align-Umgebung und alles explodiert.

Permanenter link

beantwortet 07 Dez '17, 00:08

Ulrike%20Fischer's gravatar image

Ulrike Fischer
3.6k23
Akzeptiert-Rate: 52%

D.h. die geschweifte Klammer aus der Definition des Befehls reicht dafür nicht aus? Und wie verhält es sich dann, wenn z.B. ein & im Defaultwert vorkommt (siehe Ergänzung oben)? Da scheint es ja zu funktionieren; wird der Defaultwert anders behandelt als eine Ersetzung?

(07 Dez '17, 07:56) Hirshy
3

[] sind keine Argumentklammern (weshalb man sie auch nicht einfach schachteln kann). Erst, wenn \test expandiert wird, reagiert \test selbst auf die eckige Klammer und ruft dann ein Makro mit einem sogenannten delimited argument auf. Zuvor ist das [ einfach nur ein Zeichen. \test wiederum wird erst expandiert, wenn die Aufteilung am & bereits erfolgt ist. Anders ist es mit Material, das in {} verpackt ist. Das sind sowohl Gruppen- als auch Argumentklammern. Da weiß TeX, dass es sich beim Aufteilen nicht weiter um den Inhalt zu kümmern hat.

(07 Dez '17, 08:12) saputello

Alles klar, danke!

(07 Dez '17, 08:56) Hirshy

Man kann um das Problem herumarbeiten indem man explizite geschweifte Klammern um das & einfügt. Derselbe Trick wir zum Beispiel in tabular verwendet, damit man Tabellen schachteln kann.

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass{article}
\usepackage{amsmath}
\newcommand{\test}{{\ifnum`}=0\fi\dotest}
\newcommand{\dotest}[1][A]{x^{#1}\ifnum`{=0\fi}}
\begin{document}
\begin{align*}\test[\begin{smallmatrix} 1 & 2 \end{smallmatrix}]\end{align*}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Permanenter link

beantwortet 10 Dez '17, 07:18

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×20
×13

gestellte Frage: 06 Dez '17, 15:23

Frage wurde gesehen: 6,065 Mal

zuletzt geändert: 10 Dez '17, 07:18