편집하다

편집하다

저는 라텍스로 그리는 것이 처음입니다. 이 모양(안에 텍스트가 있는)을 어떻게 그리나요? 여기에 이미지 설명을 입력하세요

원에는 원이 있고, 각 원에는 다음 원으로 연결되는 화살표(곡선 선호)가 있습니다. 그리고 각각의 작은 원 안에는 $h^*$가 있습니다. 그리고 '앞' 원 근처에는 $H$가 필요하고, 두 번째 원 근처에는 $g_1 H g_1^{-1}$가 필요합니다.
다섯 번째 원( $g_4 H g_4^{-1}$) 이후에는 3개의 점에 대한 곡선 화살표가 필요하고 첫 번째 원에 대한 또 다른 곡선 화살표가 필요합니다. A4용지 3분의 1 크기로 그려지면 정말 좋을 것 같아요. 감사합니다!

편집하다

사람들이 제 테스트를 요청해왔기 때문에 다음과 같습니다.

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture} 
\draw[fill=none](0,0) circle (3.0);
\draw[fill=none](1,2) circle (0.5);
\draw[fill=none](1,-2) circle (0.5);
\draw[fill=none](2,0) circle (0.5);
\draw[fill=none](-1,2) circle (0.5);
\draw[fill=none](-1,-2) circle (0.5);
\end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요

이제 저는 곡선 화살표와 점을 그리는 방법과 $h$ 및 $g_i H g_i^{-1}$를 수동으로 작성하는 방법을 모릅니다.

편집(2)

사람들이 디자인에 도움을 주었지만 새 문서에 코드를 업로드했을 때 다음과 같은 내용이 표시되었습니다. 여기에 이미지 설명을 입력하세요

그리고 2가지 질문이 있습니다. 첫 번째는 왜 코드의 적절한 그림이 표시되지 않는 걸까요? 두 번째는 내 "xcolor" 패키지에 LaTeX 오류가 있는 이유입니다.

답변1

다음은 기본적인 시도입니다. 값은 bend left=30실험 looseness=0.75을 통해 수행되었습니다(반경 원을 오버레이 2하고 몇 가지 값을 시도했습니다). [scale=...]에 선택적 인수로 tikzpicture, 즉 바로 뒤에 추가하여 간단히 크기를 조정할 수 있습니다 \begin{tikzpicture}. 설명하신 대로 마지막 화살표에 있는 세 개의 점을 원하지 않으시기를 바랍니다. 저는 그냥 점선을 사용했어요.

\documentclass[convert]{standalone}

\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
    \draw (0,0) circle[radius=4];
    \node[draw, circle, label=above:\(H\)] (0) at (90:2) {\(h^*\)};
    \foreach \i [remember=\i as \j (initally 0)] in {1,...,4} {
        \node[draw, circle, label=90-72*\i:\(g_\i H g_\i^{-1}\)] (\i) at (90-72*\i:2) {\(h^*\)};
        \draw[->] (\j) edge [bend left=30, looseness=0.75] (\i);
    }
    \draw[->] (4) edge [bend left=30, looseness=0.75] (0);

    % added three dots
    \draw[white, thick] (116:2) arc[start angle=116, end angle=136, radius=2];
    \foreach \i in {0,1,2}
        \filldraw (121+5*\i:2) circle[radius=0.4pt];
\end{tikzpicture}

\end{document}

여기에 이미지 설명을 입력하세요


업데이트:꽤 해괴한 해결책이긴 하지만, 마지막 화살표의 일부를 흰색으로 덮어씌우고 상상의 원에 세 개의 점을 배치했습니다. 가운데 점은 두 노드 사이의 중간에 있으며 각 점은 5도 간격으로 떨어져 있습니다.

답변2

변형Gargantuar의 좋은 답변\vdots점선 대신 다른 노드 사용 :

\documentclass[border=10pt]{standalone}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
    \draw (0,0) circle[radius=4];
    \node[draw, circle, label={above:\(H\)}] (n0) at (90:2) {\(h^*\)};
    \foreach \i [count=\j from 0] in {1,...,4} {
        \node[draw, circle, label={90-60*\i:\(g_\i H g_\i^{-1}\)}] (n\i) 
            at (90-60*\i:2) {\(h^*\)};
        \draw[->] (n\j) edge [bend left=30, looseness=0.66] (n\i);
    }
    \node[circle, rotate=-30, text depth=0.5em] (n5) at (150:2) {\(\vdots\)}; 
    \draw[->] (n4) edge [bend left=30, looseness=0.66] (n5);
    \draw[->] (n5) edge [bend left=30, looseness=0.66] (n0);
\end{tikzpicture}

\end{document}

여기에 이미지 설명을 입력하세요

답변3

다음은 를 사용하는 옵션입니다 chains.

여기에 이미지 설명을 입력하세요

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary {chains}

\begin{document}

\begin{tikzpicture}[start chain=placed {at=(150-\tikzchaincount*60:2)}, every join/.style={->, thick, bend left=15}, chain node/.style={on chain, circle, thick, minimum size=8mm, join}]
    \draw[thick] circle[radius=4];
    \node[chain node, draw, label={90:$H$}] {$h^*$};
    \foreach \i in {1,...,4}
        \node[chain node, draw, label={90-60*\i:$g_{\i}Hg_{\i}^{-1}$}] {$h^*$};
    \node[chain node]{}; \node[chain node]{};
    \foreach \j in {-1,0,1} \fill (150+5*\j:1.93)circle[radius=.8pt];
\end{tikzpicture}

\end{document}

답변4

의 대안메타포스트OP 스케치와 같이 내부에 라벨이 있습니다. nice_label레이블을 자동으로 배치하는 매크로를 정의했습니다 .

\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
beginfig(1);
path outer_circle, inner_circle;
outer_circle = reverse fullcircle   % so it runs clockwise
               rotated 90           % ... from 12 o'clock
               scaled 100mm;        % .. and takes up 1/3 of an A4 page.
inner_circle = outer_circle scaled 3/4;

numeric n; n = 6;
path c[]; 
for t=0 upto n: 
  c[t] = fullcircle scaled 36 shifted point 8/n*t of inner_circle;
endfor

vardef nice_label(expr s, z, p) = 
  save r, t, a, b; 
  picture t; t = thelabel(s, z);
  interim bboxmargin := 4;
  path a; a = z--center p cutafter bbox t;
  path b; b = z--center p cutafter p;
  numeric r; r = 1 - arclength a / arclength b;
  draw t shifted point r of b
enddef;
                 
for t=0 upto n-1:
  if t < n - 1: 
    draw c[t];
    label("$h^{\rlap{*}}$", center c[t] + 2 up);
    nice_label(
      if t=0: 
        "$H$" 
      else: 
        "$g_{" & decimal t & "}Hg_{"&decimal t&"}^{-1}$" 
      fi, origin, c[t]);
  else:
    for dt=-1/16, 0, 1/16:
      draw point 8/n*t + dt of inner_circle withpen pencircle scaled 1;
    endfor
  fi

  drawarrow subpath 8/n*(t, t+1) of inner_circle
    cutbefore c[t] cutafter c[t+1];
endfor

draw outer_circle;

endfig;
\end{mplibcode}
\end{document}

LaTeX 엔진을 lualatex. 다음과 같은 PDF를 받아야 합니다.

여기에 이미지 설명을 입력하세요

n=6;상단 근처에서 변경하면 n=7이 버전을 얻게 됩니다...

여기에 이미지 설명을 입력하세요

관련 정보