3
1

Wie kann man in TikZ Fallunterscheidungen vornehmen?

Beispielmuster:

Wenn n gleich 1 dann "eins"

Wenn n gleich 2 dann "zwei"

Wenn n ... dann ... (Ausgab oder weitere Routine)

Sonst ... (Ausgab oder weitere Routine)

gefragt 12 Nov '15, 04:43

rix's gravatar image

rix
39081823
Akzeptiert-Rate: 0%

bearbeitet 12 Nov '15, 04:47

1

Könntest Du bitte ein Beispiel angeben, wie das verwendet werden soll?

(12 Nov '15, 11:10) saputello

Eine Möglichkeit ist ifthenelse als mathematische Funktion.

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\documentclass{article}
\usepackage{tikz}
\newcommand{\test}{%
\pgfmathparse{
ifthenelse(\n==1,"eins",
ifthenelse(\n==2,"zwei",
ifthenelse(\n==3,"drei",
"was anderes"))}
\pgfmathresult}
\begin{document}
\begin{tikzpicture}
\foreach \n in {1,...,4}
\node at (0,-\n) {\test};
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Die Fallunterscheidung lässt sich in \pgfmathparse noch kürzer schreiben:

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\pgfmathparse{
\n==1 ? "eins" :
(\n==2 ? "zwei" :
(\n==3 ? "drei" :
"was anderes"))}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ausgabe des Beispiels:

Ausgabe

Eine alternative if ... then ... else ... Syntax bietet tikzmath:

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\usetikzlibrary{math}
\newcommand{\test}{%
\tikzmath{
if \n==1
then { let \ausgabe = eins;}
else {
if \n==2
then { let \ausgabe = zwei;}
else {
let \ausgabe = was anderes;
};
};
}%
\ausgabe}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Permanenter link

beantwortet 12 Nov '15, 07:50

stefan's gravatar image

stefan ♦♦
18.4k163148
Akzeptiert-Rate: 49%

bearbeitet 12 Nov '15, 08:02

Es kommt sehr darauf an, welche Werte tatsächlich auftreten können und wozu das Ergebnis verwendet werden soll. Wenn die Fallunterscheidung nur natürliche Zahlen (einschl. 0) umfassen muss, dass kann man unabhängig von tikz das TeX-Primitv \ifcase für die Fallunterscheidung verwenden:

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\documentclass{article}
\usepackage{tikz}
\newcommand{\test}{%
\ifcase \n
null%
\or
eins%
\or
zwei%
\or
drei%
\else
was anderes%
\fi
}
\begin{document}
\begin{tikzpicture}
\foreach \n in {1,...,4}
\node at (0,-\n) {\test};
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Permanenter link

beantwortet 12 Nov '15, 11:10

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

expl3 bietet die Funktion \int_case:nnTF an, mit welcher man (vollständig expandierbar) beliebige Fälle unterscheiden kann.

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\documentclass{article}
\usepackage{tikz,xparse}
\ExplSyntaxOn
\DeclareExpandableDocumentCommand \test { m }
{
\int_case:nnF { #1 }
{
{ 1 } { eins }
{ 2 } { zwei }
{ 3 } { drei }
}
{ was ~ anderes }
}
\ExplSyntaxOff
\begin{document}
\begin{tikzpicture}
\foreach \n in {1,...,4}
\node at (0,-\n) {\test{\n}};
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Permanenter link

beantwortet 24 Jan '16, 23:10

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:

×731
×3
×1
×1
×1

gestellte Frage: 12 Nov '15, 04:43

Frage wurde gesehen: 12,572 Mal

zuletzt geändert: 24 Jan '16, 23:10

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×