alt text

Ich möchte eine Liste erstellen, mit der Ausgabe

\ifnum\y=0 {null} \else $\underbrace{\pgfmathresult}_{a}$ % Tut nicht ! ! !

dafür bekomme ich aber Illegal parameter number in definition of \ylist. <to be read again> \crcr

Das Problem scheint explizit das underbrace zu sein (andere Mathenotationen scheinen zu gehen, z.B. \frac usw.)

Ohne underbrace geht z.B.

\ifnum\y=0 {null} \else $\pgfmathresult$ % Tut

Was läuft hier schief?

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass[border=5mm, varwidth]{standalone}
\usepackage{tikz, amsmath}
\begin{document}
Tut: $\underbrace{1}_{a}$
Tut nicht mit underbrace:
\newcommand{\ylist}{}% Name reservieren
\newcommand\ausgabe{%
\ifnum\y=0 {null}
\else $\pgfmathresult$ % Tut
%\else $\underbrace{\pgfmathresult}_{a}$ % Tut nicht ! ! !
\fi
}
\let\ylist=\empty% Liste erstellen
\foreach \y in {0,1,2,3}
{
\pgfmathparse{\y+0.5}%
\ifx\empty\ylist{} \xdef\ylist{\ausgabe}%
\else \xdef\ylist{\ylist,\ausgabe}%
\fi
}
Anzeigen: \ylist
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

PS: Ich habe auch hier gefragt, da ich erst dachte, es handeltz sich um ein Mathenotationsproblem. Es scheint aber eher ein LaTeX-Problem zu sein.

gefragt 13 Feb '18, 18:29

cis's gravatar image

cis
9.6k103460491
Akzeptiert-Rate: 29%

bearbeitet 13 Feb '18, 19:01

gast3's gravatar image

gast3
(ausgesetzt)


\underbrace ist nicht voll expandierbar, es zerbricht also bei \xdef. Davor muss man es schützen. Überhaupt ist \xdef bei LaTeX meist durch \protected@xdef zu ersetzen, damit man nicht voll expandierbare Befehle mit \protect schützen kann:

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass[border=5mm, varwidth]{standalone}
\usepackage{tikz, amsmath}
\begin{document}
Tut: $\underbrace{1}_{a}$
Tut nicht mit underbrace:
\newcommand{\ylist}{}% Name reservieren
\newcommand\ausgabe{%
\ifnum\y=0 {null}
%\else $\pgfmathresult$ % Tut
\else $\protect\underbrace{\pgfmathresult}_{a}$ % Tut nicht ! ! !
\fi
}
\let\ylist=\empty% Liste erstellen
\makeatletter
\foreach \y in {0,1,2,3}
{
\pgfmathparse{\y+0.5}%
\ifx\empty\ylist{} \protected@xdef\ylist{\ausgabe}%
\else \protected@xdef\ylist{\ylist,\ausgabe}%
\fi
}
\makeatother
Anzeigen: \ylist
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

so funktioniert es

Permanenter link

beantwortet 13 Feb '18, 18:55

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

bearbeitet 13 Feb '18, 18:58

Klasse! Damit komme ich weiter...

(13 Feb '18, 19:00) cis
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:

×21
×7
×6

gestellte Frage: 13 Feb '18, 18:29

Frage wurde gesehen: 5,912 Mal

zuletzt geändert: 13 Feb '18, 19:00