edge
is a bit of a strange beast, and you need to use to
here instead:
\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\usetikzlibrary{arrows}
\title{}
\date{}
\tikzset{
commutative diagrams/.cd,
arrow style = tikz,
diagrams={>=latex}}
\begin{document}
\begin{tikzpicture}[commutative diagrams/every diagram,column sep = 3em]
\matrix (m) [matrix of math nodes, nodes in empty cells]{
|(A)|A\\
|(B)|B\\
};
\draw[commutative diagrams/.cd, every arrow, every label,dashed]
(B.north east) to [bend right, dashed] (A.east);
\draw[commutative diagrams/.cd, every arrow, every label]
(B) edge [bend left] (A.west);
\end{tikzpicture}
\end{document}
I think what is happending with the edge
is that there are two paths, the first a very short one from (B)
to (B.north east)
. But I haven't yet be able to verify this.
Update: thanks to the pointer to https://tex.stackexchange.com/a/82495/15925
from Torbjørn T. this is indeed the case. In your code the main path, i.e. with the edge
parts removed, is
\draw[commutative diagrams/.cd, every arrow, every label,dashed]
(B.north east)
(B);
which in the above code produces
with the strangely placed arrowhead you experienced.
The full code for this last diagram is:
\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\usetikzlibrary{arrows}
\title{}
\date{}
\tikzset{
commutative diagrams/.cd,
arrow style = tikz,
diagrams={>=latex}}
\begin{document}
\begin{tikzpicture}[commutative diagrams/every diagram,column sep = 3em]
\matrix (m) [matrix of math nodes, nodes in empty cells]{
|(A)|A\\
|(B)|B\\
};
\draw[commutative diagrams/.cd, every arrow, every label,dashed]
(B.north east)
(B);
\end{tikzpicture}
\end{document}
The first thing to try is, of course, reducing the arrow lengths. If all else fails, use \mathclap
that, however, requires ampersand replacement
; or enclose the diagram in an lrbox
.
I'll show all three possibilities.
\documentclass[12pt,a4paper]{article}
\usepackage{mathtools}
\usepackage{tikz-cd}
\newsavebox{\wideeqbox}
\newcommand{\sample}{Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate.}
\begin{document}
\sample
\[
\mathclap{
\begin{tikzcd}[ampersand replacement=\&]
\bullet \dar \rar \&
\bullet \dar \rar \&
\bullet \dar \rar \&
\bullet \dar \rar \&
\bullet \dar \rar \&
\bullet \dar \rar \&
\bullet \dar \rar \&
\bullet \dar \rar \&
\bullet \dar \rar \&
\bullet \dar \\
\bullet \rar \&
\bullet \rar \&
\bullet \rar \&
\bullet \rar \&
\bullet \rar \&
\bullet \rar \&
\bullet \rar \&
\bullet \rar \&
\bullet \rar \&
\bullet
\end{tikzcd}
}
\]
\sample
\[
\begin{lrbox}{\wideeqbox}
$\begin{tikzcd}
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \\
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet
\end{tikzcd}$
\end{lrbox}
\makebox[0pt]{\usebox{\wideeqbox}}
\]
\sample
\[
\begin{tikzcd}[column sep=2em,row sep=1.5em]
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \rar &
\bullet \dar \\
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet \rar &
\bullet
\end{tikzcd}
\]
\sample
\end{document}
The lrbox
solution can be packaged into an environment:
\newsavebox{\wideeqbox}
\newenvironment{wideeq}
{\begin{displaymath}\begin{lrbox}{\wideeqbox}$\displaystyle}
{$\end{lrbox}\makebox[0pt]{\usebox{\wideeqbox}}\end{displaymath}}
Then
text
\begin{wideeq}
\begin{tikzcd}
...
\end{tikzcd}
\end{wideeq}
text
will do. Any math mode material can be used.
Best Answer
One possibility using the
name
key and then using those names to draw the arrows:The code: