2015年9月2日水曜日

tikz-cdで可換図を描いてみた。

横幅が広すぎる可換図をページ内に収めるため、tikz-cdのマニュアルを参考に複数行にわたる可換図を描いてみました。


次はできあがった図の画像です。
ソースは以下の通り。
\documentclass[10pt,a4paper]{article}
\usepackage[dvipdfmx]{graphicx}
\usepackage{amsmath,amssymb}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{cd}

\begin{document}
\begin{equation*}
 \begin{tikzcd}[column sep=small]
  H_{n+1}(S_\ast(U)+S_\ast(V))
  \arrow[r]
  \arrow[d]
  &(\Sigma^{-1}\mathbb{Z})_n
  \arrow[r]
  \arrow[d,equal]
  &H_n(\tilde{S}_\ast(U)+\tilde{S}_\ast(V))
  \arrow[d]
  \arrow[ddd, phantom, ""{coordinate, name=Z}]
  \arrow[dd,rounded corners,
  to path={ --([xshift=2ex]\tikztostart.east)
            |-($(Z)+(0,-1ex)$)\tikztonodes
            -|([xshift=-2ex]\tikztotarget.west)
            --(\tikztotarget)}]
\\
  H_{n+1}(X)
  \arrow[r]
  &(\Sigma^{-1}\mathbb{Z})_n
  \arrow[r]
  &\tilde{H}_n(X)
  \arrow[dd,rounded corners,
  to path={ --([xshift=2ex]\tikztostart.east)
            |-($(Z)+(0,+1ex)$)\tikztonodes
            -|([xshift=-10ex]\tikztotarget.west)
            --(\tikztotarget)}]
\\
& &H_n(S_\ast(U)+S_\ast(V))
 \arrow[r]
  \arrow[d]
 &(\Sigma^{-1}\mathbb{Z})_{n-1}
  \arrow[d,equal]
\\
&&H_n(X)
  \arrow[r]
&(\Sigma^{-1}\mathbb{Z})_{n-1}
 \end{tikzcd}
\end{equation*}
\end{document}