![如何调整或移动数学节点的 tikz 矩阵中箭头的标签](https://linux22.com/image/267865/%E5%A6%82%E4%BD%95%E8%B0%83%E6%95%B4%E6%88%96%E7%A7%BB%E5%8A%A8%E6%95%B0%E5%AD%A6%E8%8A%82%E7%82%B9%E7%9A%84%20tikz%20%E7%9F%A9%E9%98%B5%E4%B8%AD%E7%AE%AD%E5%A4%B4%E7%9A%84%E6%A0%87%E7%AD%BE.png)
我正在尝试标记 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}
输出
一些有用的锚点可用(下图是这影响该包的教程tikz-cd
):
一些初步的评论:最新版本的锚点接口非常简洁(我在这个解决方案中大量使用了锚点)。但是,
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}
输出:
令读者困惑的解决方案:
\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}
输出