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, 21:39

tt33tt's gravatar image

tt33tt
256131925
Akzeptiert-Rate: 100%

bearbeitet 26 Mär '14, 10:04

esdd's gravatar image

esdd
17.8k284257


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, 22:34

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 25 Mär '14, 22: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?

(26 Mär '14, 00: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?

(26 Mär '14, 00:29) tt33tt

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

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

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

(26 Mär '14, 10:49) tt33tt
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×731
×76
×45

gestellte Frage: 25 Mär '14, 21:39

Frage wurde gesehen: 41,830 Mal

zuletzt geändert: 26 Mär '14, 11:26