現在,TeXで日本語を扱うのはupLaTeXが優勢ですが,pdfLaTeXのようにTeXファイルから直接PDFを出力するエンジンとしてLuaTeX-jaが開発されています.このLuaTeX-jaはDVIを経由しないことから,フォントの取り扱いがpTeX系と大きく異なります.
そこで,公式ドキュメントの日本語版(2018-03-08時点)を読んで,upLaTeXと同じように使うために必要なことを自分なりにまとめました.ただしあまり高度な使い方は考えず,基本的な機能に限って述べます.
Note 以下では明示的に引用はしていませんが,ほとんどがドキュメントをそのまままとめただけです.
使い方
最低限の設定をするためには,luatexja.sty
を読み込む:
\usepackage{luatexja}
これによって次の設定がされる:
- 和文フォントのエンコーディングに,横組はJY3,縦組はJT3を用いる.
- 標準のフォントはIPAexの明朝体(ファミリ:
mc
)とゴシック体(ファミリ:gt
)を用いる. - 数式モード中の和文は明朝体.
-
\verb
やverbatim
環境中の和文フォントは\jttdefault
で指定する.デフォルトは\mcdefault
.
ドキュメントクラス
LuaTeXではjclassesとjsclassesは使えない.その代わりにltjclassesやltjsclassesを使う.また,縦組クラス(ltjtarticle.cls
など)でもgeometry
パッケージを利用できるようにパッチを当てている(pLaTeXの縦組クラスではgeometry
パッケージを使えない).
フォントの変更
フォントの属性を変更するには\fontfamily
, \fontseries
, \fontshape
などを利用する.ただし,欧文と和文の両方を変更するか,片方を変更するかによっていくつか種類がある:
encoding | family | series | shape | use | |
---|---|---|---|---|---|
欧文 | \romanencoding |
\romanfamily |
\romanseries |
\romanshape |
\useroman |
和文 | \kanjiencoding |
\kanjifamily |
\kanjiseries |
\kanjishape |
\usekanji |
両方 | \fontseries |
\fontshape |
|||
自動選択 | \fontencoding |
\fontfamily |
\usefont |
和文フォントファミリの定義には\DeclareFontFamily
の代わりに\DeclareKanjiFamily
を用いる.和文フォントのシェイプの定義には\DeclareFontShape
を使う.
fontspecパッケージ
fontspec
パッケージは,LuaTeXやXeTeXにおいてTrueType/OpenTypeフォントを扱うためのものであるが,LuaTeX-jaの場合,欧文フォントに対してのみ有効になる.和文フォントに対してfontspec
の機能を用いるにはluatexja-fontspec
パッケージを読み込む:
\usepackage[<options>]{luatexja-fontspec}
これは自動でluatexja
パッケージとfontspec
パッケージを読み込む.
fontspec
パッケージは\fontspec
, \setmainfont
, \setsansfont
, \setmonofont
, \newfontfamily
, \newfontface
, \defaultfontfeatures
, \addfonntfeatures
という(欧文フォントについての)7つのコマンドを提供する.luatexja-fontspec
パッケージにおいて対応するコマンドは,\jfontspec
, \setmainjfont
, \setsansjfont
, \setmonojfont
, \newjfontfamily
, \newjfontface
, \defaultjfontfeatures
, \addfonntfeatures
である.(ただし,\setmonojfont
は後述のmatch
オプションが指定されたときのみ定義される.)
このパッケージのオプションは以下を指定できる:
match
-
\rmfamily
,\textrm{...}
,\sffamily
等が,欧文フォントだけでなく和文フォントも変更するようになる.\setmonojfont
はこのオプションが指定されたときのみ定義される. pass=opts
-
obsolete.
fontspec
パッケージに渡すオプションopts
を指定する. scale=float
- 欧文に対する和文の比率
float
を指定する. - その他
- 上記以外のオプションはすべて
fontspec
パッケージに渡される.
和文フォントのプリセット
よく使われている和文フォント設定を一行で指定できるようにしたのがluatexja-preset
パッケージである.
\usepackage[kozuka-pr6n]{luatexja-preset}
のように使う.指定できるフォント設定はLuaTeX-ja の使い方#フォントのプリセット設定を参照.
主なオプションは以下の通り:
match
-
luatexja-fontspec
パッケージのmatch
と同じ. deluxe
- 明朝体・ゴシック体各3ウェイトと,丸ゴシック体(
mg
)を利用可能にする.明朝体は細字(lt
シリーズ)・中字・太字が,ゴシック体は中字・太字・極太(eb
シリーズ)がある.明朝体細字,ゴシック体極太,丸ゴシック体が存在しない場合,それぞれ明朝体中字,ゴシック体太字,ゴシック体太字で代用する.
nodeluxe
- デフォルト.
deluxe
オプションの否定. expert
- 横組・縦組専用仮名を用いる.
\rubyfamily
でルビ用仮名が使用可能になる. bold
- 明朝体太字をゴシック体太字によって代替する.
-
90jis
/jis2004
- 出来る限り90JIS / JIS2004の字形を使う.
- その他
- 他には
fontspec
(デフォルト),nfssonly
,jfm_yoko=jfm
,jfm_tate=jfm
,jis
がある.これら以外のオプションはすべてluatexja-fontspec
に渡る.
otfパッケージ
pLaTeXで広く用いられているotf
パッケージは,LuaTeX-jaではluatexja-otf
というパッケージで実装されている.ただし,otf
パッケージのオプションdeluxe
, expert
, bold
を使うことはできない.これらのオプションはluatexja-preset
パッケージのオプションとして指定できる.