charrange 100をALcharにしても欧文扱いとならない
すみません,ltj-charramge.lua の typo(99 行目で 31*ATTR_RANGE となるべきところが 7*ATTR_RANGE となっていた)でした.以下に diff を載せます.
- diff --git a/src/ltj-charrange.lua b/src/ltj-charrange.lua
- index 96fbd88..d528d8d 100644
- --- a/src/ltj-charrange.lua
- +++ b/src/ltj-charrange.lua
- @@ -3,7 +3,7 @@
- --
- luatexbase.provides_module({
- name = 'luatexja.charrange',
- - date = '2019/04/01',
- + date = '2019/08/28',
- description = 'Handling the range of Japanese characters',
- })
- luatexja.charrange = {}
- @@ -99,7 +99,7 @@ function luatexja.charrange.toggle_char_range(g, i) -- i: external range number
- else
- local kc
- if i>0 then kc=0 else kc=1; i=-i end
- - if i>=7*ATTR_RANGE then i=0 end
- + if i>=31*ATTR_RANGE then i=0 end
- local attr = kcat_attr_table[i]
- local a = tex_getattr(attr)
- tex.setattribute(g, attr,
追記です.まだ悩み中ですが,次バージョンから U+2000--U+206F を
として分割し,そこで charrange 9 を使うかもしれません.
h7k への返信
として分割し,そこで charrange 9 を使うかもしれません.
早速ご対応とご教示ありがとうございました。常識的には将来のシステム使用番号と重ならないように大きい数字をユーザー側で使うのがよいと思いますが、もし違ったらご教示下さい。
luatexja-ja.pdf の4.1節にcharrange 100番に文字を割り当てる例がありますが、100番になにかの文字を割り当てて、100番をALcharにしても、100番に含まれる文字が欧文扱いになりません。しかしcharrange 9番を使うと欧文扱いになります。charrange 9番と100番の扱いが内部的に違うと思いますが、その違いは例えばluatexja-ja.pdfには書かれていないと思います。なおこれに気づいた理由は絵文字に含まれるバイト列全部を含むcharrangeを定義してそれをALcharにしようとしたからですがその目的はcharrange 9番を使用して問題なく達成できました。以下に9番と100番の違いをPDFとして表示するlatexファイルを置きます。