relating two diagrams in tikzcd

minimal working example is

\documentclass[12pt,reqno,a4paper]{amsart}
%\usepackage[utf8]{inputenc} % not needed with up-to-date TeX systems
\usepackage[english]{babel}
\usepackage{extsizes}
\usepackage{blindtext}
\usepackage{amsmath,amsthm,amsfonts,amssymb}
\usepackage{mathtools}
\usepackage{color}

\usepackage{mathrsfs}
\usepackage[all]{xy}
\usepackage{tikz-cd}
\usepackage[normalem]{ulem} % do you *really* need it?
\usepackage{datetime}

\usepackage{hyperref}

\begin{document}

\begin{tikzcd}
A \arrow[dd] \arrow[rr] &  & B \arrow[dd] &  & C \arrow[dd] \arrow[rr] &  & D \arrow[dd] \\
&  &  \arrow[rr]   &  &                                                       &  &\\
E \arrow[rr]  &  & F             &  & G \arrow[rr]                                          &  & H
\end{tikzcd}

\end{document}


From this minimal example, I expected two squares and an arrow pointing from one square to another square. It is showing error:

Package pgf Error: No shape named tikz@f@7-2-5 is known. I think the culprit is a tikzcd arrow in cell 2-3. Package pgf Error: No shape named tikz@f@7-2-5 is known. I think the culprit is a tikzcd arrow in cell 2-3. It is better to use one of the extsizes classes, if you can.

To create the arrow between arrows, just add empty labels, they create nodes you can later refer to draw the arrow, see package documentation at Section 2.3 Absolute placement of arrows.

Moreover, you don't need to add empty rows and columns to increase the row/column sep, there are appropriate options: row sep=..., column sep=....

Edit: to add an implication arrow as in $\Rightarrow$, just add Rightarrow option, see package documentation at Section 1.3 Changing arrow tips.

\documentclass[12pt,reqno,a4paper]{amsart}
%\usepackage[utf8]{inputenc} % not needed with up-to-date TeX systems
\usepackage[english]{babel}
\usepackage{extsizes}
\usepackage{blindtext}
\usepackage{amsmath,amsthm,amsfonts,amssymb}
\usepackage{mathtools}
\usepackage{color}

\usepackage{mathrsfs}
\usepackage[all]{xy}
\usepackage{tikz-cd}
\usepackage[normalem]{ulem} % do you *really* need it?
\usepackage{datetime}

\usepackage{hyperref}

\begin{document}

\begin{tikzcd}[row sep=2cm, column sep=2cm]
A \arrow[d] \arrow[r] & B \arrow[d,""{name=BF}] &  C \arrow[d,""{name=CD, left}] \arrow[r] &  D \arrow[d] \\
E \arrow[r]  &  F &  G \arrow[r]  &  H
\arrow[from=BF,to=CD, Rightarrow]
\end{tikzcd}

\end{document}


• @PraphullaKoushik You're welcome and thank you for accepting my answer! You can find it in the package documentation at Section 1.3 Changing arrow tips. – CarLaTeX Sep 21 '19 at 6:23

You only need to ad invisible characters to cell in the middle row before arrow and in cell after arrow:

\documentclass[12pt,reqno,a4paper]{amsart}
\usepackage[english]{babel}
\usepackage{extsizes}
\usepackage{blindtext}
\usepackage{amssymb,amsthm}
\usepackage{mathtools}
\usepackage{color}

\usepackage{mathrsfs}
%\usepackage[all]{xy}
\usepackage{tikz-cd}
%\usepackage[normalem]{ulem} % do you *really* need it?
%\usepackage{datetime}

%\usepackage{hyperref}

\begin{document}
\begin{tikzcd}[row sep=1cm, column sep=2cm]
A \ar[dd]\ar[r] & B \ar[dd] & C \ar[dd] \ar[r]  & D \ar[dd] \\
& ~\ar[r,Rightarrow]    & ~                 &           \\
E \ar[r]        & F         & G \ar[r]          &  H
\end{tikzcd}
\end{document}