不对称交换图

不对称交换图

我在 tikz-cd 中有以下交换图,对我来说它看起来非常不对称:

\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}  
  & & I_1 \ar[rd] \arrow[loop above] & & \\
  & I_K \ar[ur] & & I_2 \ar[rd] & \\ 
  I_{K-1} \ar[ur] & & & & I_{3} \ar[d] \\
  I_{K-2} \ar[u] & & & & I_{4} \ar[ld]\\
  &~\ar[lu]& & ~\ar[ll,dashed, bend left]&\\
\end{tikzcd}    
\end{document}

在此处输入图片描述

有什么方法可以解决这个问题,并且还可以使整个图表看起来更圆吗?

答案1

用于between origins消除不对称,并调整列和行分离的值。

\documentclass{standalone}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[column sep={4.5em,between origins},row sep=1.5em]
  & & I_1 \ar[rd] \arrow[loop above] & & \\
  & I_K \ar[ur] & & I_2 \ar[rd] & \\
  I_{K-1} \ar[ur] & & & & I_{3} \ar[d] \\
  I_{K-2} \ar[u] & & & & I_{4} \ar[ld]\\
  &~\ar[lu]& & ~\ar[ll,dashed, bend left]&\\
\end{tikzcd}
\end{document}

在此处输入图片描述

答案2

我将我的评论转化为答案。

这是一个“更循环”的解决方案,无需tikz-cd的解决方案,没有它,这个答案(自己)。

\documentclass[tikz,border=7pt]{standalone}
\usetikzlibrary{shapes.geometric}
\tikzset{
  nonagon/.style={
    shape=regular polygon, regular polygon sides=9,
    outer sep=0, minimum size=42mm
  }
}
\begin{document}
  \begin{tikzpicture}[n5/.style={opacity=0},n6/.style=n5,e6/.style={dashed,bend left=17}]
    \path node[nonagon](H){}
      % nodes (two are invisible)
      foreach[count=\i] \x in {1,k,k-1,k-2,,,4,3,2}{(H.corner \i) node[n\i/.try] (c\i) {$I_{\x}$}}
      % edges (one is dashed and bended)
      foreach[count=\i] \j in {9,1,2,...,8}{(c\i) edge[->,e\i/.try] (c\j)}
      % the top loop
      (c1) edge [loop above,scale=1.4] ();
  \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容