5

I want to reproduce the following diagram as one of the implications is wrong and I want to add some and see if I can manage without having certain terms twice in the diagram (i.e. "stetig"). enter image description here

I tried using Tikz-cd.

My question: How can I define globally that all arrows should be of the type Rightarrow and that all terms in parboxes?

MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz,mathtools}
\usetikzlibary{cd}

\begin{document}
\begin{tikzpicture}[baseline= (a).base]
\node[scale=.8] (a) at (0,0){
\begin{tikzcd}
\parbox{2cm}{\centering linear und kompakt}  \arrow[r, Rightarrow]  & \textrm{verstärkt stetig} \arrow[dl, Rightarrow] \arrow[d, Rightarrow] \arrow[r, Rightarrow, " V \textrm{ refl.}"] & \textrm{kompakt} \arrow[dl, Rightarrow] \arrow[dr, Rightarrow, bend left = 17] \\
\textrm{pseudomonoton}                     & \textrm{stetig} \arrow[dd, Rightarrow]& \parbox{2cm}{\centering \textsc{Lipschitz}-stetig} \arrow[l, Rightarrow] \arrow[r, Rightarrow] & \textrm{beschränkt} \arrow[ddl, Rightarrow] \\
\parbox{2cm}{\centering monoton und radialstetig} \arrow[u, Rightarrow] \arrow[dr, Rightarrow, "V \textrm{ refl.}"] & & \parbox{2cm}{\centering linear und monoton} \arrow[ul, Rightarrow] \\
\textrm{stetig} \arrow[dr, Rightarrow] & \textrm{demistetig} \arrow[d, Rightarrow, "V \textrm{ refl.}"]\arrow[r, Rightarrow] & \parbox{2cm}{\centering lokal beschränkt} & \\
\textrm{radialstetig} & \arrow[l, Rightarrow]\textrm{hemistetig} & \parbox{2cm}{\centering pseudomonoton und lokal beschränkt} \arrow[lu, Rightarrow] \\
\textrm{\textsc{Lipschitz}-stetig} \arrow[ru, Rightarrow] & \parbox{2cm}{\centering linear und beschränkt} \arrow[u, Rightarrow]
\end{tikzcd}};
\end{tikzpicture}
\end{document}

Which looks like this: enter image description here

Bonus: If possible I would like to eliminate entries combining two terms (as "pseudomonoton und lokal beschränkt") and have them as separate terms and make arrows merge as described here.

Addedum: Planar Version of the above graph enter image description here

3 Answers 3

7

Virtually every of your subquestions can be addressed with every:

  1. The need for \parboxes can be replaced by giving every node the appropriate options: nodes={text width=2cm,align=center} (nodes is a short-hand for every node/.append style), which also has been used in leandriis nice answer, and math mode=false spares you from switching manually to text mode.
  2. The arrows can be made Rightarrows by saying every arrow/.append style={Rightarrow}.
  3. The duplication of the "stetig" node can be avoided by adding an arrow with crossing over.

Apart from that, your approach nested tikzpictures, so I removed the ambient one.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz,mathtools}
\usetikzlibrary{cd}

\begin{document}
\begin{tikzcd}[cells={nodes={text width=2cm,align=center}},
    math mode=false,every arrow/.append style={Rightarrow},
    every label/.append style={font=\normalsize}]
linear und kompakt  \arrow[r]  &  
    verst\"arkt stetig \arrow[dl] \arrow[d] \arrow[r, " $V$ refl."] & 
    kompakt \arrow[dl,Rightarrow] \arrow[dr, bend left = 17] \\
pseudomonoton                     & 
    stetig \arrow[dd,Rightarrow] 
    \arrow[ddd,crossing over,out=-50,in=30,shift left=2] & 
    \textsc{Lipschitz-stetig} \arrow[l,Rightarrow] \arrow[r] & 
    beschr\"ankt \arrow[ddl] \\
monoton und radialstetig \arrow[u] \arrow[dr, "$V$ refl."] & & 
    linear und monoton \arrow[ul] \\ 
    %stetig \arrow[dr] 
    & demistetig \arrow[d, "$V$ refl."']\arrow[r] & 
    lokal beschr\"ankt & \\
    radialstetig & \arrow[l] hemistetig & 
    pseudomonoton und lokal beschr\"ankt \arrow[lu] \\
Lipschitz-stetig \arrow[ru] & linear und beschr\"ankt \arrow[u]
\end{tikzcd}
\end{document}

enter image description here

Or with \scriptsize label font.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz,mathtools}
\usetikzlibrary{cd}

\begin{document}
\begin{tikzcd}[cells={nodes={text width=2cm,align=center}},
    math mode=false,every arrow/.append style={Rightarrow},
    every label/.append style={font=\scriptsize}]
linear und kompakt  \arrow[r]  &  
    verst\"arkt stetig \arrow[dl] \arrow[d] \arrow[r, " $V$ refl."] & 
    kompakt \arrow[dl,Rightarrow] \arrow[dr, bend left = 17] \\
pseudomonoton                     & 
    stetig \arrow[dd,Rightarrow] 
    \arrow[ddd,crossing over,out=-50,in=30,shift left=2] & 
    \textsc{Lipschitz-stetig} \arrow[l,Rightarrow] \arrow[r] & 
    beschr\"ankt \arrow[ddl] \\
monoton und radialstetig \arrow[u] \arrow[dr, "$V$ refl."] & & 
    linear und monoton \arrow[ul] \\ 
    %stetig \arrow[dr] 
    & demistetig \arrow[d, "$V$ refl."']\arrow[r] & 
    lokal beschr\"ankt & \\
    radialstetig & \arrow[l] hemistetig & 
    pseudomonoton und lokal beschr\"ankt \arrow[lu] \\
Lipschitz-stetig \arrow[ru] & linear und beschr\"ankt \arrow[u]
\end{tikzcd}
\end{document}

enter image description here

In order to scale the diagram, you can use the key scale diagram that is defined below.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz,mathtools}
\usetikzlibrary{cd} %,every label/.append style
\tikzcdset{scale diagram/.style={column sep=#1*2.4em,row sep=#1*1.8em,
nodes={scale=#1,transform shape}}}
\begin{document}
\begin{tikzcd}[scale diagram=0.7,cells={nodes={text width=2cm,align=center}},
    math mode=false,every arrow/.append style={Rightarrow},
    every label/.append style={font=\scriptsize},]
linear und kompakt  \arrow[r]  &  
    verst\"arkt stetig \arrow[dl] \arrow[d] \arrow[r, " $V$ refl."] & 
    kompakt \arrow[dl,Rightarrow] \arrow[dr, bend left = 17] \\
pseudomonoton                     & 
    stetig \arrow[dd,Rightarrow] 
    \arrow[ddd,crossing over,out=-50,in=30,shift left=2] & 
    \textsc{Lipschitz-stetig} \arrow[l,Rightarrow] \arrow[r] & 
    beschr\"ankt \arrow[ddl] \\
monoton und radialstetig \arrow[u] \arrow[dr, "$V$ refl."] & & 
    linear und monoton \arrow[ul] \\ 
    %stetig \arrow[dr] 
    & demistetig \arrow[d, "$V$ refl."']\arrow[r] & 
    lokal beschr\"ankt & \\
    radialstetig & \arrow[l] hemistetig & 
    pseudomonoton und lokal beschr\"ankt \arrow[lu] \\
Lipschitz-stetig \arrow[ru] & linear und beschr\"ankt \arrow[u]
\end{tikzcd}
\end{document}

enter image description here

You may also want the crossed over arrow to be on top, and to have a halo.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz,mathtools}
\usetikzlibrary{cd} 
\tikzcdset{scale diagram/.style={column sep=#1*2.4em,row sep=#1*1.8em,
nodes={scale=#1,transform shape}}}
\begin{document}
\begin{tikzcd}[scale diagram=0.7,cells={nodes={text width=2cm,align=center}},
    math mode=false,every arrow/.append style={Rightarrow},
    every label/.append style={font=\scriptsize},
    execute at end picture={%\typeout{pft\tikzcdmatrixname}
    \draw[/tikz/commutative diagrams/Rightarrow,
    preaction={draw=white,line width=2mm}] 
    ([xshift=-1.75em]\tikzcdmatrixname-2-2.south east) to[bend left=40]
    ([xshift=-0.5em]\tikzcdmatrixname-5-2.north east);}]
linear und kompakt  \arrow[r]  &  
    verst\"arkt stetig \arrow[dl] \arrow[d] \arrow[r, " $V$ refl."] & 
    kompakt \arrow[dl,Rightarrow] \arrow[dr, bend left = 17] \\
pseudomonoton                     & 
    stetig \arrow[dd,Rightarrow] & 
    \textsc{Lipschitz-stetig} \arrow[l,Rightarrow] \arrow[r] & 
    beschr\"ankt \arrow[ddl] \\
monoton und radialstetig \arrow[u] \arrow[dr, "$V$ refl."] & & 
    linear und monoton \arrow[ul] \\ 
    %stetig \arrow[dr] 
    & demistetig \arrow[d, "$V$ refl."']\arrow[r] & 
    lokal beschr\"ankt & \\
    radialstetig & \arrow[l] hemistetig & 
    pseudomonoton und lokal beschr\"ankt \arrow[lu] \\
Lipschitz-stetig \arrow[ru] & linear und beschr\"ankt \arrow[u]
\end{tikzcd}
\end{document}

enter image description here

8
  • The nested tikz environments made it possible to scale the diagram, as commuting diagrams don't have that option. Is there a way to do this with your implementation? Commented Nov 17, 2019 at 15:58
  • @ViktorGlombik Absolutely. I added a key scale diagram that accomplishes that in the lowest example.
    – user194703
    Commented Nov 17, 2019 at 18:09
  • In the last piece of code you still sometimes write ar[l, Rightarrow], but you don't need the Rightarrow, right? Commented Nov 18, 2019 at 17:02
  • Also notice there's still a duplicate term: "Lipschitz-stetig". I have created a planar version of the graph in another app, but haven't come around to tex it, I added the planar graph to my question. Commented Nov 18, 2019 at 17:04
  • @ViktorGlombik Yes, Rightarrow was left there by accident, i.e. I forgot to remove it (but it doesn't hurt here). Before I add another crossover to four variations of the diagram, I'd like to ask which one is the one that comes closest to your goal?
    – user194703
    Commented Nov 18, 2019 at 17:12
3

The following might serve as a starting point:

enter image description here

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}[every node/.style={rectangle,draw=none,align=center}]
\node(linkomp){linear und\\ kompakt};
\node(verststet)[right=1.5cm of linkomp]{verstärkt\\ stetig} edge [<-](linkomp);
\node(kom)[right= 1.5cm of verststet]{kompakt} edge [<-] node[above=5pt,name=CA] {V refl.} (verststet);
\node(pseudomon)[below=0.5cm of linkomp]{pseudomonoton}edge [<-] (verststet);
\end{tikzpicture}
\end{document}
2
  • Thank you for your answer. Can I also stick to tikz-cd as in my MWE so I don't have to position the nodes myself? I am fine with the rectangular array shape. Commented Nov 17, 2019 at 12:52
  • Regarding linebreaks in nodes in tikz-cd: Split text nodes multiline in tikz-cd
    – leandriis
    Commented Nov 17, 2019 at 13:17
2

Tray the following:

\documentclass{article}
\usepackage{tikz-cd}
\usepackage{mathtools}
\usepackage{makecell}

\begin{document}
\begin{tikzcd}[every cell/.append style={anchor=center,align=center,
                                         font=\linespread{0.84}\selectfont,
                                         inner sep=2pt},
               column sep=large
               ]
\makecell{linear und\\ kompakt} \ar[r, Rightarrow]  
    &   \makecell{verstärkt\\ stetig} 
        \ar[d, Rightarrow] 
        \ar[r, Rightarrow, "V\text{ refl.}"]
                        &   \makecell{kompakt} \ar[dl, Rightarrow]      \\
    & \textrm{stetig}   &
\end{tikzcd}
\end{document}

enter image description here

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .