![如何对齐交换图的 TikZ 节点?](https://linux22.com/image/326214/%E5%A6%82%E4%BD%95%E5%AF%B9%E9%BD%90%E4%BA%A4%E6%8D%A2%E5%9B%BE%E7%9A%84%20TikZ%20%E8%8A%82%E7%82%B9%EF%BC%9F.png)
我有一个 Ti钾Z图片:
\begin{tikzpicture}
\matrix (m) [matrix of math nodes,row sep=0em,column sep=3em,minimum width=2em] {
E_1 & H^+ \\
E_1^\perp & H^- \\
&\R^{2m}\backslash\left\{H^+\cap H^-\right\}\\};
\path[-stealth]
(m-1-1) edge (m-1-2)
(m-2-1) edge (m-2-2)
edge (m-1-2)
edge (m-3-2);
\end{tikzpicture}
到目前为止一切顺利。它看起来像这样:
两个问题:
- 如何将右侧节点水平对齐到左侧,以便右侧节点的左侧位于一条垂直线上?
- 如何垂直对齐右侧或左侧节点,以便两个水平箭头完全水平?现在它们有点倾斜。
答案1
默认情况下,matrix of nodes
将节点锚定(放置并对齐)在其上baseline
,但您可以更改它以固定新的锚点:
\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{matrix}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}
\matrix (m) [matrix of math nodes,row sep=0em,column sep=3em,minimum width=2em, nodes={anchor=west}] {
E_1 & H^+ \\
E_1^\perp & H^- \\
&R^{2m}\backslash\left\{H^+\cap H^-\right\}\\};
\path[-stealth]
(m-1-1) edge (m-1-2)
(m-2-1) edge (m-2-2)
edge (m-1-2)
edge (m-3-2);
\end{tikzpicture}
\end{document}
答案2
带有;的版本tikz-cd
只需要对箭头进行微小的调整。
\documentclass{article}
\usepackage{amssymb}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[
cells={nodes={anchor=west}},
end anchor={west},
row sep=1ex,
column sep=large,
]
E_1 \arrow[r] & H^+ \\
E_1^\perp
\arrow[ru,end anchor=south west]
\arrow[r]
\arrow[rd] & H^- \\
& \mathbb{R}^{2m}\setminus (H^+\cap H^-)
\end{tikzcd}
\end{document}
答案3
这是使用包的最小版本tikz-cd
。
输出
代码
\documentclass[letterpaper,11pt,reqno]{amsart}
\usepackage{tikz-cd}
\begin{document}
\[\begin{tikzcd}[row sep=2mm, column sep=1.5cm, cells={anchor=west}]
E_1 \arrow[r] & H^+ \\
E_1^\perp \arrow[ur]\arrow[r]\arrow[dr, end anchor={west}] & H^- \\
& \mathbb{R}^{2m} \setminus\left\{H^+\cap H^-\right\}\ \\
\end{tikzcd}\]
\end{document}