編集

編集

私はラテックスで描画するのは初めてですが、この図形(内部にテキストを含む)をどのように描画すればよいでしょうか? ここに画像の説明を入力してください

円の中に円があり、各円には次の円への矢印 (曲線が望ましい) があります。そして、各小さな円の内側には $h^*$ があります。そして、私は「前の」円の近くに $H$ が必要で、2 番目の円の近くに $g_1 H g_1^{-1}$ が必要で、以下同様です。5 番目
の円 ($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 つあります。1 つ目は、コードの適切な描画が表示されないのはなぜでしょうか。2 つ目は、なぜ「xcolor」パッケージに LaTeX エラーが表示されるのでしょうか。

答え1

基本的な試みを以下に示します。値bend left=30と はlooseness=0.75実験によって決定されます (半径の円を重ねて2、いくつかの値を試しました)。[scale=...]を のオプション引数としてtikzpicture、つまり のすぐ後ろに追加することで、これを簡単にスケールできます\begin{tikzpicture}。最後の矢印の 3 つのドットは、説明どおりに使用しないでください。破線を使用しました。

\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}

ここに画像の説明を入力してください


アップデート:かなりハッキーな解決策ではありますが、私は単純に最後の矢印の一部を白で重ね描きし、想像上の円の上に 3 つの点を配置​​しました。中央の点は 2 つのノードの中間にあり、各点は 5 度離れています。

答え2

のバリエーションガルガンチュアの素晴らしい答え\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 エンジンを に設定すると、これを Overleaf でコンパイルできますlualatex。次のような PDF が得られるはずです。

ここに画像の説明を入力してください

n=6;上部付近を変更すると、n=7このバージョンになります...

ここに画像の説明を入力してください

関連情報