すみません,エンバグしてました.
埋め込みフォントに関しては,80f10b1 でなおしたつもりです.どうでしょうか.
非埋込フォントについては現在一時的に動かなくなっています.
確認しました.埋め込みフォント だとちゃんと直っています.
非埋め込みは,typo なんですかね.
diff --git a/src/ltj-rmlgbm.lua b/src/ltj-rmlgbm.lua
index f79c445..be03ae4 100644
--- a/src/ltj-rmlgbm.lua
+++ b/src/ltj-rmlgbm.lua
@@ -155,7 +155,7 @@ do
cache_chars[cid_name] = { [655360] = k.characters }
-- 縦書用字形
- tt, cidm = {}, {}
+ ttv, cidm = {}, {}
for i = 0,kx[2] do cidm[i] = -1 end
open_cmap_file(kx[1] .. "-V", increment, tonumber, entry)
for i,v in pairs(tt) do
これで一応キャッシュが作られたみたいですが,私の環境ではかぎ括弧が回転していないように見えます.
非埋込フォントについては現在一時的に動かなくなっています.
縦組字形への置換は OpenType feature で,つまり luaotfload に一切を任せたいな,と思っています. そのためには,非埋込フォントに対しても「vert feature を作成」しなければならないのですが, 一昨日からそこのやる気がなくなってしまっている状態です.
縦組字形への置換は自前で対応表を作って,LuaTeX-ja の callback の中で行っていました.
ttv, cidm = {}, {}
はそのときの名残です.
非埋込フォントについては現在一時的に動かなくなっています.
e41861c ではどうでしょう.
もう一度試してみたら,luatexja-fontspec などを使わないデフォルトのとき(IPAExMinchoが埋め込まれる)は回転していないことに気付きました. 色々試してみたところ,script=latn をつけると回転するようになりました.
diff --git a/src/patches/lltjdefs.sty b/src/patches/lltjdefs.sty
index bf1416d..a187a31 100644
--- a/src/patches/lltjdefs.sty
+++ b/src/patches/lltjdefs.sty
@@ -34,9 +34,9 @@
\DeclareFontShape{JY3}{gt}{bx}{n}{<-> ssub*gt/m/n}{}
\DeclareKanjiFamily{JT3}{mc}{}
-\DeclareFontShape{JT3}{mc}{m}{n}{<-> s*[0.962216] \ltj@stdmcfont:jfm=ujisv}{}
+\DeclareFontShape{JT3}{mc}{m}{n}{<-> s*[0.962216] \ltj@stdmcfont:script=latn;jfm=ujisv}{}
\DeclareKanjiFamily{JT3}{gt}{}
-\DeclareFontShape{JT3}{gt}{m}{n}{<-> s*[0.962216] \ltj@stdgtfont:jfm=ujisv}{}
+\DeclareFontShape{JT3}{gt}{m}{n}{<-> s*[0.962216] \ltj@stdgtfont:script=latn;jfm=ujisv}{}
\DeclareFontShape{JT3}{mc}{bx}{n}{<-> ssub*gt/m/n}{}
\DeclareFontShape{JT3}{gt}{bx}{n}{<-> ssub*gt/m/n}{}
\KanjiEncodingPair{JY3}{JT3}
luatexja-fontspec などを使わないデフォルトのとき(IPAExMinchoが埋め込まれる)は回転していないことに気付きました.
あれ,おかしいな,こっちではきちんと回転しています. (念の為,luaotfload, luatexja 関連のキャッシュを全部消して確認しました)
使用している LuaTeX バイナリは rev 5076 です.
TeX Live と LuaTeX のバイナリをアップデートして試してみましたが,変わらないです. 出力の PDF とログを添付してみます.
あとで,できれば W32TeX の環境でも試してみます.
W32TeX の環境でも試してみたのですが,こちらはうまくいきました. それでさらに色々試してみた結果,TeX Live 2014 の IPAexMincho (= CTAN の ipaexm.ttf)のバージョンが 古いことが原因だとわかりました. 最新のものは Ver.002.01 で,W32TeX にもこれが含まれています.一方,CTAN のものは Ver.001.03 です. lltjdefs.sty で \ltj@stdmcfont を file: 指定で Ver.001.03 のものにすると再現できると思います.
lltjdefs.sty で \ltj@stdmcfont を file: 指定で Ver.001.03 のものにすると再現できると思います.
再現しました.ありがとうございます.Norbert さんに IPAex の更新依頼を出しておきました.
pLaTeX + dvipdfmx だと,001.03 でも回転するので,dvipdfmx に -vv を付けて調べてみました. 001.03 だと
otl_gsub>> Reading "*.*.vert"... otl_gsub>> OTL script-language enabled: cyrl.dflt otl_gsub>> OTL script-language enabled: grek.dflt otl_gsub>> OTL script-language enabled: hani.dflt otl_gsub>> OTL script-language enabled: kana.dflt otl_gsub>> OTL script-language enabled: latn.dflt otl_gsub>> Reading OTL feature(s): vert(single) vert(single) vert(single) vert(single) vert(single) otl_gsub>> 5 subtable(s) read.となりますが,002.01 では下のようになっています.
otl_gsub>> Reading "*.*.vert"... otl_gsub>> OTL script-language enabled: DFLT.dflt otl_gsub>> OTL script-language enabled: cyrl.dflt otl_gsub>> OTL script-language enabled: grek.dflt otl_gsub>> OTL script-language enabled: hani.dflt otl_gsub>> OTL script-language enabled: kana.dflt otl_gsub>> OTL script-language enabled: latn.dflt otl_gsub>> Reading OTL feature(s): vert(single) vert(single) vert(single) vert(single) vert(single) vert(single) otl_gsub>> 6 subtable(s) read.
lltjdefs.sty で \ltj@stdmcfont を file: 指定で Ver.001.03 のものにすると再現できると思います.
再現しました.ありがとうございます.Norbert さんに IPAex の更新依頼を出しておきました.
Norbert さんが IPAex 002.01 を CTAN にアップロードしてくださいました.数日で反映されるでしょう.
なるほど.DFLT.dflt が抜けているわけですか.
TeX Live に反映されたらまた試してみます.
TeX Live の ipaex が上がったので,試してみたところ,問題なさそうです.
完了にしておきます.
原因はよくわかりませんが,マニュアル luatexja-{ja,en} の表 (jfm-tmin, jfm-ujisv の比較)のところで類似の症状が再発しました.(e1daa06 で確認,それよりさかのぼって調査してはいません) 鍵括弧は回転した状態になっていますが,句点・拗音・促音が横組用字形のままになっています.
h7k への返信
原因はよくわかりませんが,マニュアル luatexja-{ja,en} の表 (jfm-tmin, jfm-ujisv の比較)のところで類似の症状が再発しました.(e1daa06 で確認,それよりさかのぼって調査してはいません) 鍵括弧は回転した状態になっていますが,句点・拗音・促音が横組用字形のままになっています.
luatexja-otf の IVS対応 (luatexja.otf.enable_ivs()) で do_ivs という関数を pre_linebreak_filter callback に入れているのが原因です. ただ,不思議なのは
ので,LuaTeX 0.85.0 に LaTeX が対応するのを待つしかないのでしょうか……. (マニュアルは,メモリ不足のエラーが出るので LuaJITTeX ではタイプセットできません)
h7k への返信
* LuaTeX r5460 では再現するが,LuaJITTeX r5460 では再現しない ので,LuaTeX 0.85.0 に LaTeX が対応するのを待つしかないのでしょうか……. (マニュアルは,メモリ不足のエラーが出るので LuaJITTeX ではタイプセットできません)
luaotfload による callback ``luaotfload.node_processor'' に処理が渡っていないようです.
Lua[JIT]TeX r5755 (beta-0.89.0) 上でなんとかかんとか LaTeX を動かしたりしてみましたが,それでも同様で,LuaTeX では症状発生,LuaJITTeX では正常動作でした.
何日もこれで悩んでリリースを遅らせるのも良くないので, 「IVS 対応を有効化すると縦組が壊れる」ことを明記して,20160131.0 を出しました.
h7k への返信
Lua[JIT]TeX r5755 (beta-0.89.0) 上でなんとかかんとか LaTeX を動かしたりしてみましたが,それでも同様で,LuaTeX では症状発生,LuaJITTeX では正常動作でした.
調べてみた所,luatexbase.add_to_callback の定義の末尾は次のようになっています.
local saved_callback={},ff,dd
for k,v in pairs(luatexbase.callback_descriptions(name)) do
if k >= priority then
ff,dd= luatexbase.remove_from_callback(name, v)
saved_callback[k]={ff,dd}
end
end
luatexbase.base_add_to_callback(name,fun,description)
for k,v in pairs(saved_callback) do
luatexbase.base_add_to_callback(name,v[1],v[2])
end
一旦除外した callback を再度追加するところで pairs を使っているため,
ここで順番が崩れてしまう可能性があるわけです.
36e4d78 で直してみたつもりです.
h7k への返信
36e4d78 で直してみたつもりです.
報告が遅くなりましたが,16/02/03 に上流に報告しました.
ltjsclasses に(私の勘違いで入れてしまったバグの)修正, および LuaTeX 0.89.0 への対応もあるので, 明日 (2/8) の午前中にリリースしようと思います.
20160208.0 を出したので,完了にします.
8e5a9db 以降で,縦組み時のかぎ括弧などが回転しなくなっているようです.
\documentclass{ltjtarticle} \begin{document} 「ああ」 \end{document}