Hello, World! あーみーです.
みなさん$\LaTeX$を使って文書作成していますか?
専門分野にもよりますが,情報系の分野なら論文執筆は$\LaTeX$を使用することが多いと思います.
しかし,研究室で毎年配属される学部生に$\LaTeX$での文書作成を教えることはとてもコストがかかります.
そこで,この記事では,$\LaTeX$を使用した文書作成を,研究室に配属されたばかりの学部生が始められることを目的として,基本の必要な知識をまとめました.
また,文書作成時に役立つ小技もまとめてあります.
文書作成を始める
環境構築
この記事では,誰もが$\LaTeX$での文書作成を一旦試すことができるようにと,私も1から環境を構築するため,このDockerコンテナを使用して$\LaTeX$環境を構築します.Dockerの使い方自体は1日目の記事など,様々な記事で説明がされているので割愛します.環境構築は自分のOSに合うように読み替えてもらえればと思います.
また,**この環境構築が面倒で,今すぐ$\LaTeX$で文書作成をしたいという人は,ブラウザ上で書けるOverleafや,Cloud LaTeXを使用するのがいいでしょう.**私も普段の報告書や講義のレポートはCloud LaTeXを使います.
1. TeX Liveのインストール
まずはTeX Liveのインストールをするため,先のリンクからダウンロードをしていきます.macOSの場合はTeX LiveをベースにしたmacOS専用ディストリビューションのMacTeX
を,それ以外ならTeX Live
をインストールすればいいと思います.それぞれのページを開きましょう.
ページ内のインストール
セクションから自分のOSに合うようにイメージをダウンロードします.
私の仮想環境の場合は,Dockerfileを見るとubuntu:20.04
と書かれているので,それに合うように以下のGIFのようにダウンロードします.
次にダウンロードしてきたイメージをインストールします.Ubuntuの場合は,以下の要領で.deb
をインストールします.macOSの場合は,.pkg
なので,ダブルクリックでインストールできるはずです.インストールには少し時間がかかります.
$ cd Downloads/ # イメージのあるディレクトリへ移動
$ apt-get update # アップデートしておく
$ apt install -y ./[ダウンロードしたイメージ].deb
インストールが完了したら,ターミナルで以下を実行して,正しくインストールが完了しているか確認してください.
$ platex --version
2. Visual Studio Codeのインストール
エディタは,Visual Studio Codeをこの記事では採用します.このエディタがあれば,これからも大体のことは困らないと思います.先のリンクからダウンロードをして,1.と同様にインストールをしてください.
文書作成
ここからは実際にVisual Studio Codeでテキストを書いて,コンパイルし,PDFの文書を作成する手順を述べていきます.
1. ファイルの作成
今回は,以下のようなディレクトリ構成でファイルを作成します.
Desktop/
└── report/
└── contents.tex
contents.tex
の中身は一旦,以下をコピペしておきましょう.
\documentclass{jarticle}
% ===== プリアンブル内 ===== %
\title{LaTeXでの文書作成入門}
\author{おなまえたろう}
\date{\today}
\begin{document}
% ===== document内 ===== %
\maketitle
\section{章のタイトル}
この文書はサンプルです.
\subsection{節のタイトル}
この文書はサンプルです.
\subsubsection{項のタイトル}
この文書はサンプルです.
\end{document}
プリアンブル内と書いた\documentclass{jarticle} 〜 \begin{document}
までは設定などを記述していく部分で,document内と書いた\begin{document} 〜 \end{document}
までは文書の内容を記述していく部分です.
2.コンパイル
以下のコマンドを実行して,1.で作ったファイルをPDFの文書にコンパイルします.Visual Studio Codeからだと,ツールバーからターミナル
>新しいターミナル
でターミナルを開くことができるので楽です.
$ platex contents.tex
$ dvipdfmx contents.dvi
report/
内に以下のようなcontents.pdf
が作成されていれば成功です.これで今日から$\LaTeX$で文書作成ができます.
Option1. Makefileでコンパイルする
2.のコンパイルを毎回実行するのは面倒ですし,参考文献のためBibtexなど入れた日にはそれどころではありません(platex
>pbibtex
>platex
>platex
>dvipdfmx
).多くの場合,1発でPDFの文書にコンパイルしてくれるMakefile
を用意しておくのが主流です.(Visual Studio Codeでは,$\LaTeX$を自動でコンパイルする設定もでき,Qiitaにも多くの記事がありますが,私はどの設定もスムーズに成功したことがないので,初めはMakefile
でコンパイルすることをお勧めします.)
先程のディレクトリにMakefile
を作ります.
Desktop/
└── report/
├── contents.tex
└── Makefile
Makefile
の中身は以下をコピペしておきましょう.(参考サイト)
※ 今後のことを考えて,Bibtex対応の
Makefile
にしました
TARGET := contents.pdf
CNT := 2
.PHONY: all clean distclean
all: $(TARGET)
clean:
$(RM) *.aux *.log *.dvi *.bbl *.blg
distclean: clean
$(RM) $(TARGET)
%.pdf: %.dvi
dvipdfmx $<
%.dvi: %.tex
for i in `seq 1 $(CNT)`; do platex -interaction=batchmode $<; done
-pbibtex $*
for i in `seq 1 $(CNT)`; do platex -interaction=batchmode $<; done
ターミナルから以下のコマンドを叩くだけで,コンパイルができるようになりました.
$ make
注意1
make
コマンドがインストールされていない場合,Ubuntuは以下のコマンドを実行して,macOSはここを参考にしてインストールをしてください.
$ apt install -y build-essential
注意2
contents.pdf
がすでに存在していると,実行できないので,以下の順番で実行しましょう.
$ make distclean
$ make
$ make clean
clean
はPDF文書作成時に生成される中間ファイルを消すコマンドが,distclean
はPDF文書を消すコマンドが実行されています.
Option2. Makefileのコンパイルをショートカットキーで実行
Visual Studio Codeのターミナルからいちいちmake
を(しかも3つも)実行するのはまだ不便です.そこで,Visual Studio Codeの拡張機能を使って,make
をショートカットキーで実行できるようにします.
- 拡張機能からterminal-command-keysをインストールする
- Visual Studio Code上で
Ctrl-K, Ctrl-S
と続けて押し,キーボードショートカットを開く - ウィンドウの右上に以下のアイコンがあるので,一番左のファイルアイコンを押し,
keybindings.json
を開く
4. keybindings.json
に以下のプログラムをコピペする
[
{
"key": "ctrl+r", // Makefileを実行するときの任意のキーバインド
"command": "terminalCommandKeys.run",
"args": {
"cmd": "cd `dirname \"${file}\"`;make distclean; make; make clean"
}
}
]
これで,ctrl+r
のショートカットキーだけで,make distclean
,make
,make clean
を一度に実行できるようになりました.
最後に,もし各々の研究室などの所属する機関で,スタイルファイルがあるなら,それを配置しましょう.
これで環境構築は完璧です.$\LaTeX$での文書作成をやっていきましょう!
文書作成時の参考サイト
基本的な$\LaTeX$の記法は以下のサイトなどで勉強をしていってください.だいたいのものは解決できます.
小技集
ここからは$\LaTeX$ができる人に向けた,文書作成時に役立つ小技を書いていきます.
複数行のコメントアウト
$\LaTeX$では%
で,それから行末までをコメントアウトします.
複数行コメントアウトは,comment
というパッケージで可能になります.
% ===== プリアンブル内 ===== %
\usepackage{comment}
% ===== document内 ===== %
\begin{comment}
この複数行は
コメントアウト
されています.
\end{commnet}
1文字分空ける
段落の始め以外の文章中にスペースを空けたくなった場合,em
単位で指定すると文字と同じスペースになるので,\hspace{}
などで指定すると1文字分空けることができます.
\hspace{1em}今日はいい天気ですね.
文章中の参照番号を改行させない
「図1に示す.」などの「図」と「1」の間で改行させないためには,以下のように~(チルダ)
で「改行されない空白」を入れることで回避できます.
結果を図~\ref{fig:hoge}に示す.
参照にハイパーリンクをつける
以下を記述しておくと,図表の参照にハイパーリンクが付き,クリックで相互に飛ぶことができます.
% ===== プリアンブル内 ===== %
\usepackage[dvipdfmx]{hyperref}
また,URLを載せたい場合は,以下を記述します.
% ===== プリアンブル内 ===== %
\usepackage{url}
\sloppy
% ===== document内 ===== %
\url{https://www.google.com/}
ここで**\sloppy
**を一緒に記述しておくと,2カラムなどにした際に,URLの文字列が長く途中でいい感じにハイパーリンク付きURLが改行されない問題を解決してくれます.
目次がPDFリーダー内で文字化けする現象の改善する
hyperref
でハイパーリンクが付いた文書をPDFリーダーで閲覧する際に,以下の画像のように目次が文字化けするときがあります.
以下を記述しておくと,PDFリーダー内の目次の文字化けを改善できます.
% ===== プリアンブル内 ===== %
\usepackage{pxjahyper}
表を簡単に作りたい
セルの内容をスクラッチするのは大変なので,私はよくTables Generatorや,TableConvert Onlineを使用して,CSVなどから$\LaTeX$用のコードをコンバートしています.
図表を文章の直後に入れたい
図表の挿入位置はhtbp
で指定しますが,h
の指定でもスペースによっては,そこに挿入できないときがあります.here
パッケージにより,強制的に文章の直後に挿入できます.
% ===== プリアンブル内 ===== %
\usepackage[dvipdfmx]{graphicx} % figureのため必要
\usepackage{here}
% ===== document内 ===== %
本プロジェクトのロゴ画像を図~\ref{fig:hoge}に示す.
\begin{figure}[H]
\centering
\includegraphics[width=0.8\linewidth]{figures/logo.pdf}
\caption{本プロジェクトのロゴ画像}
\label{fig:hoge}
\end{figure}
ページ数の決まっていない論文などはこちらの指定のほうが前から順番に読んでいけるので良いと思います.
表が長すぎてセンタリングされない
横に長過ぎる表は,はみ出るしセンタリングされないので,\scalebox{}{}
を使用して,表のサイズを調整すると,キレイに示せます.
% ===== プリアンブル内 ===== %
\usepackage[dvipdfmx]{graphicx}
% ===== document内 ===== %
弊社の10年分の売上高を表~\ref{tab:hoge}に示す.
\begin{table}[htbp]
\centering
\caption{弊社の10年分の売上高}
\label{tab:hoge}
\scalebox{0.8}{
\begin{tabular}{c||r|r|r|r|r|r|r|r|r|r|r}
\hline
年 & 2010 & 2011 & 2012 & 2013 & 2014 & 2015 & 2016 & 2017 & 2018 & 2019 & 2020 \\ \hline
売上高(円) & 110,000 & 110,000 & 120,000 & 130,000 & 150,000 & 180,000 & 230,000 & 310,000 & 440,000 & 650,000 & 990,000 \\ \hline
\end{tabular}
}
\end{table}
数式の参照に括弧を自動でつける
数式参照時にmathtools
というパッケージをインポートして\eqref{}
を使用すると自動で括弧をつけてくれます.
% ===== プリアンブル内 ===== %
\usepackage{mathtools}
% ===== document内 ===== %
分散$s^2$は式~\eqref{eq:hoge}で算出される.
\begin{equation}
\label{eq:hoge}
s^2 = \frac{1}{n} \sum_{i=1}^{n} (x_i - \overline{x})^2
\end{equation}
数式をコンパイルせずに試す
数式をコンパイルせずに試すには,TeXclipというサービスを使うと便利です.またこのサービスでは,記述した数式を画像ファイルとしてダウンロードもできるので,色々なところに活用できます.
参考文献の参照番号が連番ならまとめる
参考文献を3件以上参照するときに[1,2,3]
となるのはあまりスマートじゃないので,参照番号が連番なら[1-3]
とするには以下でできます.
% ===== プリアンブル内 ===== %
\usepackage{cite}
% ===== document内 ===== %
数多くの研究がなされている\cite{thesis1, thesis2, thesis3}.
BibTeXを自分で書きたくない
参考文献はBibTeXで本文中から参照すると思いますが,論文はGoogle Scholarで,書籍はGoogle Booksで検索しBibTeXをコピペして集めるのが楽かなと思っています.
-
Google Scholar
- BibTeX情報が欲しい論文を検索
- 1の検索結果の下にある
"
マークをクリック - BibTeXボタンをクリック
-
Google Books
- BibTeX情報が欲しい書籍を検索
- 1の検索結果から対象の書籍を探してクリック
- 左にある赤色の
Eブックを表示
ボタンをクリック - ページ最下部にあるBibTeXボタンをクリック
また,Webサイトを参考文献としたい場合もたまにありますが,その時はBibTeX entry from URLというChrome拡張機能などを使用すると便利です.
おわりに
この記事では,$\LaTeX$を使用した文書作成を,研究室に配属されたばかりの学部生が始められることを目的として,基本の必要な知識をまとめました.また,文書作成時に役立つ小技もまとめました.
$\LaTeX$で文書作成するなら,やはり『LaTeX2ε美文書作成入門』に一度目を通しておくことをお勧めします.日常的に$\LaTeX$で文書作成する人は,改訂第8版が2020年11月に発売したばかりなので,手元に1冊あるととても重宝すると思います.
自分の中でやりたい書き方があり,いい方法が見つからない場合は,スタイルファイルを自分で書いたほうが速いかもしれませんね.
それでは,Happy Hacking!