kitagawa_jfm-after ブランチについて
>数式については,(略)実装中……
test/test07-math-unicode.tex においてみました.こちらをきちんとパッケージ化するのは間に合わないかも.
こちらをきちんとパッケージ化するのは間に合わないかも.
パッケージ化というか,filehook パッケージを使って \AtEndOfPackageFile* でパッチを当てるようにする,というのが一つの案ですが,どうでしょうか. filehook パッケージ依存になってしまいますが.lltjlisting も同様に.
ただ,そうすると luatexja の読み込み前に \setmathfont をやっちゃうとパッチが当たらないという問題はあるかも.
luatexja-unicode-math みたいなのを作ってもいいのですが,「LuaTeX-ja 用の○○へのパッチ」が増えていって,それをユーザに明示的に読み込ませるのは何か違和感があります. luatexja-fontspec もありますが,こちらはコマンドを追加するのでパッチとも違うのかなぁ,という気も.
パッケージ化というか,filehook パッケージを使って \AtEndOfPackageFile* でパッチを当てるようにする,というのが一つの案ですが,どうでしょうか. filehook パッケージ依存になってしまいますが.lltjlisting も同様に.
luatexja-unicode-math みたいなのを作ってもいいのですが,「LuaTeX-ja 用の○○へのパッチ」が増えていって,それをユーザに明示的に読み込ませるのは何か違和感があります.
filehook は TeX Live では collection-latexextra にあるので,「大半が入れている」とはいい難いですが,
HDD 容量が巨大化していることを考えると.「TeX 導入 = TeX Live フルインストール」も珍しくなくなりそうなので,そんなに大きな問題にはならないかな?
# 気になるのは Windows での動向ですね.
LuaTeX の callback で実現できれば,何も考えなくてもいいですよね.
luatexja-fontspec もありますが,こちらはコマンドを追加するのでパッチとも違うのかなぁ,という気も.
kitagawa_jfm-after ブランチ中の luatexja-fontspec.sty では,xunicode.sty にパッチをあてている(\textquotedblleft 等を常に欧文扱いにするため)ので,パッチといえそうな気もします.もっとも,こちらは \setmainfont 等の後でもよいですけど.
lltjlisting.sty については,中身をきちんと見ないとと思いつつ,なかなかやる気がおきません.
filehook は TeX Live では collection-latexextra にあるので,「大半が入れている」とはいい難いですが
unicode-math が使っているので,少なくとも unicode-math 利用者の環境には入っているはずです. unicode-math-luatex.sty の最後の方を参照です.
ただ,現状 unicode-math 自体があまり一般的ではないかも,というのはありますね. collection-mathextra にあるみたいです.
filehook は TeX Live では collection-latexextra にあるので,「大半が入れている」とはいい難いですが
unicode-math が使っているので,少なくとも unicode-math 利用者の環境には入っているはずです. unicode-math-luatex.sty の最後の方を参照です.
filehook を使う形で書き直してみましたが,まだ unicode-math は luatexja の前に読み込めません.以下のエラーが出てしまいます:
! Undefined control sequence.
\hbar ->\hslash
l.3640 ...eUTFcharacter[\UTFencname]{x210F}{\hbar}
luatexja-fontspec.sty 中の xunicode.sty の再読み込みで起こっているようです.
その上,\hbar を使うと setwidth.lua でエラーが発生します(明日以降に検討).
h7k への返信
filehook は TeX Live では collection-latexextra にあるので,「大半が入れている」とはいい難いですが,
W32TeXには入っていないみたいですね.
北川さんのを元に,パッチを当てる処理を改善してみました.kmaeda-patches ブランチを切ってあります.
filehook を使う形で書き直してみましたが,まだ unicode-math は luatexja の前に読み込めません.以下のエラーが出てしまいます:
! Undefined control sequence.
\hbar ->\hslash
unicode-math 内で,\setmathfont 後に \hslash が定義されるのを前提に \def\hbar{\hslash} してるみたいです. とりあえず一旦 \hbar の定義を退避させて,\ReloadXunicode{EU2} 後に元に戻すようにしてみました.
その上,\hbar を使うと setwidth.lua でエラーが発生します
和文文字指定だけど和文文字のフォントでない(対応する JFM がない)ときに char_data が nil になっているみたいなので, これも場当たり的ですが nil かどうかのチェックだけするようにしてみました.まずそうならば直して下さい.
このバージョンでも filehook が存在するときだけ読み込むようにしてあるのですが,filehook がないときはパッチが当たらない可能性がある旨の警告が出るようにしてあります. ちょっとうるさいかな?
ちなみに,unicode-math のテスト結果を見るとディスプレイ数式 \[ ... \] のときは数式文字を欧文文字扱いしてくれるみたいなんですが, インライン数式 $ ... $ のときも欧文文字扱いするようにはできないのでしょうか? 原理をあまりよく理解できていないもので…….
北川さんのを元に,パッチを当てる処理を改善してみました.kmaeda-patches ブランチを切ってあります.
ありがとうございます.これから見てみます.
ところで,本題のブランチのマージですが,ひとまず unicode-math 関連にタッチしてない 69726d92 までをマージしようと思っています.unicode-math は理解がかなり難しいので…….
おお,6abeb05 でインライン数式にも効くようになっている.ありがとうございます.
6abeb05 でインライン数式にも効くようになっている.
自己レスですが,コミット番号のコピペを間違えた…….5b9f51e ですね.
おお,6abeb05 でインライン数式にも効くようになっている.ありがとうございます.
和文文字の判定を glyph_node しか見てなかったので, インライン数式についても文字コードで判定をしていたのが原因でした.
なんかいろいろためしてみたら,5b9f51e でミスをしていた? ようなので修正.
なんだか \directlua を直接書くのもアレなので,単純な TeX マクロで包んでみました. できればちゃんとパラメータ化した方がいいかなぁ.
post-proceedings も投稿したので,完了としておきます.
フォーラム「luaotfload による処理と「文字クラス」の決定」「和文文字の範囲」の議論に従い,
という変更を加えた kitagawa_jfm-after ブランチを作りました.
post-proceeding に反映させておきたいので,22日までにはマージしたいなと考えています. みなさま,レビューをお願いできますでしょうか?
なお.数式については,
ということを考えています(実装中……).