[LaTeX] 導入->作業環境構築->きれいな資料用デフォルト設定まで

# はじめに
本記事は以下の方向けの記事となっています．

* LaTeX環境が自分のPC上に無く，新規に構築したい
* 詳細を理解せずにサクッと便利な編集環境を整えたい．
* 日本語資料の体裁を整えたい
 
以下の事項を一連の流れで扱います．

* LaTeXのwindows10へのインストール
* 日本語OpenTypeFontフォントの導入
* テキストエディタ・ビューワの導入
* 一般会議資料向けのドキュメント設定

なお，解説は最低限なので，必要に応じて参考URLなどを参照してもらえればと思います．

**2021/5/1 追記；TexLive2021で同様のことをやるとエラーが出ることを確認**
pdftexまわりだと思うが原因未特定．2020でやってください

### 環境
~~Windows 10 Pro (1909)~~
Windows 10 Pro (20H2)
TexLive2020

# LaTeXのwindows10へのインストール
いろいろな方法はあるが，TexLiveが楽．**現在の最新はTexLive2021であるが，ここではtexlive2020を用いる**
[こちら](http://www.tug.org/texlive/acquire-iso.html)の「download from a nearby CTAN mirror」から，texlive2020.isoファイルをダウンロードして実行する．Windows10ならばisoファイルをダブルクリックするだけで仮想ディスクとしてマウントされるので，ディスクの最初の階層にあるinstall-tl-windows.batをダブルクリックで実行．
インストールについても特に注意事項はなし．展開され，パソコンにインストールされるので待機．1時間ほど．
**※exeファイル" install-tl-windows.exe"（インターネットインストール）ではインストールに失敗したので非推奨．**

終了後はコマンドラインで```platex``` や ```latexmk```と打って実行されることを確認．

参考：https://texwiki.texjp.org/?TeX%20Live%2FWindows

# 日本語OpenTypeFontフォントの導入
フォントに特にこだわらない人は飛ばして問題なし．また，uplatexを使う場合も，デフォルトのフォントがそんなに見づらくないので，正直不必要．platex標準の日本語フォントは特にacrobat等で見づらくて気に入らなかったので，ここでは「源ノ」フォントを入れた．
まずGitHubから[源ノ明朝](https://github.com/adobe-fonts/source-han-serif/blob/release/SubsetOTF/SourceHanSerifJP.zip)，[源ノ角ゴシック](https://github.com/adobe-fonts/source-han-sans/blob/release/OTF/SourceHanSansJ.zip)フォントのダウンロード，圧縮ファイルを展開し，中身を以下のようにフォルダに突っ込む．

* 源ノ角ゴシックフォントファイル(*.otf)： {$TEXMFLOCAL}/fonts/opentype/adobe/sourcehansansjp/
* 源ノ明朝フォントファイル(*.otf)： {$TEXMFLOCAL}/fonts/opentype/adobe/sourcehanserifjp/
* CMapファイル(~JP-UTF16-H)： {$TEXMFLOCAL}/fonts/cmap/sourcehanjp/

環境変数「$TEXMFLOCAL」はここでTexLive2020のデフォルトなら，"C:\texlive\texmf-local\" である．また，コマンドラインに```kpsewhich -var-value=TEXMFLOCAL```と打つことで調べることもできる．
コピー後，```mktexlsr```とコマンドラインに打ち込み，**ls-Rを更新しておく**．

参考：https://text.baldanders.info/remark/2017/10/using-source-han-fonts-by-japanese-tex/

# エディタの設定（Visual Studio Code）
デフォルトでTexLiveによりインストールされる，TexWorksでOKという人は飛ばしてよい．または毎回コマンドラインでビルドするからいいよという奇特な人も不要．個人的には見やすい／使いやすいエディタで作業したいのと，新しいエディタが増えるのは避けたいため，何かしら自分にあう環境を構築すべきと思う．

ここではVisual Studio Code（[他の言語でも使用しているので](https://qiita.com/Nick_ut/items/9bf839f5612c54606348)）を用いたビルド環境の作成方法を述べる．
Visual Studio Code のダウンロードは[こちら](https://azure.microsoft.com/ja-jp/products/visual-studio-code/)．OSに合ったインストーラをダウンロードして実行すればOK．
ダウンロードが終了したら，画面左の"EXTENSIONS"タブから"LaTeX Workshop"をインストールする．これにだいたい必要な機能全部入っている．
次にsetting.jsonを開き，以下を書き込む．setting.jsonは，画面左下の歯車>Settings>画面右上のページマーク(open settings)で開く．これでコンパイラをuplatexに設定，また生成後に出る余分なファイルの削除ができる．レシピはptex2pdf→bibtex→ptex2pdf→ptex2pdfとした．

```json:setting
{
    "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", "_minted*", "*.nav", "*.snm", "*.vrb",
    ],
    "latex-workshop.latex.tools": [{
        "name": "ptex2pdf (uplatex)",
        "command": "ptex2pdf",
        "args": [
          "-l",
          "-u",
          "-ot",
          "-kanji=utf8 -synctex=1",
          "%DOC%"
        ]
      },
      {
        "name": "bibtex",
        "command": "bibtex",
        "args": ["%DOCFILE%"],
        "env": {}
      },
    ],
    "latex-workshop.latex.recipes": [
      {
        "name": "ptex2pdf (uplatex) *2",
        "tools": [
          "ptex2pdf (uplatex)","bibtex", "ptex2pdf (uplatex)", "ptex2pdf (uplatex)"
        ]
      },
    ],
    "latex-workshop.synctex.afterBuild.enabled": true,
    "latex-workshop.view.pdf.viewer": "tab",
    "explorer.confirmDelete": false,
    "latex-workshop.latex.autoClean.run": "onBuilt"
}
```

これで終わりなので，5分くらいでできる．かなり早い．英語がきつ人は拡張機能として，[Japanese Language Pack for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-ja)を入れるのもいいと思う．なお，注意点として，**設定が終わったら一度VS codeを再起動すること**．

VS codeの実行環境では，.texファイルが保存されるたびにコンパイルが行われる．つまりビルドしたいときは"ctl+s"でOK．ビルドされたファイルは右上の虫眼鏡のマークを押すか"ctl+alt+v"で確認できる．ビルドされて更新された場合も自動でビューワーが更新される．また，便利機能として，"ctl"を押しながらビューワー上の文書をクリックすることで該当部分のソースコードにカーソルを移動してくれる．

<img width="1000" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613158/ea0bc2c3-4225-c06a-0680-98ce28d005e3.png">
作業環境の図

参考①：[VSCode で最高の LaTeX 環境を作る](https://qiita.com/Gandats/items/d7718f12d71e688f3573)
参考②：[最速で最小構成のLaTeX環境をVSCodeに構築する](https://qiita.com/geek_shanshan/items/d2b6218bbd66e3f62497)

### Sublime Text 3 とSumatraPDFによるビルド環境
Sublime Textをメモ取りに使っているのもあって，これまで１年位はこれを使っていた．両方使った感じVisual Sutudio Codeのほうが楽なので，新規で考えるならおすすめしないが，Sublimeを常用している人はこちらで環境構築するのがいいのかもしれない．[こちら](https://gist.github.com/ishidur/e69ded2544ee1ad723ae7ee4fa497192)などを参考に行う．
また，ビューワーとしてAdobe readerなどを指定していると，開いているときに上書きできない問題が発生するので，sumatrapdfをこれ用にインストールしていた．

# 各種設定（プリアンブル）
ドキュメントのプリアンブルにいろいろ設定を打ち込む．uplatexでビルドしたいので，その指示を入れている．TexLive2020でインストールしたなら特に問題は出ないはず．

```tex
\documentclass[uplatex,a4paper,dvipdfmx]{jsarticle}
%~~ここがプリアンブル~~
\begin{document}
%~~文書~~
\end{document}
```

以下必要なパッケージを用いて調整していく．それぞれの役割について簡単なメモは各行に書いてある．

## フォント類の設定

```tex
\usepackage[expert, deluxe]{otf} % otfの読み込み
\usepackage[sourcehan]{pxchfon} % 標準和文フォントを源ノに
\renewcommand{\headfont}{\mcfamily\rmfamily} % 目次の中を明朝体で統一
\usepackage[T1]{fontenc} % 欧文フォントスタンダード
\usepackage{lmodern} % lmodernフォント
\usepackage[utf8]{inputenc} % 一部の特殊文字を読み込める
\usepackage{newpxtext, newpxmath} % 英字と数式のフォントを指定
% \usepackage{tgtermes,tgheros} % もし英文をTimesにしたいならこれにする
```

## 文書スタイルの調整
```tex
\usepackage{ascmac} % 文書整形パッケージ
\usepackage{layout} % 色々いじるときに必要？
\usepackage{indentfirst} % 段落の始めで強制的に字下げ
\usepackage{amsmath,amssymb} % 数式用パッケージ
\usepackage[dvipdfmx]{graphicx}
\usepackage[dvipdfmx]{color}
\usepackage{cite} % 単一のciteに複数文献入れられる様になる
\usepackage{fancyhdr} % ヘッダーを設定する
\usepackage{here} % 図を強制的にその位置に出す
\usepackage[top=20truemm,bottom=20truemm,left=20truemm,right=20truemm]{geometry} % ページの余白，若干狭め
\usepackage{titlesec} % 各種見出しの見た目を変更する
\titleformat*{\section}{\large\bfseries} % 節のサイズを調整
\titleformat*{\subsection}{\normalsize\bfseries} % 小節のサイズを調整
\titleformat*{\subsubsection}{\normalsize\bfseries} % 小小節のサイズを調整
%%% ↓節などにリンクを付けるかつリンクに赤枠をつけないようにする↓ %%%
\usepackage{ifluatex,ifxetex}
\ifnum 0\ifluatex 1\fi\ifxetex 1\fi>0
\usepackage[hidelinks,bookmarksnumbered=true,unicode=true]{hyperref}
\else
\usepackage[hidelinks,bookmarksnumbered=true,dvipdfmx]{hyperref}
\usepackage{pxjahyper}
\fi
```

## よく使うパッケージ
```tex
\usepackage{multicol} % 二、三段組を使えるようにする
\usepackage{siunitx} % SI単位表記用
\usepackage{url} % URLを表記する
\usepackage{bm} % 太字の斜体を記述する
\usepackage{comment} % 文書内に%でないコメントエリアを作る
\usepackage{pdfpages} % PDFを結合するなど
\usepackage{listings} % ソースコードをハイライトする
\newcommand{\todayd}{% 日付自動取り込みの設定
\the\year/{\ifnum \month < 10 0\the\month \else \the\month \fi}/%
{\ifnum \day < 10 0\the\day \else \the\day \fi}}
```

## 文書プロパティの設定

```tex
\title{\Huge 文書タイトル}
\author{名字 名前}
\date{\todayd}
%
%%% ヘッダー定義の変更 %%%%
\makeatletter
\def\ps@fancy{% ヘッダーで英語が大文字化するのを防ぐ
\def\sectionmark##1{\markboth{\ifnum \c@secnumdepth>\z@ \thesection\hskip 1em\relax \fi ##1}{}}%
\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne \thesubsection\hskip 1em\relax \fi ##1}}%
\ps@@fancy
\gdef\ps@fancy{\@fancyplainfalse\ps@@fancy}%
\ifdim\headwidth<0sp
\global\advance\headwidth123456789sp\global\advance\headwidth\textwidth
\fi
}
\makeatother
%%% ページスタイルの設定 %%%
\pagestyle{fancy}
  \rhead{\leftmark}
  \lhead{文書タイトル~~~\todayd}
  \cfoot{\thepage}
```

# 文書の出力
以下のようなコードでサンプルを出力してみた．画像の通りにpdfが作成されれば完了．

```tex
\documentclass[uplatex,a4paper,dvipdfmx]{jsarticle}
%%% フォント関係 %%%
\usepackage[expert, deluxe]{otf} % otfの読み込み
\usepackage[sourcehan]{pxchfon} % 標準和文フォントを源ノに
\renewcommand{\headfont}{\mcfamily\rmfamily} % 目次の中を明朝体で統一
\usepackage[T1]{fontenc} % 欧文フォントスタンダード
\usepackage{lmodern} % lmodernフォント
\usepackage[utf8]{inputenc} % 一部の特殊文字を読み込める
\usepackage{newpxtext, newpxmath} % 英字と数式のフォントを指定
% \usepackage{tgtermes,tgheros} % Timesにしたいならこれにする
%%% 文書の整形 %%%
\usepackage{ascmac} % 文書整形パッケージ
\usepackage{layout} % 色々いじるときに必要？
\usepackage{indentfirst} % 段落の始めで強制的に字下げ
\usepackage{amsmath,amssymb} % 数式用パッケージ
\usepackage[dvipdfmx]{graphicx}
\usepackage[dvipdfmx]{color}
\usepackage{cite} % 単一のciteに複数文献入れられる様になる
\usepackage{fancyhdr} % ヘッダーを設定する
\usepackage{here} % 図を強制的にその位置に出す
\usepackage[top=20truemm,bottom=20truemm,left=20truemm,right=20truemm]{geometry} % ページの余白，若干狭め
\usepackage{titlesec} % 各種見出しの見た目を変更する
\titleformat*{\section}{\large\bfseries} % 節のサイズを調整
\titleformat*{\subsection}{\normalsize\bfseries} % 小節のサイズを調整
\titleformat*{\subsubsection}{\normalsize\bfseries} % 小小節のサイズを調整
%%% 節などにリンクを付けるかつリンクに赤枠をつけないようにする %%%
\usepackage{ifluatex,ifxetex}
\ifnum 0\ifluatex 1\fi\ifxetex 1\fi>0
\usepackage[hidelinks,bookmarksnumbered=true,unicode=true]{hyperref}
\else
\usepackage[hidelinks,bookmarksnumbered=true,dvipdfmx]{hyperref}
\usepackage{pxjahyper}
\fi
%%%%%
%%% 他必要に応じて使われるべきもの %%%
\usepackage{multicol} % 二、三段組を使えるようにする
\usepackage{bm} % 太字の斜体を記述する
\usepackage{comment} % 文書内に%でないコメントエリアを作る
\usepackage{pdfpages} % PDFを結合するなど
\usepackage{listings} % ソースコードをハイライトする
\newcommand{\todayd}{% 日付自動取り込みの設定
\the\year/{\ifnum \month < 10 0\the\month \else \the\month \fi}/%
{\ifnum \day < 10 0\the\day \else \the\day \fi}}
%
%% 文書プロパティ設定
\title{\Huge 文書タイトル}
\author{名字 名前}
\date{\todayd}
%
%%% ヘッダー定義の変更 %%%%
\makeatletter
\def\ps@fancy{% ヘッダーで英語が大文字化するのを防ぐ
\def\sectionmark##1{\markboth{\ifnum \c@secnumdepth>\z@ \thesection\hskip 1em\relax \fi ##1}{}}%
\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne \thesubsection\hskip 1em\relax \fi ##1}}%
\ps@@fancy
\gdef\ps@fancy{\@fancyplainfalse\ps@@fancy}%
\ifdim\headwidth<0sp
\global\advance\headwidth123456789sp\global\advance\headwidth\textwidth
\fi
}
\makeatother
%
%%% ページスタイルの設定 %%%
\pagestyle{fancy}
  \rhead{\leftmark}
  \lhead{文書タイトル~~~\todayd}
  \cfoot{\thepage}
%
%%% ドキュメントの開始 %%%
\begin{document}
\maketitle
\thispagestyle{plain}
%
%%% ここから↓のみ変更すればOK %%%
%
\renewcommand{\abstractname}{} % もともとのAbstractタイトル表示を消している
\begin{abstract}
  \noindent{\large\bf 概要}\par
  \vspace{\baselineskip}
  ここは概要欄
  \vspace{\baselineskip}
  %
\end{abstract}
%
\setcounter{tocdepth}{3} % subsubsectionまで表示
\tableofcontents
% \listoftables % 表目次
% \listoffigures % 図目次
\section{節}
%
一番大きな枠
%
\subsection{小節}
%
二番目の枠
%
\subsubsection{少々節}
%
最小の枠
%
\newpage
\section{節}
%
一番大きな枠
%
\subsection{小節}
%
二番目の枠
%
\subsubsection{少々節}
%
最小の枠
%
\end{document}

\begin{comment}
メモ書きに使う
\end{comment}
```

|<img width="1000" alt="日本語用-1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613158/7f62dc46-0c1d-c012-d560-48a45def6232.png">|
|:-:|

|<img width="1000" alt="日本語用-2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613158/eb884d78-d918-8329-3383-9c3ba62c4e7c.png">|
|:-:|

# おわりに
これで終了です．TexLiveのインストールの待ち時間が一番時間がかかるので，気長に待ちましょう．それを除けば1時間もかからない作業だと思います．
Texの細かい設定はその都度ウェブで検索してもらえればと思います．
気が向いたら英語版資料体裁を追記しようと思います．