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

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

  • 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? – Viktor Glombik Nov 17 at 15:58
  • @ViktorGlombik Absolutely. I added a key scale diagram that accomplishes that in the lowest example. – Schrödinger's cat Nov 17 at 18:09
  • In the last piece of code you still sometimes write ar[l, Rightarrow], but you don't need the Rightarrow, right? – Viktor Glombik Nov 18 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. – Viktor Glombik Nov 18 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? – Schrödinger's cat Nov 18 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}
  • 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. – Viktor Glombik Nov 17 at 12:52
  • Regarding linebreaks in nodes in tikz-cd: Split text nodes multiline in tikz-cd – leandriis Nov 17 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.