Daiji256

LuaLaTeXでフォント細かく変更する方法(MS Wordは使いたくない!)

公開
更新

はじめに

課題や予稿、論文等ではフォント等のフォーマット指定がよくあります。MS Wordのテンプレートしか無かったり、MS Minchoなどの古いフォントを指定されるとイライラします。そこでLaTeXで書きたいと思います。ここではエンジンにLuaLaTeXを使用します。LuaLaTeXはPDFを直接出力することからフォントの埋め込みが容易で新しいイケイケなLaTeXだからです。

ドキュメントクラス

ドキュメントクラスにはjlreqを利用します。jlreqは日本語組版処理の要件に準拠した新しいドキュメントクラスで、日本に浸透しつつあります。オプションのfontsize=10.5bpはデフォルトのフォントサイズを10.5bpとすることを示しています。jlreqでは英・和のフォント比がデフォルトで1なので、両方のフォントサイズが10.5bpになります。MS Wordでは1pt=1/72inchですが、TeXでは1pt=1/72.27inchと定義されています。TeXには1bp=1/72inchとなる単位が存在します。このことからptの代わりにbpを使用しています。

\documentclass[fontsize=10.5bp]{jlreq}

フォントの変更

Times New RomanやMS Minchoなどを指定されたことを想定して説明します。luatexja-fontspecを使えば簡単に設定できます。問題は太字や斜体の設定です。Times New Romanのようにはじめから太字や斜体が用意されているフォントがほとんどですが、MS Minchoなどは用意されていません。MS WordなどではMS Minchoを太字にするとき疑似的に太字にしています。LuaLaTeXでもオプションにより疑似太字、疑似斜体を実現できます。FakeBold=2、FakeSlant=0.33に設定したときMS Wordと同様の結果になりました。

テキストスタイルの適応結果

\usepackage{luatexja-fontspec}
\setmainfont[Ligatures={Rare,TeX}]{Times-New-Roman}
\setsansfont{Arial}
\setmainjfont[
  YokoFeatures       = {JFM=jlreq},
  TateFeatures       = {JFM=jlreqv},
  BoldFont           = MS-Gothic,
  BoldFeatures       = {FakeBold=2},
  ItalicFont         = MS-Mincho,
  ItalicFeatures     = {FakeSlant=0.33},
  BoldItalicFont     = MS-Gothic,
  BoldItalicFeatures = {FakeBold=2, FakeSlant=0.33}
]{MS-Mincho}
\setsansjfont[
  YokoFeatures       = {JFM=jlreq},
  TateFeatures       = {JFM=jlreqv},
  BoldFont           = MS-Gothic,
  BoldFeatures       = {FakeBold=2},
  ItalicFont         = MS-Gothic,
  ItalicFeatures     = {FakeSlant=0.33},
  BoldItalicFont     = MS-Gothic,
  BoldItalicFeatures = {FakeBold=2, FakeSlant=0.33}
]{MS-Gothic}

次に数式フォントについてです。現在MS Wordでは数式フォントにCambriaを使用しています。unicode-mathを使用すれば簡単に設定できます。

Cambriaによる数式

\usepackage{unicode-math}
\setmathfont{Cambria-Math}

フォントサイズの変更

\Large等をあらかじめ設定しておくことで、要求された体裁を容易に守ることができます。変更例はこのようになります。また、vptやxptを変更することでデフォルトフォントサイズを変更することもできます。ここでは割愛させてもらいます。

\renewcommand\tiny{\@setfontsize\tiny{5bp}{6bp}}
\renewcommand\scriptsize{\@setfontsize\scriptsize{7bp}{8bp}}
\renewcommand\footnotesize{\@setfontsize\footnotesize{8bp}{10bp}}
\renewcommand\small{\@setfontsize\small{9bp}{12bp}}
\renewcommand\normalsize{\@setfontsize\normalsize{10bp}{15bp}}
\renewcommand\large{\@setfontsize\large{12bp}{15bp}}
\renewcommand\Large{\@setfontsize\Large{14.4bp}{16bp}}
\renewcommand\LARGE{\@setfontsize\LARGE{17.28bp}{18bp}}
\renewcommand\huge{\@setfontsize\huge{20.74bp}{30bp}}
\renewcommand\Huge{\@setfontsize\Huge{24.88bp}{36bp}}

まとめ

LuaLaTeXでの細かいフォント設定についてまとめました。曖昧なところや間違ってるところがあると思うのでその時は指摘してください。ソースコードは下の文献から見に行けます。

文献

  1. ソースコード
  2. LuaTeX-jaパッケージ
  3. unicode-math
  4. Point typography
  5. LuaLaTeXでフォント細かく変更する方法(MS Wordは使いたくない!)