Verwandt mit: tikz-matrix-wieso-funktioniert-xshift-nicht


Ich habe hier eine TikZ-Matrix und möchte, dass der linke Teil ("Gewöhnliche DGL") linksbündig und der rechte Teil ("Partielle DGL") rechtsbündig gesetzt wird.

Anpassung der Zellen mit xshift will nicht so richtig. Wie kann ich das machen?

So sieht es grauenvoll aus:

alt text

Komplettes Beispiel:

Öffne in Overleaf
\documentclass[margin=5mm]{standalone}
%\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath, relsize, tikz}

\usetikzlibrary{matrix}
%\usetikzlibrary{decorations.pathreplacing}

\begin{document}

\begin{tikzpicture}[%scale=0.5, transform shape, 
%-latex,
font=\sffamily\footnotesize, 
mystyle/.style={rectangle, draw, rounded corners, align=center},
TW/.style={text width=4em},
]

\def\gDGL{Gewöhnliche Differentialgleichung}
\def\pDGL{Partielle Differentialgleichung}
\def\lDGL{Lineare DGL}
\def\lPDGL{Lineare PDGL}
\def\nlDGL{Nichtlineare DGL}%|[xshift=-0em]|
\def\nlPDGL{Nichtlineare PDGL}%|[xshift=-0em]|
\def\kKoeff{|[text width=4.5em]|{Konstante \\ Koeffizienten}}
\def\nkKoeff{|[text width=4.5em]|{Variable \\ Koeffizienten}}
\def\hDGL{|[text width=3.5em]|{Homogene \\ DGL}}
\def\inhDGL{|[text width=2.5em]|{Inhom. \\ DGL}}
\def\hPDGL{|[text width=3.5em]|{Homogene \\ PDGL}}
\def\inhPDGL{|[text width=2.5em]|{Inhom. \\ PDGL}}

\matrix (m) [
matrix of nodes,
%nodes in empty cells,
row sep=1.5em, column sep=0.5em,
minimum width=1em,
cells={anchor=base west,},
nodes={draw, align=left},
%
row 5/.style={nodes={fill=yellow}},
column 8/.style={anchor=base west,},
%column 2/.style={nodes={transform shape = {xshift=-25em}}},
]
{
%\gDGL &[-2.6cm] &[1em]  &[-2.6cm] &[1em] &[-2.6cm] &[1em] & \pDGL \\
\gDGL &[-2.7cm]  &[-1.5cm] &               &         &         &               & \pDGL \\
\lDGL   & \nlDGL  &           &              &         &        & \lPDGL    & \nlPDGL \\
\kKoeff & \nkKoeff &          &             &        &         & \kKoeff  & \nkKoeff \\
\hDGL&\inhDGL&\hDGL &\inhDGL&\hPDGL&\inhPDGL&\hPDGL&\inhPDGL \\
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \\
};

\draw[] 
(m-1-1) -- (m-2-1)
(m-1-1) -- (m-2-2)
(m-2-1) -- (m-3-1)
(m-2-1) -- (m-3-2)
%
(m-3-1) -- (m-4-1)
(m-3-1) -- (m-4-2)
%
(m-3-2) -- (m-4-3)
(m-3-2) -- (m-4-4)
;

\draw[] 
(m-1-8) -- (m-2-8)
(m-1-8) -- (m-2-7)
(m-2-7) -- (m-3-7)
(m-2-7) -- (m-3-8)
%
(m-3-7) -- (m-4-5)
(m-3-7) -- (m-4-6)
%
(m-3-8) -- (m-4-7)
(m-3-8) -- (m-4-8)
;
\end{tikzpicture}

\end{document}

gefragt 15 Apr '18, 14:29

cis's gravatar image

cis
9.5k75452491
Akzeptiert-Rate: 29%


Manchmal sieht man den Wald vor lauter Bäumen nicht. ;-) Im Ernst, mit forest geht das recht leicht.

alt text

Öffne in Overleaf
\documentclass[tikz,margin=5mm]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath, relsize,forest}

\begin{document}

\begin{forest}for tree={inner sep=2pt,outer
sep=0pt,align=center,font=\sffamily\footnotesize,draw}
  [Differentialgleichungen
    [gew\"ohnliche DGL
      [lineare\\ DGL
          [konstante\\ Koeffizienten
            [homogene\\ DGL]
            [inhomogene\\ DGL]
            ]
          [variable\\ Koeffizienten
            [homogene\\ DGL]
            [inhomogene\\ DGL]
            ]
      ] 
      [nichtlineare\\ DGL]
    ]
    [partielle DGL  
      [lineare\\ DGL
          [konstante\\ Koeffizienten
            [homogene\\ DGL]
            [inhomogene\\ DGL]
            ]
          [variable\\ Koeffizienten
            [homogene\\ DGL]
            [inhomogene\\ DGL]
            ]
      ]
      [nichtlineare\\ DGL]
    ]
 ]
]
\end{forest}
\end{document}
Permanenter link

beantwortet 15 Apr '18, 22:26

Community's gravatar image

Community
21
Akzeptiert-Rate: 56%

bearbeitet 15 Apr '18, 22:38

Gel%C3%B6scht's gravatar image

Gelöscht
(ausgesetzt)

Ja, ich hatte auch überlegt, ob ich ein normales 'Baumdiagramm' daraus mache; allerdings eher mit Tikz 'tree'. Ich wollte bei TikZ bleiben, zwecks weiterer Formatierungen usw.

(15 Apr '18, 22:46) cis
3

@cis Aber forest basiert doch auf TikZ. Du kannst da auf alle TikZ Features zugreifen. Jedoch macht es schöne Graphen ohne lualatex dafür zu benötigen.

(15 Apr '18, 23:02) Community

Hab es mit 2 Matrizen gelöst:

alt text

Öffne in Overleaf
\documentclass[margin=5mm, tikz]{standalone}
%\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath, relsize, tikz}

\usetikzlibrary{matrix}
\usetikzlibrary{positioning, calc}

\begin{document}

\begin{tikzpicture}[
every path/.style={shorten >=2pt, shorten <=2pt,}, 
font=\sffamily\footnotesize, 
]

\def\gDGL{Gewöhnliche Differentialgleichung}
\def\pDGL{Partielle Differentialgleichung}
\def\lDGL{Lineare DGL}
\def\lPDGL{Lineare PDGL}
\def\nlDGL{Nichtlineare DGL}
\def\nlPDGL{Nichtlineare PDGL}
\def\kKoeff{|[text width=4.5em]|{Konstante \\ Koeffizienten}}
\def\nkKoeff{|[text width=4.5em]|{Variable \\ Koeffizienten}}
%
\def\hDGL{|[text width=3.5em]|{Homogene \\ DGL}}
\def\hPDGL{|[text width=3.75em]|{Homogene \\ PDGL}}
%
\def\inhDGL{Inhom. \\ DGL}
\def\inhPDGL{Inhom. \\ PDGL}

\tikzset{
nodestyle/.style={draw, align=left},
matrixstyle/.style={
matrix of nodes,
row sep=1.5em, column sep=0.5em,
minimum width=1em,
nodes={nodestyle},
}}

\matrix (m) [matrixstyle,
cells={anchor=base west}
]
{
\gDGL  &[-0.5cm]  &[-1.5cm] &  \\
\lDGL   & \nlDGL  &           &  \\
\kKoeff & \nkKoeff &          & \\
\hDGL  &  \hDGL &   & \\
%1 & 2 & 3 & 4  \\
};
%
\node[nodestyle, right=1em of m-4-1, name=A] {\inhDGL};
\node[nodestyle, right=1em of m-4-2, name=B] {\inhDGL};
% Verbindungsstriche
\draw[] (m-1-1) -- (m-2-1);
\draw[] (m-1-1) -- (m-2-2);
\draw[] (m-2-1) -- (m-3-1);
\draw[shorten >=9pt, shorten <=9pt] (m-2-1.south) -- (m-3-2.north);
%
\draw[] (m-3-1) -- (m-4-1);
\draw[shorten >=6pt, shorten <=6pt] (m-3-1.south) -- (A.north);
%
\draw[] (m-3-2) -- (m-4-2);
\draw[shorten >=6pt, shorten <=6pt] (m-3-2.south) -- (B.north);

%\begin{scope}[right of =m, 
%xshift=8cm,
%]
\matrix (n) [ right of =m, 
xshift=6.25cm,
matrixstyle,
cells={anchor=base west}
]
{
\pDGL  &[-0.5cm]  &[-1.5cm] &  \\
\lPDGL   & \nlPDGL  &           &  \\
\kKoeff & \nkKoeff &          & \\
\hPDGL  &   \hPDGL &   & \\
%1 & 2 & 3 & 4  \\
};
%
\node[nodestyle, right=1em of n-4-1, name=C] {\inhPDGL};
\node[nodestyle, right=1em of n-4-2, name=D] {\inhPDGL};
% Verbindungsstriche
\draw[] (n-1-1) -- (n-2-1);
\draw[] (n-1-1) -- (n-2-2);
\draw[] (n-2-1) -- (n-3-1);
\draw[shorten >=9pt, shorten <=9pt] (n-2-1.south) -- (n-3-2.north);
%
\draw[] (n-3-1) -- (n-4-1);
\draw[shorten >=6pt, shorten <=6pt] (n-3-1.south) -- (C.north);
%
\draw[] (n-3-2) -- (n-4-2);
\draw[shorten >=6pt, shorten <=6pt] (n-3-2.south) -- (D.north);

% Überschrift

\path[] (m-1-1) -- (n-1-1) node[nodestyle, midway, above=2em, name=Titel, text width=18em, align=center]{Differentialgleichung (DGL)};
\draw[shorten >=6pt, shorten <=6pt] (Titel.south) -- (m-1-1.north);
\draw[shorten >=6pt, shorten <=6pt] (Titel.south) -- (n-1-1.north);
\end{tikzpicture}

\end{document}
Permanenter link

beantwortet 15 Apr '18, 17:07

cis's gravatar image

cis
9.5k75452491
Akzeptiert-Rate: 29%

2

@cis Da das Ergebnis in der anderen Antwort tatsächlich sehr viel schöner und auch viel einfacher zu erreichen ist, wäre es vielleicht gut, den Haken dort zu setzen ... forest basiert ja auch auf TikZ.

(16 Apr '18, 15:21) esdd

Ich wollte das eben alles so linksbündig. Aber kann jeder machen, wie er will.

(17 Apr '18, 14:36) cis
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:

×728
×58

gestellte Frage: 15 Apr '18, 14:29

Frage wurde gesehen: 5,432 Mal

zuletzt geändert: 17 Apr '18, 14:36