Рисунок решетки подгрупп G в Tikz

Рисунок решетки подгрупп G в Tikz

Так как я новичок в tikz, я попытался нарисовать решетку подгрупп в G, но у меня возникли трудности с ее выполнением. Что я пробовал

\begin{figure}
\begin{tikzpicture}[node distance=2cm]
\title{Untergruppenverband der $A_4$}
\node(G)                            {$G$};
\node(81)       [below left of=G]  {$\langle\sigma^2,\tau\rangle$};
\node(82)       [below of=G]        {$\langle\sigma\rangle$};
\node(83)       [below right of=G]   {$\langle\sigma^2,\tau\sigma\rangle$};
\node(41)       [below left of=81] {$\langle\tau\sigma^2,\sigma^4\rangle$};
\node(42)       [below of=81]       {$\langle\tau,\sigma^4\rangle$};
\node(43)       [below of=82] {$\langle\sigma^2\rangle$};
\node(44)       [below of=83]       {$\langle\tau\sigma\rangle$};
\node(45)       [below right of=83]      {$\langle\tau\sigma^3$};
\node(21)       [below right of=41]     {$\langle\tau\sigma^6\rangle$}
\node(22)       [below of=41]       {$\langle\tau\sigma^2\rangle$}      
\node(23)       [below of=42]  {$\langle\tau\sigma^4\rangle$}
\node(24)       [below right of=42]   {$\tau$}
\node(25)       [below of=43]  {$\sigma^4$}
\node(1)        [below of=25]   {$1$}

\draw(G)       -- (81);
\draw(G)       -- (82);
\draw(G)       -- (83);
\draw(81)       -- (41);
\draw(81)       -- (42);
\draw(81)      -- (43);
\draw(82)      --  (43);
\draw(83)      --  (43);
\draw(83)      --  (44);
\draw(83)      --  (45);
\draw(41)      --  (21);
\draw(41)      --  (22);
\draw(41)       -- (25);
\draw(42)       -- (23);
\draw(42)       -- (24);
\draw(42)      -- (25);
\draw(21)      -- (1);
\draw(22)      --  (1);
\draw(23)      --  (1);
\draw(24)      --  (1);
\draw(24)      --  (1);
\end{tikzpicture}
\caption{Lattice of subgroups of G}
\end{figure}

Где узлы 81-83 соответствуют узлам слева направо ниже G, аналогичным образом 41 соответствует первому ниже 81 слева. Желаемый результат введите описание изображения здесь

решение1

Вы довольно близки. Используйте positioningбиблиотеку. Тогда правильный синтаксис — below=of G, а не below of=G. Расстояние между узлами измеряется по диагоналям, что не позволяет строкам выстраиваться в ряд, поэтому размещайте узлы только с помощью left, rightи below. Это требует некоторого переупорядочивания.

Наконец, вы можете использовать одну команду рисования, например, чтобы, если вы захотите изменить стиль всех линий, вам пришлось сделать это только один раз \draw[thick].

введите описание изображения здесь

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}[node distance=1cm]
\node(G)                {$G$};
\node(82)[below=of G]   {$\langle\sigma\rangle$};
\node(81)[left=of 82]   {$\langle\sigma^2,\tau\rangle$};
\node(83)[right=of 82]  {$\langle\sigma^2,\tau\sigma\rangle$};
\node(42)[below=of 81]  {$\langle\tau,\sigma^4\rangle$};
\node(41)[left=of 42]   {$\langle\tau\sigma^2,\sigma^4\rangle$};
\node(43)[below=of 82]  {$\langle\sigma^2\rangle$};
\node(44)[below=of 83]  {$\langle\tau\sigma\rangle$};
\node(45)[right=of 44]  {$\langle\tau\sigma^3\rangle$};
\node(25)[below=of 43]  {$\langle\sigma^4\rangle$};
\node(24)[left=of 25]   {$\langle\tau\rangle$};
\node(23)[left=of 24]   {$\langle\tau\sigma^4\rangle$};
\node(22)[left=of 23]   {$\langle\tau\sigma^2\rangle$}; 
\node(21)[left=of 22]   {$\langle\tau\sigma^6\rangle$};
\node(1)[below=of 25]   {$\{1\}$};

\draw(G)--(81)
    (G)--(82)
    (G)--(83)
    (81)--(41)
    (81)--(42)
    (81)--(43)
    (82)--(43)
    (83)--(43)
    (83)--(44)
    (83)--(45)
    (41)--(21)
    (41)--(22)
    (41)--(25)
    (42)--(23)
    (42)--(24)
    (42)--(25)
    (43)--(25)
    (21)--(1)
    (22)--(1)
    (23)--(1)
    (24)--(1)
    (24)--(1)
    (25)--(1);
\end{tikzpicture}

\end{document}

Связанный контент