[luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

[luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- ANDO K. の投稿
返信数: 13
LuaTeX-jaで和文フォントを埋め込もうとして次の問題に遭遇しました。
LuateX-jaはW32TeX(on Windows 8.1)最新版に同梱のものと、Gitから
最新版を取ってきたものとの双方とTeXLive2013(on Mac OS X Mavericks)で
再現しました。

次のように一部のOTFフォントを本文に使用すると、
生成されたPDFで「示」の字が脱落します(添付ファイルをご覧ください)。

試しにluatexja-otfパッケージを使用して
\UTF{793A}などとして見ても、やはり脱落してしまいます。

どうもモリサワのOTFの同じ名前のフォントでもPr6やPr6Nは
大丈夫でProやStdなどがダメなようです。したがって、
\usepackage[morisawa-pro]{luatexja-preset}でも「示」の脱落が生じます。
モリサワ特有の問題というわけでもないようで、
ためしにイワタのフォントも試してみましたが同様の症状が再現されます。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[10pt]{ltjsarticle}
\usepackage{luatexja-fontspec}

%モリサワ5書体ProとPr6N

%\setmainjfont{A-OTF-RyuminPro-Light.otf}      % NG
%\setmainjfont{A-OTF-FutoMinA101Pro-Bold.otf}  % NG
%\setmainjfont{A-OTF-GothicBBBPro-Medium.otf}  % NG
%\setmainjfont{A-OTF-FutoGoB101Pro-Bold.otf}   % NG
%\setmainjfont{A-OTF-MidashiGoPr6N-MB31.otf}   % NG
%\setmainjfont{A-OTF-Jun101Pro-Light.otf}      % NG

%\setmainjfont{A-OTF-RyuminPr6N-Light.otf}     % OK
%\setmainjfont{A-OTF-FutoMinA101Pr6N-Bold.otf} % OK
%\setmainjfont{A-OTF-GothicBBBPr6N-Medium.otf} % OK
%\setmainjfont{A-OTF-FutoGoB101Pr6N-Bold.otf}  % OK
%\setmainjfont{A-OTF-MidashiGoPr6N-MB31.otf}   % OK

%ためしに他のモリサワフォント(徐明、陸隷、秀英初号明朝撰)
%\setmainjfont{A-OTF-JominStd-Light.otf}       % NG
%\setmainjfont{A-OTF-LikureiStd-Regular.otf}   % NG
%\setmainjfont{A-OTF-ShueiShogoMSen-Hv.otf}    % OK


%ためしにイワタ(宋朝体新かなPro)
%\setmainjfont{IwaSouNPro-Md.otf}              % NG


\begin{document}
%%%NGなフォントだと「示」が脱落して全角分の空白が空く
問題の所在を示してみる。
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Pr6N(Pr6)版には問題が生じないので、多くの人にとってはあまり関係ないかもしれません……



ANDO K. への返信

Re: [luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- 北川 弘典 の投稿
報告ありがとうございます.

しかし,私の環境には,ソースファイルに示されているフォントは
どれもないので実際に試せないのが現状です.

なのでこちらではいろいろ推測することしか出来ません.
とりあえず,\CID{2260} ではどうなるでしょうか?

LuaTeX-ja のページにチケットを
チケット #32446: LuaTeX-ja での埋め込み和文フォントの欠落 (from TeX forum)
https://sourceforge.jp/ticket/browse.php?group_id=5593&tid=32446
として登録しました.
北川 弘典 への返信

Re: [luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- ANDO K. の投稿
みなさま
御返事遅くなりました。

OS Xで試してみたところ、\CID{2260}ではきちんと表示されました。
なお\usepackge{fontspec}と\setmainfont{NGなフォント}では、
欧文は当該フォントで表示され、和文は一切表示されません。

これが手がかりになるかどうかはわかりませんが、
該当のフォントをFontForgeで開いて、もう一度OpenType(CID)形式で
保存すると、普通に表示されるOTFフォントになります。
しかし、その際に一連の警告メッセージが出ます。

それを転載したいのですが、目下出張中で手元に再現できる環境が
ありませんので、早くとも週明けになってしまうかと思います。
ほかにNGなフォントを見つけられた方には試してみていただきたいと思います。

ANDO K. への返信

Re: [luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- 北川 弘典 の投稿
\CID{2260} で出力されたということは,
LuaTeX (luaotfload) が CID 2260 を U+793A でない
別の Unicode 値に割り当ててしまった,ということが考えられます.

一旦使用した OpenType フォントの情報は,
TEXMFVAR/luatex-cache/generic/fonts/otf/
などの場所に *.lua としてキャッシュされています.
* TEXMFVAR の値は kpsewhich -var-value TEXMFVAR で調べられます.

このキャッシュの内容を調べれば,CID 2260 が Unicode の何番に
マップされたかがわかります.
例えば,小塚明朝 Pro R だと
$ grep '\["Japan1.2260"\]' \
`kpsewhich -var-value TEXMFVAR`/luatex-cache/generic/fonts/otf/kozminpro-regular.lua
["Japan1.2260"]=31034,
となるので,CID 2260 は Unicode 31034 (U+793A) として
扱われていることがわかります.

ということで,(例えば じゅん Pro なら)
$ grep '\["Japan1.2260"\]' \
`kpsewhich -var-value TEXMFVAR`/luatex-cache/generic/fonts/otf/a-otf-jun101pro-light.lua
の実行結果はどうなるでしょうか?
北川 弘典 への返信

Re: [luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- ANDO K. の投稿
ご指示通り試してみました。出力結果は

 ["Japan1.2260"]=11948,

でした。ためしに\UTF{2EAC}で確認してみたところ、「示」が表示されました。



ANDO K. への返信

Re: [luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- 前田 一貴 の投稿
LuaTeX-ja のフォントに関する問題は,まずそれがLuaTeX-ja 固有の問題なのか,
LuaTeX 自体 (もしくは fontspec や luaotfload)の問題なのかを切り分ける必要があります.

・ltjsarticle を article に
・luatexja-fontspec を fontspec に
・\setmainjfont を \setmainfont に

それぞれ置換して試してみて下さい.それでも脱落が起こる場合は LuaTeX-ja ではなく
LuaTeX 自体の問題ということになります.

私も示されているフォントは持っていないので試すことができません.
前田 一貴 への返信

Re: [luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- Akira Kakuto の投稿
DFMinchoPStd-W5.otf も NG フォントのうちの一つですが,
LuaTeX-ja だけでなく,以下で試したところ ConTeXt mkiv でも
'示' が抜けるので, LuaTeX 自身におけるフォントの取り扱いに原因が
あるのかもしれません。
% test.tex --- context test
\definefont[xxx][DFMinchoPStd-W5]
\starttext
\xxx 問題の所在を示してみる。
\stoptext

ConTeXt mkii on XeTeX では
\definefont[xxx]["DFMinchoPStd-W5"]
\starttext
\xxx 問題の所在を示してみる。
\stoptext

と,ソースを変更する必要がありますが,
texexec --xtx test
で '示' が抜けることはありません。

Akira Kakuto への返信

Re: [luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- Akira Kakuto の投稿
font loader における問題ではないかと思い,原作者の Hans さんに
問いあわせています。調べてもらえるかどうかわかりませんが。

前田 一貴 への返信

Re: [luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- ANDO K. の投稿
ご指示の通り、article, fontspec, \setmainfontで試してみました。
これでも「示」は脱落します。
ただし、該当箇所に全角分の空白は空かずに、
「問題の所在をしてみる」と詰まって表示されます。
念の為にPDFを添付しておきます(フォントは「じゅん Pro」です)。

# 最初間違ってうっかりltjsarticle, fontspec, \setmainfontを
# 試しててしまいました(和文部分は空白が空いて真っ白)
# 上の方にある私のもう一つの返信はそちらのものですので無視してください。


ANDO K. への返信

Re: [luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- 前田 一貴 の投稿
全角分の空白を空ける動作は LuaTeX-ja がやっていることですので,そうなると思います.
角藤先生も書かれているように,やはり LuaTeX 自体の問題のようです.
前田 一貴 への返信

Re: [luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- Akira Kakuto の投稿
ConTeXt では Hans さんに訂正してもらって,異常なくなりました
ので,そのうち LuaLaTeX の luaotfload に反映されると思います。
なお,私のところでは
["Japan1.2260"]=31034, (U+793A)
であるべきところが
["Japan1.2260"]=11948,
となっていました。

前田 一貴 への返信

Re: [luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- ANDO K. の投稿
LuaTeX-jaではなくLuaTeX本体の問題であったことを理解いたしました
(投稿放題が誤解を生みそうなものになってしまっているので恐縮です)。

ともあれ、角藤先生のご尽力などもあり、
漸次、大本での修正が行き渡るということで、一安心です。

不出来な報告にご対応いただきありがとうございました。

ANDO K. への返信

Re: [luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- Akira Kakuto の投稿
luaotfload-merged.lua に対する,official でないパッチ
を添付します。新たなバグが入るかもしれませんから,
オリジナルを残しておいて下さい。
そのうちに,Philipp Gesang さんから正式なものがリリース
されると思います。

Akira Kakuto への返信

Re: [luatex-ja] LuaTeX-ja での埋め込み和文フォントの欠落

- ANDO K. の投稿
私の手元の環境でもパッチを当てて確認してみました。
今回の「示」に関する限りでしか私にはわかりませんが、
問題は無事に解決されたように思います。

関係者各位の迅速なご尽力に御礼申し上げます。