.. include:: warning.rst .. post:: Dec 6, 2012 :tags: sphinx :category: "IT technology" :author: usaturn :location: Japan :language: ja 第6日目 Sphinxドキュメントを編集する その3 ============================================ 今日のご紹介するのは **表 (テーブル)** の書き方です。 ディレクティブについて ----------------------- * 今日からディレクティブという命令文のような物を使います。前に **..\ (ピリオド×2 半角スペース)** 、 後に **:: (セミコロン×2)** を付けます。 例えば *csv-table* ディレクティブを使う際は ``.. csv-table::`` のように記述します。 表について ------------ * ちょっと残念ですがSphinxは表があまり得意ではありません それでも表は多用しますので、便利かな?と思われる方法についてご紹介します。 CSVテーブル ^^^^^^^^^^^^ * CSV(カンマ区切り)形式を利用して表を作る事ができます。 * **csv-table** ディレクティブを使用します。 記述例:: .. csv-table:: :header-rows: 1 :widths: 2, 6 種別, タイトル サプリメント, グランド×クロス The Detonation サプリメント, ストレイライト 基本ルールブック, トーキョーN◎VA The Detonation クロニクル サプリメント, マーダーインク サプリメント, ナイトウォッチ サプリメント, ワールドオーダー サプリメント, アウターエッジ リプレイ, ビューティフルデイ リプレイ, ヴァニティ・エンジェル リプレイ, カウンターグロウ このように表示されます。 .. csv-table:: :header-rows: 1 :widths: 2, 6 種別, タイトル サプリメント, グランド×クロス The Detonation サプリメント, ストレイライト 基本ルールブック, トーキョーN◎VA The Detonation クロニクル サプリメント, マーダーインク サプリメント, ナイトウォッチ サプリメント, ワールドオーダー サプリメント, アウターエッジ リプレイ, ビューティフルデイ リプレイ, ヴァニティ・エンジェル リプレイ, カウンターグロウ * ``:header-rows:`` オプションで表のヘッダを何行目にするかを指定できます。 * ``:widths:`` オプションでカラムの長さを調整できます。 * ``:file:`` オプションでファイルから読み込ませる事もできます。表の記述量が多い場合はCSVファイルを作成し読み込ませる事をお勧めします。 記述例:: .. csv-table:: :file: subdir/piyo.csv リストテーブル ^^^^^^^^^^^^^^^ * 表にした際、横に並ぶカラムを縦に伸ばしていく記述方法です。1カラムが長くなってしまう時に非常に便利です。 * ``list-table`` ディレクティブを使用します。 記述例:: .. list-table:: :header-rows: 1 :widths: 5,5 * - 都市名 - 読み方 * - オーサカM○●N - オーサカムーン * - トーキョーN◎VA - トーキョーノヴァ * - ホンコンHEAVEN - ホンコンヘブン * - キャンベラAXYZ - キャンベラアクシズ * - ミトラスE△EN - ミトラスエデン * - ゴーストEYEランド - ゴーストアイランド * - サーガSATANN - サーガサターン このように表示されます。 .. list-table:: :header-rows: 1 :widths: 5,5 * - 都市名 - 読み方 * - オーサカM○●N - オーサカムーン * - トーキョーN◎VA - トーキョーノヴァ * - ホンコンHEAVEN - ホンコンヘブン * - キャンベラAXYZ - キャンベラアクシズ * - ミトラスE△EN - ミトラスエデン * - ゴーストEYEランド - ゴーストアイランド * - サーガSATANN - サーガサターン * オプションは ``header-rows`` と ``widths`` がリストテーブルと同様に使えます。 セルの中で改行する ^^^^^^^^^^^^^^^^^^^^ * **| (パイプ)** を使います。 記述例:: .. list-table:: :header-rows: 1 :widths: 5,5 * - マイナスナンバー - データ * - -1 - | ヒルコ | ミューテーション * - -7 - | アラシ | ブレイクスルー * - -9 - | カゲムシャ | チェンジ * - -18 - | アヤカシ | ディスアペア このように表示されます。 .. list-table:: :header-rows: 1 :widths: 5,5 * - マイナスナンバー - データ * - -1 - | ヒルコ | ミューテーション * - -7 - | アラシ | ブレイクスルー * - -9 - | カゲムシャ | チェンジ * - -18 - | アヤカシ | ディスアペア * 他のテーブルディレクトリでも同様の事ができます。 セルの中にリストを入れる ^^^^^^^^^^^^^^^^^^^^^^^^^^ * セルの中にリストを入れる事もできます。 記述例:: .. list-table:: :header-rows: 1 :widths: 5,5 * - 傾向 - 基本スタイル * - 攻撃系 - * バサラ * カブト * カタナ * カゲ * カブトワリ * - 支援系 - * ミストレス * マヤカシ * マネキン * タタラ * - 非物理攻撃系 - * カリスマ * クグツ * ニューロ このように表示されます。 .. list-table:: :header-rows: 1 :widths: 5,5 * - 傾向 - 基本スタイル * - 攻撃系 - * バサラ * カブト * カタナ * カゲ * カブトワリ * - 支援系 - * ミストレス * マヤカシ * マネキン * タタラ * - 非物理攻撃系 - * カリスマ * クグツ * ニューロ * 他のテーブルディレクトリでも同様の事ができます。 セルの結合について ^^^^^^^^^^^^^^^^^^^ * 可能ですが **グリッドテーブル** という面倒な記述をする必要があるのでお勧めしません。 記述例 :: +--------------+-----------+------------------+ |OS | Client | +==============+===========+==================+ |Name |Plan9 | Yes | +--------------+-----------+ + |Name |Cho-KANJI | | +--------------+-----------+------------------+ このように表示されます。 +--------------+-----------+------------------+ |OS | Client | +==============+===========+==================+ |Name |Plan9 | Yes | +--------------+-----------+ + |Name |Cho-KANJI | | +--------------+-----------+------------------+ 明日も引き続き、よく使う記述をご紹介していきます。 ※ このアドベントカレンダーについては :ref:`at_the_beginning` を参照して下さい。