1

I've tried to create a figure using TikZ (see code below):

\begin{center} 
\begin{tikzpicture}[SIR/.style={rectangle, draw=black!60, fill=black!5, very thick, minimum size=8mm},  
]

%Nodes
\node[SIR]    (reverse)                              {$\Delta(C(X))$};
\node[SIR]    (topo-space)       [below=of reverse] {$X$};
\node[SIR]    (algebra)       [left=of topo-space] {$C(X)$};
\node[SIR]    (reverse2)       [right=of reverse] {$C(\Delta(\mathcal{A}))$};
\node[SIR]    (algebra2)       [below=of reverse2] {$\mathcal{A}$};
\node[SIR]    (structure-space)       [right=of algebra2] {$\Delta(\mathcal{A})$};

%Lines
\draw[->, dashed] (reverse.south)  to node[right]{$\ref{GNT-lemma}$} (topo-space.north);
\draw[->, very thick] (topo-space.west)  to node[below] {...} (algebra.east);
\draw[->, very thick] (algebra.north)  ..  controls  +(left:2mm) and +(left:7mm)   ..  (reverse.west);

\draw[->, very thick] (algebra2.east)  to node[below] {\ref{structure-lemma}} (structure-space.west);
\draw[->, dashed] (reverse2.south)  to node[right] {$b$} (algebra2.north);
\draw[->, very thick] (structure-space.north) .. controls  +(right:2mm) and +(right:7mm)   ..  (reverse2.east);
\end{tikzpicture}
\end{center}

enter image description here

I´d like to write statements over the curved arrows, but it does not work using "to node[below] {...}". Besides I´d like to replace the dashed arrows with "isometric" symbols (something like $\cong$). How can I do that?

Thanks for your help

3
  • Welcome to TeX.SE! Could you edit your code to begin with your \documentclass{} and end with \end{document} , a Minimal Working Example (MWE) please. It makes copy and pasting easier when the code can be compiled and also we do not need to guess what commands or packages you are using.
    – JamesT
    Apr 14, 2023 at 14:44
  • 2
    You might want to take a look into the tikz-cd package/library. It uses a TikZ matrix to place nodes and directed \arrow macro to place the arrows. Re Replacing a line with a symbol, the easiest would be to not draw the path but just place a sloped node with $\cong$ on top. Drawing the arrow as a \cong will be a bit more complicated. Apr 14, 2023 at 14:48
  • 2
    You could replace .. controls +(right:2mm) and +(right:7mm) .. by to[out=90, in=0] and get the same syntax as with the other to-paths. Apr 14, 2023 at 16:01

1 Answer 1

1

Here's a way to do it.

result

Changes made:

I introduced two more styles for your drawn arrows to simplify the code a little.

References don't work, of course.

For the labels I introduced extra nodes, one with shift in polar coordinates, one shifting in cartesian coordinates AND sloped text, one simply with [left]; colors are for better indication.

Polar: 145 deg, 1cm radius, i.e. into the north-west

    \draw[arv,blue] (algebra.north)  to[out=90, in=180] % adopting Jaspers approach
                 node[shift=(145:1cm)] {something}      % putting a label, polar coordinates
                 (reverse.west);

Cartesian:

    \draw[arv,red] (structure-space.north) to [out=90,in=0] % Jaspers idea again
                    node[sloped,xshift=3mm,yshift=3mm] {hi} % sloped, cartesian shifts
                    (reverse2.east);

Left: not sure, if this is even close to what you wanted

    \draw[ard] (reverse.south)  to node[right]{$\ref{GNT-lemma}$}
    % >>> varied:
                                node[left,blue] {$\cong$} % did you mean that?
                                (topo-space.north);

Code

\documentclass[10pt,border=3mm,tikz]{standalone}
\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}[
    SIR/.style={rectangle, draw=black!60, fill=black!5, very thick, minimum size=8mm},
    % ~~~ some style-refactoring: ~~~~~~~~~~~~~
    ard/.style={->, dashed},
    arv/.style={->, very thick},
    ]
    % ~~~ Nodes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    \node[SIR] (reverse)                            {$\Delta(C(X))$};
    \node[SIR] (topo-space) [below=of reverse]      {$X$};
    \node[SIR] (algebra)    [left=of topo-space]    {$C(X)$};
    \node[SIR] (reverse2)   [right=of reverse]      {$C(\Delta(\mathcal{A}))$};
    \node[SIR] (algebra2)   [below=of reverse2]     {$\mathcal{A}$};
    \node[SIR] (structure-space) [right=of algebra2] {$\Delta(\mathcal{A})$};
    
    % ~~~ Lines // references don't work, of course ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    \draw[ard] (reverse.south)  to node[right]{$\ref{GNT-lemma}$}
    % >>> varied:
                                node[left,blue] {$\cong$} % did you mean that?
                                (topo-space.north);
    \draw[arv] (topo-space.west)  to node[below] {...} (algebra.east);
    % >>> varied: ~~~~~~~~~~~~~~~~~~~~~~~~~
    \draw[arv,blue] (algebra.north)  to[out=90, in=180] % adopting Jaspers approach
                 node[shift=(145:1cm)] {something}      % putting a label, polar coordinates
                 (reverse.west);
    
    \draw[arv] (algebra2.east)  to node[below] {\ref{structure-lemma}} (structure-space.west);
    \draw[ard] (reverse2.south)  to node[right] {$b$} (algebra2.north);
    % >>> varied: ~~~~~~~~~~~~~~~~~~~~~~~~~
    \draw[arv,red] (structure-space.north) to [out=90,in=0] % Jaspers idea again
                    node[sloped,xshift=3mm,yshift=3mm] {hi} % sloped, cartesian shifts
                    (reverse2.east);
\end{tikzpicture}

\end{document}

You must log in to answer this question.

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