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

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

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

第5日目 Sphinxドキュメントを編集する その2

昨日は reStructuredText で記述されたサンプルをコピペし HTMLドキュメント を生成しましたね。 今日は、サンプルの中で使用した reStructuredText の記法をご紹介します。

インラインマークアップ(文字の修飾)

  • 斜体にするには次のように * (アスタリスク) で囲みます。

    • 文中に入れる場合は、前後に 半角スペース を入れて下さい。

    記述例:

    *index.rst*
    *UTF-8*
    *サクラエディタ*
    *メジャーなツール*

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

    index.rst
    UTF-8
    サクラエディタ
    メジャーなツール
  • 太字にするには ** (アスタリスク×2) で囲みます。

    記述例:

    **あふw**
    **Paper Plane xUI**
    **内骨格**

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

    あふw
    Paper Plane xUI
    内骨格
  • リテラルに(そのまま表示)するには `` (バッククォート×2) で囲みます。

    記述例:

    ``C:\cygwin\bin\vim-nox.exe``

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

    C:\cygwin\bin\vim-nox.exe

    • Windowsのパス等、エスケープ文字を含む場合に使うといいでしょう。

タイトルリファレンス

  • 書籍などの説明に使われる記法です。種別を : セミコロン で挟み、半角スペースを入れた後に名称を記述します。

    記述例:

    :ファイラ: あふw
    :エディタ: Vim
    :処理系: AutoHotKey
    :処理系: Python
    :シェル: nyaos

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

    ファイラ:あふw
    エディタ:Vim
    処理系:AutoHotKey
    処理系:Python
    シェル:nyaos

番号無しリスト(箇条書き)

  • 箇条書きにする為には * (アスタリスク) - (ハイフン) + (プラス) のいずれかを文頭に置きます。

    記述例:

    * TortoiseHg
    * TortoiseBzr
    
    - Cygwin
    - gow
    
    + xyzzy
    + Gvim

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

    • TortoiseHg
    • TortoiseBzr
    • Cygwin
    • gow
    • xyzzy
    • Gvim

    入れ子にする事もできます。

    記述例:

    * TortoiseHg
    * TortoiseBzr
    
      * Cygwin
      * gow
    
        * xyzzy
        * Gvim

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

    • TortoiseHg
    • TortoiseBzr
      • Cygwin
      • gow
        • xyzzy
        • Gvim
  • インデントの半角スペースの数や、空行などにより表示が変化します。後日また説明します。

番号付きリスト(箇条書き)

  • 番号付きのリストを使う事もできます。番号には 半角英数 が使えます。

    記述例:

    1. Python
    2. Mercurial
    3. Sphinx
    4. Vim

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

    1. Python
    2. Mercurial
    3. Sphinx
    4. Vim

    入れ子にする事もできます。

    記述例:

    A. Editor
    
       i. Vim
       ii. Emacs
       iii. SakuraEditor
       iv. ed
    
    B. Filer
    
       i. Afxw
       ii. mfiler4
       iii. VimFiler
    
    C. Launcher
    
       i. CraftLaunch
       ii. HoeKey
       iii. Bluewind

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

    1. Editor
      1. Vim
      2. Emacs
      3. SakuraEditor
      4. ed
    2. Filer
      1. Afxw
      2. mfiler4
      3. VimFiler
    3. Launcher
      1. CraftLaunch
      2. HoeKey
      3. Bluewind
  • 使用するThemeにより、表示は変わります。今回は全て数字になりましたがThemeによっては、アルファベットがそのまま表示されます。

セクション(ブロックの区切り)

  • 下記記号をアンダーラインのように使う事によりセクションにする事ができます。
    • #
    • *
    • =
    • -
    • ^
    • ~

記号を使った順にレベル分けされます。

記述例:

レベル2
-------

レベル3
~~~~~~~

レベル4
"""""""

レベル2
-------

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

レベル2

レベル3

レベル4

レベル2

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

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