見出し画像

WordだけじゃないLaTeXでの文書作成~D4cノウハウプレゼン大公開~

D4cグループで年3回行われているイベント「ノウハウプレゼン大会」から発表をピックアップするシリーズ。
今回は2022年4月の回から、入社2年目の私、M.T.が発表した「WordだけじゃないLaTeXでの文書作成」をお届けします!


はじめに

私は現在の業務で、分析結果をドキュメントとして残す事が多いです。またプロジェクトでは既存のコード改修や新たなコード作成をしており、それらの設計書を作成する必要があります。

そんな中、学生時代に使用していたLaTeXを使用し、そういったドキュメントを作成したらどうかと考えました。また、社内に残すノウハウとしてもLaTeXでの文書作成は価値があるのではと考え、このテーマを今回のノウハウプレゼン大会で発表する事にいたしました。

(なお、この記事は2022年4月時点での情報を基に記載しています。)

この記事で伝えたいこと

・LaTeXの基礎
・LaTeXを使うメリット

 ◇ 数式を多用するような文章を書く場合に綺麗な数式を書ける(数式だけLaTeXで書き、文章に貼り付けるといった活用法もある)。
 ◇ コードやその出力物等を組み合わせたレポートを作成する際に、コードの変更点等を自動的に反映してくれる

発表者について

学生時代
 ・某国立大学で素粒子物理学を専攻
 ・ビッグデータを解析
入社後
 ・入社後4か月目から某シンクタンクグループの金融系の案件に従事
 ・使用言語は主にSAS
 ・現在は某法人にてPythonを主に使用して顧客分析を行っている

LaTeXとは

そもそもLaTeXとは、オープンソースの電子組版ソフトウェアのTeXの上に構築した文書処理システムです。

LaTeXには大きく分けて2種類あり、「レガシーLaTeX」と「モダンLaTeX」が存在しております。まず両者ともソースファイル(.tex拡張子を持つ文書ファイル)を作成します。これはWordのような文書作成ツールとは違い、書いたらそのままドキュメントとして完成するわけではありません。プログラムのソースコードやマークアップ文書のようなものを想像して頂けると分かりやすいかもしれません。

その後「レガシーLaTeX」ではソースファイルをコンパイルし、DVIファイルと呼ばれる、デバイスに依存しない形式に変換する必要があります(DVIとは、device independentの略です)。このDVIファイルを読み込んで出力するためのツールの一つに、PDFファイルに変換するツールがあるので、これを利用する事でDVIファイルが最終的にPDFファイルとして出力されて、初めてドキュメントとして読むことが可能となります。一方「モダンLaTeX」は、この中間生成物であるDVIファイルを通さず、ソースファイルから直接PDFファイルを出力し、ドキュメントを作成する事が出来ます。

LaTeX基礎

LaTeXのソースファイルは上記のスライドのようなものとなっており、大きく分けて3つのパートに分ける事ができます。

①documentclass

まず最初にどのような文書を書くのか指定する必要があります。上記の例ではA4サイズの用紙(”a4paper”)にモダンLaTeXの一種であるLuaLaTeXを使って日本語レポートを書くと宣言しています(”ltjsarticle”)。LuaLaTeXはLuaと呼ばれるスクリプト言語を組み込んだLaTeXで、日本語にも対応しています。

②プリアンブル

次にプリアンブルと呼ばれる前文部分でパッケージの読み込み等を行います。パッケージはPythonで言うライブラリに当たるもので、LaTeXの機能を拡張してくれます。読み込む際は”\usepackage{パッケージ名}”と書きます。上のスライドでは例としてamsmathパッケージを使用し、元々のLaTeXの数式よりも綺麗な数式を書いています(amsmath はアメリカ数学会American Mathematical Societyによって開発されたパッケージです)。

③本文パート

最後にドキュメントに出力される実際の文章を書く本文パートが来ます。ここで”\begin{document}”から”\end{document}”の間に書かれたものが実際のドキュメントとして出力されます。上記スライドの例では数式を書き、それを出力しています。

数式は”\begin{equation}”と”\end{equation}”の間に書きます。数式内の特殊な記号はバックスラッシュと、その命令で指定してあげると出力されます。上スライドの例①では”\frac”で分数であることを宣言し、その後一つ目の波括弧内に分子、二つ目の波括弧内に分母に入る記号を書いてます。②の例では”\int”で積分記号を宣言、ハット記号と波括弧で上付き文字が、アンダーバーと波括弧で下付き文字が出力されています。

LaTeX vs. Word

ここからは、皆さんご存じの文書作成ソフトウェア「Word」とLaTeXを比較しつつ、LaTeXの特徴について纏めます。

①分かりやすさ

まずLaTeXとWordの一番の違いは直感的に分かりやすいかどうかというところです。

Wordは書いたものがそのまま表示されるため分かりやすい一方、LaTeXは前述した通りドキュメントを一度コンパイルしてPDFとして出力する必要があります。またWordはドラッグで画像のサイズや配置を変更できますが、LaTeXは数値で設定する必要があり、これも直感的には分かりづらいものとなっております。

ただし、LaTeXではフォントやそのサイズを自動で統一してくれます。また、プリアンブルを外部ファイル化(.tex)し、\input{外部ファイル}でその設定を読み込むことで、チームやグループ内で共有することが可能です。この機能を使用することで、一度プリアンブルを書くだけで全ての文書に同じ設定を適用する事が出来ます。

②数式

LaTeXを語る際に外せないのはやはりその数式の「綺麗さ」です。

上記スライドではLaTeXとWordの数式モード、その両者で書いた際の数式を比較しています。

Word側にも遜色ない数式モードが存在していますが、Wordの数式モードではデフォルトではフォントが”Cambria Math”に固定されてしまいます(ただし数式フォントをインストールする事で変更する事は可能です)。

一方でLaTeXではデフォルトでフォントを変更する事が可能です。ドキュメントの中で自然なフォントで数式や記号などを書くことができます。

③ソースコード

LaTeX文書のプリアンブル部分で「listings」と呼ばれるパッケージを読み込むと、ドキュメント内でソースコードをプログラム用の体裁で表示する事ができます。一方でWordにはそのような機能は存在しません。また仮にWordでソースコードを書く場合は、それらしくフォントを変更し、ブロックで囲んだりと一工夫が必要となります。

LaTeXではプリアンブルのように外部ファイルのコードを直接読み込むことも可能です。例えば”Sample.py”というコードが存在し、ドキュメントを書いた後にそのコードを修正しても、ドキュメントを修正する必要はなく、LaTeXファイルを再度コンパイルすると、最新の”Sample.py”を読み込み、ドキュメントにコードの変更点を反映してくれます。

まとめ

  • 短いドキュメントを作成する際はWordに軍配があがります。

  • 数式を多用する場合、または長めの書類を作成する際はLaTeXに軍配があがります。

  • 実際に活用する場合は、数式やソースコードのみをLaTeXで作成し、その後Wordに画像として貼り付けるなどの活用方法が考えられます。

  • コード、出力物、テキスト等を組み合わせたレポートで使用できるのは大きな強みと言えます。

ここまでLaTeXの紹介をしてきましたが、LaTeXの環境構築は手間がかかります。
そこでネット上で簡単に挙動を確かめる事が出来るサイトがいくつかありますのでこちらにまとめておきます。
 ・Cloud LaTeX
 ・Overleaf
 ・TeXclip(登録不要、そのまま簡単なコードを試せます!)

複雑な数式・ソースコードを載せたドキュメントの作成や、継続更新するドキュメントの作成をされる場合にはおすすめです!LaTeXを使った事がないという方はぜひ一度触ってみてください。

(執筆:M. T. )


少しでもお役に立てましたら、記事の下の♡を押していただく&フォローいただけますと励みになります!

▼採用情報TOP


▼D4cノウハウプレゼン大会についてはこちら