我正在使用 tikz-cd 包绘制一个 BIG tikzpicture。我不会在这里重现整个图表,因为没有必要。但以下 MWE 突出显示了我遇到的问题:图表的一个区域有点拥挤,我想将一条边的起始位置微移到源节点的东边。但是,当我为源节点指定坐标时,箭头的源端会出现一个不必要的提示。这是代码:
\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\\
};
\path [commutative diagrams/.cd, every arrow, every label]
(B.north east) edge [bend right, dashed] (A.east)
(B) edge [bend left] (A.west)
;
\end{tikzpicture}
\end{document}
这是此示例产生的输出。您可以在虚线上看到额外的提示。
回想一下,我故意不使用{tikzcd}
环境,因为我有很多节点和边,可能需要在添加到图表时更改某些节点的位置。
关于如何使用边缘路径在 tikzpicture 环境中移动箭头的起始位置,有什么建议吗?
答案1
edge
有点奇怪,你需要to
在这里使用:
\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}
我认为 的情况edge
是存在两条路径,第一条路径从(B)
到非常短(B.north east)
。但我还无法验证这一点。
更新:感谢指向https://tex.stackexchange.com/a/82495/15925
Torbjørn T. 的确如此。在您的代码中,主路径(即edge
删除了部分)是
\draw[commutative diagrams/.cd, every arrow, every label,dashed]
(B.north east)
(B);
上面的代码生成
和你经历过的箭头位置奇怪的情况。
最后一张图的完整代码是:
\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}