職場で泣かされて、なお修行する

July 2020 · 5 minute read

こんにちは。先週職場で泣かされたRockinWoolです。
まあ、今はエンジニアですしこんなもんだろうなあと思っております。しかし、将来は必ず研究者になるためにも今日も論文作成に邁進しないといけませんね。\

さて、本日は前回のLaTeXの続きからやっていこうと思います。今日はここから始めていこうと思います。\

1.数式の挿入

まずは参考サイトにある例をここにそのままコピペしました。

\documentclass[dvipdfmx]{jsarticle}
\begin{document}

日本で漱石が「吾輩は猫である」を発表したころ,
ドイツではAlbert Einsteinが特殊相対論を発表した。

この理論によれば,エネルギー$E$と質量$m$\begin{equation}
  E = mc^{2}
\end{equation}
で関係づけられる。
ここに$c$は光速で,
\begin{equation}
  c = 299{,}792{,}458 \, \mathrm{m/s}
\end{equation}
である。

\end{document}

これをptex2pdf -l hoge.texすることによってPDF化すると、数式が挿入できていることがわかります。LaTeXでは数式用の文字を$E$のように表記したり、数式を

\begin{equation}
    E = mc^{2}
\end{equation}

のように記載するんですね。後、単位は\, \mathrm{m/s}で表現するみたいですね。

2. 数式の代入2

次の数式が簡単とか紹介されているんですけど・・。うーん・・天才ってやっぱり存在しますねえ。

\documentclass[dvipdfmx]{jsarticle}
\begin{document}

\[
  \frac{\pi}{2} =
  \left( \int_{0}^{\infty} \frac{\sin x}{\sqrt{x}} dx \right)^2 =
  \sum_{k=0}^{\infty} \frac{(2k)!}{2^{2k}(k!)^2} \frac{1}{2k+1} =
  \prod_{k=1}^{\infty} \frac{4k^2}{4k^2 - 1}
\]

\end{document}

これをまたptex2pdf -l hogehoge.texするとなんとも珍妙な式が出てきます。個人的にはうおおおお・・・って感じです。\

まず\frac{分子}{分母}で分数を表現します。\piはπで\left(hogehoge\right)は中身に応じて大きさの変わるカッコ。積分記号は\int_{下限}^{上限}で表わせ、無限大は\inftyらしいです。個人的には\inftyが一番間違えそう。
他にも三角関数\sin x,\cos,\tanや対数\log、平方根の\sqrt{x}\sqrt{3}{x}、総和相乗の\sum,\prodなどがあります。\sum_{下限}^{上限}ともできるみたいです。そういえば話がそれますが、英語では総乗のことをプロダクトと言うんですよね。これをみて思い出しました。\

3. 各種パッケージの利用

ここで、いままででamsmathamssymbという数学用パッケージを無意識に使用していたことが明かされました。Pythonなどとは違って宣言しなくても使用できるライブラリもあるということなのでしょうか?そして、明示的にパッケージを使用する例として、次の内容が解説されました。

\documentclass[dvipdfmx]{jsarticle}
\usepackage{multicol}
\begin{document}
ここは一段組み。
\begin{multicols}{3}
ここは三段組み。
でも三段組みにするためにはもっと長い例文が必要なので,意味も無いことをここにだらだら書き連ねています。
このくらい書けば三段に分かれて組み上げられるでしょうか?
\end{multicols}
\end{document}

今までの経験より、2行目のusepackage{multicol}でマルチカラム・・すなわち複数の列からなる文章を作成できるようにしているのかなと推測できます。これは\begin{multicols}{3}から始まってend{multicols}で終了するように書かれています。

4. レポートを書いてみる

これが一番のLaTeXを使う目的ですよね。レポートの例として以下のソースが示されています。

\documentclass[dvipdfmx]{jsarticle}
\begin{document}

\title{情報科学レポート}
\author{奥村晴彦}
\maketitle

\section{はじめに}

この文書は,ごく基本的なレポートや論文の例を示すものです。
実際にこのソースを入力してタイプセット(コンパイル)し,
タイトル,著者名,本文,見出し,箇条書きがどのように表示されるかを
確認してみましょう。

\section{見出し}

この文書の先頭にはタイトル,著者名,日付が出力されています。
特定の日付を指定することもできます。

そして,セクションの見出しが出力されています。
セクションの番号は自動的に付きます。

\section{箇条書き}

以下は箇条書きの例です。これは番号を振らない箇条書きです。

\begin{itemize}
  \item ちゃお
  \item りぼん
  \item なかよし
\end{itemize}

これは番号を振る箇条書きです。

\begin{enumerate}
  \item 富士
  \item\item なすび
\end{enumerate}

\section{おわりに}

これは一段組の例ですが,二段組に変更することもできます。

解説文を読んで,このソースをいろいろと変更してみましょう。

\end{document}

これだけでもメチャクチャかっこいいレポートが書けてしまいます。LaTeXすげえ!
最初の\documentclass[dvipdfmx]{jsarticle}\begin{document}。そして最後の\end{document}が共通して宣言する基本文法。そして、ドキュメントの開始宣言の後の\title{hoge}\author{fuga}\maketitleでタイトルを出力するそうです。リンク先にも書かれていますが、日付はデフォルトだと今日の日付が勝手に入ってしまうそうなので、明示的に指定する場合は\date{hoge年fuga月n日}とすれば良いそうです。

章は\section{hoge}で宣言できるそうです。何も指定しなければ勝手に番号が振られる部分はmarkdownと同じですね。番号を振りたく無い場合は\section*{hoge}とすれば良いそうです。章内のサブセクションは\subsection{fuga}でやるみたいです。

二段組にする場合は最初の行をdocumentclass[twocolumn]{jsarticle}のようにすれば良いみたいです。一応試してみたら、タイトルの部分はそのままで本文の部分が2段組みになりました。