理系文章の書き方

Spinx での数式や文字、表について紹介していく。

数式の書き方

数式は latex 形式で記述する。表記するためには主に「行間に挿入するタイプ」と「行内に挿入するタイプ」の2つの方法がある。

行間に挿入するタイプ

.. math::

   z(x) = \int_0^{\infty} f(x) dx

これが、

\[z(x) = \int_0^{\infty} f(x) dx\]

となる。ただし、数式の大きさ位置は指定できない。

行内に挿入するタイプ

この式は :math:`z(x) = \int_0^{\infty} f(x) dx` というふうに書ける。

この式は \(z(x) = \int_0^{\infty} f(x) dx\) というふうに書ける。

図の入れ方

図に説明を入れるには、例えば force.png を入れたければ、

リスト 4 図の例
.. figure:: force.png
    :width: 200
    :name: @f12-8

    図の例:自由連結鎖の伸長変化に伴う張力

    縦軸は :math:`\dfrac{l}{kT}f` 、横軸は :math:`\nu`

これを実行すると、

_images/force.png

図 6 図の例:自由連結鎖の伸長変化に伴う張力

縦軸は \(\dfrac{l}{kT}f\) 、横軸は \(\nu\)

ここで、図のサイズを指定するには%ではなくpixelで指定を行う。 A4なら幅が500ピクセルぐらい

:width: 500

あるいは高さを指定してもよい:

:height: 200

図のラベルを貼りたければ:

:name:

で指定し、参照する際は:

:numref:

を使う。ただし、 cpnf.py 中で numfig=True になっていないといけない。:

:numref:`@f12-8` より

は、

図 6 より

となる。連番は順番に振られている。

表の書き方

表の書き方は主に「CSVテーブル」と「listテーブル」の2つの方法がある。

CSVテーブル

CSVテーブルは簡単な表の場合は便利である。

リスト 5 表の例
.. csv-table:: 藤澤研究室教員情報
   :header: "Name", "favorite food", "dislike food"
   :widths: 15, 10, 20

   "Dr.Fuzisawa", Meet, "Vegetable, Apple, Chocolate"
   "Dr.Kameyama", Egg, "Meet.Fish, Tomato"
   "Dr.Isiguro", Sushi, "Cucumber, green, pepper"

と入力すると以下の表が出来上がる。

表 2 藤澤研究室教員情報

Name

Favorite food

Dislike food

Dr.Fujisawa

Meet

Vegetable, Egg, Chocolate

Dr.Kameyama

Egg

Meet, Fish, Tomato

Dr.Isiguro

Sushi

Cucumber, green, pepper

重要

改行をセル内に入れたい場合

ダブルクォート " で囲み 改行して | +スペースとする。

リスト 6 セル内改行の例
.. csv-table:: 藤澤研究室教員情報
    :header: "Name", "Favorite food", "Dislike food"
    :widths: 15, 10, 20

    "| Dr.Fujisawa
    | Dr. Eng.", Meet, "Vegetable, Egg, Chocolate"
    "| Dr.Kameyama
    | Dr. Sci.", Egg, "Meet, Fish, Tomato"
    "| Dr.Isiguro
    | Ph.D (Sci)", Sushi, "Cucumber, green, pepper"

この表示は以下の通りである。

表 3 藤澤研究室教員情報

Name

Favorite food

Dislike food

Dr.Fujisawa
Dr. Eng.

Meet

Vegetable, Egg, Chocolate

Dr.Kameyama
Dr. Sci.

Egg

Meet, Fish, Tomato

Dr.Isiguro
Ph.D (Sci.)

Sushi

Cucumber, green, pepper

一般的なcsvテーブルファイル(区切り記号が , )を読み込むなら、

リスト 7 sample.csv
sample,"| I(0)
| (a.u.)","| Rg
| (A)"
nitrilase.dat,100,45.01

以下のようにすればよい

リスト 8 csvファイル読み込みの例
.. csv-table::
   :file: sample.csv
   :encoding: UTF-8
   :header-rows: 1
   :stub-columns: 1

と入力すると以下の表が出来上がる。

sample

I(0)
(a.u.)
Rg
(A)

nitrilase.dat

100

45.01

さらに進んだcsv-tableの使い方

CSVテーブルを編集するのは libreoffice calc などの表計算ソフトを 使用すると良い。

  1. libreoffice calc を開きセルの内容を入力する。 あまり幅が長くならないよう適度に改行を入力する。セルの中に数式などを入れることも可能。

    _images/t-0.png
  2. 入力が済んだらファイルをセーブする。その際、ファイルの種類は テキスト CSVフィルター設定を編集する にチェックを入れ。 保存 をクリック

    _images/t-1.png
  3. ファイル形式の確認が表示されるが迷わず テキストCSV形式を使用 をクリック。

    _images/t-2.png
  4. フィルター設定の画面が表示されるので、フィールドの区切り記号は ;すべてのテキストのセルを引用符で囲む をクリック。ファイルが保存され終わり。

    _images/t-3.png
  5. 再編集の場合は、ファイル名を指定するとテキストのインポート画面が表示される。区切りのオプションで、 コンマ のチェックは外し、 セミコロン のチェックを入れる。

    _images/t-4.png

    これで、通常のシート画面が表示され、編集を行う。再セーブする際は、必ずcsvファイル形式を確認すること。

    このようにして作成したcsvファイルは、以下のように用いる。最後の行の区切り記号の指定に注意。

    リスト 9 表計算ソフトで編集したcsv-tableの読み込み
    .. csv-table::
        :file: sample.csv
        :encoding: UTF-8
        :header-rows: 1
        :stub-columns: 1
        :delim: ;
    

csv-table のオプション

csv-tableの使用に際して良く使用するオプションを説明する。

:file:

ローカルのファイルシステムにあるcsvファイルを指定する

:encoding:

文字コードを指定する

:delim:

区切り文字の指定

:header-rows:

見出し行の行数指定

:stub-columns:

見出し列の列数指定

:widths:

列の幅指定。相対量で表す。

listテーブル

.. list-table:: 藤澤研究室教員情報
   :header-rows: 1

   * - Name
     - Favorite food
     - Dislike food
   * - Dr.Fujisawa
     - Meet,Fish,Vegetable,
     - Egg, Chocolate

とコマンドすると以下の表が出来上がる。

表 4 藤澤研究室教員情報

Name

Favorite food

Dislike food

Dr.Fujisawa

Meet

Vegetable, Egg, Chocolate

以上のことを用いて以下に具体例を示す。

ギリシャ文字一覧

表 5 ギリシャ文字一覧表

読み方

大文字

コマンド

小文字

コマンド

変体文字

コマンド

あるふぁ

\(A\)

:math:`A`

\(\alpha\)

:math:`\alpha`

ベーた

\(B\)

:math:`B`

\(\beta\)

:math:`\beta`

がんま

\(\Gamma\)

:math:`\Gamma`

\(\gamma\)

:maht:`\gamma`

でるた

\(\Delta\)

:math:`\Delta`

\(\delta\)

:math:`\delta`

いぷしろん

\(E\)

:math:`E`

\(\epsilon\)

:math:`\epsilon`

\(\varepsilon\)

:math:`\varepsilon`

ぜーた

\(Z\)

:math:`Z`

\(\zeta\)

:math:`\zeta`

いーた

\(H\)

:math:`H`

\(\eta\)

:math:`\eta`

しーた

\(\Theta\)

:math:`\Theta`

\(\theta\)

:math:`\theta`

\(\vartheta\)

:math:`\vartheta`

いおた

\(I\)

:math:`I`

\(\iota\)

:math:`\iota`

かっぱ

\(K\)

:math:`K`

\(\kappa\)

:math:`\kappa`

らむだ

\(\Lambda\)

:math:`\Lambda`

\(\lambda\)

:math:`\lambda`

みゅー

\(M\)

:math:`M`

\(\mu\)

:math:`\mu`

にゅー

\(N\)

:maht:`N`

\(\nu\)

:math:`\nu`

くさい

\(\Xi\)

:math:`\Xi`

\(\xi\)

:math:`\xi`

おみくろん

\(O\)

:math:`O`

\(o\)

:math:`o`

ぱい

\(\Pi\)

:math:`\Pi`

\(\pi\)

:math:`\pi`

\(\varpi\)

:math:`\varpi`

ろー

\(P\)

:math:`P`

\(\rho\)

:math:`\rho`

\(\varrho\)

:math:`\varrho`

しぐま

\(\Sigma\)

:math:`\Sigma`

\(\sigma\)

:math:`\sigma`

\(\varsigma\)

:math:`\varsigma`

たう

\(T\)

:math:`T`

\(\tau\)

:math:`\tau`

ゆぷしろん

\(\Upsilon\)

:math:`\Upsilon`

\(\upsilon\)

:math:`\upsilon`

ふぁい

\(\Phi\)

:math:`\Phi`

\(\phi\)

:math:`\phi`

\(\varphi\)

:math:`\varphi`

かい

\(X\)

:math:`X`

\(\chi\)

:math:`\chi`

ぷさい

\(\Psi\)

:math:`\Psi`

\(\psi\)

:math:`\psi`

おめが

\(\Omega\)

:math:`\Omega`

\(\omega\)

:math:`\omega`

行列の表記

最後に行列の表記について紹介していく。 コマンドと出力は以下のとおりである。

表 6 行列について part 1

コマンド

出力

.. math::
A =
\underbrace{ \left.
\begin{pmatrix}
a & b & c \\
d & e & f \\
g & h & i
\end{pmatrix}
\right\}}_{\text{$3$ 列}}
\,\text{$3$ 行}`
\[\begin{split}A = \underbrace{ \left. \begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix} \right\}}_{\text{$3$ 列}} \,\text{$3$ 行}\end{split}\]
.. math::
A =
\underbrace{ \left.
\begin{pmatrix}
a_{11}&0&0&\cdots &0 \\
0&a_{22}&0&\cdots &0 \\
0&0&a_{33}&\cdots &0 \\
\vdots&&&\ddots&\\
0&0&0&\cdots &a_{MN}
\end{pmatrix}
\right\}}_{\text{$N$ 列}}
\,\text{$M$ 行}`

\(A = \underbrace{ \left. \begin{pmatrix} a_{11}&0&0&\cdots &0 \\ 0&a_{22}&0&\cdots &0 \\ 0&0&a_{33}&\cdots &0 \\ \vdots&&&\ddots&\\ 0&0&0&\cdots &a_{MN}\\ \end{pmatrix} \right\}}_{\text{$N$ 列}} \,\text{$M$ 行}\)