モノ好きである筆者はTikZ(図を書くときに使うのライブラリ)初心者であるにも関わらずだけで積分路を作ってしまった。しかし他にこのようなことをしている人があまりおらず、そもそもTikZの日本語のリファレンスも充実していないのでとりあえず使ったコードを置いておく。
注意
ある程度TikZの日本語サイトを読んだ人対象です、すみません...
コード
使用したライブラリは以下の通り
\usetikzlibrary{arrows.meta,decorations,decorations.markings}
こんな感じの積分路を作る。
このようなコードで生成することができた。
\begin{figure} \centering \begin{tikzpicture}[%詳細設定(気にしない) arrow/.style={ postaction={ decorate, decoration={ markings, mark=at position #1 with {\arrow{stealth}} } } },label2/.style 2 args={ pos/.style={ postaction={ decorate, decoration={ markings, mark=at position ##1 with \node #2; } } } },label/.style={ label2={1}{#1} },pos/.default=.5 ,arrow/.default=.5 ]%設定終了 %複素数平面の描画 \draw[-{Stealth}] (-4.0,0) -- (4,0) node[right]{$\Re z$}; \draw[-{Stealth}] (0,-0.5) -- (0,4) node[above]{$\Im z$}; %原点の描画 \draw (0,0) node[below right]{0}; %積分経路の描画%label->posの順で設定しないと反映されない仕様 \draw[very thick,domain=-3:-0.6, label={[above]{$L_1$}}, pos ,arrow] plot ({\x},0);%posやarrowをの具体的な値を省略している \draw[very thick,domain= 0.6: 3, label={[above]{$L_2$}}, pos ,arrow=.5] plot ({\x},0);%posを省略しているがarrowは省略していない \draw[very thick,domain=0:180,variable=\t,label={[above]{$\Gamma_R$}}, pos={.25},arrow=.75] plot ({3*cos(\t)},{3*sin(\t)});%pos,arrowの両方ともに省略していない \draw[very thick,domain=180:0,variable=\t,label={[above]{$\Gamma_\varepsilon$}},pos={.25},arrow=.5] plot ({0.6*cos(\t)},{0.6*sin(\t)});%両方ともに省略していない %特異点の描画 \draw[only marks,mark=x,scale=2.5] plot (0,0); %座標の描画 \draw (-3, 0) node[below] {$z=-R$}; \draw (-.6,0) node[below left] {$z=-\varepsilon$}; \draw (0, .6) node[above right]{$z=\varepsilon i$}; \draw (.6, 0) node[below right]{$z=\varepsilon$}; \draw (3, 0) node[below] {$z=R$}; \draw (0, 3) node[above right]{$z=Ri$}; \end{tikzpicture} \end{figure}
ここで積分路のlabelというのは積分路の名前である。そしてposというのは簡単に言えば、積分路の名前を表示する場所が始点と終点をそれぞれ0,1としてどのくらいの位置にあるかを指定してあげるものである。例えば始点と終点の中間に付けたければ0.5という感じである。これはarrow(積分路上の向きを表す矢印)も同じである(お節介だがposやarrowは具体的な値を省略でき、その場合は0.5が自動的に入る)。
余談だが大量の\drawを用いているのはTikZ初心者である私の考える見やすさのためなのでもっといい書き方があるかもしれない。しかしこだわりは本末転倒の原因なので今日はこのくらいで終わる。