0

I would like to include this diagram into my work

enter image description here

However, I don't know how to start, since I have never used tikz, but the more modest tikzcd for my commutative diagrams. I should point out three things I absolutely have no idea how to introduce them into any kind of diagram:

  • In the diagram, there appears a circle with a 1 inside it. It should appear where it is, and as it is.
  • The arrows
  • If you notice, the elements of the face that meets both cubes have some inclination, so that they are parallel to the corresponding lines. It would be cool to emulate that effect.

I know it is habitual to expose some code of what the one making the question has tried, but in my case, I have absolutely no experience with tikz...

Sorry for the inconvenience, and thanks.

Akerbeltz
  • 569

2 Answers2

3

A first attempt. Not a pretty code, but work using the 3d library.

\documentclass{standalone}
\newcommand{\Tcall}{\mathcal{T}}
\newcommand{\Scall}{\mathcal{S}}
\usepackage{tikz}
\usetikzlibrary{3d,positioning}
\begin{document}
\begin{tikzpicture}[z={(10:10mm)},x={(-45:5mm)}]
\def\step{2cm}
\begin{scope}[canvas is zy plane at x=-2]
\node(fGs){$\Gamma(\overline{\Scall})$};
\node[right=\step of fGs,transform shape](H1MS) {$H^1(M,\Scall)$};
\node[right=\step of H1MS,transform shape] (f0) {$0$};
\node[right=\step of f0,transform shape] (v1) {};

\nodebelow=\step of fGs {$\Gamma(\Scall)$}; \noderight=\step of fG,transform shape {$\tilde{H}^1(M,\Scall)$}; \node[right=\step of H1MSs,transform shape] (s0) {$0$}; \node[right=\step of s0,transform shape] (v2) {};

\draw[->,transform shape] (fGs) -- (H1MS); \draw[->,transform shape] (H1MS) -- (f0); \draw (f0) -- (v1); \draw[->,transform shape] (fGs) -- (fG);

\draw[->,transform shape] (fG) -- (H1MSs); \draw[->,transform shape] (H1MSs) -- (s0); \draw (s0) -- (v2); \draw[->,transform shape] (H1MS) -- (H1MSs); \draw[->,transform shape] (f0) -- (s0); \end{scope}

\begin{scope}[canvas is zy plane at x=2] \node(fIs){$\Gamma(\overline{\Tcall})$}; \noderight=\step of fIs,transform shape {$H^1(M,\Tcall)$}; \node[right=\step of H1MI,transform shape] (t0) {$0$}; \node[right=\step of t0,transform shape] (v3) {};

\nodebelow=\step of fIs {$\Gamma(\Tcall)$}; \noderight=\step of fI,transform shape {$\tilde{H}^1(M,\Tcall)$}; \node[right=\step of H1MIs,transform shape] (fo0) {$0$}; \node[right=\step of fo0,transform shape] (v4) {};

\draw[->,transform shape] (fIs) -- (H1MI); \draw[->,transform shape] (H1MI) -- (t0); \draw (t0) -- (v3); \draw[->,transform shape] (fIs) -- (fI);

\draw[->,transform shape] (fI) -- (H1MIs); \draw[->,transform shape] (H1MIs) -- (fo0); \draw (fo0) -- (v4); \draw[->,transform shape] (H1MI) -- (H1MIs); \draw[->,transform shape] (t0) -- (fo0); \end{scope}

\draw[->] (fGs) -- (fIs); \draw[->] (fG) -- (fI); \draw[->] (H1MS) -- (H1MI); \draw[->] (H1MSs) -- (H1MIs); \draw[->] (f0) -- (t0); \draw[->] (s0) -- (fo0);

\path (H1MS) -- (H1MIs) node[midway, circle, inner sep=0pt,draw] {1}; \end{tikzpicture} \end{document}

enter image description here

Some little improvement

\documentclass{standalone}
\newcommand{\Tcall}{\mathcal{T}}
\newcommand{\Scall}{\mathcal{S}}
\usepackage{tikz}
\usetikzlibrary{3d,positioning,decorations.markings}
\begin{document}
\begin{tikzpicture}[z={(10:10mm)},x={(-45:5mm)},
decoration={markings,
mark=at position .65 with {\arrow[transform shape]{latex}}},
conn/.style={thick,postaction={decorate}}]
\def\step{2cm}
\begin{scope}[canvas is zy plane at x=-2]
\node(fGs){$\Gamma(\overline{\Scall})$};
\node[right=\step of fGs,transform shape](H1MS) {$H^1(M,\Scall)$};
\node[right=\step of H1MS,transform shape] (f0) {$0$};
\node[right=\step of f0,transform shape] (v1) {};

\nodebelow=\step of fGs {$\Gamma(\Scall)$}; \noderight=\step of fG,transform shape {$\tilde{H}^1(M,\Scall)$}; \node[right=\step of H1MSs,transform shape] (s0) {$0$}; \node[right=\step of s0,transform shape] (v2) {};

\draw[conn] (fGs) -- (H1MS); \draw[conn] (H1MS) -- (f0); \draw[thick] (f0) -- (v1); \draw[conn] (fGs) -- (fG);

\draw[conn] (fG) -- (H1MSs); \draw[conn] (H1MSs) -- (s0); \draw[thick] (s0) -- (v2); \draw[conn] (H1MS) -- (H1MSs); \draw[thick] (f0) -- (s0); \end{scope}

\begin{scope}[canvas is zy plane at x=2] \node(fIs){$\Gamma(\overline{\Tcall})$}; \noderight=\step of fIs,transform shape {$H^1(M,\Tcall)$}; \node[right=\step of H1MI,transform shape] (t0) {$0$}; \node[right=\step of t0,transform shape] (v3) {};

\nodebelow=\step of fIs {$\Gamma(\Tcall)$}; \noderight=\step of fI,transform shape {$\tilde{H}^1(M,\Tcall)$}; \node[right=\step of H1MIs,transform shape] (fo0) {$0$}; \node[right=\step of fo0,transform shape] (v4) {};

\draw[conn] (fIs) -- (H1MI); \draw[conn] (H1MI) -- (t0); \draw[thick] (t0) -- (v3); \draw[conn] (fIs) -- (fI);

\draw[conn] (fI) -- (H1MIs); \draw[conn] (H1MIs) -- (fo0); \draw[thick] (fo0) -- (v4); \draw[conn] (H1MI) -- (H1MIs); \draw[thick] (t0) -- (fo0); \end{scope}

\draw[conn] (fGs) -- (fIs); \draw[conn] (fG) -- (fI); \draw[conn] (H1MS) -- (H1MI); \draw[conn] (H1MSs) -- (H1MIs); \draw[thick] (f0) -- (t0); \draw[thick] (s0) -- (fo0);

\path (H1MS) -- (H1MIs) node[midway, circle, inner sep=0pt,draw] {1}; \end{tikzpicture} \end{document}

enter image description here

vi pa
  • 3,394
  • If you rotate the H^1(M,\Tcall) for example it is very very good. +1 surely now. – Sebastiano Aug 22 '20 at 22:20
  • @Sebastiano But the OP say:"If you notice, the elements of the face that meets both cubes have some inclination, so that they are parallel to the corresponding lines. It would be cool to emulate that effect.". By the way if you delete the key transform shape you get the rotation. – vi pa Aug 22 '20 at 22:30
  • I look often only the picture...I hope you're not angry with me. Your answer it is between my favorities now. – Sebastiano Aug 22 '20 at 22:32
  • 1
    @Sebastiano absolutely not. – vi pa Aug 23 '20 at 09:14
2

A possibility with pst-node and pst-arrow:

\documentclass{article}
\usepackage{fourier} 
\usepackage{pst-node, pst-arrow}
\usepackage{auto-pst-pdf}

\begin{document}

[ \begin{psmatrix}[rowsep=0.6cm, colsep=1.7cm] & & & [name=0E] 0 & \pnode[0,2.7ex]{IE}\ [name=GE]\Gamma(\bar{\mathcal{E}}) & & & & [name=0T] 0 & \pnode[0,2.7ex]{IT}\ & [name=GT]\Gamma(,\overline{!\mathcal{T}!},) \ & & & [name=0Eb] 0 & \pnode[0,2.7ex]{IEb} \ [name=GEb] \Gamma(\bar{\mathcal{E}}) & & & & [name=0Tb]0 & \pnode[0,2.7ex]{ITb} \ & [name=GTb] \Gamma(,\overline{!\mathcal{T}!},) \end{psmatrix} {\psset{linestyle=none, nrot=:U}% \ncline{GE}{0E}\ncput{\rnode{HE}{H^1(M, \mathcal{E})}} \ncline{GT}{0T}\ncput{\rnode{HT}{H^1(M, \mathcal{T})}} \ncline{GEb}{0Eb}\ncput{\rnode{HEb}{\tilde{H}^1(M, \mathcal{E})}} \ncline{GTb}{0Tb}\ncput{\rnode{HTb}{\tilde{H}^1(M, \mathcal{T})}} }% \ncline{0E}{0T}\ncline{0T}{0Tb}\ncline{0Tb}{0Eb}\ncline{0E}{0Eb} {\psset{nodesepA=1pt} % \ncline{0E}{IE}\ncline{0T}{IT} \ncline{0Eb}{IEb}\ncline{0Tb}{ITb}}% {\psset{arrowinset=0.12, ArrowInside=->, nodesepB=3pt}% \ncline{HE}{0E} \ncline{HT}{0T} \ncline{HEb}{0Eb} \ncline{HTb}{0Tb} \psset{ArrowInsidePos=0.66, } \ncline{GE}{GEb}\ncline{GEb}{GTb} \ncline{GE}{GT}\ncline{GT}{GTb} \ncline{HE}{HT}\ncline{HT}{HTb} \ncline{HE}{HEb}\ncline{HEb}{HTb} } \psset{arrows=->} \ncline{GE}{HE}\ncline{GT}{HT} \ncline{GEb}{HEb}\ncline{GTb}{HTb} % ]

\end{document} 

enter image description here

Bernard
  • 271,350