
こんにちは。私は、長い正確な数列を描こうとしています。重要なのは、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}
空の列を飛び越えるのではなく、列の間隔を操作することで、幅をより適切に制御できることに注意してください。