Sphinx Advent Calendar 2012 (全部俺)

初心者がどのようにSphinxを使ってきたかという記録

第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 クロニクル
       サプリメント, マーダーインク
       サプリメント, ナイトウォッチ
       サプリメント, ワールドオーダー
       サプリメント, アウターエッジ
       リプレイ, ビューティフルデイ
       リプレイ, ヴァニティ・エンジェル
       リプレイ, カウンターグロウ

    このように表示されます。

    種別

    タイトル

    サプリメント

    グランド×クロス 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
         - サーガサターン

    このように表示されます。

    都市名

    読み方

    オーサカM○●N

    オーサカムーン

    トーキョーN◎VA

    トーキョーノヴァ

    ホンコンHEAVEN

    ホンコンヘブン

    キャンベラAXYZ

    キャンベラアクシズ

    ミトラスE△EN

    ミトラスエデン

    ゴーストEYEランド

    ゴーストアイランド

    サーガSATANN

    サーガサターン

  • オプションは header-rowswidths がリストテーブルと同様に使えます。

セルの中で改行する

  • | (パイプ) を使います。

    記述例:

    .. list-table::
      :header-rows: 1
      :widths: 5,5
    
      * - マイナスナンバー
        - データ
      * - -1
        - | ヒルコ
          | ミューテーション
      * - -7
        - | アラシ
          | ブレイクスルー
      * - -9
        - | カゲムシャ
          | チェンジ
      * - -18
        - | アヤカシ
          | ディスアペア

    このように表示されます。

    マイナスナンバー

    データ

    -1

    ヒルコ
    ミューテーション

    -7

    アラシ
    ブレイクスルー

    -9

    カゲムシャ
    チェンジ

    -18

    アヤカシ
    ディスアペア
  • 他のテーブルディレクトリでも同様の事ができます。

セルの中にリストを入れる

  • セルの中にリストを入れる事もできます。

    記述例:

    .. list-table::
      :header-rows: 1
      :widths: 5,5
    
      * - 傾向
        - 基本スタイル
      * - 攻撃系
        - * バサラ
          * カブト
          * カタナ
          * カゲ
          * カブトワリ
      * - 支援系
        - * ミストレス
          * マヤカシ
          * マネキン
          * タタラ
      * - 非物理攻撃系
        - * カリスマ
          * クグツ
          * ニューロ

    このように表示されます。

    傾向

    基本スタイル

    攻撃系

    • バサラ
    • カブト
    • カタナ
    • カゲ
    • カブトワリ

    支援系

    • ミストレス
    • マヤカシ
    • マネキン
    • タタラ

    非物理攻撃系

    • カリスマ
    • クグツ
    • ニューロ
  • 他のテーブルディレクトリでも同様の事ができます。

セルの結合について

  • 可能ですが グリッドテーブル という面倒な記述をする必要があるのでお勧めしません。

    記述例:

    +--------------+-----------+------------------+
    |OS                        | Client           |
    +==============+===========+==================+
    |Name          |Plan9      | Yes              |
    +--------------+-----------+                  +
    |Name          |Cho-KANJI  |                  |
    +--------------+-----------+------------------+

    このように表示されます。

    OS

    Client

    Name

    Plan9

    Yes

    Name

    Cho-KANJI

明日も引き続き、よく使う記述をご紹介していきます。

※ このアドベントカレンダーについては このアドベントカレンダーについて を参照して下さい。