
Olá, estou tentando desenhar uma sequência longa e exata e, principalmente, com os termos aparecendo em três. Infelizmente o que sai parece horrível, alguém tem alguma idéia de como torná-lo mais bonito? Especificamente, as setas diagonais parecem desagradáveis. Existem maneiras de dobrá-las ou fazê-las parecer mais bonitas? Também na terceira linha eu estava colocando '...' para cobrir os termos intermediários, mas isso parece ruim e as setas diagonais não se organizam uniformemente. Quaisquer sugestões seriam muito apreciadas :)
Estou usando xy pic, aqui está meu código:
Nossa sequência exata relativamente longa é 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} \]
E aqui está o que parece
(Usei espaçamento duplo entre colunas para preencher o espaço da página)
Responder1
Aqui está uma opção usando o mais moderno e versátiltikz-cd
, caso você queira mudar:
\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}
Observe que usando column sep=<length>
você pode ter um controle melhor sobre a separação das colunas. Deixei isso comentado no meu código de exemplo para mostrar como alterá-lo ao seu gosto.
Eu descaradamente peguei emprestada a \plhold
macro deegreg's answer
.
Responder2
Você pode melhorá-lo fazendo com que os pontos ocupem tanto espaço horizontal e vertical quanto os objetos que eles substituem; dobrar as flechas não me atrai.
\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}
Observe que você obtém melhor controle da largura agindo na separação das colunas em vez de pular colunas vazias.