texjporg / tex-jp-build

Minimum source repository to build Japanese TeX processing tools
23 stars 6 forks source link

upTeX 1.24 での全角英数・半角カナの \kcatcode のデフォルト値 #79

Closed doraTeX closed 5 years ago

doraTeX commented 5 years ago

upTeX 1.24 での全角英数・半角カナの \kcatcode のデフォルト値が 17 ではなく 18 なってしまっています。 kanji.c および uptex-m.ch を見ると,これは意図通りではないと思われます。

        if (block==0xa0) {
            /* Fullwidth ASCII variants  except for U+FF01..FF0F, U+FF1A..FF20, U+FF3B..FF40, U+FF5B..FF5E */
            if (  (FULLWIDTH_DIGIT_0  <=c && c<=FULLWIDTH_DIGIT_9  )
               || (FULLWIDTH_CAPITAL_A<=c && c<=FULLWIDTH_CAPITAL_Z)
               || (FULLWIDTH_SMALL_A  <=c && c<=FULLWIDTH_SMALL_Z  ) )
            return 0x1FE;
        /* Halfwidth Katakana variants  except for U+FF65, U+FF70, U+FF9E..FF9F */
            if (  (HALFWIDTH_KATAKANA_WO <=c && c<=HALFWIDTH_KATAKANA_SMALL_TSU )
               || (HALFWIDTH_KATAKANA_A  <=c && c<=HALFWIDTH_KATAKANA_N  ) )
            return 0x1FF;
        }
  @t\hskip10pt@>kcat_code(@"1FE):=kana; { Fullwidth digit and latin alphabet }
  @t\hskip10pt@>kcat_code(@"1FF):=kana; { Halfwidth katakana }

おそらく,c3e79f1155fc99fc9f1dc3e184735489944244f2 において ucs_range

0x1C90, /* Georgian Extended                     */

のブロックが増えたときにインデックスがずれたのが

 if (block==0xa0) {

に反映されていないためではないかと思われます。ここを

 if (block==0xa1) {

に修正してビルドしたところ,全角英数・半角カナの \kcatcode のデフォルト値が 17 に戻りました。

t-tk commented 5 years ago

ご指摘有難うございます。おっしゃるとおりです。うっかりしました。 近日中に取り込ませていただきます。 ご不便をおかけして申し訳ありません。

aminophen commented 5 years ago

科研費 LaTeX で全角数字で始まるマクロが定義されているらしく,この影響でコケるそうです。

TL2020 まで待たないといけないようでは影響が大きそうですが,バイナリのリビルドを申請するのはちょっと気がひけます。他の手として「\kcatcode をフォーマット作成時に補正する」という手はどうでしょう? uptex-base と uplatex の ukinsoku.tex あたりに仕込めば出来そうな気がします(試してないけど…。)

t-tk commented 5 years ago

今回のは明確なバグ(意図していない動作)です。

  1. 全角英数・半角仮名の \kcatcode のデフォルト値が 17 になるはずが 18 になってしまった
  2. 全角英数, 半角仮名, その他の"Halfwidth and Fullwidth Forms"ブロックの文字の \kcatcode をバラバラに設定できるはずが出来なくなってしまった

の2つの影響があると思います。 1が「\kcatcode をフォーマット作成時に補正する」で改善するならありがたいです。(workaround的ですが。) それでも2は改善しないでしょう。 科研費マクロが1で改善するならありがたいです。

t-tk commented 5 years ago

pull request をここの master にマージしTeX Live svn にコミットしました。(r51021) 「\kcatcode をフォーマット作成時に補正する」の件はまだ残っています。

良く分かっていませんが、GitHubの機能として Issueとは違い pull request はマージすると closed みたいになる?

aminophen commented 5 years ago

GitHubの機能として Issueとは違い pull request はマージすると closed みたいになる?

(経験上)そうです。pull request はマージすると自動的に close します。

issue の場合は,マージしても基本的には open です。例外として,コミットメッセージが「fix #68」のように明確に特定の issue への修正であることが書かれていれば,そのコミットが master ブランチに入った時点で自動的に close されます(別ブランチにある間は閉じない)。

wtsnjp commented 5 years ago

そのコミットが master ブランチに入った時点で

厳密には「デフォルトブランチに入った時点で」ですかね.

cf. https://help.github.com/en/articles/closing-issues-using-keywords

t-tk commented 5 years ago

「\kcatcode をフォーマット作成時に補正する」件は https://github.com/texjporg/uptex-base/issues/3 に移動します。