調整してみる先の出力では、「150円」のように欧文と和文が隣接する箇所に入る空き(和欧文間空白)の量が0.25zw(四分)となっています。これは全角組をする場合の標準的な値ですが、プロポーショナル組においては大きすぎると感じられるかもしれません。BXJSクラス(bxjsarticleクラスなど)の場合10、\setxkanjiskipという命令で和欧文間空白の量を設定できます。下記の例では、この値を0.1zw(全角の10%)としています。0.1\zw}\begin{document}昨日、近所の吉野家行ったんです。単位zwはLuaLaTeXでは\zwと書く必要があります。Proportionalでプロポーショナル組(游明朝)「源真ゴシックP」は“単純にプロポーショナル幅のグリフをもつ”フォントでしたので、単純にJFM=propを指定するだけでした。高級なフォントの場合は、「一つのフォントで全角幅とプロポーショナル幅の両方のグリフをもち、OpenTypeのレイアウト設定でどちらを使うかを指定する」という仕組になっているものもあります。例として、商用フォントの「游明朝」を使ってプロポーショナル組をしてみます。OSバンドルの游明朝を使う方法Windows(8.1/10)やmacOSにバンドルされた游明朝のフォントをLuaLaTeXで利用する場合の手順です。Windowsの場合は最初から使える状態になっています。Live系(MacTeXも含む)の場合は以下の手順に従います11。Kpathsea変数OSFONTDIRが未設定(またはダミー値/please/set/osfontdir/in/the/environment)であることを確認します。※既に有意義な値が入っている場合はここで示した手順は使えません。-var-value=OSFONTDIR/please/set/osfontdir/in/the/environmentKpathsea変数OSFONTDIRを設定します。'/System/Library/Assets//'LuaTeXのフォントデータベースを更新します。Medium」(macOS)を普通に指定した文書をコンパイルしてみましょう。Medium}\begin{document}昨日、近所の吉野家行ったんです。%......以下省略この通り、全角組で普通に(“気持ち悪く”ならずに)組めています。「游明朝」の既定の和文文字は全角幅であることが判ります。プロポーショナル幅を指定する「游明朝」でプロポーショナル幅の和文文字に切り替えるには、\setmainjfontのオプションにCharacterWidth=Proportionalを指定します。それに加えて、以下の指定を行うことにします。文字の組み方を変更するために、JFM=prop。和文のカーニングを有効にするために、Kerning=On。※\setmainjfontでは既定でKerning=Offが指定されている。\setmainjfontでは既定でScript=CJKが指定されるが、(少なくとも「游明朝」では)これではカーニングが適用されないので、Script=Defaultを指定する。0.1\zw}\begin{document}昨日、近所の吉野家行ったんです。%......以下省略プロポーショナル組になったようです。プロポーショナル幅になっているのは仮名文字だけで、句読点は全角幅のままです。(CharacterWidth=Proportional指定の場合はこうなるのが普通のようです。)なぜカーニングか先ほどの例では和文のカーニングを有効にしました。これはプロポーショナル組をする場合にはその方が望ましいためです。実は、和文の組版においてカーニングができるというのはLuaLaTeX+LuaTeX-jaのもつ大きな特長です。(u)pLaTeXおよびXeLaTeX+xeCJKによる和文組版の場合、プロポーショナル組はできたとしても、カーニングを活かすことが原理的にできないのです。Serif)」を使ってプロポーショナル組を行ってみます。(結論からいうと、これは現状ではあまりうまくいきません。SourceHanSerif-Regular.ttc)を配置します。ProportionalかAlternateProportionalかOpenTypeフォントでのプロポーショナル組を指定には次の2つの方式があります。グリフ自体は変えずに“組み方”を変える方式(paltフィーチャ)そしてフォントによってサポートされている方式が異なります。「游明朝」は両方の方式に対応しているのですが、「源ノ明朝」では後者のAlternateProportionalの方式にしか対応していません。従って、「源ノ明朝」でプロポーショナル組をするのならば、これを利用するしかありません。0.1\zw}\begin{document}昨日、近所の吉野家行ったんです。良さそうな出力が得られました。先の「游明朝でProportional指定」の場合とは異なり、今回は句読点も狭い幅になっています。(AlternateProportional指定の場合はこうなるのが普通のようです。)しかしそう思ってよく見ると、出力5行目末尾の「...るし。ここは改段落ではなく成り行きの改行なので「。」は本文領域の完全に右端にあるべきところが、二分ほどの空きがあります。」が全角幅ならそれで辻褄が合ってますが、今回は「。」も狭い幅なので矛盾しています。「吉野家コピペ」の後半部分を同じ設定で組んでみます。括弧も狭い幅であるため、4行目頭の「(玉子)」の前に空きがあるのも変です。詳しく見ると、行末がきちんと揃っていないことも判ります。和文の行分割処理に異常をきたしているのです。この不具合の原因は「LuaTeX自体のAlternateProportionalの処理とLuaTeX-jaの和文処理が衝突している」であり、簡単に解決できそうにないことが解っています。現状ではAlternateProportionalを利用して(つまり「源ノ明朝」を利用して)段落をプロポーショナルで組むのは諦めた方がよさそうです。それでも使いどころはあるかもただしこの不具合は行分割の際に起こるものです。従って、出力が1行しかない場合には全く影響を受けないし、また改行を全て強制改行(\\)で行う場合も不具合の影響を受けません。0.1\zw}\begin{document}\noindentそしたらなんか人がめちゃくちゃいっぱいで座れないんです。\\で、よく見たらなんか垂れ幕下がってて、\\「150円引き」\\とか書いてあるんです。\end{document}従って、「本文組は普通に全角組とするが、見出しはプロポーショナル組にする」という場合に限って、見出しテキストの改行を全て強制改行で行うことにすれば、不具合の影響を受けずにAlternateProportionalのプロポーショナル組を実用できるかもしれません。JFMをカスタマイズする結局、本文組をプロポーショナルにする場合には、現状ではProportionalを使う選択肢しかないわけですが、句読点が全角幅になるのは少しバランスが悪い気がします。句読点の右側の空きを小さくできないでしょうか。このように「空きを自分好みに調整したい」と思うのであれば、もう「自分用のJFMをカスタマイズして作る」しかないでしょう。以下では、LuaTeX-ja標準のpropをチョットだけ改造して自作のJFMmypropを作ってみます。LuaTeX-jaではJFMはLuaのソースコード(一種のDSL)として表現され、そのファイル名をjfm-<名前>.luaとする規則になっています。propを表すJFMのファイルjfm-prop.luaは次のような非常に簡単なものです。}}これを修正して、次のようなファイルjfm-myprop.luaを作ります。これがmypropの定義となります。