![見出し画像](https://assets.st-note.com/production/uploads/images/100681940/rectangle_large_type_2_9f383517d919472518f1f177eb3c9808.png?width=1200)
離散グラフをLaTeXで出力してみる〜4. センタリング・並列〜
こんにちは。
その3までで、おおよそのグラフは描画できると思います。
今回は、そのグラフを見栄え良く並べる方法について紹介します。
手順7 グラフをセンタリングする
ここでは、完全グラフ$${K_4}$$を例にあげて紹介したいと思います。
\begin{tikzpicture}[scale=0.4]
\coordinate[label=below left:$v_1$](v1)at(0,0);
\coordinate[label=below right:$v_2$](v2)at(10,0);
\coordinate[label=above right:$v_3$](v3)at(10,10);
\coordinate[label=above left:$v_4$](v4)at(0,10);
\draw[thick](v1)--(v2)--(v3)--(v4)--cycle;
\draw[thick](v2)--(v4);
\draw[thick](v1)--(v3);
\foreach\P in{v1,v2,v3,v4}\fill[black](\P)circle(0.25);
\end{tikzpicture}
これをそのままコンパイルすると、紙面の左端に寄ってしまうのであまり綺麗ではないですよねー。
![](https://assets.st-note.com/img/1679232480991-x7mNw7Sbem.png?width=1200)
そこで、以下のようにソースを書き加えます。
\begin{figure}[htbp]
\centering
\begin{tikzpicture}[scale=0.4]
\coordinate[label=below left:$v_1$](v1)at(0,0);
\coordinate[label=below right:$v_2$](v2)at(10,0);
\coordinate[label=above right:$v_3$](v3)at(10,10);
\coordinate[label=above left:$v_4$](v4)at(0,10);
\draw[thick](v1)--(v2)--(v3)--(v4)--cycle;
\draw[thick](v2)--(v4);
\draw[thick](v1)--(v3);
\foreach\P in{v1,v2,v3,v4}\fill[black](\P)circle(0.25);
\end{tikzpicture}
\end{figure}
最初の[htbp]は、この図形を挿入する場所を指定する命令です。
hはHereの頭文字で、figureで囲まれた図形をその場所に挿入することを優先してくれます。
次のtはTopの頭文字になります。文章段落や他の図形との兼ね合いでその場所に挿入できない時は、そのページの一番上に挿入しろ、という命令になります。
それも不可能な時はページの一番下(bはBottomの頭文字)に配置させ、最後の手段として、独立したページ(pはPageの頭文字)に配置させるように、という指示となります。
また、2行目の \centering は、読んで字の如く、真ん中に配置しろという指示になります。
これでコンパイルすると以下のようになります。
![](https://assets.st-note.com/img/1679233575307-GRwUwVa0WI.png?width=1200)
手順8 グラフを並列に並べる
では、グラフを二つ並べて表記したい場合、どうしたら良いでしょうか。
まずは普通にソースを記述してみます。
\begin{figure}[htbp]
\centering
\begin{tikzpicture}[scale=2]
\coordinate(v1)at({cos(1*pi/4 r)},{sin(1*pi/4 r)});
\coordinate(v2)at({cos(3*pi/4 r)},{sin(3*pi/4 r)});
\coordinate(v3)at({cos(5*pi/4 r)},{sin(5*pi/4 r)});
\coordinate(v4)at({cos(7*pi/4 r)},{sin(7*pi/4 r)});
\foreach\P in{v1,v2,v3,v4}\fill[black](\P)circle(0.05);
\draw[thick](v1)--(v2)--(v3)--(v4)--cycle;
\draw[thick](v1)--(v3);
\draw[thick](v2)--(v4);
\end{tikzpicture}
\begin{tikzpicture}[scale=2]
\coordinate(v1)at({cos(3*pi/6 r)},{sin(3*pi/6 r)});
\coordinate(v2)at({cos(7*pi/6 r)},{sin(7*pi/6 r)});
\coordinate(v3)at({cos(11*pi/6 r)},{sin(11*pi/6 r)});
\coordinate(v4)at(0,0);
\foreach\P in{v1,v2,v3,v4}\fill[black](\P)circle(0.05);
\draw[thick](v1)--(v2)--(v3)--(v4)--cycle;
\draw[thick](v1)--(v3);
\draw[thick](v2)--(v4);
\end{tikzpicture}
\end{figure}
前半は辺の交差がある$${K_4}$$、後半は辺の交差のない$${K_4}$$について記述しています。
![](https://assets.st-note.com/img/1679233888317-iQ9D2PaSCn.png?width=1200)
そのままソースを打ち込むだけですと、縦に並んでしまうことがあります。
できれば横に並んでほしい…
ここで、以下のように書き加えます。
\begin{figure}[htbp]
\centering
\begin{tabular}{cc}
\begin{tikzpicture}[scale=2]
\coordinate(v1)at({cos(1*pi/4 r)},{sin(1*pi/4 r)});
\coordinate(v2)at({cos(3*pi/4 r)},{sin(3*pi/4 r)});
\coordinate(v3)at({cos(5*pi/4 r)},{sin(5*pi/4 r)});
\coordinate(v4)at({cos(7*pi/4 r)},{sin(7*pi/4 r)});
\foreach\P in{v1,v2,v3,v4}\fill[black](\P)circle(0.05);
\draw[thick](v1)--(v2)--(v3)--(v4)--cycle;
\draw[thick](v1)--(v3);
\draw[thick](v2)--(v4);
\end{tikzpicture}
\begin{tikzpicture}[scale=2]
\coordinate(v1)at({cos(3*pi/6 r)},{sin(3*pi/6 r)});
\coordinate(v2)at({cos(7*pi/6 r)},{sin(7*pi/6 r)});
\coordinate(v3)at({cos(11*pi/6 r)},{sin(11*pi/6 r)});
\coordinate(v4)at(0,0);
\foreach\P in{v1,v2,v3,v4}\fill[black](\P)circle(0.05);
\draw[thick](v1)--(v2)--(v3)--(v4)--cycle;
\draw[thick](v1)--(v3);
\draw[thick](v2)--(v4);
\end{tikzpicture}
\end{tabular}
\end{figure}
かなり無理やりな気もしますが、これで横に並列になって出てきてくれます。汗
![](https://assets.st-note.com/img/1679234349245-cEEv4vMB8N.png?width=1200)
なお、3つ以上のグラフを2行に分けて出力したい場合は、1行目に入れたいグラフを \begin{tabular}{cc} と\end{tabular} で囲み、2行目に入れたいグラフをあらためて \begin{tabular}{cc} と\end{tabular} で囲み直すと、うまく行きます。
![](https://assets.st-note.com/img/1679234769854-VxIe2n7uWN.png?width=1200)
例えば上の多面体グラフは、正八面体グラフのソースを記述した後に \end{tabular} を入れ、その後すぐに \begin{tabular}{cc} と入れています。
(このソースは相当長くなるので割愛します…)
その4は以上です!
この記事が気に入ったらサポートをしてみませんか?