我希望这里的上图(MWE 中的图)看起来像下图(通过将标签更改为目标等而制作的,但我有很多这些图表需要更改,并且更希望有一个更简单的修复),即带有清晰间隔的标签。我觉得应该有一些标签等效项,类似于 @R=5pt 等选项,用于调整整个图表的间距,但我不明白。我猜 @L 很接近,但似乎不适用于中间箭头标签。非常感谢您的建议。
\documentclass{article}
\usepackage{amsmath}
\usepackage[all]{xy}
\begin{document}
\begin{equation*}
\xymatrix{
\bullet \ar@{-}[d]|1\ar@{-}[dr]|2\ar@{-}[drr]|3 & \bullet & \bullet\ar@{=}[d]|{45}\\
\bullet & \bullet & \bullet
}
\end{equation*}
\end{document}
我想我可以设计一个正则表达式来为每个标签添加 *+<5pt>,但我觉得一定有一些更好的技巧,尤其是考虑到默认值似乎难以辨认。
答案1
这增加了每一个在其周围标记一些空间。
\documentclass{article}
\usepackage{amsmath}
\usepackage[all]{xy}
\makeatletter
\def\labelbox#1{%
\hbox{%
\setbox\z@=\hbox{$\m@th\labelstyle{\,#1\,}$}%
\setbox\tw@=\hbox{$\m@th\labelstyle\,$}%
\dimen@=\ht\z@ \advance\dimen@ by \wd\tw@ \ht\z@=\dimen@
\dimen@=\dp\z@ \advance\dimen@ by \wd\tw@ \dp\z@=\dimen@
\box\z@
}%
}
\makeatother
\begin{document}
\begin{equation*}
\xymatrix{
\bullet \ar@{-}[d]|1\ar@{-}[dr]|2\ar@{-}[drr]|3 & \bullet & \bullet\ar@{=}[d]|{45}\\
\bullet & \bullet & \bullet
}
\end{equation*}
\end{document}
和tikz-cd
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\makeatother
\begin{document}
\begin{equation*}
\begin{tikzcd}[arrows=no head,row sep=large]
\bullet \arrow[d,"1" description] \arrow[dr,"2" description]
\arrow[drr,"3" description] &
\bullet &
\bullet\arrow[d,equal,"45" description]\\
\bullet & \bullet & \bullet
\end{tikzcd}
\end{equation*}
\end{document}