LoginSignup
35
32

[初心者]LaTeXのインストールから使い方までこれ一本!

Last updated at Posted at 2022-12-30

TeX Live 2024は2024/3/13にリリースされたましたが、インストール方法はおそらく変わりありません。当方の事情で遅れることになりますが、確認し次第更新します。

  • 僕はWindowsとLinux(Debian)しか持っていないので、その他(RedHat系Linuxとか、MacOS)については書いていません。(使い方に関しては変わりません。
  • PC詳しくわからない方でもわかるように書くつもりです。わかりにくかったりしたらコメントとかTwitterで言ってください。直します。
    あと、僕もまだ初心者なので、間違いもあるかもしれません。そんなときも言っていただければ直します。

はじめに(華麗に読み飛ばしていただいて可)

僕は今まで、文書とかほとんど作成してきませんでした。
高校でも、レポート書けって言われるのは学期間休業くらい。
そんな中LinuxとかJavaScriptとかPythonとかいじってると思うんです。

Microsoft WordとかGoogleドキュメントくっそ使いづれえ!!!

そもそもWYSIWIGが嫌いな僕からすると、コピペしたときにデフォルトで書式設定までついてくるのが世界一意味わからない。その上、なんか特殊な機能使うたびにリボンから機能を探さなきゃいけないのはだるい。

そんなこんなで、$\LaTeX$を使ってみようかな、と思ったのですが、

ネットの情報が古い上に色んなとこに散乱しててわかりづれえ!!!

$\TeX$とか$\LaTeX$自体が古いので、情報が古いのはまあ分かるんです。だけど、基本的な使い方まで散乱してるのはどうしたものかと。

マリー・アントワネットは言いました。「パンがなければケーキを食べればいいじゃない。」
僕は言いました。「記事がなければ自分で書けばいいじゃない。」(なにこのくだり

てなことでれっつごー。

目次

一応スムーズに読み進められるよう、ところどころには次に読むべきところのリンクを張ってありますが、なんせ記事量が膨大なので、目次をフル活用してください。

LaTeXとは

1984年にできた(らしい)論文やレポート、書籍などの組版をテキストベースで行うソフトウェアです。
(テキストベースとは、ほぼすべての設定をテキストファイルで行うこと、みたいな感じ。)
Microsoft Wordなどに比べて、とっつきづらい代わりに結構自由度の高い組版ができます。
学術機関ではこれがよく使われるらしいです。

もともと$\TeX$という数式組版ソフトウェアを拡張?したものなので、数式の組版に強いらしいです。

読み方は、「ラテック」とか「ラテフ」って言うらしいですが、「ラテック」っていう人みたことない。

書き方は、正式には$\mathrm{\LaTeX}$って書くんですが、一部の特殊な環境じゃないと書けないので、LaTeXって書くことのが多い。
この記事では、斜体を直すのが面倒なので、基本的に斜体のまんま書きます。(Qiitaで数式を書く仕組みでこの$\LaTeX$を書いていて、そのデフォルトが斜体)

$\LaTeX$単体では日本語を使えないので、一般的には日本語に拡張したp$\LaTeX$(古い)とか、それをUnicodeに対応させたup$\LaTeX$(まあまあ古い)を使います。
最近は、古い(u)p$\LaTeX$の代わりに、Lua$\LaTeX$やXe$\LaTeX$を使おう!っていう流れになってきています。こっちのほうがフォント設定が簡単だし。

この記事では、Lua$\LaTeX$を使う前提で進めます。

インストール

$\LaTeX$ディストリビューション(中身がほぼ同じだが異なる配布形態の奴ら。Linuxユーザーにはお馴染みだよね。)にはいくつかあるんですが、2022現在で一番使われてそうな$\TeX$Liveを使います。

なお、この記事では$\TeX$ Live 2022をインストールします。

毎年4月に更新されるみたいです。必要に応じて最新バージョンをインストールしましょう。古いバージョンとの共存はできるみたい。(まあ、一回アンインストールしてからでも損はない)

  • Windowsの方:このまま読み進めてください
  • LinuxなどUnixの方:LinuxやUnixに進んでください

目次に戻る

Windows

この章は、【大学生向け】LaTeX完全導入ガイド Windows編 (2022年) #1. LaTeXの導入 (texlive)に従います。

インストーラのダウンロード

Installing TeX Live over the Internetから、インストーラをダウンロードします。install-tl-windows.exeってやつですな。
それにしても、なんで全部文章で書くかなぁ。わかりづらいので、直ダウンロードリンク貼っときます。
直ダウンロード:install-tl-windows.exe  

もし「install-tl-windows.exeは一般的にダウンロードされてません」とか怒られたら(クリックで開く)

ブラウザによって違いますが、なんか詳細を見れそうなボタンを押して、「保存」とか「保持」とかのボタンを探してください。(微妙に違うけど)二回くらい似たようなことをする必要がある場合もあります。
下の画像はMicrosoftEdgeです。
image.png
↓右側を触るとこうなるので、チョンチョンチョンをクリックして、保存を押します。
image.png
↓出てきたやつの詳細表示を押して、保持するを選択します。
image.png

インストーラの実行

ダウンロードしたインストーラを実行します。そいで、「Install」を選択して「Next」を押します。
image.png

もっかい「Install」を押します。

すると、緑のバーがみるみるうちに進んで、右端にたどり着いて、終了...ならいいんですが、なんか爆走犬のウィンドウが開きます。
もうちょい待ちます。
image.png

数秒待つと、「TeX Live インストーラ 20xx」が開きますね。
image.png

ここで、「インストール」を押してもいいんですが、クソほど時間かかる上にめっちゃ場所を取ります。(俺はこれやっちゃって、インストールに5時間かかった)
時間と場所を節約しましょう。

  1. 高度な設定をクリック
    image.png

  2. 左下「選択したもの」のうち上の「スキーム」の「変更」を押してbasicを選択。
    image.png

  3. 下の「カスタマイズ」を押して左側から日本語と英語を選択。右側からLaTeX推奨パッケージを選択。
    image.png

最後に右下の「インストール」を押します。
何時間かかるかはわかりませんけど、まあまあ長いです。ほかのことでもしてましょう。

その他必要なパッケージのインストール

インストールが終わったら、スタートメニューから「TLshell TeX Live Manager」を探して開きます。(たぶんTeX Live 20xxフォルダの中に入ってる)

左上の「ファイル」>「リポジトリを読み込む」を押して、処理が終わったらポップアップを閉じます。

一番左のチェックボックスで「全て」を選択し(忘れがち)、画面中央の検索窓にlatexmkと入力します。
image.png

latexmkとlatexmk.win32両方に「ローカルのリビジョン」になんかしら数字が入っていれば、何もしなくてOK。
数字が入っていなければ、二つにチェックを入れて右の「選択項目をインストール」を押す。

2023.05.10追記
コメントで頂きましたが、このときにlualatex-mathもインストールしておかないと不具合が起こることがあるようです。インストールしておきましょう。

$\LaTeX$を使っていく中でなんかしらのパッケージや拡張機能が欲しくなったら、この要領で追加できます。

拡張子を表示させる

やっている人はすでにやっていますが、やってない人はやってない設定ですね。
エクスプローラーを開き、メニューの「表示」>「拡張子を表示」にチェックを入れる。
ファイル名の最後に何文字かのアルファベットが付いたと思います。Windowsではこれらをもとにファイルの種類を判別しています。
例えば、.txtならテキストファイル、.jpgとか.jpegならJPEG形式の画像。

PDFビューワのインストール・設定

$\LaTeX$を使って作成したPDFファイルを見るソフトをインストールします。
なにか好きなPDFビューワ(Adobe Acrobatなど)があればいいのですが、僕はSumatraPDFをおすすめします。
何故かと言うと、起動がめちゃくちゃ早いのと、SyncTeXといって、$\LaTeX$やら$\TeX$で更新したPDFをリアルタイムで反映する機能があるみたいなんです。
下記リンクからインストールしてください。
SumatraPDFダウンロード

それから、デフォルトでPDFを見るソフトを設定します。

  1. 適当なPDFファイルを右クリック、プロパティを選択してください。
  2. 中央よりちょい上の、「変更」(下画像の青くなってるボタン)を押して、設定したいPDFビューワを選択します。
    image.png

目次に戻る

LinuxやUnix

※Unixを使っている方は多少なりともPCに詳しいとみて、解説します。わからないことがあれば調べてください。まあ、僕に直接聞いてもらっても大丈夫です。

TeX Live - Quick install for Unixに従います。(ところどころ変えてたりするけどやってることは同じ)

aptとかyumで入れればいいんじゃない?と思うかもしれません。ただ、僕の環境でaptを使ってインストールしてみたところ、バージョンが2020で、ほかにもいろいろと不都合があったので、インストーラからインストールを強くお勧めします。

インストーラのダウンロード

GUI環境で行う場合、Installing TeX Live over the Internetからinstall-tl-unx.tar.gzを落としてきます。
Windows同様直リンク張っとくか。
直ダウンロード:install-tl-unx.tar.gz

CLI環境の場合、以下コマンドで同じファイルをダウンロードします。
見てればわかりますが、最も近いミラーサーバから落ちてきてますね。

wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

インストーラの実行

以下はCLIで操作します。

#tgzの解凍
tar -zxf install-tl-unx.tar.gz
#解凍先ディレクトリに移動
cd install-tl-*
#インストールを実行
sudo perl install-tl #--no-interaction オプションでfullスキームインストール(おすすめしない)

インストール画面が表示されますので、カスタムインストールをしていきます。そのまんまインストールしてもいいですが、ばちくそ時間かかるし鬼みたいに場所とります。

こんな画面です(クリックで開く)
======================> TeX Live installation procedure <=====================

======>   Letters/digits in <angle brackets> indicate   <=======
======>   menu items for actions or customizations      <=======
= help>   https://tug.org/texlive/doc/install-tl.html   <=======

 Detected platform: GNU/Linux on x86_64

 <B> set binary platforms: 1 out of 16

 <S> set installation scheme: scheme-full

 <C> set installation collections:
     40 collections out of 41, disk space required: 7685 MB (free: 242088 MB)

 <D> set directories:
   TEXDIR (the main TeX directory):
     !! default location: /usr/local/texlive/2022
     !! is not writable or not allowed, please select a different one!
   TEXMFLOCAL (directory for site-wide local files):
     /usr/local/texlive/texmf-local
   TEXMFSYSVAR (directory for variable and automatically generated data):
     /usr/local/texlive/2022/texmf-var
   TEXMFSYSCONFIG (directory for local config):
     /usr/local/texlive/2022/texmf-config
   TEXMFVAR (personal directory for variable and automatically generated data):
     ~/.texlive2022/texmf-var
   TEXMFCONFIG (personal directory for local config):
     ~/.texlive2022/texmf-config
   TEXMFHOME (directory for user-specific files):
     ~/texmf

 <O> options:
   [ ] use letter size instead of A4 by default
   [X] allow execution of restricted list of programs via \write18
   [X] create all format files
   [X] install macro/font doc tree
   [X] install macro/font source tree
   [ ] create symlinks to standard directories

 <V> set up for portable installation

Actions:
 <I> start installation to hard disk
 <P> save installation profile to 'texlive.profile' and exit
 <Q> quit

Enter command:

まずはインストールスキームを、fullからbasicに変更します。

  1. Sを入力、Enter
  2. basicスキームを選ぶのでdを入力、Enter
  3. Rでトップ画面に戻る

次に、basicスキームではインストールされないけど僕らには必要なパッケージを選択してインストールします。

  1. Cを入力、Enter
  2. すでにチェックが入っているものに加えて、
    1.pを入力してEnter(英語パッケージ)
    2.xを入力してEnter(日本語)
    3.Fを入力してEnter($\LaTeX$推奨パッケージ)
    4.Gを入力してEnter(Lua$\TeX$)(もしかしたら不要かも。未確認)
  3. Rでトップに戻る

最後に、Iでインストール開始です。

実行ファイルにPATHを通す

デフォルトでは、実行ファイルは/usr/local/texlive/20xx/bin/(マシンのアーキテクチャ)/に入っていますので、PATHを通します。
ここにPATHを通してもいいんですが、環境変数を汚染しないためのツールがあるのでこれをありがたく使わせてもらいましょう。

tlmgrは、正式名称をTeX Live managerといい、$\TeX$パッケージの管理をするコマンドです。
以下を実行すると、実行ファイルたちのシンボリックリンクがusr/local/binに張られます。

sudo /usr/local/texlive/20xx/bin/(マシンのアーキテクチャ)/tlmgr path add

(適宜読み替えてください)

必要パッケージのインストール

以下を実行します。

#tlmgrとその他パッケージのアップデート
sudo tlmgr update --self --all
#latexmkのインストール
sudo tlmgr install latexmk

2023.05.10追記
コメントで頂きましたが、このときにlualatex-mathもインストールしておかないと不具合が起こることがあるようです。インストールしておきましょう。

なお、tlmgrは、tlmgr guiを実行することで、上記のWindowsのようにGUIで操作もできるみたいです。(perl-tkがインストールされている必要がある)(適宜管理者権限をつけてください)(ちなみに僕はうまく行かなかったのでわかる方いたら教えて下さい)

PDFビューワのインストール

$\LaTeX$で作成したPDFを見るソフトをインストールします。
なんでもいいのですが、今回はevinceを入れます。
この記事でも、Linuxではevinceを使用するものとして説明します。

例:DebianやUbuntu

sudo apt install evince
  • このまま読み進めてください。

目次に戻る

latexmkの設定

この記事で説明するLua$\LaTeX$ではそんなにむずかしくはないのですが、(u)p$\LaTeX$などでは、PDFを作成するために、何回もコマンドを実行する必要があります。
それを簡単に行うためのツールが、latexmkです。TeX Liveをインストールした後に追加でインストール(or確認)したやつですね。

(u)p$\LaTeX$なんか使わんから必要ないと思うかもしれませんが、お偉いさんから渡される$\LaTeX$のテンプレートがp$\LaTeX$用だったりすることがあるみたいなんです。なので、設定しておきましょう。この記事もlatexmkを設定済みという前提で書いていきます。

設定は簡単です。好きなテキストエディタ(Windowsならメモ帳とか)に、以下のコードを貼り付けて、ホームディレクトリ(WindowsならC:\Users\ユーザー名\、Linuxなら/home/ユーザー名/のフォルダ)に、.latexmkrcって名前で保存するだけです。
ファイル名頭のドットを忘れずに!

あと、保存時に末尾に.txtが着いちゃう場合は、保存してから取り除いてください。

.latexmkrc
#!/usr/bin/env perl
# 先頭行は、Linux用のシバンなので、Windowsでは削除しても構いません。

# 通常の LaTeX ドキュメント用のコマンド
# 今回はpLaTeXを設定してありますが記事では使いません。
$latex = 'uplatex %O -kanji=utf8 -no-guess-input-enc -synctex=1 -interaction=nonstopmode %S'; 
# pdfLaTeX 用のコマンド 
$pdflatex = 'pdflatex %O -synctex=1 -interaction=nonstopmode %S'; 
# LuaLaTeX 用のコマンド 
$lualatex = 'lualatex %O -synctex=1 -interaction=nonstopmode %S'; 
# XeLaTeX 用のコマンド 
$xelatex = 'xelatex %O -no-pdf -synctex=1 -shell-escape -interaction=nonstopmode %S'; 
# Biber, BibTeX 用のコマンド 
$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'; 
$bibtex = 'upbibtex %O %B'; 
# makeindex 用のコマンド 
$makeindex = 'upmendex %O -o %D %S'; 
# dvipdf のコマンド 
$dvipdf = 'dvipdfmx %O -o %D %S'; 
# dvipd のコマンド 
$dvips = 'dvips %O -z -f %S | convbkmk -u > %D'; 
$ps2pdf = 'ps2pdf.exe %O %S %D'; 
  
# $pdf_mode ...PDF の作成方法を指定するオプション 
# 0: PDF を作成しない
# 1: $pdflatex で PDF を作成
# 2: $ps2pdf で .ps → PDF
# 3: $dvipdf で .dvi → PDF 
# 4: $lualatex で .dvi → PDF
# 5: xdvipdfmx で .xdv → PDF
$pdf_mode = 4; 
  
# PDFビューワ の設定 
# "start %S": .pdf の規定のソフトで表示(Windowsのみ)
# Linuxの場合、"evince %S" を指定してください
$pdf_previewer = "start %S";

コード内にも書きましたが、Linuxの場合は、PDFビューワとして "start" は使用出来ないので、 "evince" としてください。

ちなみに、%Sとは、latexmk実行時に指定したファイル名、%Oとは、latexmk実行時に指定したオプションのことです。

いろいろとカスタマイズのしようはありますが、とりあえずこれでやってみましょう。$\LaTeX$を早く使えるようにしましょう。
気になった方は、Googleとかで「latexmk」とかで調べるといっぱい出てきます。

  • このまま読み進めてください。

目次に戻る

試しに動かしてみる

上記のlatexmkの設定と同じように、sample.texって名前で好きな場所(ホームディレクトリの必要は無い)に保存してください。(どうしても末尾に.txtがついちゃうなら保存してから消す)

ほんで、保存した場所のパスを覚えといてください。(Windowsの場合、エクスプローラーでフォルダを右クリックして「パスをコピー」でコピーされる)

sample.tex
\documentclass{ltjsarticle}
\begin{document}

\title{わーいタイトルだっ\LaTeX }
\author{俺氏}
\maketitle
\section{見出しっ}
\subsection{小見出し!}
\paragraph{段落だー}
これはLua\LaTeX でやってます!端で改行されるし、うぇええええええええええええええええええええええええええい\\
強制改行もできます。
\end{document}

(中身は後で説明します)

そして、コマンドプロンプトやらPowerShellやらターミナルエミュレータやらでそのディレクトリ(フォルダ)に移動します。

コマンドプロンプトの開き方(Windows)(クリックで開く)

何通りかあるんですが、2つほど紹介します。

  • スタートメニューから、「コマンドプロンプト」を検索OR探し出して、クリックします。(PowerShellも同様)
  • Win+R を押して、出てきたウィンドウにcmdもしくはcmd.exeと入力
移動の仕方(クリックで開く) ここではWindowsを例にしていますが、Linuxでも同じです。 プロンプトに以下を入力します。
cd フォルダのパス

そして、Windowsではdir、Linuxではlsコマンドをうって、そこにsample.texがあることを確認します。

それから、プロンプトに以下のコマンドを打ちます。

lualatex sample.tex

さっきlatexmkの設定も行ったので、以下でもできます。

latexmk sample.tex

すると、よくわからんファイルがいくつか生成されたあとsample.pdfが生成されたと思います。開いてみましょう。
Screenshot 2022-12-25 23.27.03.png
やったね成功だっ!

  • エディタをインストールする方:このまま読み進めてください。
  • すでにVSCodeインストール済みの方:セットアップに進んでください。
  • 現在のエディタで十分な方:使い方に進んでください

※以下で導入するエディタを使い、以下で紹介する設定を行えば、いちいちコマンドを実行しなくてもボタン一つでPDF化できるので、おすすめです。
また、シンタックスハイライト($\LaTeX$コマンドなどの色が変わる)もついているので、メモ帳とは絶対違います。
Vim派の方、Vimという名のプラグインを入れればVimキーバインドが使えるようになります!
Atom派の方、VSCodeはAtomよりも起動が早いです!

目次に戻る

エディタの用意

ここでは、MicrosoftのVisual Studio Code(以下、VSCode)を使います。
VSCodeは、(多分)世界のプログラマが一番使ってるエディタです。拡張機能を追加することで、様々な機能が追加できます。
今回も、拡張機能を使って$\LaTeX$を使いやすくします。

VSCodeのインストール

  • Windowsの方:このまま読み進めてください
  • LinuxなどUnixの方:LinuxやUnixに進んでください。
  • 既にインストール済の方:セットアップに進んでください。

目次に戻る

Windows

Install Visual Studio Codeからインストールしてください。

目次に戻る

LinuxやUnix

Install Visual Studio Codeからパッケージをダウンロードしてきてください。

以下、Debianを例に説明します。CentOSなどの場合適宜読み替えたりしてインストールしてください。

ダウンロードしたディレクトリに移動して、以下コマンドを実行します。

sudo dpkg -i code_*.deb

多分これでインストールされます。

  • このまま読み進めてください。

目次に戻る

セットアップ

まずはインストールしたVSCodeを起動します。スタートメニューとかから起動してください。プロンプトから起動する場合は、codeコマンドです。

拡張機能の導入

日本語化拡張

まずは日本語化します。(任意)

初回起動時に日本語化パッケージインストールを勧められたら、それに従ってインストール・VSCodeの再起動を行ってください。

もし勧められなかったら、下画像のように、

  1. 左側ツールバーの積み木マーク
  2. 出てきた検索ボックスに「Japanese」と入力
  3. 画像のパッケージをインストール
  4. 再起動を勧められるのでVSCodeの再起動

image.png

LaTeX Workshop

次に、$\LaTeX$を簡単に使用するための拡張です。
上記日本語化拡張と同様に、LaTeX Workshop拡張機能を検索してインストールしてください。
image.png

このままではこの拡張機能は使えないので、設定を行います。
まずは設定を開きます。

  1. 左下の歯車を押して、設定を選択
    image.png
  2. 右上の丸で囲んだボタンを押す
    image.png
  3. 画像に書いた場所に、下記のコードを貼り付ける。
    このとき、すでに何がが書かれていたら、最後の項目の末尾に,を追加してから貼り付ける。
    image.png
// 和文を使うため、助詞、句読点、全角括弧などを区切り文字として登録する
    "editor.wordSeparators": "./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~? 、。「」【】『』()!?てにをはがのともへでや",

    // 以下、LaTeX Workshopの設定

    // LaTeXでビルドする際の設定を「Tool」「Recipi」の2種類設定する
    //   Tool ...1つのコマンド。料理で言うところの、「焼く」「煮る」などの操作かな。
    //   "latex-workshop.latex.tools" で定義。
    //   Recipe ...Tool を組み合わせて料理(つまりは文書)を作るレシピ。
    //   "latex-workshop.latex.recipes"で定義。
    //   デフォルトの操作は、1番最初に定義されたレシピになる(他のレシピも選択可)
    
    // Tool の定義
    "latex-workshop.latex.tools": [
      
        // latexmk によるlualatex
        {
          "name": "Latexmk (LuaLaTeX)",
          "command": "latexmk",
          "args": [
            "-f", "-gg", "-pv", "-lualatex", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-outdir=%OUTDIR%", "%DOC%"
          ]
        },
        // latexmk による xelatex
        {
          "name": "Latexmk (XeLaTeX)",
          "command": "latexmk",
          "args": [
            "-f", "-gg", "-pv", "-xelatex", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-outdir=%OUTDIR%", "%DOC%"
          ]
        },
        // latexmk による uplatex
        {
          "name": "Latexmk (upLaTeX)",
          "command": "latexmk",
          "args": [
            "-f", "-gg", "-pv", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-outdir=%OUTDIR%", "%DOC%"
          ]
        },
        // latexmk による platex
        {
          "name": "Latexmk (pLaTeX)",
          "command": "latexmk",
          "args": [
            "-f", "-gg", "-pv", "-latex='platex'", "-latexoption='-kanji=utf8 -no-guess-input-env'", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-outdir=%OUTDIR%", "%DOC%"
          ]
        }
    ],

    // Recipe の定義
    "latex-workshop.latex.recipes": [
        // LuaLaTeX のレシピ
        {
          "name": "LuaLaTeX",
          "tools": [
            "Latexmk (LuaLaTeX)"
          ]
        },
        // XeLaTeX のレシピ
        {
          
          "name": "XeLaTeX",
          "tools": [
            "Latexmk (XeLaTeX)"
          ]
        },
        // upLaTeX のレシピ
        {
          "name": "upLaTeX",
          "tools": [
            "Latexmk (upLaTeX)"
          ]
        },
        // pLaTeX のレシピ
        {
          "name": "pLaTeX",
          "tools": [
            "Latexmk (pLaTeX)"
          ]
        },
    ],

    // マジックコメント付きの LaTeX ドキュメントのビルド設定
    // 特に記事では扱わないが、いつか使うことを考えて書いとく。
    // 参考: https://blog.miz-ar.info/2016/11/magic-comments-in-tex/
    "latex-workshop.latex.magic.args": [
      "-f", "-gg", "-pv", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%"
    ],

    // 不要なファイルをクリーンアップする時の目印となる拡張子
    // 不要な一時ファイルや中間ファイルを自動削除する機能がある。
    "latex-workshop.latex.clean.fileTypes": [
        "*.aux", "*.bbl", "*.blg", "*.idx", "*.ind", "*.lof", "*.lot", "*.out", "*.toc", "*.acn", "*.acr", "*.alg", "*.glg", "*.glo", "*.gls", "*.ist", "*.fls", "*.log", "*.fdb_latexmk", "*.synctex.gz",
        // for Beamer files
        "_minted*", "*.nav", "*.snm", "*.vrb",
    ],

    // ビルド失敗した際の残存ファイルが以降のビルドに影響を与えることがあるため、
    // 残存ファイルを削除する設定
    "latex-workshop.latex.autoClean.run": "onBuilt",

    // PDFビューワの開き方。画面分割で開く。
    "latex-workshop.view.pdf.viewer": "tab",

    // LaTeXファイル保存時にPDFも更新するかどうか。
    // LuaLaTeXはビルドが遅いので、かえって煩わしいので無効化
    "latex-workshop.latex.autoBuild.run": "never",

    "[tex]": {
        // スニペット補完中にも補完を使えるようにする
        "editor.suggest.snippetsPreventQuickSuggestions": false,
        // インデント幅を2にする
        "editor.tabSize": 2
    },

    "[latex]": {
        // スニペット補完中にも補完を使えるようにする
        "editor.suggest.snippetsPreventQuickSuggestions": false,
        // インデント幅を2にする
        "editor.tabSize": 2
    },

    "[bibtex]": {
        // インデント幅を2にする
        "editor.tabSize": 2
    },

    // 使用パッケージのコマンドや環境の補完を有効化
    "latex-workshop.intellisense.package.enabled": true,

    // 作成したファイルを、直下の "out" フォルダへ出力
    "latex-workshop.latex.outDir": "out",

私はまだ確認できていませんが、コード内の-outdiroutput-directoryにしないと正常に動かないようです。
確認し次第修正します。

最後にVSCodeを再起動する。

テキスト校正くん

和文を編集する際に、文章な不自然な点を指摘してくれる拡張機能。
上記2つの拡張機能と同じょうに導入しておくと便利。

スニペット

スニペットとは、VSCodeでの、入力サジェストのようなものです。
$\LaTeX$文書のテンプレートを設定しておくと便利です。
1.画像のように、左下の歯車を押して、ユーザースニペットの構成を選択します。
image.png

  1. 出てきた入力ボックスにlatexと入力し、Enter
  2. latex.jsonが開くので、LaTeX Workshopの設定と同じ要領で、{}の中にとりあえず僕のテンプレートを貼っておきましょう。
    "latex":{
		"prefix": "latex",
		"body": [
			"\\documentclass[paper=a4paper,fontsize=10pt]{jlreq}",
			"\\usepackage{luatexja-fontspec}",
			"\\setmainfont{Harano Aji Mincho}",
			"\\setsansfont{Harano Aji Gothic}",
			"\\setmainjfont{Harano Aji Mincho}",
			"\\setsansjfont{Harano Aji Gothic}",
			"",
			"\\usepackage{graphicx}",
			"",
			"\\usepackage{amsmath,amssymb}",
			"\\usepackage{unicode-math}",
			"\\setmathfont{LatinModernMath-Regular}",
			"",
			"\\begin{document}",
			"",
			"\\title{${1}}",
			"\\author{名前}",
			"\\date{\\today}",
			"\\maketitle",
			"",
			"\\tableofcontents",
			"",
			"${0}",
			"",
			"\\end{document}",	
		],
		"description": "LuaLaTeX articleテンプレート"
	}

1番上の「latex」と、その下の「name」で指定されたところの「latex」はわかりやすい名前に変更しましょう。(このままでもいい)
prefixには、呼び出す時に入力する文字が入ります。
bodyには本文です。1行ごとにクォーテーションで区切られています。${1}とかは、表示された際にカーソルが置かれる位置です。Tabキーで数字順にたどっていきます。初期値の設定もできます。

VSCodeでの編集方法

まずは、以下の画像のように、左側のファイルマークを押してからフォルダを開くを追加してください。そうすると、左側に簡易的なファイルブラウザが開きます。
image.png

編集したいファイルをクリックすると開きますので、編集して、Ctrl+Sで保存です。
ファイルを新規作成する場合は、親フォルダの横にある新規作成ボタンを押すか、親フォルダを右クリックしてファイルの新規作成を選択します。

$\LaTeX$文書としてPDFにビルドする際は、左上の緑の再生ボタン(settings.jsonで1番上に定義したレシピが実行)、もしくは、左の$\TeX$ボタンを押して出てきたメニューから「Build LaTeX project」を展開し、実行するレシピを選択します。

あとはお好みなのですが、改行までが長い文章を書く場合、デフォルトでは自動で折り返されないのでめちゃ見づらいです。
Ctrl+Z、もしくは 表示>右端での折り返し を設定することで端で折り返されるようになります。

ちなみに、編集画面でCtrl+@を押すと、コマンドプロンプトとかPowerShellとかターミナルが下から生えてくるので、便利です。

  • このまま読み進めてください。

目次に戻る

使い方

以下のサンプルコードをもとに説明します。

sample2.tex
\documentclass[paper=a4paper,fontsize=10pt]{jlreq}
\usepackage{luatexja-fontspec}
\setmainfont{Harano Aji Mincho}
\setsansfont{Harano Aji Gothic}
\setmainjfont{Harano Aji Mincho}
\setsansjfont{Harano Aji Gothic}

\usepackage{amsmath,amssymb}
\usepackage{unicode-math}
\setmathfont{LatinModernMath-Regular}

\begin{document}

\title{タイトル}
\author{私 太郎}
\date{\today}
\maketitle

\tableofcontents

\part{これが部}
\section{これが節}
\subsection{これが小節}
\subsubsection{これが小小節}
\paragraph{これは段落}
\subparagraph{これこそが小段落}
こんな感じで文章構造を組むことができます。ちなみに、フォントを途中で変えることもできます。\gtfamily ここはゴシック体、\rmfamily This is serif, \sffamily This is sans-serif, \ttfamily This is monospaced.\rmfamily \mcfamily 事前に読み込んでいないフォントも読み込めます。\fontspec{BIZ UDP Gothic}\jfontspec{BIZ UDP Gothic}ここは、事前に読み込んでいない、BIZ UDPゴシックです。\rmfamily\mcfamily\bfseries{こんな感じで太字になります。}\mdseries 斜体とかは、めんどくさいのと僕がちゃんと理解してないので説明しません。あんまり斜体ってつかわないよね。\\
こんな感じで強制改行も行えます。

\section{特殊文字とか}
\LaTeX とかの特殊な書き方はこんなふうに表示できます。\\
音楽記号\sharp \ \flat とかもあります。

\section{数式も埋め込めます}
$y = x$みたいな感じで、行中に埋め込めますし、以下のように書くこともできます。\\

\begin{equation}
  \int_{a}^{a}f\left(x\right)dx = 0
\end{equation}

複数行の数式も書けます。$=$の位置を揃えることもできます。\\

\begin{align}
  \int_{1}^{2}\left(x^2 + 3x\right)dx + \int_{1}^{2}\left(x^2 - 3x\right)dx &= \int_{1}^{2}\left\{\left(x^2 + 3x\right) + \left(x^2 - 3x\right)\right\}dx \\
  &= \int_{1}^{2}2x^2dx \\
  &= 2\left[\frac{x^3}{3}\right]^2_1 = \frac{2\left(2^3 - 1^3\right)}{3} = \frac{14}{3}
\end{align}

\end{document}
出力結果(クリックで開く)

image.png
image.png

用語

コマンド

$\LaTeX$にはコマンドと言う概念があります。これは、文字をただ出力するだけではなく、特殊な動作をさせるためのものです。\から始まるやつです。上記のサンプルコードに大量に入ってますね。

引数

コマンドに渡すメインの値です。英語とかで言う、目的語にあたります。コマンドの後ろの{}の中に書きます。

オプション

コマンドの動作を拡張するためにコマンドに渡す値です。コマンドの後ろの[]の中に書きます。

ちなみに、引数の{}とオプションの[]はどっちが先でも問題ないです。

パッケージ

純粋な$\LaTeX$(ここではLua$\LaTeX$)だけだとできることには限界があります。そこで、機能を追加するためにパッケージを読み込みます。

環境

\beginコマンドから\endコマンドまでの間。例えば、document環境(出力内容を書く範囲)とか、equation環境(改行の入らない数式の範囲)等があります。

プリアンブル

document環境よりも前の、ドキュメントに出力されない範囲です。設定などを書きます。
HTMLでいう、headタグにあたります。

コマンド解説

\documentclass{クラス}

一番上に書いてあるやつですね。
これは、この文書の種類を指定する、必要不可欠なコマンドです。引数に指定したクラスファイルというもの(拡張子は.cls)を読み込んでるらしいです。詳しくは知らん。
Lua$\LaTeX$でデフォルトで指定できるものでよく使うのは主に以下です。

引数 どんなクラス?
ltjsarticle article形式。基本的にこれ。
ltjsreport report形式。長い文書なのかな?部(part)と節(section)の間に章(chapter)という文章構造が加わる。
ltjsbook book形式。製本向け。奇数ページと偶数ページでレイアウトが変わる。
jlreq 日本語組版処理の要件を満たすためのクラス。article,report,bookは引数で指定。

p$\LaTeX$ではこれらのltjsが抜けたもの、up$\LaTeX$ではltが抜けたものを使用します。
縦書きの場合、ltjsltjtにしましょう。縦中横を使う部分は\hbox{\yoko 文字}とします。縦書きに関しては以下サイトがわかりやすかったです。

jlreqでの縦書きはtateオプションを渡します。(後述)
なお、このサンプルコードではjlreqを指定しています。

これらのクラスに対して指定できるオプションとしては以下があります。

オプション どんなオプション?
oneside 奇偶ページのレイアウトを同じにする。articleとreportのデフォルト。
twoside 製本用に、奇偶ページのレイアウトを対称にする。bookのデフォルト。
onecolumn 一段組。
twocolumn 二段組。
titlepage タイトルで1ページ使う。report,bookのデフォルト。
notitlepage タイトルで1ページ使わない。articleのデフォルト。
draft 用紙サイズを超えてはみ出す部分がある場合マーク
final draftしない。
landscape 紙を横長に使う
10pt,11pt,12pt デフォルトの文字サイズ(jlreq以外)
a4paper,a5paper,b4paper,b5paperなど 紙サイズの設定(jlreq以外)

jlreqの場合は以下のオプションを使います。(ちなみにデフォルトはarticle形式)

オプション どんなオプション?
report report形式にする。
book book形式にする。
paper=(紙サイズ) 紙サイズの設定。a4paperなどでa,b,c(bはISO配列)で0~10まで指定可能。JISのbを指定する際はb5jのようにする。
fontsize=(フォントサイズ) フォントサイズ。デフォルトは10pt
tate 縦書きにする。縦中横を使う部分は\tatechuyoko{文字}

jlreqに関しては、公式ドキュメントがわかりやすいから読んで見てください。

\usepackage{読み込むパッケージ}

パッケージの読み込みをします。ここでは、luatexja-fontspecamsmath,amssymb,unicode-mathを読み込んでいますね。画像を埋め込むならgraphicxとか読み込みます。(画像埋め込みに関してはこの記事には書きません。)

luatexja-fontspec

フォント設定を細かく行うために読み込みます。もともと欧文用のfontspecパッケージがあったものを日本語用に拡張したもので、内部でfontspecを読み込んでるっぽい。
なお、これをプリセットにしたものとして、luatexja-presetってのがあります。詳しくは公式ドキュメント(luatexja-ja.pdf)読んで。(ただでさえ長くなりそうな記事に詳しくは書けない。)

amsmath,amssymb

AMS(アメリカ数学会)が開発した、なんか数式書くのにいいやつみたいです。(よくわかってないけど便利だから使う)
後述しますが、複数行の数式に使われるeqnarray環境はサポートされていないみたいです。代わりにalign環境を使います。

unicode-math

数式文字を、普通の文字のフォントの切り替えではなく、Unicodeの数式用の文字コードを使用する。
何がメリットかよくわかってない。

\set~font{フォント名}

fontspecパッケージのコマンド(\setmathfontだけはunicode-mathの)。後述しますが、文書中でフォントを指定するときのデフォルトとして認識されます。
なお、Lua$\LaTeX$で使用できるフォントは、コマンドプロンプトとかでluaotfload-tool --list *で一覧で見れます。

\set~fontコマンド 文書中で使うときのコマンド 説明
\setmainfont \rmfamily/\textrm 欧文セリフ体
\setsansfont \sffamily/\textsf 欧文サンセリフ体
\setmonofont \ttfamily/\texttt 等幅フォント
\setmainjfont \mcfamily/\textmc 和文明朝体
\setsansjfont \gtfamily/\textgt 和文ゴシック体
\setmonojfont \ttfamily/\texttt 和文等幅フォント
\setmathfont 数式フォント

サンプルコードでは全部原ノ味フォントにしてますが、これは僕がWindowsとLinux両方で問題なく認識されてかつわかりやすいものにしようとした結果です。
Windowsなら、欧文セリフ体はTimes New Roman、サンセリフ体はArialがよく使われますね。

\begin{環境名} \end{環境名}

数少ない、閉じる必要があるコマンドです。
環境と呼ばれる、範囲を設定します。
上述しましたが、document環境は、出力する内容を書く環境、equationやalignは数式を書く環境です。
数式の環境については後述します。documentに関しては、これ以上でも以下でもないけど重要な環境です。本文はdocument環境の外に書くと出力されません! HTMLでいう、bodyタグにあたる環境です。

\title{タイトル} \author{名前} \date{日付}

タイトル用に各項目を設定します。\todayコマンドを\dateコマンドの引数にすれば自動で今日の日付が入ります。

\maketitle

上記で設定したタイトルたちを、タイトルとして出力します。これがないと出力されません!!

\part{} \section{} \subsection{} \subsubsection{} \paragraph{} \subparagraph{}

それぞれ、章、節、小節、小小節、段落、小段落を設定します。引数には項目名が入ります。
report形式ならpartとsectionの間にchapterも使えます。

\rmfamily \sffamily \ttfamily \mcfamily \gtfamily

fontspecのコマンドです。フォントを途中で変更するタグです。\set~font{フォント名}のコマンドで設定したフォントを呼び出します。

引数を指定せずに、\rmfamilyのように使うと、そのコマンド以降のすべてのフォントが変わります。
引数を指定して、\rmfamily{文字列}のように使うと、引数の部分だけフォントが変わります。

\rmfamilyなどの代わりに\textrmのようなコマンドも使用できます。
詳しくは\set~font{フォント名}の項目を参照してください。

なお、欧文フォントだけ宣言しても、和文フォントは変更されません。逆も然りです。引数指定で書く場合はこのようになりますね。

\sffamily{\gtfamily{日本語とEnglishの混ざった文}} %引数の部分だけサンセリフ・ゴシックに設定

\fontspec{フォント名} \jfontspec{フォント名}

fontspecのコマンドです。プリアンブルで指定していないフォントを指定します。
\fontspecは欧文用、\jfontspecは和文用です。
大まかな使い方は\rmfamily(前項)などと同じです。

\bfseries \mdseries

文字の太さを変更します。大まかな使い方は\rmfamily(前々項)などと同じです。

コマンド 説明
\bfseries/\textbf 太字
\mdseries/\textmd 普通の太さ

似たようなものに、斜体の設定もあります。一応対応表は載せておきますが、詳細な設定は書きません。
もともと斜体がないフォントを擬似的に斜体にする設定が、僕もよく理解できていないので。

コマンド 説明
\upshape/\textup 直立体
\itshape/\textit イタリック体(装飾付き斜体)
\slshape/\textsl スラント体(ただの斜体)
\scshape/\textsc スモールキャピタル(小文字を小さい大文字で表現)

\\(バックスラッシュ2つ)

強制改行。
文書中で普通に改行しても改行として認識されません。ですので、行末に\\をつけることで強制改行ができます。

2022.12.31追記
Twitterでご指摘いただきました。
\\での強制改行は基本的に数式や表の中で使うようです。
通常の文章では、主に段落分けを使うようにしましょう。
段落分けには、各段落の間に空行を挟みます。もしくは行末に\parを挟んでもいいようです。(あまり使わない)

第1段落第1段落第1段落第1段落
%(空行)
第2段落第2段落第2段落第2段落…

特殊文字

\LaTeX\TeXと入力すると、"$\LaTeX$"や"$\TeX$"のような出力になります。
他にも、\int_{b}^{a}で$\int_{b}^{a}$のように、インテグラルを書けたり、\frac{2a}{3}で$\frac{2a}{3}$のように、分数を書けたりするんですが、詳細は数式に使うコマンドの項目で説明します。

\ (バックスラッシュ+スペース)

スペースを挿入します。サンプルコードでは、\sharp\flatの間に挟まっています。地味っ
普通にスペースを挿入しても認識されないときとかに使います。

$~$(ドル記号で囲む)

$で囲むことで、インライン(行中)に数式を埋め込めます。

数式の書き方

なんといっても$\LaTeX$の強みといえば、数式組版!

数式を書く環境

数式を書く環境は、上述のインライン数式や、equation環境、eqnarray環境、align環境、alignat環境などがあります。

以下サイトがわかりやすかったです。

ちなみに、各環境名の後ろに*をつけると、(align*など)数式番号がつかなくなります。

インライン数式

$や、\( \)で囲みます。

equation環境

\begin{equation}から\end{equation}までの間です。
一行だけの数式を書くのに使います。

eqnarray環境

\begin{eqnarry}から\end{eqnarry}までの間です。
複数行の数式を揃えて書くことができます。
amsmathでは非推奨です!amsmathを使う際は以下のalignをつかいましょう!

=の位置を揃える数式を書く際は以下のように、&で囲みます。

\begin{eqnarray}
    a &=& b\\
    b &=& c\\
    a &=& c
\end{eqnarray}
\begin{eqnarray}
    a &=& b \\
    b &=& c \\
    a &=& c \\
\end{eqnarray}

align環境

\begin{align}から\end{align}までの間です。
amsmathを使って複数行の数式を書くには基本的にこれを使いましょう。

=を揃えるには、&を前に置きます。
このとき、奇数番目の&は位置を揃えるため、偶数番目はタブ(数式を横並べにするときの区切り。これがないとどの列に揃えればいいかわからなくなってしまう)を表します。

\begin{align}
    a &= b & x &= y & \alpha &= \beta\\
    b &= c & y &= z & \beta &= \gamma
\end{align}
\begin{align}
    a &= b & x &= y & \alpha &= \beta\\
    b &= c & y &= z & \beta &= \gamma
\end{align}

alignat環境

\begin{alignat}から\end{alignat}までの間です。
上述align環境で、偶数番目の&の位置にスペースが空かない環境です。
方程式の変数部分を揃えるのに便利です。
\beginの第二引数に、 (各行の&の個数)/2 +1 (小数点以下繰り上げ)を指定します。

\begin{alignat}{2}
  10 & x+{} & 2 & y=20 \\
  5 & x+{} & & y=10
\end{alignat}
\begin{alignat}{2}
  10 & x+{} & 2 & y=20 \\
  5 & x+{} & & y=10
\end{alignat}

なお、このコードの$+$のあとの{}は、この$+$を二項演算子として扱うためのものです。
単項演算子("$-x$"とかの"$-$")と、二項演算子("$x-y$"とかの"$-$")は意味が違いますよね。前後の空白の空き方も違います。
基本的に$\LaTeX$ではそれなりに使い分けてくれますが、二項演算子を単項演算子と解釈される場合があります。
そんな時は、演算子を数字や変数と{}で挟むことで、二項演算子として認識させることが出来ます。

flalign環境

align環境を、左右揃えにしようとする環境です。複数の数式を横並べにしようとするとめっちゃ左右に引き離されます。

gather環境

中央揃えにする環境です。

multline環境

一つの数式を複数行に書く環境です。
先頭行は左端、最終行は右端に揃うようになります。

\begin{multline}
    a+b+c+d+e+f+g+h+i+j+k+l\\
    +m+n+o+p+q+r+s+t+u+v+w+x+y+z\\
    +A+B+C+D+E+F+G+H+I+J+K+L+M\\
    +N+O+P+Q+R+S+T+U+V+W+X+Y+Z
\end{multline}
\begin{multline}
    a+b+c+d+e+f+g+h+i+j+k+l\\
    +m+n+o+p+q+r+s+t+u+v+w+x+y+z\\
    +A+B+C+D+E+F+G+H+I+J+K+L+M\\
    +N+O+P+Q+R+S+T+U+V+W+X+Y+Z
\end{multline}

数式に使うコマンド

{}(波括弧だけ)

厳密にはコマンドじゃないけど、何気に大切なコマンドです。
これは、なにもない文字を意味するコマンドです。
え?なんのためにあるのかって?何もないところに対して何かをしたいときに使います。

すでに上で書いていますが、例えば、+を単項演算子として使うためには、数字や変数で挟む必要があります。ただ、何らかの理由で数字や変数以外のものが隣に来てしまうときに、{}で擬似的に挟むことで解決することができます。

他にも、すぐ下の項に書きましたが、下付き文字を前につけるときに、その下付き文字をつける文字としてこれを指定したりします。

上付き文字・下付き文字

単に、x^2で$x^2$、a_1で$a_1$となります。

順列(パーミテーション)や組み合わせ(コンビネーション)のように、文字の前に下付き文字を付ける場合は{}を使います。
例えば、{}_nP_rとすれば、${}_nP_r$となります。

記号

コマンド 出力 コマンド 出力
\leq $\leq$ \geq $\geq$
\sim $\sim$ \hat{x} $\hat{x}$
\bar{x} $\bar{x}$ \tilde{x} $\tilde{x}$
\leftarrow $\leftarrow$ \rightarrow $\rightarrow$
\longleftarrow $\longleftarrow$ \longrightarrow $\longrightarrow$
\times $\times$ \div $\div$
\neq $\neq$ \infty $\infty$
\therefore $\therefore$ \because $\because$

ギリシャ文字

\piとすると$\pi$となります。
\Piとすると$\Pi$となります。

\alphaとすると$\alpha$と出力されます。
しかし、\Alphaとしても$A$とはなりません。アルファベットと同じ形のときは普通にアルファベットを使います。

級数・和のシグマ

\sum_{k=1}^{n}k

\sum_{k=1}^{n}k

となります。

積分記号のインテグラル

不定積分のインテグラルの場合、\intで$\int$となります。
定積分のインテグラルは、\int_{b}^{a}で$\int_{b}^{a}$となります。

平方根のルート

\sqrt{2}で$\sqrt{2}$となります。

単位などでローマン体を使う

基本的に数式内では文字はイタリック体になります。単位などを表すためにローマン体を表すには\mathrm{}を使います。
27x\mathrm{\, cm}
Screenshot_2022-12-31-22-19-37-007-edit_com.google.android.apps.docs.jpg
となります。
\, cmで細スペース+単位 を表現)

分数

\frac{a}{b}で$\frac{a}{b}$となります。

対数のlog・ln

\log_2 xで$\log_2 x$
\ln xで$\ln x$となります。

括弧・絶対値

単に( )[ ]| |で囲みます。
ただ、{}はコマンドの引数を指定するものと混同しないように、\{ \}を使います。

括弧の大きさの自動調整

括弧の直前に\left\rightをつけることで大きさが自動で調整されます。

\left\{\frac{x}{2}\right\}
\left\{\frac{x}{2}\right\}

数式番号の手動指定

行末に\tag{1.1}と指定すれば、

y=ax+b \tag{1.1}

のように指定できます。

おわり

書くの ぴよぴよ🐤 た。

使い方に関しては、ここに書いたこと以外のこともめっちゃできるんですが、基本的にはこんなかんじですかね。
気になったらググってみてください。僕も初心者なんでよく知りません。

何かあれば今後も追記していきます。
書き忘れとか語弊、間違いなどがあれば気軽に教えて下さい...

35
32
8

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
32