strolch
20-05-2011, 15:04
hallo zusammen,
ich habe da ein problem beim anordnen von objekten. gegeben ist eine liste unbestimmter laenge von knoten, und die wuerde ich gerne untereinander an den rand eines uebergeordneten recheck zeichen. nur leider scheitere ich bereits am untereinander anordnen der objekte.
fuer das gleichmaessige verteilen von objekten habe ich eine matrix verwendet, wobei das bestimmt auch einfacher geht, da ich alle objekte nur in einer spalte untereinander haben moechte.
mein derzeitiger stand ist dieses
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (A) [rectangle] {a};
\node (B) [circle] {b};
\node (C) [rectangle] {c};
\node (D) [circle] {d};
%\matrix[nodes={draw, fill=black!20}, row sep=5mm] {
% \foreach \c in {A,B,C,D} { \node {\c}; \\ };
%};
\def\myList{A,B,C,D};
\matrix[nodes={draw, fill=black!20}, row sep=5mm] {
\foreach \c in {\myList} { \node {\c}; \\ };
};
\end{tikzpicture}
\end{document}
nicht lauffähiges minimalbeispiel, das mit einer "Missing }"-fehlermeldung aussteigt.
nachtrag:
dieses beispiel kommt ohne die matrix aus und laeuft wenigstens ... tut aber nicht was es soll ;-)
alle objekte werden nur uebereinander gezeichnet.
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (A) [rectangle] {a};
\node (B) [circle] {b};
\node (C) [rectangle] {c};
\node (D) [circle] {d};
%\def\myList{A,B,C,D};
\coordinate (old) at (0,0);
\foreach \i in {A,B,C,D} {
\node [black!20] at (old) {\i};
\coordinate (new) at (old);
\coordinate (old) at (new.south);
};
\end{tikzpicture}
\end{document}
ich habe in diesem beispiel also noch mindestens zwei probleme:
- in meiner liste, wenn ich die myList definition in die foreach einsetze, scheint es nur einen eintrag zu geben. scheinbar die zeichenkette "A,B,C,D" und nicht einzelne knoten
- wenn ich die liste wie im aktuellen beispiel direkt in die foreach einsetze erhalte ich die buchstaben A, B, C und D uebereinander geschrieben als ausgabe. also auch so habe ich offensichtlich nicht die erhoffte liste von knoten und somit werden die objekte ohne ihrer geometrischen parametrisierung (rectangle oder circle) dargestellt
vielen dank im voraus
strolch
ich habe da ein problem beim anordnen von objekten. gegeben ist eine liste unbestimmter laenge von knoten, und die wuerde ich gerne untereinander an den rand eines uebergeordneten recheck zeichen. nur leider scheitere ich bereits am untereinander anordnen der objekte.
fuer das gleichmaessige verteilen von objekten habe ich eine matrix verwendet, wobei das bestimmt auch einfacher geht, da ich alle objekte nur in einer spalte untereinander haben moechte.
mein derzeitiger stand ist dieses
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (A) [rectangle] {a};
\node (B) [circle] {b};
\node (C) [rectangle] {c};
\node (D) [circle] {d};
%\matrix[nodes={draw, fill=black!20}, row sep=5mm] {
% \foreach \c in {A,B,C,D} { \node {\c}; \\ };
%};
\def\myList{A,B,C,D};
\matrix[nodes={draw, fill=black!20}, row sep=5mm] {
\foreach \c in {\myList} { \node {\c}; \\ };
};
\end{tikzpicture}
\end{document}
nicht lauffähiges minimalbeispiel, das mit einer "Missing }"-fehlermeldung aussteigt.
nachtrag:
dieses beispiel kommt ohne die matrix aus und laeuft wenigstens ... tut aber nicht was es soll ;-)
alle objekte werden nur uebereinander gezeichnet.
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (A) [rectangle] {a};
\node (B) [circle] {b};
\node (C) [rectangle] {c};
\node (D) [circle] {d};
%\def\myList{A,B,C,D};
\coordinate (old) at (0,0);
\foreach \i in {A,B,C,D} {
\node [black!20] at (old) {\i};
\coordinate (new) at (old);
\coordinate (old) at (new.south);
};
\end{tikzpicture}
\end{document}
ich habe in diesem beispiel also noch mindestens zwei probleme:
- in meiner liste, wenn ich die myList definition in die foreach einsetze, scheint es nur einen eintrag zu geben. scheinbar die zeichenkette "A,B,C,D" und nicht einzelne knoten
- wenn ich die liste wie im aktuellen beispiel direkt in die foreach einsetze erhalte ich die buchstaben A, B, C und D uebereinander geschrieben als ausgabe. also auch so habe ich offensichtlich nicht die erhoffte liste von knoten und somit werden die objekte ohne ihrer geometrischen parametrisierung (rectangle oder circle) dargestellt
vielen dank im voraus
strolch