ForEach - Position, Text und Farbe der Kugel bestimmen Thema ist als GELÖST markiert

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


byxx
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: So 17. Jan 2021, 12:50

ForEach - Position, Text und Farbe der Kugel bestimmen

Beitrag von byxx »

Hallo zusammen,

eigentlich alles gut, bis auf die Farbe, fill=\mycolor, die ich funktional nicht zuweisen kann. Wie wäre die korrekte Syntax?

\documentclass{article}
\usepackage{tikz}
\usepackage{pgffor}

\begin{document}

\begin{tikzpicture}

\foreach \x/\mytext/\mycolor in {1/Rot/red,3/Gelb/yellow,5/Gruen/green}
\node[circle,  shading=ball, minimum width=1.5cm, fill=\mycolor, text=white] (ball) at (\x,-3) {$\mytext$};

\end{tikzpicture}

\end{document}

Im Weiteren würde ich gerne das ganze Konstrukt in ein environment in eine externe Datei auslagern und eine Möglichkeit finden, nur noch die Parameter der foreach-Schleife an den gewünschten Stellen im Hauptdokument einzugeben.

Es könnte final und hier nur von der Idee her angedeutet für meine Vorstellung - wenn ich es bisher grob richtig verstehe - in diese Richtung gehen:

%...
%\include{KugelEnvironment}
%...
%\begin{KugelEnvironment}
%\meineWerte = {1/Rot/red,3/Gelb/yellow,5/Gruen/green}
%\end{KugelEnvironment}
Danke für Eure Hilfe!

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: ForEach - Position, Text und Farbe der Kugel bestimmen

Beitrag von Bartman »

Die Farbe lässt sich mit der Option ändern, die im Abschnitt 69 Shadings Library der Anleitung von tikz erklärt wird.

Wenn es beim Text des Knotens nur darum geht, diesen kursiv auszugeben, dann verwende dafür besser nicht den mathematischen Modus.

Anstelle einer Umgebung eignet sich hier doch eher ein Befehl, dem man die Liste für die Schleife als Argument übergeben kann. Diesen darfst Du natürlich in eine andere Datei auslagern, wenn Du meinst, das tun zu müssen. Zuvor wäre es aber ratsam zu klären, wie Du die Datei einbinden möchtest.
\documentclass{article}
\usepackage{tikz}% lädt pgffor

\newcommand{\drawBalls}[1]{
  \begin{tikzpicture}
  \foreach \x/\mytext/\mycolor in {#1}
  \node[
    circle,  
    shading=ball, 
    ball color=\mycolor,
    minimum width=1cm, 
    text=white, 
    font=\itshape
  ] (ball) at (\x,0) {\mytext};
  \end{tikzpicture}
}

\begin{document}
\drawBalls{1/Text/red,3/in/yellow,5/Kugel/blue}
\end{document}

byxx
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: So 17. Jan 2021, 12:50

Re: ForEach - Position, Text und Farbe der Kugel bestimmen

Beitrag von byxx »

Hallo Bartman,

Danke schön für die geniale Funktion!
Ich habe bereits lange darüber gebrütet, wie man die 3 Variablen (X-Wert,Text und Farbe) als Block in jeweils eine Übergabe implementiert. Dass der gesamte Datensatz in nur eine Variable (#1) passt: sehr lehr- und hilfreich! Die Tikz Doku liegt vor, die Besonderheit mit der Colorierung des Balls habe ich bisher nicht entdeckt, zu nodes und circles aber einiges dazu gelesen, das hier nicht funktionierte. Der Mathe-Schrift-Ansatz entstammt aus der TikZ Docu des ersten Tutorials mit dem Kreis zu den sin, cos und tan. Muss vermutlich nicht zwingend sein. Ich benötige ab und zu zumindest $\sharp$, welches man auf diese Weise ($$) ggf ebenso einbinden kann.
Den Link zu input- und include- Unterschieden sehe ich mir als Nächstes gerne an...Danke für die Tips!!

Antworten