luafontcomp パッケージは,LuaLaTeX において複数のフォントをまとめて1つのフォントとして扱うためのパッケージです.
(2014/01/14) 最近のバージョンの LuaTeX では動作しません.近々,全体を書き直したものを作る予定です.
色々応用は考えられると思いますが,念頭に置いているのは以下の2つです:
ライセンスは MIT ライセンスとします (日本語訳).LuaTeX 自体も含めて開発中で仕様が安定しないので,本格的な用途への使用は推奨しません.
luatex v0.60.2, luaotfload v1.24, expl3, xparse
その1: 和文と欧文を別のフォントで出力
\documentclass{bxjsarticle} \usepackage{luafontcomp} \usepackage{luatextra} \pagestyle{empty} \setrftovf{IPAexMincho:script=latn;+jp90}{jarm} % 仮想フォント jarm を作って IPAexMincho を JIS90字形 でセット \setrftovf[overwrite]{TeX Gyre Termes}{jarm} % TeX Gyre Termes に存在する文字については TeX Gyre Termes で出力 \font\jarm={vf:jarm} % 作成した Virtual Font を定義 \font\ipaexm={IPAexMincho} % 比較用の通常フォント (デフォルトのJIS2004字形) \begin{document} \jarm \LuaLaTeX で日本語: 葛飾区 \ipaexm \LuaLaTeX で日本語: 葛飾区 \end{document}
出力: 上が IPAex明朝 (JIS90 字体) + TeX Gyre Termes,下が IPAex明朝 (JIS2004 字体)のみ.
その2: 欠落文字の補完(ZR さんの例より)
\documentclass{bxjsarticle} \usepackage{luafontcomp} \pagestyle{empty} \setrftovf{IPAMincho}{IPAHana} % 仮想フォント IPAHana を作って IPAMincho をセット \setrftovf{HanaMin}{IPAHana} % IPAMincho に存在しない文字は HanaMin で出力 \font\ipahana={vf:IPAHana} % 作った Virtual Font を定義 \font\ipam={IPAMincho} % 通常の IPAMincho \font\hanam={HanaMin} % 通常の HanaMin \begin{document} \ipahana 我的气垫船充满了鳝鱼! \ipam 我的气垫船充满了鳝鱼! \hanam 我的气垫船充满了鳝鱼! \end{document}
出力: 上から IPA明朝 + 花園明朝,IPA明朝(4文字欠落),花園明朝.
ダミーの Virtual Font (vf) を作って後で置換するという方法をとっています.
また,fontspec パッケージと併用することも可能です.使い方は通常のフォントを指定するときと同じように \fontspec[<features>]{vf:<vfname>} 等と書くだけです.