请问---我该如何调整 tikzpicture 中的箭头对齐方式,使得这些箭头变得完全水平?
在这种情况下,我认为 w 与 W 的大小会导致箭头扭曲。但我们希望保持字母不变,只需调整箭头为水平即可。
理想情况下,我更喜欢使用 tikzpicture 而不是 tikzcd。
\documentclass[10pt,border=3mm,tikz]{standalone}
\usetikzlibrary{matrix}
\usepackage{amsmath, amsthm, amssymb,mathtools}
\begin{document}
\begin{tikzpicture}
\matrix[matrix of math nodes,inner sep=1pt,row sep=1em,column sep=1em] (M)
{
& {A_p^{w}}{\;} & {\;}{A_p^{\rm W}} \\
& {B_p^{y}}{\;} & {\;}{B_p^{\rm Y}} \\
}
;
\draw[ <-] (M-1-2.east) -- (M-1-3.west) node[midway,above,pos=0.4]{\;\tiny $wW$};
\draw[ ->] (M-2-2.east) -- (M-2-3.west) node[midway,above,pos=0.4]{\;\tiny $yY$};
\end{tikzpicture}
\end{document}
答案1
这可以通过使用mid east
和mid west
锚点或确保所有节点具有相同的高度来实现,例如,通过\strut
在每个节点中插入一个:
\documentclass[10pt, border=10pt, tikz]{standalone}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix[
matrix of math nodes,
inner ysep=1pt,
inner xsep=2pt,
row sep=1em,
column sep=1em
] (M) {
A_p^w & A_p^\mathrm{W} \\
B_p^y & B_p^\mathrm{Y} \\
};
\draw[<-] (M-1-1.mid east) -- (M-1-2.mid west)
node[midway, above] {\tiny $wW$};
\draw[->] (M-2-1.mid east) -- (M-2-2.mid west)
node[midway, above] {\tiny $yY$};
\end{tikzpicture}
\end{document}
或者
\documentclass[10pt, border=10pt, tikz]{standalone}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix[
matrix of math nodes,
inner ysep=1pt,
inner xsep=2pt,
row sep=1em,
column sep=1em,
every node/.append style={
execute at end node={\strut},
}
] (M) {
A_p^w & A_p^\mathrm{W} \\
B_p^y & B_p^\mathrm{Y} \\
};
\draw[<-] (M-1-1.east) -- (M-1-2.west)
node[midway, above] {\tiny $wW$};
\draw[->] (M-2-1.east) -- (M-2-2.west)
node[midway, above] {\tiny $yY$};
\end{tikzpicture}
\end{document}
或者(因为您最初这样标记了您的问题),使用以下tikz-cd
包:
\documentclass[10pt, border=10pt]{standalone}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[
row sep=1em,
column sep=2em
]
A_p^w & A_p^\mathrm{W} \arrow[l, "wW"'] \\
B_p^y \arrow[r, "yY"] & B_p^\mathrm{Y} \\
\end{tikzcd}
\end{document}