
Ich versuche, das folgende Diagramm zu erstellen:
\begin{tikzpicture}[
start chain=1 going right,node distance=-0.15mm]
\node [on chain=1] at (-1.5,-.4) {f(};
\node [draw,on chain=1] {*};
\node [draw,on chain=1] {*};
\node [draw,on chain=1] {*};
\node [draw,on chain=1] {0};
\node [draw,on chain=1] {0};
\node [draw,on chain=1] {*};
\node [draw,on chain=1] {0};
\node [draw,on chain=1] {1};
\node [draw,on chain=1] {*};
\node [draw,on chain=1] {*};
\node [draw,on chain=1] {0};
\node [name=r,on chain=1] {$) = 0$};
\end{tikzpicture}
Das Problem, auf das ich stoße, ist, dass die Kästchen um die * etwas größer sind als um die Zahlen 1,0. Wie kann ich sicherstellen, dass alle Kästchen gleich groß sind?
Außerdem möchte ich, dass die Variable x über der Mitte der Kette erscheint. Wie geht das am einfachsten? Die einzige Möglichkeit, die ich derzeit kenne, ist der Befehl „Knoten bei (x,y)“. Ich denke, es sollte eine Möglichkeit geben, einen Knoten in der Mitte der Kette zu benennen und einen Knoten zu definieren, der direkt darüber steht, aber ich kenne die Syntax dafür nicht.
Antwort1
Sie können die Option für die Knoten festlegen minimum size
. Wenn diese auf einen ausreichend großen Wert eingestellt ist, sind alle Boxen gleich groß.
x
Um über der Mitte der Kette zu platzieren , gibt es mehrere Möglichkeiten. Sie können einen Knoten mit der Syntax benennen
\node (<name>) [<options>] {<node label>};
(Dies bewirkt dasselbe wie \node [name=<name>] {}
.) Sie können dann <name>
als Koordinate verwenden und einen weiteren Knoten relativ dazu platzieren, mit
\node [above=of <name>] {$x$};
Eine andere Möglichkeit wäre, den ersten und letzten Knoten in der Kette zu benennen und den neuen Knoten in der Mitte zwischen ihnen zu platzieren, beispielsweise mit
\path (startnode) -- node[above] {$x$} (endnode);
Um die Erstellung von Diagrammen zu vereinfachen, können Sie Ihre eigenen Stile deklarieren mit
<style name>/.style={<options>}
Fügen Sie dies dem optionalen Argument von hinzu tikzpicture
oder in einem \tikzset
Makro, wenn Sie eine globale Definition wünschen. Auf diese Weise können Sie schnell die Größe, Farbe usw. aller Knoten mit diesem Stil ändern. Im folgenden Code habe ich einen box on chain
Stil definiert.
\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{chains}
\begin{document}
\begin{tikzpicture}[
start chain=1 going right,node distance=-0.15mm,
box on chain/.style={draw, on chain=1,minimum size=.5cm}]
\node [on chain=1] at (-1.5,-.4) {f(};
\node(start) [box on chain] {*};
\node [box on chain] {*};
\node [box on chain] {*};
\node [box on chain] {0};
\node [box on chain] {0};
\node (mid) [box on chain] {*};
\node [box on chain] {0};
\node [box on chain] {1};
\node [box on chain] {*};
\node [box on chain] {*};
\node(end) [box on chain] {0};
\node [name=r,on chain=1] {$) = 0$};
% place new node above node called mid
\node [above=of mid] {\( x \)};
% different method: place node in the middle between start and end, 2ex above
% \path (start) -- node[above=2ex]{\( x \)} (end);
\end{tikzpicture}
\end{document}