Closed aminophen closed 4 years ago
与えられた ⟨character code⟩ が 256 以上であれば
begin if cur_val>=256 then {Japanese Character}
と
else cur_val:=0;
end
を,e-upTeX では取っ払うようにすると良い…?
おっと,cur_val>=256
を is_char_kanji(cur_val)
に変えるのが綺麗ですね。
つまり eptex.ech#L531 の
begin if cur_val>=256 then {Japanese Character}
を
begin if is_char_kanji(cur_val) then {Japanese Character}
に変える。
texjporg/tex-jp-build#77 に出しました。
結局,r51624 で
\iffontchar: 引数が非負のときは is_char_kanji,負数 c のときは文字タイプ -(c + 1) の存在判定 \fontchar??: 引数が負数 c のときは文字タイプ -(c + 1) の存在判定
をコミットしたので,これをドキュメント化しましょう。
eptex-190709 ブランチ (9eb8cd2) で r51694 ベースで書いてみました。
これまた実用上あまり重要ではない話ですが…。
「e-TeX と e-pTeX を比較してドキュメント化しよう」と思ったのですが,フォント関連のプリミティブ(etex_man.pdf に挙がっている 5 つ)について確認させてください。
2011 年のマクロツイーター
には「\jfont、\tfont に対してこれらの命令を用いた場合は \iffontchar と同様にデタラメな結果を返す」との記載がありますが,forum:1452 の時に修正が入っていま🍣,今簡単に試した範囲では以下のようです。
調査結果
\iffontchar の(★1)の挙動は,「数値としては ⟨character code⟩ を受け入れるが,実際は文字タイプとして扱われる」という点にさえ留意すれば,何かに役立つかも?と思います。(強いて言うなら,数値のチェック時に 0--255 しか受け付けないようにすると良いかも,くらい。)
# そもそも pTeX 系列では「和文フォントについては、その有効な符号空間の全部の文字が、あたかも常に存在するかのように動作」しますから,真面目に ⟨character code⟩ とみなす実装だと「常に真」で,役に立たないはずです。それなら,現状の文字タイプ扱いでもいいじゃないか,という気持ちです。
\fontchar{ht,wd,dp,ic} の(★2)は少々気になります。e-pTeX では問題ないはずですが,e-upTeX だと ⟨°⟩ (U+00B0) や ⟨·⟩ (U+00B7) などの width が 0pt になってしまいます。