Ich habe das Problem sobald ich die Breite eines rectangle splits anpasse sich nur der erste Bereich ändert. Ich möchte jedoch, dass sich das komplette rechteck verbreitert ohne das sich die Bereiche 1 und 3 ändern.

alt text

Open in Online-Editor
\documentclass[tikz,border=5pt]{standalone}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{tikz}
\usetikzlibrary{shapes,shapes.multipart}

% Define block styles
\tikzset{
   papPredProc/.style = {
         draw,
         rectangle split,
         rectangle split horizontal,
         rectangle split parts = 3,
         align = center, 
         text width = 30mm,
         text badly centered,
         minimum width = 30mm,
         minimum height = 7mm,
      }
}

\begin{document}
\begin{tikzpicture}
% Place nodes
\node [papPredProc] (predproc1){\nodepart{two}\shortstack{vordefinierter\\Prozess}};

\end{tikzpicture}

\end{document}

gefragt 19 Okt '16, 12:23

Giovario's gravatar image

Giovario
413142126
Akzeptiert-Rate: 0%

bearbeitet 19 Okt '16, 14:53

2

@Giovario Warum ist die Frage Community-Wiki?

(19 Okt '16, 12:52) sudo

Wenn Du gar keinen mehrteiligen Node brauchst, sondern Dir ein Node mit zwei zusätzlichen senkrechten Strichen reicht, wäre das folgende auch eine Alternative:

Open in Online-Editor
\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{positioning}
\tikzset{
    pap/.style={
        draw,
        text width=3cm,
        align=flush center,
        minimum height=7mm
    },
    papPredProc/.style = {
        pap,
        path picture={\draw
            ([xshift=2pt] current path bounding box.south west)--([xshift=2pt] current path bounding box.north west)
            ([xshift=-2pt] current path bounding box.south east)--([xshift=-2pt] current path bounding box.north east)
        ;}
      },
}

\begin{document}
\begin{tikzpicture}
    \draw[very thin, lightgray](-2,-2) grid [step=.5cm] +(4,3);

    \node [papPredProc] (predproc1){\shortstack{vordefinierter\\Prozess}};
    \node [pap,red,below=2mm of predproc1] {Test};
\end{tikzpicture}
\end{document}

alt text

Ändert man die Einstellung für textwidth zu

Open in Online-Editor
text width=3cm-2*\pgfkeysvalueof{/pgf/inner xsep}

erhält man

alt text

minimum width habe ich weggelassen, da dessen Angabe mit einem Wert, der kleiner oder gleich text width ist, irgendwie keinen Sinn macht.

In Deinem Beispiel wurde align=center von der veralteten Option text badly centred überschrieben. Ich habe beides durch align=flush center ersetzt.

Permanenter link

beantwortet 19 Okt '16, 14:46

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

Du kannst mit every two node part/.style={text width=30mm} direkt die Textbreite des mittleren node part beeinflussen. Für die Gesamtbreite musst du beachten, dass noch inner sep und Linendicken dazukommen.

Open in Online-Editor
\documentclass[tikz,border=5pt]{standalone}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{tikz}
\usetikzlibrary{shapes,shapes.multipart}

% Define block styles
\tikzset{
   papPredProc/.style = {
         draw,
         rectangle split,
         rectangle split horizontal,
         rectangle split parts = 3,
         align = center, 
         every two node part/.style={text width=30mm},
         text badly centered,
         minimum width = 30mm,
         minimum height = 7mm,
      }
}

\begin{document}
\begin{tikzpicture}
% Place nodes
\node [papPredProc] (predproc1){\nodepart{two}\shortstack{vordefinierter\\Prozess}};

\end{tikzpicture}

\end{document}
Permanenter link

beantwortet 19 Okt '16, 12:43

sudo's gravatar image

sudo
2.0k51521
Akzeptiert-Rate: 39%

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
×13
×12

gestellte Frage: 19 Okt '16, 12:23

Frage wurde gesehen: 10,026 Mal

zuletzt geändert: 19 Okt '16, 14:53