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

Öffne in Overleaf
\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}

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

gefragt 06 Dez, 09:23

Hirshy's gravatar image

Hirshy
446620
Akzeptiert: 84%

bearbeitet 07 Dez, 01: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 06 Dez, 18:08

Ulrike%20Fischer's gravatar image

Ulrike Fischer
2.5k13

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, 01: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, 02:12) saputello

Alles klar, danke!

(07 Dez, 02: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
\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}
Permanenter link

beantwortet 10 Dez, 01:18

Henri's gravatar image

Henri
11.7k42235

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×13
×9

Frage gestellt: 06 Dez, 09:23

Frage wurde angeschaut: 126 Mal

Zuletzt aktualisiert: 10 Dez, 01:18