
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
(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}
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 \plhold
macro 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.