中箭头 xymatrix 标签周围的空间

中箭头 xymatrix 标签周围的空间

我希望这里的上图(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}

在此处输入图片描述

相关内容