Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

数式モード内の \chardef と文字コード 256 #129

Closed
aminophen opened this issue Jan 23, 2022 · 4 comments
Closed

数式モード内の \chardef と文字コード 256 #129

aminophen opened this issue Jan 23, 2022 · 4 comments
Labels

Comments

@aminophen
Copy link
Member

aminophen commented Jan 23, 2022

ptex-base.ch と uptex-m.ch を読んでいて,変だと思ったので MWE を作りました。

問題1

※ printkanji_16bit や unicode-14.0 とは関係ありません

%#!uptex
\chardef\AX=256\relax
\chardef\AY=257\relax
$[\AX A^\AX]$, $[\AY A^\AY]$

\kchardef\KX=256\relax
\kchardef\KY=257\relax
$[\KX A^\KX]$, $[\KY A^\KY]$

\end

この結果は以下のようになり,1行めの左の上付き文字が変です。

20220123-math-chardef-256-ng

文字コード 256 に特有のようで #68 (upTeX の \if) と同様に

\if は制御綴に便宜上「文字コード256」を与える

が原因ではと思います。例えば 0b3df9d はどうでしょうか。(edit: 256 のままでは駄目なのは明らかですが,では何の値にすれば意図通りなのかは自信がありません)

20220123-math-chardef-256-ok

INI モード用 (uptex -ini) のテストファイル → Gist

@aminophen aminophen added the bug label Jan 23, 2022
@aminophen
Copy link
Member Author

aminophen commented Jan 24, 2022

問題2

もう一つバグがありますね。 → Gist

% 昨日の INI モード用テストファイルの末尾にこれを追記
\mathcode"79="5AB
\mathcode"80="5CD
\message{\fontname\textfont5}% => nullfont
\chardef\AB="79
\chardef\CD="80

\hsize=300pt \vbox{$[^^79][^^80]\AB\CD$}

(e)(u)ptex では「\textfont5 が未定義というエラー」が2回しか出ず,128--255 の \mathcode 設定が正しく反映されません。古い日本語 TeX のソースを見ると,TeX2 の頃のコードを基にしたまま TeX3 に追随していなかったようです。

set_math_char(ho(math_code(cur_chr))) vs. set_math_char(cur_chr)

→ こちらは 4e8aff1 でどうでしょうか。

@aminophen
Copy link
Member Author

問題1:256 のままでは駄目なのは明らかですが,では何の値にすれば意図通りなのかは自信がありません

→ そもそも cur_chr=256 の条件自体が不要な気がしてきた

@h-kitagawa
Copy link
Member

問題 2 についてはこれで良いように思っています.

問題 1 の cur_chr=256 は私もよくわかりませんが,このときmath_code(cur_chr) は範囲外ですからおかしいことは確かです.昔の pTeX から(p3.1.11 までも)残ったコードの誤記

if (cur_chr>=0)and(cur_chr<=256) then begin

が,ptexenc 用に書き換えられたときも直されなかったということなのでしょう.

h-kitagawa added a commit that referenced this issue Jan 30, 2022
@aminophen
Copy link
Member Author

#131 マージに伴いクローズ,r61804

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants