この可換図をもっと見やすくするアイデアを持っている人はいますか?

この可換図をもっと見やすくするアイデアを持っている人はいますか?

こんにちは。私は、長い正確な数列を描こうとしています。重要なのは、3 つの項が出現することです。残念ながら、出来上がりはひどいものになってしまいました。もっと見栄えを良くする方法を誰か知っていますか? 特に、斜めの矢印が見苦しいのですが、曲げたり、見栄えを良くする方法はありますか? また、3 行目には、間の項を隠すために「...」を入れていましたが、これでは見栄えが悪く、斜めの矢印が均一に配置されません。何かアドバイスがあれば、ぜひお願いします :)

私は xy pic を使用しています。コードは次のとおりです:

相対的に長い正確なシーケンスは次のように与えられる。

\[ 
\xymatrix{
0 \ar[rr] && H^0(M, \Dd M) \ar[rr] && H^0(M) \ar[rr] && H^0(\Dd M) \ar[dllll]  \\
       && H^1(M, \Dd M) \ar[rr] && H^1(M) \ar[rr] && H^1(\Dd M) \ar[dllll]  \\
       && \cdots \ar[rr] && \cdots \ar[rr] && \cdots \ar[dllll] & \\
       && H^n(M, \Dd M) \ar[rr] && H^n(M) \ar[rr] && 0} \]

そして、これがその様子です

ここに画像の説明を入力してください

(ページスペースを埋めるために2列のスペースを使用しました)

答え1

より現代的で多用途なオプションですtikz-cd切り替えたい場合に備えて:

\documentclass{article}
\usepackage{tikz-cd}
\usepackage{calc}

\newcommand\Dd{\partial}
\tikzset{
Curved/.style={
  rounded corners,to path={ -- ([xshift=2ex]\tikztostart.east)
    |- (#1) [near end]\tikztonodes
    -| ([xshift=-2ex]\tikztotarget.west)
    -- (\tikztotarget)
    }
  }
}
\newcommand{\plhold}[1]{%
  \makebox[\widthof{$#1$}]{$\vphantom{#1}{\cdots}$}%
}

\begin{document}

\begin{tikzcd}%[column sep=2cm]
0 \ar[r] 
  & H^0(M, \Dd M) \ar[r] 
  & H^0(M) \ar[r]\arrow[d, phantom, ""{coordinate, name=A}] 
  & H^0(\Dd M) \arrow[dll,Curved=A]  
\\
& H^1(M, \Dd M) \ar[r] 
  & H^1(M) \ar[r] \arrow[d, phantom, ""{coordinate, name=B}]
  & H^1(\Dd M) \arrow[dll,Curved=B]  
\\
& \plhold{H^n(M, \Dd M)} \ar[r] 
  & \plhold{H^n(M)} \ar[r]\arrow[d, phantom, ""{coordinate, name=C}] 
  & \plhold{H^1(\Dd M)} \arrow[dll,Curved=C] & 
\\
& H^n(M, \Dd M) \ar[r] 
  & H^n(M) \ar[r] 
  & 0 
\end{tikzcd}

\end{document}

ここに画像の説明を入力してください

column sep=<length>を使用すると、列の分離をより適切に制御できることに注意してください。好みに応じて変更する方法を示すために、サンプル コードではコメント アウトしたままにしています。

私は恥ずかしげもなく\plholdマクロを拝借しましたegreg's answer

答え2

ドットが、置き換えるオブジェクトと同じだけの水平方向と垂直方向のスペースを占めるようにすることで、改善できるかもしれません。矢印を曲げるのは、私には魅力的ではありません。

\documentclass{article}
\usepackage{calc}
\usepackage[all,cmtip]{xy}

\newcommand{\Dd}{\partial}
\newcommand{\plhold}[1]{%
  \makebox[\widthof{$#1$}]{$\vphantom{#1}{\cdots}$}%
}

\begin{document}

\[ 
\xymatrix@C+3em{
0 \ar[r]
  & H^0(M, \Dd M) \ar[r] & H^0(M) \ar[r] & H^0(\Dd M) \ar[dll]  \\
  & H^1(M, \Dd M) \ar[r] & H^1(M) \ar[r] & H^1(\Dd M) \ar[dll]  \\
  & \plhold{H^1(M, \Dd M)} \ar[r] & \plhold{H^1(M)} \ar[r] & \plhold{H^1(\Dd M)} \ar[dll] \\
  & H^n(M, \Dd M) \ar[r] & H^n(M) \ar[r] & 0
}
\]

\end{document}

空の列を飛び越えるのではなく、列の間隔を操作することで、幅をより適切に制御できることに注意してください。

ここに画像の説明を入力してください

関連情報