-
Notifications
You must be signed in to change notification settings - Fork 0
使い方
TeX Live 2014 以降では “Support for Japanese” (collection-langjapanese) が選択されていれば (ほとんどの場合で選択されていると思います), 自動的に LuaTeX-ja が導入されます. 最新のリリースに更新したい場合は,
tlmgr update --self --all
を実行してください.
リリース 20130515.0 以降を使う場合は TeX Live 2013 が,リリース 20150420.0 以降を使う場合には TeX Live 2015 (pretest) 以降が必要です.なお,TeX Live 2013 以前では “Chinese/Japanese/Korean language support” (collection-langcjk) が選択されていれば導入サれていましたが,TeX Live 2014 で c・j・k が分割されましたという経緯があります.
W32TeX の場合も最新版にアップデートすれば OK です.
- luaotfload パッケージが更新された後に LuaTeX-ja を起動すると,
luaotfload のキャッシュ関係でエラーが発生することがあります.そのような場合は,一旦
$TEXMFVAR/luatex-cache/generic/fonts/otf/
,$TEXMFVAR/luatex-cache/generic/names/
を削除($TEXMFVAR の通常の値は,W32TeX では .../share/ctxdir,TeX Live では ~/.texlive????/texmf-var)し,luaotfload-tool -u -v
を実行した後,もう一回試してみてください.
LuaTeX-ja の最新版を追いたい人向け. 現在の開発中のコード (master ブランチ)一式を動作させるには*'TeX Live 2020 (pretest) 以降*'の環境が必要です.具体的には
- LuaTeX beta-1.10.0 以降
-
luaotfload
パッケージ(v3.1 以降) -
etoolbox
,everysel
パッケージ -
ltxcmds
,pdftexcmds
,filehook
,atbegshi
パッケージ -
fontspec
パッケージ(なくても最低限の機能は動く) - LaTeX の下で使う場合は,LaTeX 2020-02-02 patch level 5 以上 が必要です.しかし,開発はその時々の最新のバージョンで行っています.
開発中のコード一式を zip で固めたものが Git リポジトリの各ブランチの Code→「Download ZIP」 リンクからダウンロードできます.
ダウンロードした zip を展開し,texmf ツリーの適当な場所に置きます.必要ならば mktexlsr
を実行して下さい.
Git リポジトリごと取得する場合は,ダウンロードは以下で行えます(匿名アクセス)が,かなり容量が大きいので注意してください.
git clone https://github.com/luatexja/luatexja.git
LaTeX で使用する場合の典型的なソースは以下のようになります.
基本的には \usepackage{luatexja}
をプリアンブルに書くだけです.
\documentclass{ltjsarticle}
\usepackage{luatexja} % ltjclasses, ltjsclasses を使うときはこの行不要
\begin{document}
\section{はじめてのLua\TeX-ja}
ちゃんと日本語が出るかな?
\subsection{出たかな?}
長い文章を入力するとちゃんと右端のところで折り返されるかな?
大丈夫そうな気がするけど.ちょっと不安だけど何事も挑戦だよね.
\end{document}
要領は pLaTeX 用のソースを作成するときと同じですが,特に注意すべき事項として以下が挙げられます:
- documentclass として従来の jclasses や jsclasses は使用できません.これはこれらが pLaTeX 用として書かれているためです.
上のサンプルでは,jsclasses を LuaTeX-ja 用に調整した ltjsclasses を利用しています.
- 他にも jclasses をLuaTeX-ja 用に調整した ltjclasses も現段階では用意されていますが, LuaTeX-ja 側で他にどのようなクラスファイルを作るかは決まっていません.
- LuaTeX-ja は jlreq クラスでも使用できます.シンプルに
\documentclass{jlreq}
するだけです.
- 文字コードは UTF-8 にする必要があります.Shift_JIS や EUC-JP で作成しないように注意が必要です.文字コードの設定方法はご使用のエディタのマニュアルを参照して下さい.
- 「全角幅」「全角高さ」を表す zw, zh は使用出来ません.代わりに
\zw
,\zh
を使ってください.Q, H については\jQ
,\jH
を使えば良いですが,mm 単位に直しておくのが良いでしょう. - その他にも命令の名前に変更があります.例えば標準の和欧文間空きを設定する命令は
\ltjsetparameter{xkanjiskip=...}
です. - 20150906.0 以降で,JIS X 0208 と Unicode の U+0080--U+00FF との共通部分に属する,「¶」「§」「×」といった 8 つの記号類が
標準で欧文扱いとなりました.これらの文字をソース中に直接入力する場合,
fontspec
パッケージ(または,以下で言及のあるluatexja-fontspec
,luatexja-preset
パッケージ)の使用を 強くお勧めします.
コンパイルは,上のサンプルのファイル名を sample.tex
とするとき,コンソールで
lualatex sample.tex
を打ちます.すると,出力として sample.pdf
が得られます.LuaTeX の出力は DVI ファイルではなく PDF ファイルとなります.
LuaTeX-ja のデフォルトでは,欧文部分のフォントは Latin Modern,和文部分のフォントは 原ノ味フォント となります.
- 開発当初は,標準和文フォントは非埋め込み(明朝体は Ryumin-Light,ゴシック体は GothicBBB-Medium という名前)でしたが,現在では推奨されません.
- 20141013.0 以降,20200323.0 より前では,標準和文フォントは IPAex フォント でした.
LuaTeX ではフォントの扱いも従来の TeX より拡張されており,TrueType/OpenType フォントを直接扱うことができます. LaTeX で簡単にフォントの設定を行うためのパッケージが fontspec であり,これを用いることでソース中に使用する(=埋め込む)フォントの指定を書くことができます.
しかし,LuaTeX-ja では欧文フォントと和文フォントの管理を別々に行っているため,fontspec
で和文フォントを指定することはできません.
そこで,和文フォント用の fontspec
にあたる機能を !LuaTeX-ja 自体が持っています.
以下がサンプルになります.
\documentclass{ltjsarticle}
\usepackage{luatexja-fontspec}
\setmainfont[Ligatures=TeX]{TeXGyreTermes}
\setsansfont[Ligatures=TeX]{TeXGyreHeros}
\setmainjfont[BoldFont=HaranoAjiMincho-Bold]{HaranoAjiMincho-Regular}
\setsansjfont{HaranoAjiGothic-Medium}
\newjfontfamily\jisninety[CJKShape=JIS1990]{HaranoAjiMincho-Regular}
\begin{document}
mainのフォント.{\bfseries boldのフォント.}{\sffamily\gtfamily sansのフォント.}
通常の「辻」.{\jisninety JIS90字形の「辻」.}
{\fontspec{M+ 1c}\jfontspec{M+ 1c} ここはM$^{\mbox{+}}$フォントで出力.}
\end{document}
luatexja-fontspec
パッケージを読み込むことで,fontspec
で定義された欧文用の命令(\setmainfont
, \setsansfont
など)に加えて,
和文用の命令として接頭辞 j
を付けた命令が追加されます.
指定できるオプションは基本的に fontspec
のものと同じです.
texmf ツリーにあるフォントの他,システムにあるフォントも指定可能です.
なお,システムのフォント環境によっては
! LuaTeX error .../share/texmf/tex/luatex/luaotfload/otfl-font-nms.lua:109: att
empt to index field 'names' (a nil value).
<to be read again>
scan_stop:
l.6 \setmainjfont{IPAexMincho}
というエラーが出る可能性もあります(参考:LuaLaTeX で fontspec する件について, TeX フォーラム中の記事). これは LuaTeX-ja 特有の問題ではなく,LuaTeX(正確には luaotfload パッケージ)が作成したフォント名のデータベース otfl-names.lua 内に不正なエントリが紛れ込むためです.上に挙げた参考ページのように,otfl-names.lua を手動で編集するのが良いでしょう.
20120623.0 以降のリリースには,埋め込む和文フォントの指定を
あらかじめ用意された設定の中から選んで1行で行うことができる
luatexja-preset
というパッケージが追加されています.
これを用いると,例えばIPA明朝とIPAゴシックを使う設定ならば,プリアンブルに次のように書くだけで OK です.
\usepackage[ipa]{luatexja-preset}
プリセットには以下のものが用意されています(リリース 20130515.0 で名称を変更しました).
- noembed: 非埋込(現在ではこのオプションを使うのは推奨されていません)
- kozuka-pro: 小塚フォント (Pro)
- kozuka-pr6: 小塚フォント (ProVI)
- kozuka-pr6n: 小塚フォント (Pr6N)
- hiragino-pro: ヒラギノフォント (Pro, Std)
- hiragino-pron: ヒラギノフォント (ProN, StdN)
- bizud: Windows 10 October 2018 Update に付属する BIZ UD フォント(20190328.0 以降)
- morisawa-pro: モリサワフォント (Pro)
- morisawa-pr6n: モリサワフォント (Pr6N)
- moga-mobo: !MogaMincho, !MogaGothic, !MoboGothic(20150420.0 以降)
- moga-mobo-ex: !MogaExMincho, !MogaExGothic, !MoboExGothic(20170124.0 以降)
- ume: 梅明朝,梅ゴシック(20170124.0 以降)
- yu-win: Windows 8.1 に付属する游書体(20140114.0 以降)
- yu-win10: Windows 10 に付属する游書体(20170124.0 以降)
- yu-osx: OS X 10.9 に付属する游書体(20140114.0 以降)
- sourcehan: 源ノ明朝,源ノ角ゴシック(20170505.0 以降)
- sourcehan-jp: 源ノ明朝,源ノ角ゴシックのサブセット OTF 版(20170730.0 以降)
- noto-otc: Noto Serif CJK, Noto Sans CJK(20170730.0 以降)
- noto-otf: Noto Serif CJK, Noto Sans CJK(20170730.0 以降)
- haranoaji: 原ノ味フォント(20191117.0 以降)
- ipa: IPAフォント
- ipaex: IPAexフォント
- ms: MS 明朝,MS ゴシック
また,合わせて以下のオプションが指定可能です.
- deluxe: 明朝体3ウェイト・ゴシック体3ウェイトと,丸ゴシック体 (
\mgfamily
) を使用可能にする.なお,極太ゴシック体を使うには\gtebfamily
を使用する. - expert: 横組専用仮名・縦組専用仮名を用いる.
\rubyfamily
でルビ用仮名を扱うこともできる. - bold 明朝の太字をゴシック体の太字にする.
- 90jis: 可能ならば 90JIS 字形を使う.
- jis2004: 可能ならば JIS2004 字形を使う.
- jis:
jfm-jis.lua
を JFM として用いる(JIS フォントメトリックに近い結果が得られる).
なお,deluxe を指定した場合,ipa-hg,ipaex-hg,ms-hg を指定することで,それぞれのフォント設定に加えて太字および丸ゴシック体として MS Office 等に付属する HG フォントを用いる設定が利用可能です.
標準では内部で fontspec
パッケージを自動で読み込みます.極太ゴシック体だけで一つのファミリにしているのはそのためです.
fontspec
パッケージによる数式フォント置換が不都合な場合は,次のように no-math オプションを渡してください:
\usepackage[no-math,...]{luatexja-preset}