luafontcomp パッケージ (obsolete)

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) を作って後で置換するという方法をとっています.

\setrftovf[<options>]{<rfname>}{<vfname>}
仮想フォント <vfname> が存在しない場合,新しいフォント <vfname> を作成する.仮想のフォント <vfname> に対して,実在のフォント <rfname> を置換後のフォントとして設定する.この置換テーブルは Unicode の各文字毎に設定される.作成したフォントは \font\foo={vf:<vfname>} で使うことができる.
オプションは以下の通り.

また,fontspec パッケージと併用することも可能です.使い方は通常のフォントを指定するときと同じように \fontspec[<features>]{vf:<vfname>} 等と書くだけです.

ToDo