PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Überschrift Baumdiagramm



cantoni
14-04-2013, 10:29
Hallo,

ich versuche meinem Baumdiagramm eine Überschrift zu geben. Doch egal wo ich im Quellcode den Text eingebe, er erscheint nicht in der Grafik. Woran kann das liegen?

\documentclass{article}
\usepackage[landscape]{geometry}
\usepackage{textfit}
\usepackage{graphicx}
\usepackage{qtree}
\usepackage{picins}
\usepackage{tikz}
\usepackage{yfonts}
\usepackage{color}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage{fancybox}
\usepackage{amssymb}
\usepackage{xspace}
\usepackage{calligra}
\usepackage[onehalfspacing]{setspace}
\usetikzlibrary{shapes,trees,positioning}
\usepackage{verbatim}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\usetikzlibrary{trees}
\begin{document}
\newcommand{\knotenfarbe}{gray!40!yellow!50!}
\newcommand{\boxart}[1]{\fbox{\makebox[75pt]{\begin{tabular}{c}#1\end{tabular}}}}
\newcommand{\schriftart}[1]{\scalebox{0.425}{\textbf{\textcolor{black}{#1}}}}
\tikzstyle{every node}=[]
\begin{tikzpicture}[grow=up, line width=3.5pt, brown!100!]
\coordinate
node[draw, fill=\knotenfarbe]{
\boxart{
\schriftart{1. Zeile}\\
\schriftart{2. Zeile}
}
}
[edge from parent fork up]
[sibling distance=3.75cm,level distance=8cm]
child{
node[draw, fill=\knotenfarbe]{
\boxart{
\schriftart{1. Zeile}\\
\schriftart{2. Zeile}
}
}
}
child[missing]
child{
node[draw, fill=\knotenfarbe]{
\boxart{
\schriftart{1. Zeile}\\
\schriftart{2. Zeile}
}
}
}
;
\end{tikzpicture}
\end{document}

Stefan_K
14-04-2013, 10:46
Eine Überschrift wäre doch besser über der Grafik als in der Grafik? Du könntest eine figure-Umgebung verwenden und caption für die Überschrift. Dann kannst Du ggf. auch nummerieren lassen, es ins Abbildungsverzeichnis aufnehmen lassen, und LaTeX kann die Grafik für optimalen Seitenumbruch gleiten lassen.

Ansonsten kannst Du natürlich Text als Inhalt eines nodes in der Grafik beliebig platzieren.

Stefan

--
LaTeX Community (http://latex-community.org) - News, Artikel, Forum

cantoni
14-04-2013, 10:57
Hallo,

danke für die Antwort. Natürlich soll die Überschrift über der Grafik sein ; ) Ich habe mal eine figure umgebung eingebaut - leider klappt es noch nicht. Braucht man noch ein spezielles usepackage oder was habe ich falsch gemacht?

\documentclass{article}
\usepackage[landscape]{geometry}
\usepackage{textfit}
\usepackage{graphicx}
\usepackage{qtree}
\usepackage{picins}
\usepackage{tikz}
\usepackage{yfonts}
\usepackage{color}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage{fancybox}
\usepackage{amssymb}
\usepackage{xspace}
\usepackage{calligra}
\usepackage[onehalfspacing]{setspace}
\usetikzlibrary{shapes,trees,positioning}
\usepackage{verbatim}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\usetikzlibrary{trees}
\begin{document}
\begin{figure}
\newcommand{\knotenfarbe}{gray!40!yellow!50!}
\newcommand{\boxart}[1]{\fbox{\makebox[75pt]{\begin{tabular}{c}#1\end{tabular}}}}
\newcommand{\schriftart}[1]{\scalebox{0.425}{\textbf{\textcolor{black}{#1}}}}
\tikzstyle{every node}=[]
\begin{tikzpicture}[grow=up, line width=3.5pt, brown!100!]
\coordinate
node[draw, fill=\knotenfarbe]{
\boxart{
\schriftart{1. Zeile}\\
\schriftart{2. Zeile}
}
}
[edge from parent fork up]
[sibling distance=3.75cm,level distance=8cm]
child{
node[draw, fill=\knotenfarbe]{
\boxart{
\schriftart{1. Zeile}\\
\schriftart{2. Zeile}
}
}
}
child[missing]
child{
node[draw, fill=\knotenfarbe]{
\boxart{
\schriftart{1. Zeile}\\
\schriftart{2. Zeile}
}
}
}
;
\end{tikzpicture}
\caption{Titel}
\end{figure}
\end{document}

steve92
14-04-2013, 11:58
Braucht man noch ein spezielles usepackage oder was habe ich falsch gemacht?


Ja, caption.

cantoni
14-04-2013, 12:18
Hallo,

trotz Hinzunahme des usepackage{caption} erscheint bei mir keine Überschrift : (

Ist caption nicht auch eher als eine Art Fußnote bzw Bildunterschrift gedacht ?


\documentclass{article}

\usepackage{caption}

\usepackage[landscape]{geometry}
\usepackage{textfit}
\usepackage{graphicx}
\usepackage{qtree}
\usepackage{picins}
\usepackage{tikz}
\usepackage{yfonts}
\usepackage{color}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage{fancybox}
\usepackage{amssymb}
\usepackage{xspace}
\usepackage{calligra}
\usepackage[onehalfspacing]{setspace}
\usetikzlibrary{shapes,trees,positioning}
\usepackage{verbatim}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\usetikzlibrary{trees}
\begin{document}
\newcommand{\knotenfarbe}{gray!40!yellow!50!}
\newcommand{\boxart}[1]{\fbox{\makebox[75pt]{\begin{tabular}{c}#1\end{tabular}}}}
\newcommand{\schriftart}[1]{\scalebox{0.425}{\textbf{\textcolor{black}{#1}}}}
\begin{figure}[tbp]
\tikzstyle{every node}=[]
\begin{tikzpicture}[grow=up, line width=3.5pt, brown!100!]
\coordinate
node[draw, fill=\knotenfarbe]{
\boxart{
\schriftart{1. Zeile}\\
\schriftart{2. Zeile}
}
}
[edge from parent fork up]
[sibling distance=3.75cm,level distance=8cm]
child{
node[draw, fill=\knotenfarbe]{
\boxart{
\schriftart{1. Zeile}\\
\schriftart{2. Zeile}
}
}
}
child[missing]
child{
node[draw, fill=\knotenfarbe]{
\boxart{
\schriftart{1. Zeile}\\
\schriftart{2. Zeile}
}
}
}
;
\end{tikzpicture}
\caption{Überschrift}
\end{figure}
\end{document}

bobmalaria
14-04-2013, 12:19
hi,

verwende bitte zum posten von code die code umgebung. sie ist hier im forum wenn du eine nachricht verfasst das #-symbol.

ausserdem postest du ca 30 zeilen code der nichts mit dem problem zu tun hat.

das macht alles extrem unübersichtlich.

das caption paket brauchst du nicht.

der caption befehl erscheint da wo man ihn eingibt.
vergleiche


\documentclass{article}



\begin{document}

\begin{figure}%
\centering
\rule{200pt}{50pt}
\caption{Bla bla}%
\label{}%
\end{figure}

\begin{figure}%
\caption{Blubb blubb}%
\label{}%
\centering
\rule{200pt}{50pt}
\end{figure}

\end{document}

du musst also \caption ÜBER dein tikzbild setzen. atürlich aber innerhalb der figure umgebung.

gruss

cantoni
14-04-2013, 12:53
Hallo,

ich habe den Code jetzt mal etwas gekürzt - leider klappt das mit der Überschrift immer noch nicht. Wo liegt der Fehler - oder erscheint bei euch eine Überschrift ?



\documentclass{article}
\usepackage{tikz}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\usetikzlibrary{trees}
\begin{document}

\begin{figure}%
\centering
\rule{200pt}{50pt}
\caption{Überschrift}%
\label{}%

\tikzstyle{every node}=[]
\begin{tikzpicture}[grow=up, line width=3.5pt, brown!100!]
\coordinate
node[draw]{text}
;
\end{tikzpicture}
\end{figure}
\end{document}

bobmalaria
14-04-2013, 13:29
Wenn nur das tikzpicture in der preview ist und der caption Befehl außerhalb der tikzpicture Umgebung steht, dann wird die Überschrift bestimmt erstellt und dann abgeschnitten.

Kommentiere mal zum testen das preview paket und dessen Befehle aus.

gruss

cantoni
14-04-2013, 14:57
Hallo,

danke für den Tip - jetzt wird die Überschrift angezeigt.

Allerdings wird nun auch eine Seitenzahl angezeigt und bei einem größerem Baum erzeugt er viele einzelne Seiten ... Kann man das irgendwie umgehen ?

Gruß



\documentclass{article}
\usepackage{tikz}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage{caption}
%\usepackage[active,tightpage]{preview}
%\PreviewEnvironment{tikzpicture}
\usetikzlibrary{trees}
\begin{document}
\captionsetup[figure]{labelformat=empty,labelsep=none}
\begin{figure}%
\centering
\caption{Überschrift}%
\label{}%
\end{figure}
\tikzstyle{every node}=[]
\begin{tikzpicture}[grow=up, line width=3.5pt, brown!100!]
\coordinate
node[draw]{
text
}
;
\end{tikzpicture}
\end{document}

bobmalaria
14-04-2013, 16:35
hi,
na so war das nicht gemeint und so kann es auch nicht klappen. die figure umgebung ist eine gleitumgebung und verschiebt sich um die lesbarkeit des textes zu erhöhen. eine figure umgebung zu machen in der nur eine captin steht ist ziemlich witzlos.

\rule{}{} habe ich nur zum testen benutzt. es zeichnet nur eine schwarze box. das war als platzhalter gedacht um dir zu demonstrieren wie caption funktioniert.

kannst du vielleicht nochmal genau beschreiben was du erreichen möchtest?

ich verstehe gerade nicht was dein ziel ist:
1) einfach einen beschreibenden titel über dem bild ohne nummer ähnlich eines plottitels
2) eine caption, also eine bild unter- oder überschrift OHNE nummerierung
3 eine caption, also eine bild unter- oder überschrift MIT nummerierung

willst du die grafik im anschluss in ein anderes dokument einbinden und verwendest daher das preview paket?

gruss

cantoni
14-04-2013, 16:59
Hallo,

ich versuche die 1. Variante zu realisieren, also einfach nur einen beschreibenden Titel über dem Bild ohne Nummer - ähnlich eines Plottitels.

Der ganze Baum soll sich dabei auf einer einzigen Seite ohne Seitenzahl befinden, also wie ein Poster.

Viele Grüße

bobmalaria
14-04-2013, 17:53
hi,

gut, dann haben wir das geklärt.
somit können wir das ganze caption zeug schon mal vergessen. das beruhte wohl auf einem missverständnis weil du dich im orginalpost etwas schlecht ausgedrückt hast.

der trick ist, den überschriftsnode in einem anderen scope zu definieren der nicht zum baum gehört.
damit kann man alles innerhalb eines tikzpictures schreiben und das preview package kann damit umgehen


\documentclass{article}
\usepackage{tikz}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\usetikzlibrary{trees}
\begin{document}

\tikzstyle{every node}=[]
\begin{tikzpicture}
\begin{scope}
\node (starttext) {Mein text};
\end{scope}
\begin{scope}[grow=up, line width=3.5pt, brown!100!]
\coordinate node[draw,below of=starttext]{text};
\end{scope}
\end{tikzpicture}
\end{document}

cantoni
14-04-2013, 18:40
Hallo,

vielen Dank - im gekürzten Code erscheint nun die Überschrift.

Leider scheinen jedoch meine Makros Probleme zu machen - wenn ich die hinzufüge fehlt der Titel wieder ...

Viele Grüße



\documentclass{article}
\usepackage{tikz}
\usepackage{color}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\usetikzlibrary{trees}
\begin{document}
\newcommand{\knotenfarbe}{gray!40!yellow!50!}
\newcommand{\boxart}[1]{\fbox{\makebox[75pt]{\begin{tabular}{c}#1\end{tabular}}}}
\newcommand{\schriftart}[1]{\scalebox{0.425}{\textbf{\textcolor{black}{#1}}}}
\tikzstyle{every node}=[]
\begin{tikzpicture}
\begin{scope}
\node(starttext){Titel};
\end{scope}
\begin{scope}[grow=up, line width=3.5pt, brown!100!]
\coordinate
node[draw, fill=\knotenfarbe]{
\boxart{
\schriftart{Text}
}
};
\end{scope}
\end{tikzpicture}
\end{document}

bobmalaria
14-04-2013, 21:39
hi,

das hat nichts mit deinen makros zu tun, sondern damit das du den bezug gelöscht hast.

du scheinst viele grundsätzliche kommandosvon latex und auch vom tikz paket noch nicht verstanden zu haben.

also ein \node kann einen namen haben. grundsätzlich kann ein node folgende struktur haben:

\node[optionen] (name) at (x,y) {};

starttext ist in meinem fall der name des nodes und auf diesen namen kann man sich später im tikzpicture beziehen.

deshalb stand in meinem beispiel dann später auch

...node[below of=starttext]...

das heißt, dass der node im bezug auf den starttext node unterhalb erscheinen soll. den abstand kann man dann mit 'node distance=' einstellen.

füge also deinem ersten node im baum wieder den befehl 'below of=startext' ein und es sollte passen.

deine ganzen newcommands sind ok, aber du könntest dir auch mal ansehen wie man in tikz eigene node-styles erstellt.
in solchen styles kann man alles einstellen. schriftfarbe, größe, rahmenfarbeund dicke usw.

gruss

cantoni
15-04-2013, 15:43
Hallo,

super, vielen Dank ! - nach kurzem probieren sitzt nun alles da wo es hin soll. Die Koordinaten-Option hatte mir dazu noch gefehlt.

Viele Grüße

Maja79
27-04-2013, 18:31
Hallo!
Brauche dringend Hilfe! Weiß jemand , warum die Eingabe fehlerhaft ist?

\documentclass{report}

\usepackage[ngerman]{babel}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{tikz}
\usetikzlibrary{trees}

\begin{document}
\begin{tikzpicture}[level distance=45mm,
edge from parent/.style={->, draw, thick},
every node/.style={fill=red!60,draw,inner sep=3pt, minimum width=15mm},
level 1/.style={fill=red!60,draw,inner sep=3pt, nodes={minimum width=35mm }},
level 2/.style={ nodes={minimum width=15mm }},
level 3/.style={sibling distance=5mm, nodes={minimum width=15mm }},
ohne/.style={edge from parent/.style={draw, thick }},
norm/.style={edge from parent/.style={->, thick,draw}}
]
\node{xVA}[edge from parent fork right, grow=right]
child[ sibling distance=18mm]{ node[fill=gray!10]{Capital}
child[ohne] {child[norm]{node{Adjustments}}
child[norm]{node{Fixed Asset Turns}}
child[norm]{node{Net Working Capital Turns}}
}
}
}
child[ sibling distance=20mm]{node[fill=gray!10]{Margins}
child[ sibling distance=15mm]{node{Ebidta Margin}}
child {node{Depreciation}}
child {node{Impairment}}
child {node{vierte Ebene}}
child[ sibling distance=10mm]{Ebit Margin}}
child {node{Personal}}
child {node{Marketing}}
child[ sibling distance=10mm]{node{Marginal Tax Rate}}
}
}
}
child[ sibling distance=20.05mm]{node[fill=gray!10]{Growth}
child[ohne]{
child[norm]{node{Orders}}
child[norm]{node{Revenues}} } ;
\end{tikzpicture}
\end{document}

hakaze
27-04-2013, 20:38
Siehe Antwort im anderen Thread (http://www.mrunix.de/forums/showthread.php?t=73613)!