Ich habe eine Frage bezüglich der Nodes bei TikZ. Ich wollte die Distanz zwischen den einzelnen Nodes festlegen. Das habe ich zwar mehr oder weniger herausgefunden. Um genau beschreiben zu können, was ich meine habe ich folgenden Code geschrieben. \documentclass[a4paper,11pt]{scrbook} \usepackage{tikz} \begin{document} \begin{tikzpicture}[ edge from parent/.style={draw,-latex}, level 1/.style={sibling distance=40mm}, ] \node {Lingualer Typus} child { node {Multilingualer Typus} } child { node {Monolingualer Typus}}; \end{tikzpicture} \end{document} Es gibt ja die beiden Child-Nodes „Multilingualer Typus” und „Monolingualer Typus“. Mir geht es aber darum, z. B. die Distanz zwischen der rechten Seite des Node „Multilingualer Typus” und der Linken Seite des Node „Monolingualer Typus” fest zu legen. Durch die Option \documentclass[a4paper,11pt]{scrbook} \usepackage{tikz} \begin{document} \begin{tikzpicture}[ edge from parent/.style={draw,-latex}, node distance=60mm %level 1/.style={sibling distance=70mm}, %level 2/.style={sibling distance=30mm}, ] \node {Sprachvermischung} child { node {Code-Switching} child { node {intrasentential} } child { node {intersentential} } } child { node {Code-Mixing} child { node {Insertion} } child { node {Alternation} } child { node {kongruenter Lexikalisierung} } }; \end{tikzpicture} \end{document} Ich hoffe ihr könnt mir weiterhelfe.
Ergebnis 5 von 6
show 1 more comments
|
Hier sind mal noch zwei weitere Alternativen. Zum einen könntest Du einfach \documentclass{scrbook} \usepackage{tikz} \usetikzlibrary{arrows.meta}% aktuelle Bibliothek für Pfeile \begin{document} \begin{center} \begin{tikzpicture}[ -{Stealth[length=5pt 4.5]}, text depth=\dp\strutbox, text height=\ht\strutbox, level 1/.style={sibling distance=59mm}, level 2/.style={sibling distance=28mm}, ] \node {Sprachvermischung} child{node{Code-Switching} child{node{intrasentential}} child{node{intersentential}} } child{node{Code-Mixing} child[xshift=8mm]{node{Insertion}} child{node{Alternation}} child[xshift=8mm]{node{kongruenter Lexikalisierung}} }; \end{tikzpicture} \end{center} \end{document} Oder Du kannst die % mit lualatex kompilieren \documentclass{scrbook} \usepackage{tikz} \usetikzlibrary{arrows.meta} \usetikzlibrary{graphs} \usetikzlibrary{graphdrawing} \usegdlibrary{trees} \begin{document} \begin{center} \tikz[ tree layout, >={Latex[length=5pt 4.5]}, level distance=1.5cm, sibling sep=.25em, text height=\ht\strutbox,text depth=\dp\strutbox ] \graph{ Sprachvermischung -> { {Code{-}Switching} -> { intrasentential, intersentential }, {Code{-}Mixing} -> { Insertion, Alternation, kongruenter Lexikalisierung } } }; \end{center} \end{document} beantwortet 22 Dez '19, 22:32 esdd |
Mit dem von @Bartman empfohlenen Paket \documentclass[11pt,a4paper,twoside]{scrbook} \usepackage[ngerman]{babel} \usepackage[% top=21mm,bottom=18mm,outer=30mm,inner=18mm,foot=12mm,head=9mm, ]{geometry} \usepackage{forest} \forestset{ sn edges/.style={for tree={edge={->,-latex}}} } \usepackage{blindtext} \begin{document} \blindtext\par\vspace{14pt} \begin{forest} sn edges [Sprachvermischung [Code-Switching[intrasentential][intersentential]] [Code-Mixing [Insertion] [Alternation] [kongruenter Lexikalisierung] ] ] \end{forest} \par\vspace{14pt}\blindtext \end{document} |
Obiges Beispiel lässt sich durchaus innerhalb einer \documentclass[11pt,a4paper,twoside]{scrbook} \usepackage[ngerman]{babel} \usepackage{tikz} \usetikzlibrary{arrows} % obligatorisch wenn Option -stealth' gesetzt wird \begin{document} \begin{tikzpicture}[-stealth'] \node {Sprachvermischung} child[level distance=12mm,sibling distance=70mm]{node{Code-Switching} child[level distance=12mm,sibling distance=28mm]{node{intrasentential}} child[level distance=12mm,sibling distance=28mm]{node{intersentential}} } child[level distance=12mm,sibling distance=70mm]{node{Code-Mixing} child[level distance=12mm,sibling distance=28mm]{node{Insertion}} child[level distance=12mm,sibling distance=28mm]{node{Alternation}} child[level distance=12mm,sibling distance=38mm]{node{kongruenter Lexikalisierung}} }; \end{tikzpicture} \end{document} |
Erhöhe die Länge für beide Level im zweiten Beispiel um 5 mm. Das in einem anderen Thema bereits erwähnte Paket
forest
stellt die waagerechten Abstände schon so ein, damit Überschneidungen der Inhalte vermieden werden.Danke für deine Antwort. Weisst du evtl. noch welcher Thread es war?
Ich habe die Existenz des Pakets dort, so wie hier, lediglich angesprochen.
Off-Topic: Verwende bitte etwas mehr Sorgfalt vor allem auf die gezeigten Code-Beispiele. Schon die erste Zeile des ersten Beispiels produziert Fehlermeldungen aufgrund von gleich mehreren Fehlern. Während Tippfehler und verkorkste Grammatik im Text meist eher unwichtig sind und allenfalls den subjektiven Eindruck verschlechtern, sind nicht lauffähige Minimalbeispiele nicht nur peinlich, sondern erschweren Hilfe und führen auch rasch zum Erlahmen des Interesses potentieller Helfer.
danke für eure Antworten. Hätte nicht gedacht, dass so viele Antworten kommen. :) Ich hatte irgenwo etwas in der Richtung gelesen dass man bezüglich eines nodes(?) z.B. .east (?) angibt. Hab es aber irgendwie nicht wieder gefunden.
@Padawan lese 'mal das Kapitel 2.4 Node positioning im forest manual. Dort steht etwas darüber. Wenn Du Fragen dazu hast, dann mache einen neuen thread mit einem Minimalbeispiel auf. Da wirst Du geholfen!