Ich habe einen multinomialen Verarbeitungsbaum mit TikZ erstellt. Darin habe ich mehrere Rechtecke, die ich in der Höhe begrenzen will (Anmerkung: es folgen mehrere dieser Bäume nacheinander und sie sollten alle auf eine Seite; die Abstände zwischen den Rechtecken rechts in der Abbildung werden verringert, nachdem das Problem mit der Höhe gelöst ist). Wie ich eine minimale Höhe festlege, habe ich herausgefunden. Jedoch nicht, wie ich die Höhe maximal begrenze. Ich kann durch Wie kann ich also die Höhe minimieren und dabei einen vertikal mittig ausgerichteten Text in dem Rechteck erhalten? Open in writeLaTeX
\documentclass[12pt]{scrartcl} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[ngerman]{babel} \usepackage{kpfonts} % http://www.tug.dk/FontCatalogue/kpserif/ \usepackage{fixltx2e} \usepackage{pgfplots} \begin{document} % level distance = Länge der Verbindungen % sibling distance = vertikaler Abstand der child-Knoten \tikzstyle{level 1}=[level distance=3.0625cm, sibling distance=2.25cm] \tikzstyle{level 2}=[level distance=3.0625cm, sibling distance=1.5cm] \tikzstyle{level 3}=[level distance=3.0625cm, sibling distance=1cm] \begin{tikzpicture}[grow=right,sloped, myrectangle/.style={rectangle,rounded corners,draw,minimum width=4.25cm,minimum height=.6cm, text height=.15cm}] \node[myrectangle] {neu} child {node[circle,draw]{~} child {node[circle,draw]{~} child {node[myrectangle,xshift=3.0625cm] {"`neu"'} } edge from parent node[below] {1--\textit{b}} } child {node[circle,draw]{~} child {node[circle,draw]{~} child {node[myrectangle] {"`alt"'} } edge from parent node[below] {1--\textit{g}} } child {node[circle,draw]{~} child {node[myrectangle] {"`uralt"'} } edge from parent node[above] {\textit{g}} } edge from parent node[above] {\textit{b}} } edge from parent node[below] {1-\textit{D}} } child {node[circle,draw]{~} child {node[myrectangle,xshift=6.125cm] {"`neu"'} } edge from parent node[above] {\textit{D}} }; \end{tikzpicture} \end{document} gefragt 02 Aug '14, 19:00 André |
Wenn ich dich richtig verstehe, möchtest du, dass die rechteckigen Knoten eine möglichst geringe Höhe haben? Du könntest dafür Open in writeLaTeX
minimum height=\ht\strutbox+\dp\strutbox, inner ysep=0pt Dann sind die Nodes so hoch wie eine Code: Open in writeLaTeX
\documentclass[12pt]{scrartcl} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[ngerman]{babel} \usepackage{kpfonts} \usepackage{fixltx2e} \usepackage{tikz} % level distance = Länge der Verbindungen % sibling distance = vertikaler Abstand der child-Knoten \tikzset{ mytree/.style={ level distance=3.0625cm, level 1/.style={sibling distance=2.25cm}, level 2/.style={sibling distance=1.5cm}, level 3/.style={sibling distance=1cm}, } } \begin{document} \begin{tikzpicture}[ grow=right, sloped, myrectangle/.style={rectangle,rounded corners,draw,minimum width=4.25cm, minimum height=\ht\strutbox+\dp\strutbox, inner ysep=0pt }, mycircle/.style={circle,draw}, mytree ] \node[myrectangle] {neu} child {node[mycircle]{} child {node[mycircle]{} child { child {node[myrectangle] {"`neu"'} } } edge from parent node[below] {1--\textit{b}} } child {node[mycircle]{} child {node[mycircle]{} child {node[myrectangle] {"`alt"'} } edge from parent node[below] {1--\textit{g}} } child {node[mycircle]{} child {node[myrectangle] {"`uralt"'} } edge from parent node[above] {\textit{g}} } edge from parent node[above] {\textit{b}} } edge from parent node[below] {1-\textit{D}} } child {node[mycircle]{} child { child { child{node[myrectangle] {"`neu"'} } } } edge from parent node[above] {\textit{D}} }; \end{tikzpicture} \end{document} Ich habe in deinem Code ein paar weitere Änderungen vorgenommen. Insbesondere habe ich leere Du kannst aber auch eine schriftunabhängige Open in writeLaTeX
\documentclass[12pt]{scrartcl} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[ngerman]{babel} \usepackage{kpfonts} \usepackage{fixltx2e} \usepackage{tikz} % level distance = Länge der Verbindungen % sibling distance = vertikaler Abstand der child-Knoten \tikzset{ mytree/.style={ level distance=3.0625cm, level 1/.style={sibling distance=2.25cm}, level 2/.style={sibling distance=1.5cm}, level 3/.style={sibling distance=1cm}, } } \newcommand\mytext[1]{% \raisebox{\dimexpr-.5\height+.5\depth\relax}[0pt][0pt]{#1}} \begin{document} \begin{tikzpicture}[ grow=right, sloped, myrectangle/.style={ rectangle,rounded corners,draw,minimum width=4.25cm, minimum height=6mm,inner ysep=0pt }, mycircle/.style={ circle,draw, }, mytree ] \node[myrectangle] {\mytext{neu}} child {node[mycircle]{} child {node[mycircle]{} child { child {node[myrectangle,node font=\tiny] {\mytext{"`neu"'}} } } edge from parent node[below] {1--\textit{b}} } child {node[mycircle]{} child {node[mycircle]{} child {node[myrectangle,node font=\huge] {\mytext{"`alt"'}} } edge from parent node[below] {1--\textit{g}} } child {node[mycircle]{} child {node[myrectangle] {\mytext{"`uralt"'}} } edge from parent node[above] {\textit{g}} } edge from parent node[above] {\textit{b}} } edge from parent node[below] {1-\textit{D}} } child {node[mycircle]{} child { child { child{node[myrectangle] {\mytext{"`neu"'}} } } } edge from parent node[above] {\textit{D}} }; \end{tikzpicture} \end{document} beantwortet 03 Aug '14, 02:42 esdd Super, herzlichen Dank! Das hätte ich nicht hinbekommen.
(04 Aug '14, 09:32)
André
|