日本語環境のためのLyX(TeXをグラフィカルに編集するためのソフト)の初期設定

#はじめに
TeXを使用すると、場合によってはWordよりも文書を綺麗に仕上げられるのですが、コマンドのせいで文書がわかりづらく、書きづらく、仕上がりがわかりづらいです。[LyX](http://www.lyx.org/)というソフトを使用すると、ある程度Wordのような感覚で書けます。しかし、これは日本人にとってはツンデレであり、最初の導入部分が曲者でたやすくはできません。そこで、この記事ではその部分をなるべく詳しく解説します。基本的には[TeXWiki](https://texwiki.texjp.org/LyX)の内容にもとづいています。

#環境構成
##ダウンロード
Windows・Macの場合は[公式ダウンロードページ](http://www.lyx.org/Download)からバイナリをダウンロードします。Windowsの場合は**先にTeXLiveまたはW32TeXを、Linuxの場合はTeXLiveを、Macの場合はMacTeXまたはTeXLiveを先にインストールしてください。**その後、Installerの方(Bundleではない)をインストールします。Linuxの場合、パッケージでインストールすると場合によっては**パッケージ版のTeXLive(日本語環境は含まない)を抱き合わせでインストールされます。最新版のTeXLiveを使用したい場合は予めTeXLiveのダミーパッケージ及び最新版のTeXLiveを先にインストールしてください。また、ディストロによってはLyX自体が古いことがあります。**その場合は[公式ダウンロードページ](http://www.lyx.org/Download)からソースコードをダウンロードしてソースビルドします。

##(Windowsのみ)ホームディレクトリの変更
[以前書いた記事](http://qiita.com/Tats_U_/items/01d48eb70a8b359b0d95)から転載します。
>Windowsでユーザディレクトリが日本語の場合は環境構成が上手く行かないので以下の方法で変えます。(Windows 8.1の場合)
>
1. まず、Win+x→pなどでコントロールパネルを開きます。
2. カテゴリ表示になっている場合は「ユーザアカウントとファミリーセーフティ」すぐ下の「アカウントの種類の変更」を選択します。そうでない場合は「ユーザアカウント」を選択してから「別のアカウントの管理」を選択します。
3. 「PC設定で新しいユーザを追加」を選択します。
4. 「アカウントの追加」を押し、「Microsoftアカウントを追加せずにサインインする」→「ローカルアカウント」を選択します。
5. ユーザ名・パスワードを適当に入力します。
6. 新しいユーザが作られます。このユーザは一時的なもので、設定が終わったら削除します。
7. コントロールパネルに戻り、作成したユーザを選択し、「アカウントの種類を変更」を選択します。
8. 「管理者」を選択し、「アカウントの種類を変更」ボタンを押します。
9. 一旦ログアウトして新しく作成したアカウントでログインします。(セットアップを行うので結構時間がかかります)
10. レジストリエディタを開きます。(Win+r→regeditと入力)
11. 「`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList`」にアクセスします。
12. そのサブキー(ディレクトリ(？)の下)で「現在の自分のユーザディレクトリへのパスがデータとなっている`ProfileImagePath`という名前のキー」が見つかると思います。それを変更します。変更後の名前は日本語など非ASCII文字を含まないようにします。
13. 並行して、`C:\Users`直下にある自分のユーザディレクトリの名前を先ほどと同じ名前に変えます。
14. 念のため、元のディレクトリ名でジャンクションと呼ばれるリンクの一種を追加します。まずエクスプローラでUsersフォルダを開いている状態にし、Shiftキーを押しながら何もないところで右クリックし、「コマンドウインドウをここで開く(W)」を選択します。
15. コマンドプロンプトが開くので、「`mklink /J (変更前のディレクトリへのパス) (変更後のディレクトリへのパス)`」と入力します。
16. これで作業は終了なのでログアウトし、元のユーザで再びログインします。
17. 再びコントロールパネルからユーザの設定のことを開き、さっきまでログインしていたユーザを選択し、削除をします。ドキュメントファイルなども残らず抹消しましょう。
>
これで変更ができたと思います。(レジストリもいじるので万全を期してはいますが自己責任で！必要に応じてレジストリのバックアップは取っておきましょう)後はLyXを開き、環境構成を行いましょう。

追記: 13でフォルダ使用中と言われて変更できない場合は一回ログアウトして同じ一時アカウントで再ログインするといいでしょう。

##ImageMagickのダウンロード
画像として貼り付けたPDFなどをプレビューするために必要です。
[公式のダウンロードページ](http://www.imagemagick.org/script/binary-releases.php)からパッケージをダウンロードしてインストールするかソースコードをダウンロードしてソースビルドします。Linuxの場合、OSのリポジトリからパッケージをインストールしても構いません。むしろそこまで最新版が必要というわけでもないのでこちらを推奨します。
#全体設定
メニューバーの「ツール」をクリックし、出てきたメニューの「設定」をクリックします。出てきた画面で次のような設定を行います。
<dl>
  <dt>操作性 > 画面フォント</dt>
  <dd>適当な日本語フォントにします。ローマン体・サンセリフ体の欄は個人的には游ゴシック・明朝またはIPAexゴシック・明朝がおすすめです。タイプライタ体はRicty(Unix系)かMyrica M(Windows)がおすすめです。</dd>
  <dt>出力 > LaTeX</dt>
  <dd>
    <dl>
      <dt>LaTeXフォントエンコーディング</dt>
      <dd>チェックボックスのチェックを入れて、その横の欄に<code>T1</code>と入力します。</dd>
      <dt>Bibliography generation > 処理子</dt>
      <dd>任意設定にして、すぐ下のコマンドを「<code>upbibtex</code>」にします。(LuaLaTeX・XeLaTeX用)</dd>
      <dt>Bibliography generation > 日本語処理子</dt>
      <dd><code>upbibtex</code>に修正します。(pBibTeXを使用するなら不要)</dd>
      <dt>Index generation > 処理子</dt>
      <dd>任意設定にして、すぐ下のコマンドを「<code>mendex -U</code>」にします。(LuaLaTeX・XeLaTeX用)</dd>
      <dt>Index generation > 日本語処理子</dt>
      <dd><code>mendex</code>を<code>mendex -U</code>に直します。(文字コードがUTF-8以外なら不要)</dd>
    </dl>
  </dd>
  <dt>ファイル処理 > ファイル変換子</dt>
  <dd>
    <dl>
      <dt>LaTeX (pLaTeX) -> DVI</dt>
      <dd>変換子を「<code>uplatex</code>」に、追加フラグを「<code>latex=uplatex</code>」に修正します。(upLaTeXではなくpLaTeXを使用する場合は不要)</dd>
      <dt>LaTeX (LuaTeX) -> PDF (LuaTeX)</dt>
      <dd>通常はこのままですが、LuaJITLaTeXを有効にしている場合(<a href="https://oku.edu.mie-u.ac.jp/~okumura/texwiki/?LuaJITTeX">設定方法</a>)は、変換子を「<code>luajittex --fmt=luajitlatex.fmt</code>」に修正します。(追加フラグはそのままにします)</dd>
    </dl>
  </dd>
  <dt>ファイル処理 > ファイル形式</dt>
  <dd>
    <dl>
      <dt>既定の出力形式 > TeXフォント使用時</dt>
      <dd>「PDF (pdfdvim)」を選択します。</dd>
      <dt>既定の出力形式 > TeXフォント使用時</dt>
      <dd>「PDF (XeTeX)」もしくは「PDF (LuaTeX)」を選択します。</dd>
    </dl>
</dl>
#文書の設定
日本語文書を扱うのに適しているLaTeXの種類は(u)pLaTeX・LuaLaTeX・XeLaTeXの3つがあります。特徴と設定方法(文書→設定)を以下に示します。
##(u)pLaTeX
###特徴
**日本で最も使用者が多く、この3つの中ではもっとも昔からあり、安心感があります。**出力も高速で、ルビ・縦書きにも対応しています。さらに、ただし、プログラムリストに日本語を含めるには外部パッケージ(jlisting)が必要で、プログラムの一部だけを出力といったことができないと思います。
###事前準備
プログラムリストに日本語を含める場合にはjlistingというパッケージが必要です。しかし、これはTeXLiveやW32TeXには付属していません。以下のURLを参考にダウンロード・インストールしてください。
http://mytexpert.osdn.jp/index.php?Listings
TeXLiveをインストールしているLinuxでroot権限がある場合は、パスの`texmf-local/`までのところを

```
/usr/local/texlive/texmf-local/
```

に、root権限がない場合は、シェルで

```bash:Bash
kpsewhich -var-value TEXMFHOME
```

と打って出てきたディレクトリに読み替えてください。

###設定
####文書クラス
日本語Article (jsarticle)を選択します。Class optionsの任意設定の欄はuplatexと入力します(pLaTeXを使用する場合は空欄)。グラフィックドライバはDVIPDFMxを選択します。
####フォント
Times系・Helvetica系のフォントに変えるとき、ローマン体の欄を「TeXGyre Termes」または「Times Roman」、サンセリフ体の欄を「TeXGyre Heros」または「Helvetica」、数式の欄を「Times Roman (New TX)」とします。タイプライタ体をCourier系にする場合は「TeXGyre Cursor」とします。ここにないフォントパッケージを使用したい場合はそのままにしておきます。
####言語
言語のプルダウンメニューで「日本語」を選択します。また、文字コードのラジオボタンをその他→「日本語(pLaTeX) (UTF-8)」を選択します。(pLaTeXの場合は別の文字コードにしなければならない場合あり)pLaTeXを使用する場合、言語パッケージはなしにすると確実です。upLaTeXの場合は自動のままでも構いません。(なしでも構いません)
####LaTeXプリアンプル
タイプライタ体としてInconsolataを使用し、日本語を含むプログラムをプログラムリストに書く場合の設定です。

```latex
\usepackage{jlisting}
\usepackage[T1]{fontenc}
\usepackage{inconsolata}
```

##LuaLaTeX
###特徴
**他の2つと比べると出力がかなり遅いです。**しかし、ルビ・縦書きにも対応しており、プログラムリストに日本語を含めても大丈夫(ただし日本語部分はRictyなど日本語対応のフォントを使用していてもサンセリフ体に強制的になる)です。**また、源ノ角ゴシック・RictyなどOSにインストールされているフォントを使用することができます。**欧米でスタンダードなpdflatexの後継であり、スクリプト言語の1つであるLuaを組み込むことができます。一応DVIの出力も可能ですが、基本的にはPDFを直接出力します。
###事前準備
LuaTeXではドキュメントクラスとして`ltjsarticle`(もしくは`bxjsarticle`、ただしこちらはXeLaTeXのところで解説)を使用しますが、これはLyXではレイアウトが用意されていません。Unix系でroot権限があり、LyXをパッケージでインストールした場合は次のコマンドで用意します。

```bash
sudo sed -e "s/{Japanese Article (jsarticle)}/{Japanese Article (ltjsarticle)}/" /usr/share/lyx/layouts/jsarticle.layout > /usr/share/lyx/layouts/ltjsarticle.layout
sudo sed -e "s/{Japanese Book (jsbook)}/{Japanese Book (ltjsbook)}/" /usr/share/lyx/layouts/jsbook.layout > /usr/share/lyx/layouts/ltjsbook.layout
```

LyXをソースビルドした場合は`/usr/`の部分を`/usr/local/`などに変更します。

root権限がない場合は、`/usr/`の部分を適当なディレクトリに読み替えます。また、レイアウトの保存先`/usr/bin/lyx/share/layouts/`は

```
~/.lyx/layouts/
```

とします。

Windowsの場合は`C:\Program Files (x86)\LyX 2.1\Resources\layouts\`内にある`jsarticle.layout`・`jsbook.layout`をコピーし、それぞれ`ltjsarticle.layout`・`ltjsbook.layout`という名前で同ディレクトリ(要管理者権限)もしくは`~\AppData\Roaming\LyX2.1\layouts\`(`~\`は`C:\User\YOURUSERNAME\`など)にコピーした後、それぞれのファイルを開き、2行目の

```
Japanese Xxx (jsxxx)
```
(ただしXxx = Article or Book)

となっている箇所を

```
Japanese Xxx (ltjsxxx)
```

に変更します。Gitをインストールしている場合はGit Bashを開き、

```bash
sed -e "s/{Japanese Article (jsarticle)}/{Japanese Article (ltjsarticle)}/" /c/Program\ Files\ \(x86\)/LyX\ 2.1/Resources/layouts/jsarticle.layout > ~/AppData/Roaming/LyX2.1/layouts/ltjsarticle.layout
sed -e "s/{Japanese Book (jsbook)}/{Japanese Book (ltjsbook)}/" /c/Program\ Files\ \(x86\)/LyX\ 2.1/Resources/layouts/jsbook.layout > ~/AppData/Roaming/LyX2.1/layouts/ltjsbook.layout
```

もしくは管理者権限でGit Bashを開き、

```bash
sed -e "s/{Japanese Article (jsarticle)}/{Japanese Article (ltjsarticle)}/" /c/Program\ Files\ \(x86\)/LyX\ 2.1/Resources/layouts/jsarticle.layout > /c/Program\ Files\ \(x86\)/LyX\ 2.1/Resources/layouts/ltjsarticle.layout
sed -e "s/{Japanese Book (jsbook)}/{Japanese Book (ltjsbook)}/" /c/Program\ Files\ \(x86\)/LyX\ 2.1/Resources/layouts/jsbook.layout > /c/Program\ Files\ \(x86\)/LyX\ 2.1/Resources/layouts/ltjsbook.layout
```

を実行します。

どのOSも最後にLyXを開き、「ツール→環境構成」を実行します。

###設定
####文書クラス
Japanese Article (ltjsarticle)を選択します。Class optionsの任意設定の欄は空欄で構いません。グラフィックドライバは規定値を選択します。
####フォント
非TeXフォントを使用(XeTeX/LuaTeX経由)にチェックを入れます。下のフォントの設定は**欧文部分で使用されるフォント**です。欧文部分も日本語にするなら別ですが、OS付属のフォントを欧文部分で使用したいという場合のみ設定してください。それ以外の場合はLaTeXプリアンプルの部分で直接指定します。また、**日本語名のフォントはコンパイル時にエラーが出ることがあります(Windowsで確認)。**その場合はLaTeXプリアンプルの部分で英語名で指定してください。
####言語
言語のプルダウンメニューで「日本語」を選択します。また、**言語パッケージは「なし」を選択してください。**
####LaTeXプリアンプル
セリフ/明朝体がTeX Gyre Termes(Times New Romanの互換フォント)/游明朝、サンセリフ/ゴシック体がTeX Gyre Heros(Helveticaの互換フォント)/游ゴシック、等幅フォントがRictyの場合の設定例を以下に示します。(游ゴシック・游明朝・Rictyは予めOSにインストールしている必要があります)

```latex
\usepackage{luatexja-fontspec}
\setmainfont{TeXGyreTermes}
\setsansfont{TeXGyreHeros}
\setmainjfont{Yu Mincho}
\setsansjfont{Yu Gothic}
\setmonofont{Ricty}
\usepackage[colon=literal]{unicode-math}
\unimathsetup{math-style=ISO,bold-style=ISO}
\setmathfont{TeX Gyre Termes Math}
```

LuaLaTeXには日本語の等幅フォントを指定する機能はありません。(開発チームいわく日本語フォントの日本語部分は等幅なため)
##XeLaTeX
###特徴
(u)pLaTeXより出力が少し遅いです。しかし、**LuaLaTeXと同様OSにインストールされているフォントを使用することができます。また、プログラムリストに日本語を含めることができます。縦書き非対応・日本語に特化したルビパッケージがないのが残念。**DVIの出力は不可で、直接PDFを出力します。
###事前準備

LuaLaTeXの場合と同様にレイアウトファイルを用意します。Unix系でroot権限があり、パッケージからLyXをインストールした場合は、次のコマンドで用意できます。

```bash
sudo sed -e "s/{Japanese Article (jsarticle)}/{Japanese Article (bxjsarticle)}/" /usr/share/lyx/layouts/jsarticle.layout > /usr/share/lyx/layouts/bxjsarticle.layout
sudo sed -e "s/{Japanese Book (jsbook)}/{Japanese Book (bxjsbook)}/" /usr/share/lyx/layouts/jsbook.layout > /usr/share/lyx/layouts/bxjsbook.layout
```

Unix系でそうでない場合は、LuaLaTeXの場合と同様にしてディレクトリを読み替えてください。

Windowsの場合は`C:\Program Files (x86)\LyX 2.1\Resources\layouts\`内にある`jsarticle.layout`・`jsbook.layout`をコピーし、それぞれ`bxjsarticle.layout`・`bxjsbook.layout`という名前で同ディレクトリ(要管理者権限)もしくは`~\AppData\Roaming\LyX2.1\layouts\`(`~\`は`C:\User\YOURUSERNAME\`など)にコピーした後、それぞれのファイルを開き、2行目の

```
Japanese Xxx (jsxxx)
```
(ただしXxx = Article or Book)

となっている箇所を

```
Japanese Xxx (bxjsxxx)
```

に変更します。Gitをインストールしている場合はGit Bashを開き、

```bash
sed -e "s/{Japanese Article (jsarticle)}/{Japanese Article (bxjsarticle)}/" /c/Program\ Files\ \(x86\)/LyX\ 2.1/Resources/layouts/jsarticle.layout > ~/AppData/Roaming/LyX2.1/layouts/bxjsarticle.layout
sed -e "s/{Japanese Book (jsbook)}/{Japanese Book (bxjsbook)}/" /c/Program\ Files\ \(x86\)/LyX\ 2.1/Resources/layouts/jsbook.layout > ~/AppData/Roaming/LyX2.1/layouts/bxjsbook.layout
```

もしくは管理者権限でGit Bashを開き、

```bash
sed -e "s/{Japanese Article (jsarticle)}/{Japanese Article (bxjsarticle)}/" /c/Program\ Files\ \(x86\)/LyX\ 2.1/Resources/layouts/jsarticle.layout > /c/Program\ Files\ \(x86\)/LyX\ 2.1/Resources/layouts/bxjsarticle.layout
sed -e "s/{Japanese Book (jsbook)}/{Japanese Book (bxjsbook)}/" /c/Program\ Files\ \(x86\)/LyX\ 2.1/Resources/layouts/jsbook.layout > /c/Program\ Files\ \(x86\)/LyX\ 2.1/Resources/layouts/bxjsbook.layout
```

を実行します。

どのOSも最後にLyXを開き、「ツール→環境構成」を実行します。
###設定
####文書クラス
Japanese Article (bxjsarticle)を選択し、Class optionsの任意設定の欄に「xelatex,ja=standard」と入力します。グラフィックドライバは規定値を選択します。
####フォント
非TeXフォントを使用(XeTeX/LuaTeX経由)にチェックを入れます。下のフォントの設定は**欧文部分で使用されるフォント**です。欧文部分も日本語にするなら別ですが、OS付属のフォントを欧文部分で使用したいという場合のみ設定してください。それ以外の場合はLaTeXプリアンプルの部分で直接指定します。
####言語
言語のプルダウンメニューで「日本語」を選択します。また、**言語パッケージは「なし」を選択してください。**
####LaTeXプリアンプル
セリフ/明朝体がTeX Gyre Termes(Times New Romanの互換フォント)/游明朝、サンセリフ/ゴシック体がTeX Gyre Heros(Helveticaの互換フォント)/源ノ角ゴシックJP、等幅フォントが日欧ともにRictyの場合の設定例を以下に示します。(源ノ角ゴシックJP・游明朝・Rictyは予めOSにインストールしている必要があります)

```latex
\setmainfont[Mapping=tex-text]{TeX Gyre Termes}
\setsansfont[Mapping=tex-text]{TeX Gyre Heros}
\setmonofont{Ricty}
\usepackage{unicode-math}
\setmathfont[Mapping=tex-math]{TeX Gyre Termes Math}
\setjamainfont{Yu Mincho}
\setjasansfont{Source Han Sans JP}
\setjamonofont{Ricty}
```

##その他の文書の設定
###プログラムリストの設定
プログラムリストの設定は「プログラムリスト」のところに記載します。記載例を次に示します。

```latex
stepnumber=1
numberstyle={\rmfamily\tiny}
breaklines=true
frame=single
basicstyle={\ttfamily\footnotesize}
keywordstyle={\bfseries}
tabsize=8
upquote=true
literate={`}{\textasciigrave}{1}
```

###小々節(subsubsection)にも番号を振る
LyXはデフォルトで小々節に番号を振りません。振る場合は、「連番と目次」の欄を開き、「連番を振る(N)」のスライダーを右にドラッグして、下の表の「小々節」「連番を振る」の箇所が「はい」になるようにしてください。

##設定の保存
このままだと、新規作成した文書にしか適用されないので、**「文書の既定値として保存」ボタンをクリック**してから、OKボタンをクリックしてダイアログを閉じてください。