TikZで有向グラフが書きたいです

TikZで有向グラフが書きたいです

- mathema の投稿
返信数: 9

\documentclass[divpdfmx]{jsarticle}

\newcommand{\bm}[1]{{\mbox{\boldmath $#1$}}}

\usepackage[truedimen,margin=10mm]{geometry}

\usepackage{emathMw}

\usepackage{amsmath}

\usepackage{amssymb}

\usepackage{amsfonts}

\usepackage{pdfpages}

\usepackage{mathrsfs}

\usepackage{ascmac}

\usepackage{color}

\usepackage[all]{xy}

\usepackage{cancel}

\usepackage{framed}

\usepackage{latexsym}

\usepackage{tikz}

\usetikzlibrary{graphs}

\def\qed{\hfill $\Box$}

\pagestyle{empty}

\newcommand{\ctext}[1]{\raise0.2ex\hbox{\textcircled{\scriptsize{#1}}}}

\renewcommand{\baselinestretch}{0.65}

\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}[every node/.style={circle,fill=cyan,white}]

\node (s) {s};

\node[above right=of s] (a) {a};

\node[below right=of s] (b) {b};

\node[right=1.5cm of a] (c) {c};

\node[right=1.5cm of b] (d) {d};

\node[below right=of c] (t) {t};


\foreach \u / \v in {s/a,s/b,a/b,a/c,b/c,b/d,c/d,c/t,d/t}

\draw[->] (\u) -- (\v);

\end{tikzpicture}

\end{document}

と入力したのですが出力が真っ白になってしまいます.

原因は書き方云々ではなくtexの設定が出来ていないのでしょうか.

よろしくお願いします.

mathema への返信

Re: TikZで有向グラフが書きたいです

- 和田 勇 の投稿
dvipdfmx で pdf を作る際の unknown token も気にはなりますが、...
> \begin{tikzpicture}[every node/.style={circle,fill=cyan,white}]
文字色や背景色を調整してみてください。
和田 勇 への返信

Re: TikZで有向グラフが書きたいです

- mathema の投稿
返信ありがとうございます.
「dvipdfmx で pdf を作る際の unknown token も気にはなりますが、...」

>今までよくわからずdvipdfmxを書いてきたのでそのままそれを引き継ぎました. 何か良い書き方は有るでしょうか.

> \begin{tikzpicture}[every node/.style={circle,fill=cyan,white}]文字色や背景色を調整してみてください。

>赤字で書いていただいたところはそのままにしてcyanの所をblackにして\colorbox{blue}で囲って背景色?を変えてみたのですが青い枠の中にa,s,bの白い文字が浮き出るだけでした.

よろしくお願いします.
mathema への返信

Re: TikZで有向グラフが書きたいです

- 和田 勇 の投稿

>「dvipdfmx で pdf を作る際の unknown token も気にはなりますが、...」

  • typo divpdfmx vs dvipdfmx

図が出ない(白紙)(文字色や背景色を調整)

  • 雪原で遊ぶ白鳥を探すことは難しいので、青くしてみました。

差分

@@ -1,4 +1,4 @@
-\documentclass[divpdfmx]{jsarticle}
+\documentclass[dvipdfmx]{jsarticle}
 \newcommand{\bm}[1]{{\mbox{\boldmath $#1$}}}
 \usepackage[truedimen,margin=10mm]{geometry}
 \usepackage{emathMw}
@@ -21,7 +21,8 @@
 \renewcommand{\baselinestretch}{0.65}
 \usetikzlibrary{positioning}
 \begin{document}
-\begin{tikzpicture}[every node/.style={circle,fill=cyan,white}]
+\begin{tikzpicture}%%[every node/.style={circle,fill=cyan,white}]
+  [every node/.style={circle,fill=blue!20}]
 \node (s) {s};
 \node[above right=of s] (a) {a};
 \node[below right=of s] (b) {b};
和田 勇 への返信

Re: TikZで有向グラフが書きたいです

- mathema の投稿
ありがとうございます.
返信遅れてすみません.

\documentclass[dvipdfmx]{jsarticle}

\newcommand{\bm}[1]{{\mbox{\boldmath $#1$}}}

\usepackage[truedimen,margin=10mm]{geometry}

\usepackage{emathMw}

\usetikzlibrary{positioning}

\renewcommand{\baselinestretch}{0.65}

\begin{document}

\begin{tikzpicture}[every node/.style={circle,fill=cyan,white}]

\begin{tikzpicture}%%[every node/.style={circle,fill=cyan,white}]

[every node/.style={circle,fill=blue!20}]

\node (s) {s};

\node[above right=of s] (a) {a};

\node[below right=of s] (b) {b};

\node[right=1.5cm of a] (c) {c};

\node[right=1.5cm of b] (d) {d};

\node[below right=of c] (t) {t};


\foreach \u / \v in {s/a,s/b,a/b,a/c,b/c,b/d,c/d,c/t,d/t}

\draw[->] (\u) -- (\v);

\end{tikzpicture}}

\end{document}

の入力をしたのですが

! Undefined control sequence.

<recently read> \usetikzlibrary

 

l.5 \usetikzlibrary

{positioning}

?

のエラーが出ました.

何かダウンロード出来ていないものがあるのでしょうか.

w32texにemathしかダウンロードできていません.

よろしくお願いします.


mathema への返信

Re: TikZで有向グラフが書きたいです

- mathema の投稿
間違えました入力したのはこれです

\documentclass[dvipdfmx]{jsarticle}

\newcommand{\bm}[1]{{\mbox{\boldmath $#1$}}}

\usepackage[truedimen,margin=10mm]{geometry}

\usepackage{emathMw}

\usetikzlibrary{positioning}

\renewcommand{\baselinestretch}{0.65}

\begin{document}

\begin{tikzpicture}[every node/.style={circle,fill=blue!20}]

\node (s) {s};

\node[above right=of s] (a) {a};

\node[below right=of s] (b) {b};

\node[right=1.5cm of a] (c) {c};

\node[right=1.5cm of b] (d) {d};

\node[below right=of c] (t) {t};


\foreach \u / \v in {s/a,s/b,a/b,a/c,b/c,b/d,c/d,c/t,d/t}

\draw[->] (\u) -- (\v);

\end{tikzpicture}}

\end{document}

よろしくお願いします.

mathema への返信

Re: TikZで有向グラフが書きたいです

- 和田 勇 の投稿
  • 宣言不足です
  • もう一つミスコーディングあります
  • 差分
        @@ -2,6 +2,7 @@
         \newcommand{\bm}[1]{{\mbox{\boldmath $#1$}}}
         \usepackage[truedimen,margin=10mm]{geometry}
         \usepackage{emathMw}
        +\usepackage{tikz}
         \usetikzlibrary{positioning}
         \renewcommand{\baselinestretch}{0.65}
         \begin{document}
        @@ -15,5 +16,5 @@
         
         \foreach \u / \v in {s/a,s/b,a/b,a/c,b/c,b/d,c/d,c/t,d/t}
         \draw[->] (\u) -- (\v);
        -\end{tikzpicture}}
        +\end{tikzpicture}
         \end{document}
  • サジェスション(余分かもしれませんが)

    • 質問内容を最後に書かれていますが、添付のソースとの間に空行を入れてくださるか、冒頭に質問事項を記述されていただけると助かります。
    • 今回は不要でしたが、実行時にログファイルも一緒に添付していただけると助かります。ただしログファイルは巨大になりがちだし、ソースも質問に貼り付けると質問内容がわかりにくくなりますので zip などでまとめるなどして添付ファイルでアップロードしてくださると助かります。

    • エラーが出るようでしたら、不要なパッケージや定義を削除してデバッグしてください

和田 勇 への返信

Re: TikZで有向グラフが書きたいです

- mathema の投稿
ありがとうございます.
無事望み通りのものが出力されました.

以後サジェスチョンを参考にさせていただきます.

別質問になってしまうのですが以下の丸い矢印を上とかし下に膨らませることはできますか.

よろしければお願いします.

\documentclass[dvipdfmx]{jsarticle}

\newcommand{\bm}[1]{{\mbox{\boldmath $#1$}}}

\usepackage[truedimen,margin=10mm]{geometry}

\usepackage{adigraph}

\usepackage{emathMw}

\usepackage{tikz}

\usepackage{xcolor}

\usetikzlibrary{positioning}

\renewcommand{\baselinestretch}{0.65}

\begin{document}

\NewAdigraph{graphB}{

s:0,0;

t:4,0;

}{

s,s;

t,t;

s,t;

}\graphB{}

\end{document}

mathema への返信

Re: TikZで有向グラフが書きたいです

- 和田 勇 の投稿
  • できれば「パッケージ adigraph の矢印について」などとして別の質問にしてください

  • また、新しい機能を試される場合は、それを参照した情報なども合わせて記述してください

  • 新しい機能(=パッケージ)に関しての情報検索

    • 全てではないのですがコマンドラインから texdoc adigraph のようにすると利用方法やサンプルコーディングなどを参考にできます
    • CTAN のサイトにもこれらの情報は収録されているので 「CTAN adigraph」とか「texlive adigraph」などで検索し、 CTAN のページを辿れば見つけられると思います
  • 質問に対する回答

    • texdoc adigraph で表示される 「3.5 Adding edges」には以下のように syntax が記述されているので、ご希望の通りにとはいかないようです。
        We set its edges with the following syntax:  <first node, second node,[color,[edge width]][:weight[:label:[label position]]]>.
  • 試しに s,s; を s,s,black,4; などとしても矢印の線幅が太くなるだけでした

  • edge に関する再定義も考えてみましたが、奥が深くて簡単には対処できそうに感じています