LaTeXの導入

LaTeXはMicrosoftのWordのような組版処理システム(文章を本等にまとめるソフト)で 物理、数学などの数式をきれいに文章中に組み込めるので、理系の学生は論文執筆などで使っていることが多い。 ここでは、そのLaTeXの導入としてインストール方法、使い方をまとめた。




インストール方法


macOSへのインストール

macTeXをインストール

$ brew install mactex

Linuxへのインストール

TeXLiveをインストール

$ sudo apt install -y texlive

Overleaf

リンク: Overleaf

最近は自分で環境を構築しなくてもクラウド上で文書の作成、コンパイルを行えるOverleafというものがあるらしい。

自分ではあまり使ったことは無いが、テンプレートがたくさんあったり、 毎回コンパイルして確認しなくてもプレビューが常に表示されるなどかなり便利らしい。

ただ無料版はリンクを知っている人であればどんなひとでも中身を見ることができるらしいので、 秘匿性のある文書は無料版で作るべきではない。

こういう事もあって自分ではもっぱら自PCに環境を構築してコンパイルして書いている。

LaTeXのエンジン


LaTeXをコンパイルするときに使えるエンジンは複数ある。 従来のplatex, uplatexは.tex→.div→.pdfと変換をするのに対し、次の世代のlualatexは.tex→.pdfに変換できる。

参考: 発展編:最近の LaTeX の動向

  1. platex: 昔から使われていた日本語対応エンジン
  2. uplatex: Unicodeに対応したエンジン
  3. lualatex: 直接pdfとして出力できるエンジン

これらのエンジンはletliveまたは、mactexを導入すれば自然とついてくる。 世の中的にはlualatexに移行しつつあるらしいが、参考にできる日本語サイトが少ないので注意。

platex, uplatexとluatexでは使えるパッケージが異なるので、毎回パッケージを入れる際は調べてから使う。

LaTeXのコンパイル環境構築


参考: Latexmk - TeX Wiki

Latexmkを使うと簡単にコンパイルできるらしい。

Latexmkを使うためにはホームディレクトリに.latexmkrcを作って、 以下のコードをコピペする。

#!/usr/bin/env perl
if ($^O eq 'MSWin32') {
  $latex = 'uplatex %O -kanji=utf8 -no-guess-input-enc -synctex=1 -interaction=nonstopmode %S';
  $pdflatex = 'pdflatex %O -synctex=1 -interaction=nonstopmode %S';
  $lualatex = 'lualatex %O -synctex=1 -interaction=nonstopmode %S';
  $xelatex = 'xelatex %O -synctex=1 -interaction=nonstopmode %S';
  $biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B';
  $bibtex = 'upbibtex %O %B';
  $makeindex = 'upmendex %O -o %D %S';
  $dvipdf = 'dvipdfmx %O -o %D %S';
  $dvips = 'dvips %O -z -f %S | convbkmk -u > %D';
  $ps2pdf = 'ps2pdf.exe %O %S %D';
  $pdf_mode = 3;
  if (-f 'C:/Program Files/SumatraPDF/SumatraPDF.exe') {
    $pdf_previewer = '"C:/Program Files/SumatraPDF/SumatraPDF.exe" -reuse-instance';
  } elsif (-f 'C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe') {
    $pdf_previewer = '"C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe" -reuse-instance';
  } else {
    $pdf_previewer = 'texworks';
  }
} else {
  $latex = 'uplatex %O -synctex=1 -interaction=nonstopmode %S';
  $pdflatex = 'pdflatex %O -synctex=1 -interaction=nonstopmode %S';
  $lualatex = 'lualatex %O -synctex=1 -interaction=nonstopmode %S';
  $xelatex = 'xelatex %O -synctex=1 -interaction=nonstopmode %S';
  $biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B';
  $bibtex = 'upbibtex %O %B';
  $makeindex = 'upmendex %O -o %D %S';
  $dvipdf = 'dvipdfmx %O -o %D %S';
  $dvips = 'dvips %O -z -f %S | convbkmk -u > %D';
  $ps2pdf = 'ps2pdf %O %S %D';
  $pdf_mode = 3;
  if ($^O eq 'darwin') {
    $pvc_view_file_via_temporary = 0;
    $pdf_previewer = 'open -ga /Applications/Skim.app';
  } else {
    $pdf_previewer = 'xdg-open';
  }
}

コンパイルは様々なエンジンを使えるが、せっかくなのでlualatexを使う方法を説明する。 lualatexのコンパイルは以下のコマンドで行う。

$ latexmk -gg -pdflua <ファイル名>.tex
実行すると今の場所に<ファイル名>.pdfで出力される。

VScodeでLaTeXを扱う


参考: Visual Studio Code/LaTeX - TeX Wiki

Visual Studio Code(VSCode)は様々な言語に対応しているテキストエディタだが、 もちろんLaTeXにも対応している。
VS Codeでは拡張機能としてLaTeX Workshopをインストールする。 インストールした後にsetting.jsonに以下を追加する。 setting.jsonはまず右下の歯車マークから設定→右上のOpen setting(JSON)から開ける。

macOS/Linux

"latex-workshop.latex.tools": [
{
	"name": "latexmk",
	"command": "latexmk",
	"args": [
	 "-e",
	 "$lualatex=q/lualatex %O -synctex=1 -interaction=nonstopmode -file-line-error %S/",
	 "-e",
	 "$bibtex=q/upbibtex %O %B/",
	 "-e",
	 "$biber=q/biber %O --bblencoding=utf8 -u -U --output_safechars %B/",
	 "-e",
	 "$makeindex=q/upmendex %O -o %D %S/",
	 "-norc",
	 "-gg",
	 "-pdflua",
	 "%DOC%"
	]
}
]