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 |
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} beantwortet 12 Nov '15, 07:50 stefan ♦♦ |
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} beantwortet 12 Nov '15, 11:10 saputello |
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} beantwortet 24 Jan '16, 23:10 Henri |
Könntest Du bitte ein Beispiel angeben, wie das verwendet werden soll?