¿Alguien tiene ideas sobre cómo hacer que este diagrama conmutativo se vea mejor?

¿Alguien tiene ideas sobre cómo hacer que este diagrama conmutativo se vea mejor?

Hola, estoy intentando dibujar una secuencia larga y exacta y, lo más importante, con los términos que aparecen de tres en tres. Lamentablemente lo que sale se ve horrible, ¿alguien tiene alguna idea de cómo hacer que se vea mejor? Específicamente, las flechas diagonales se ven desagradables, ¿hay alguna manera de doblarlas o hacer que parezcan más bonitas? También en la tercera fila estaba poniendo '...' para cubrir los términos intermedios, pero esto se ve mal y las flechas diagonales no se organizan de manera uniforme. Cualquier sugerencia será muy apreciada :)

Estoy usando xy pic, aquí está mi código:

Nuestra secuencia exacta relativamente larga está dada por

\[ 
\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} \]

Y así es como se ve

ingrese la descripción de la imagen aquí

(He utilizado doble espacio entre columnas para llenar el espacio de la página)

Respuesta1

Aquí tienes una opción utilizando el más moderno y versátil.tikz-cd, en caso de que quieras cambiar:

\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}

ingrese la descripción de la imagen aquí

Tenga en cuenta que al utilizar column sep=<length>puede tener un mejor control sobre la separación de columnas. Lo dejé comentado en mi código de ejemplo para mostrarte cómo cambiarlo a tu gusto.

Tomé prestada descaradamente la \plholdmacro deegreg's answer.

Respuesta2

Puedes mejorarlo haciendo que los puntos ocupen tanto espacio horizontal y vertical como los objetos que reemplazan; Doblar las flechas no me atrae.

\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}

Tenga en cuenta que puede controlar mejor el ancho actuando sobre la separación de columnas en lugar de saltar sobre columnas vacías.

ingrese la descripción de la imagen aquí

información relacionada