我如何绘制 $S_3$ 的凯莱图?

我如何绘制 $S_3$ 的凯莱图?

我需要绘制 S_3 的凯莱图,表示形式为 $S_3 = (s,t | s^3 = t^2 = 1, tst = s^2)$。我有以下代码

\documentclass{standalone}
\usepackage{tikz-cd}


\begin{document}
    $$\begin{tikzcd}
        &&&&& 1 \\
        \\
        &&&&& 4 \\
        \\
        \\
        &&& 5 &&&& 6 \\
        \\
        3 &&&&&&&&&& 2
        \arrow[from=1-6, to=8-11]
        \arrow[from=8-11, to=8-1]
        \arrow[from=8-1, to=1-6]
        \arrow[from=3-6, to=6-4]
        \arrow[from=6-4, to=6-8]
        \arrow[from=6-8, to=3-6]
    \end{tikzcd}$$
\end{document}

但输出与我所搜索的内容并不接近:

我在网上找到的其他凯莱图要么极其复杂,因此我不知道如何修改它们,要么它们不是我想要的。任何关于添加弯曲箭头、移动顶点上的箭头以及像图中那样设置节点样式的帮助都是值得欢迎的。

答案1

图片的布局pos是手动调整的,以便它们在视觉上看起来位于路径的中心。

代码

\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\tikzset{
  pics/arrow/.style={/tikz/sloped, /tikz/allow upside down,
    code=\pgfarrowdraw{#1}}, pics/arrow/.default=>}
\begin{document}
\begin{tikzpicture}[
  >={Straight Barb[angle=45:3pt 3]},
  label 0/.style={anchor={#1}, outer sep=+.3em},
  label 1/.style={anchor={180+#1}}]
\foreach[count=\INNER from 0] \RADIUS/\LIST in {1/{4,6,5}, 2/{1,2,3}}
  \foreach[count=\CNT from 0] \ELEM in \LIST
    \path (90-\CNT*120:\RADIUS) coordinate (\ELEM)
      node[label \INNER=90-\CNT*120, circle, inner sep=+.15em] {\ELEM};

\draw[pos=.53] (1) -- pic{arrow} (2) -- pic{arrow} (3) -- pic{arrow} cycle
               (4) -- pic{arrow} (5) -- pic{arrow} (6) -- pic{arrow} cycle;
\foreach \A/\B in {1/4, 2/6, 3/5}
  \draw[pos=.6, bend left=30] (\A) to pic{arrow} (\B) to pic{arrow} cycle;
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

答案2

可以使用 来做到这一点tikz-cd,但需要手动调整间距。

在此处输入图片描述

\documentclass{article}

\usepackage{tikz-cd}
\usetikzlibrary{decorations.markings, arrows.meta}

\tikzset{
    myarrow/.style={decoration={markings, mark=at position 0.5 with {\arrow{Straight Barb}}}, postaction=decorate, -, thick}
}
\newcommand{\arrowboth}[1][]{\arrow[#1, bend left=15, myarrow]\arrow[bend left=15, myarrow, from=#1]}

\begin{document}

\begin{tikzcd}[row sep=1cm, arrows=myarrow, column sep=9mm, cells={nodes={draw, circle, inner sep=2pt}}]
&[4mm]&[-4mm]1\arrow[dddrr]\arrowboth[d]&[-4mm]&[4mm]\\[4mm]
&&4\arrow[dl]\\
&5\arrow[rr]&&6\arrow[ul]\\[-4mm]
3\arrow[uuurr]\arrowboth[ur]&&&&2\arrow[llll]\arrowboth[ul]
\end{tikzcd}

\end{document}

相关内容