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) |
Eine Möglichkeit ist Open in Online-Editor
\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} Die Fallunterscheidung lässt sich in Open in Online-Editor
\pgfmathparse{ \n==1 ? "eins" : (\n==2 ? "zwei" : (\n==3 ? "drei" : "was anderes"))} Ausgabe des Beispiels: Eine alternative if ... then ... else ... Syntax bietet Open in Online-Editor
\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} |
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 Open in Online-Editor
\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} |
Open in Online-Editor
\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} |
Könntest Du bitte ein Beispiel angeben, wie das verwendet werden soll?