2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

qtreeパッケージで論理学

Posted at

qtreeパッケージを使って木構造を書こう.

本文中では数理論理学の例をひいていますが,広く木構造が必要な人に向けて qtree はおすすめです.

さっそく具体例

論理式 $p \land (p \rightarrow q) \rightarrow q$ の構文木を,次のように書くことができる.

入力

\Tree 
[.$\rightarrow$ 
  [.$\land$ 
    $p$ 
    [.$\rightarrow$ $p$ $q$ 
    ]
  ] 
  $q$ 
] 

出力
image.png

さらに,論理式 $p \land (p \rightarrow q) \rightarrow q$ のタブロー法による証明は以下のように書ける.

入力

\Tree 
[.$\neg(p\land(p\rightarrow q)\rightarrow q)$ 
  [.$p\land(p\rightarrow q)$\\$\neg q$ 
    [.$p$\\$p\rightarrow q$ 
      [.$\neg p$ $\bot$ 
      ]
      [.$q$ $\bot$ 
      ]
    ]
  ] 
] 

出力
image.png

公式サイトの紹介

qtree パッケージはこちらのサイトから導入できる.

qtree.sty がパッケージ.
公式のマニュアルは qtreenotes.pdf

基本の使い方

プリアンブルに以下を入力しておく.

\usepackage{qtree}

これで qtree.sty が使える.

このパッケージを用いると, \Tree コマンドで木構造を書くことができる.とくに \includegraphics コマンドとか figure 環境とかを用いずとも使える.

親子のみの木は \Tree [.A B C D ] のように書く.ドットのすぐ後ろの記号が親になる.
このとき,以下の2点に注意.

  • \Tree コマンドと角カッコの間に半角スペースを空ける.
  • 最後の文字と閉じ角カッコの間には半角スペースを空ける.

これができていないと容赦なくエラーを吐かれる.

入力

\Tree [.A B C D ] 

出力
image.png

2語以上の言葉を node におくには注意が必要.半角スペースが構造に反映されるので,それを嫌う場合は{}で囲う必要がある.

入力

\Tree [.ramen noodle soup {various ingredients} ] 

出力
image.png

要素を折り返す場合は\\を挿入する. 前後に半角スペースは入れない.

入力

\Tree [.ramen noodle soup various\\ingredients ] 

出力
image.png

高さが3以上の木は,次のように入れ子構造で書く.

入力

\Tree [.A [.B E F ] [.C G H ] ] 

出力
image.png

木の高さに応じて,インデントを付けておくとわかりやすい.半角スペースを忘れずに.

入力

\Tree 
[.A 
  [.B E F 
  ] 
  [.C G H 
  ] 
] 

出力は前図と同様.

数式の挿入

qtree パッケージでつくる木には,数式を挿入することもできる.

ただし,「見やすいように」と半角スペースを入れるとそれが木構造の区切りと判定され,目的の木が出力できない. 最悪エラーを吐かれる.
それを防ぐために,スペースは最低限のみ入れる.

具体的には,

  • $A_1 A_2$ を出力したい場合:$A_1A_2$と入力する.$A_1 A_2$はエラー.
  • $A \land B$ を出力したい場合:$A\land B$と入力する.コマンドの直後にコマンドでない文字が来る場合は,半角スペースを入れてよい.
  • $A \lor \neg A$ を出力したい場合:$A\lor\neg A$と入力する.コマンドが連続する場合は半角スペースを入れてはいけない.

入力

\Tree 
[.$(p_1\land q_1)\lor(p_2\land q_2)$ 
  [.$p_1\land q_1$ $p_1$\\$q_1$ 
  ] 
  [.$p_2\land q_2$ $p_2$\\$q_2$ 
  ] 
] 

出力
image.png

ほかにもさまざまな機能があるが,さしあたってこれらが使えれば問題ない(と思う).

この記事が $\LaTeX$ ユーザーの一助になればと思います.

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?