Hallo alle zusammen,

wie kann ich einen Zeilenumbruch in folgenden Code einbauen:

Open in writeLaTeX
\documentclass[tikz,margin=5mm]{standalone}
  \tikzset{transition/.style={rectangle,thick,draw=black!75,
    fill=black!20,minimum size=4mm}}
\begin{document}
\tikz\node[draw,transition]{Hier rein soll auf jeden Fall ein Zeilenumbruch};
\end{document}

Gibt es eine Möglichkeit, dass Zeilenumbrüche automatisch ab einer gewissen Breite eingebaut werden?

LG

gefragt 25 Mär '14, 16:39

tt33tt's gravatar image

tt33tt
24131322
Akzeptiert: 64%

bearbeitet 26 Mär '14, 05:04

esdd's gravatar image

esdd
14.2k53251


Falls die Breite des Knotentextes bis zu einem Maximalwert flexibel sein und ab diesem dann ein Zeilenumbruch erfolgen soll, dann kann man das Paket varwidth mit der gleichnamigen Umgebung nutzen.

Zum anderen kannst du eine Textbreite mit text width fest vorgeben. Der Knoten hat dann aber unabhängig vom Inahlt eine feste Breite: die vorgegebene Textbreite plus 2x den inneren Abstand und die Linienbreite.

Gibt man über align eine Textausrichtung vor, dann kann man von Hand Zeilenumbrüche setzen. Die Breite der Knoten passt sich entsprechend an.

Open in writeLaTeX
\documentclass[tikz,margin=5mm]{standalone}
\usetikzlibrary{positioning}

\usepackage{varwidth}
\newcommand\Umbruch[2][3cm]{\begin{varwidth}{#1}\centering#2\end{varwidth}}

  \tikzset{transition/.style={rectangle,thick,draw=black!75,
    fill=black!20,minimum size=4mm}}

\begin{document}
\begin{tikzpicture}[node distance=.5cm,every node/.style={draw,transition}]
% mit varwidth, Breite flexibel bis zum Maximalwert, dann erfolgt automatisch ein Umbruch
  \node(a){\Umbruch{Hier rein soll auf jeden Fall ein Zeilenumbruch}};
  \node[right=of a](b){\Umbruch{Kurz}};
% über text width, Breite fest vorgegeben
  \node[right=of b,text width=3cm,align=center](c){Hier rein soll auf jeden Fall ein Zeilenumbruch};
  \node[right=of c,text width=3cm,align=center](d){Kurz};
% mit Umbruch von Hand, setzt eine align Angabe voraus
  \node[right=of d,align=center](e){Hier rein soll auf\\ jeden Fall ein\\ Zeilenumbruch};
  \node[right=of e,align=center]{Kurz};
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 25 Mär '14, 17:34

esdd's gravatar image

esdd
14.2k53251

bearbeitet 25 Mär '14, 17:47

Genial!
Ich wusste gar nicht, dass es eine Stildefinition gibt :-)
Über \newcommand kann ich ja sozusagen Befehle/Funktionen definieren.
Basierend auf deinen Hinweisen habe ich mich für diese Lösung entschieden:

Open in writeLaTeX
\tikzset{
transition/.style={thick,draw=black!75,fill=black!20,text width=3cm,align=center}
}

Wie findest du diese Lösung?

(25 Mär '14, 19:24) tt33tt

Ich habe gerade erst erkannt, welche Vorteile

Open in writeLaTeX
\newcommand\Umbruch[2][3cm]{\begin{varwidth}{#1}\centering#2   \end{varwidth}}

hat. Gibt es die Möglichkeit, dass jede Zelle diesen Command direkt zugeordnet bekommt, z.B. indem ich varwidth direkt den Zellen zuordne oder jeweils das Command?

(25 Mär '14, 19:29) tt33tt

@tt33tt Aber Stildefinitionen wurden doch auch schon bei deinen anderen Fragen verwendet.

(26 Mär '14, 05:11) esdd

Achso, das nennt sich Stildefinition mit dem \tikzset usw.

(26 Mär '14, 05:49) tt33tt
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×51
×31

Frage gestellt: 25 Mär '14, 16:39

Frage wurde angeschaut: 15,453 Mal

Zuletzt aktualisiert: 26 Mär '14, 06:26