xy 图:设置特定行的高度

xy 图:设置特定行的高度

我正在使用这个xy包。在图中

$$\xymatrix@R=8mm@C=8mm{  
    & 1\ar@{-}[ddl]\ar@{-}[dr] &  \\
    & & c\ar@{-}[dd]\\
  a & & \\
    & & b\\
    & 0\ar@{-}[uul]\ar@{-}[ur] &  \\}$$

在此处输入图片描述

如何将 和 之间的行高c以及和a之间的行高设置得更小。我想创建此图表:ab

在此处输入图片描述

\\[2mm]不做任何改变,\xymatrix@R=8mm@C=8mm{...只做全局改变。

答案1

我从未使用过xymatrix,经过一番搜索后,在手册中找不到任何有用的东西,但我可以提供 TikZ 解决方案。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (thing) [matrix of math nodes,row sep=15pt] {
  &[1cm] 1 &[0.5cm] \\
  &        & c      \\[-15pt]
a &        &        \\[-15pt]
  &        & b      \\
  & 0      &        \\
};
\draw (thing-1-2) -- (thing-2-3) -- (thing-4-3) -- (thing-5-2);
\draw (thing-1-2) -- (thing-3-1) -- (thing-5-2);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

这是我能做的最好的事情Xy-pic。我们的想法是让 c 和 b 成为特殊(矩阵外)目标阿拉第 3.3 节xyguide.pdf

\documentclass{article}
\usepackage[matrix,arrow]{xy}
\begin{document}
\[\xymatrix @R=12mm @C=8mm {
& 1\ar@{-}[dl] 
& \save[]+<0mm,-8mm>*{c} \ar@{-}[l] \restore  \\
a & 
& \save[]+<0mm,-8mm>*{d} \ar@{-}[ld] \ar@{-}+<0mm,12mm> \restore  \\
& 0\ar@{-}[ul] & \\
}\]
\end{document}

示例代码输出

事实上,在得到一个糟糕的 Xy-pic 答案的时间内,您得到了两个好的 TikZ 答案,这表明编写 TikZ 代码很容易。如果您仍然容易被说服,我会鼓励您学习 TikZ。

答案3

只需添加行并关闭它们:

\xymatrix@R=2mm@C=8mm{
  & 1 \ar@{-}[dddl] \ar@{-}[ddr] \\ \\
  & & c \ar@{-}[dd] \\ 
  a \ar@{-}[dddr] \\ 
  & & b \ar@{-}[ddl] \\ \\
  & 0
}

在此处输入图片描述

答案4

关于 Leon 的评论:

{tikz} 当然是一个选择

我建议这样的事情:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{calc,matrix}
\usepackage[all]{xy}
\begin{document}
    \[\xymatrix@R=8mm@C=8mm{
        & 1\ar@{-}[ddl]\ar@{-}[dr] &  \\
        & & c\ar@{-}[dd]\\
      a & & \\
        & & b\\
        & 0\ar@{-}[uul]\ar@{-}[ur] &  \\
    }\]

    \[
    \begin{tikzpicture}[baseline,remember picture,]
    \matrix (n) [matrix of math nodes,%
    column sep=8mm,
    row sep=8mm,nodes={anchor=center},]
    {
        & 1 &  \\
        &   & c\\
      a &   &  \\[-4mm]
        &   & b\\[-4mm]
        & 0 &  \\
    };
    \draw (n-1-2) -- (n-3-1);
    \draw (n-1-2) -- (n-2-3);
    \draw (n-3-1) -- (n-5-2);
    \draw (n-4-3) -- (n-5-2);
    \draw (n-4-3) -- (n-2-3);
    \end{tikzpicture}
    \]
\end{document}

输出

相关内容