이 교환 다이어그램을 더 멋지게 보이게 만드는 방법에 대한 아이디어가 있는 사람이 있습니까?

이 교환 다이어그램을 더 멋지게 보이게 만드는 방법에 대한 아이디어가 있는 사람이 있습니까?

안녕하세요 저는 길고 정확한 순서를 그리려고 노력하고 있으며 중요한 것은 용어가 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} \]

그리고 이것이 어떻게 생겼는지입니다

여기에 이미지 설명을 입력하세요

(페이지 공간을 채우기 위해 이중 열 간격을 사용했습니다)

답변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}

빈 열 위로 점프하는 것보다 열 분리를 수행하여 너비를 더 잘 제어할 수 있습니다.

여기에 이미지 설명을 입력하세요

관련 정보