如何调整或移动数学节点的 tikz 矩阵中箭头的标签

如何调整或移动数学节点的 tikz 矩阵中箭头的标签

我正在尝试标记 tikz-matrix 图中交叉的箭头。默认情况下,标签放置在路径的中间。由于箭头也在中间交叉,因此标记变得模糊:

在此处输入图片描述

我怎样才能将标签向下或向上“移动”?或者是否有更好的环境来绘制此图表?

这是 tikz 代码:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}

 \begin{tikzpicture}
  \matrix (m) [matrix of math nodes, row sep=4em,
    column sep=0.2em]{
    V& \quad \hookrightarrow \quad & H & \cong& H'& \quad \hookrightarrow &V' \\
    Q_+& \quad \hookrightarrow \quad & Q & \cong& Q '& \quad \hookrightarrow &Q_+' \\
    };
  \path[-stealth]
    (m-1-1) edge [densely dotted] node [left] {$J_1'$} (m-2-5) 
    (m-1-3) edge (m-2-7) 
    (m-2-1) edge  (m-1-5)
    (m-2-3) edge [densely dotted] (m-1-7);
\end{tikzpicture}

\end{document}

答案1

我想用漂亮的包装来给出答案tikz-cd

更新

这是基于v.0.3c最新版本的解决方案。

\documentclass{amsart}
\usepackage{tikz-cd} %some features in this code require v.0.3c 
\begin{document} 
\begin{tikzcd}
V \arrow[densely dotted, end anchor={[xshift=-3ex]north east}]{rd}[swap, pos=0.4, description]{J_1'} \arrow[hookrightarrow]{r} 
& H \cong H' \arrow[start anchor={[xshift=1.5ex]south west}, densely dotted]{rd}\arrow[hookrightarrow]{r} 
& V' \\

Q_+\arrow[densely dotted, end anchor={[xshift=-3ex]south east}]{ru}\arrow[hookrightarrow]{r}
& Q \cong Q' \arrow[hookrightarrow]{r}
& Q_+
\end{tikzcd}
\end{document}

输出

社区新版本.png

一些有用的锚点可用(下图是影响该包的教程tikz-cd):

锚点值得学习.png

一些初步的评论:最新版本的锚点接口非常简洁(我在这个解决方案中大量使用了锚点)。但是,v.0.3a如果您无法像我一样访问新版本,可以在此处查看基于该版本的旧答案。

我强烈推荐以下解决方案,它不会产生关于哪个箭头被称为 J 1 ' 的歧义。

\documentclass{amsart}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
V \arrow[densely dotted, end anchor=40]{rd}[swap, pos=0.77, description]{J_1'} \arrow[hookrightarrow]{r} 
& H \cong H' \arrow[start anchor=210, densely dotted]{rd}\arrow[hookrightarrow]{r} 
& V' \\

Q_+\arrow[densely dotted, end anchor=-60]{ru}\arrow[hookrightarrow]{r}
& Q \cong Q' \arrow[hookrightarrow]{r}
& Q_+
\end{tikzcd}
\end{document}

输出:

commudes.png

令读者困惑的解决方案:

\documentclass{amsart}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
V \arrow[densely dotted, end anchor=40]{rd}[swap, pos=0.65]{J_1'} \arrow[hookrightarrow]{r} 
& H \cong H' \arrow[start anchor=210, densely dotted]{rd}\arrow[hookrightarrow]{r} 
& V' \\

Q_+\arrow[densely dotted, end anchor=-60]{ru}\arrow[hookrightarrow]{r}
& Q \cong Q' \arrow[hookrightarrow]{r}
& Q_+
\end{tikzcd}
\end{document}

输出

社区

相关内容