diff options
author | Takuji Tanaka <ttk@t-lab.opal.ne.jp> | 2025-02-07 14:20:24 +0000 |
---|---|---|
committer | Takuji Tanaka <ttk@t-lab.opal.ne.jp> | 2025-02-07 14:20:24 +0000 |
commit | bafe4534e7ac219b02c63ecb92026dabff7f20c3 (patch) | |
tree | ad2c4dfecf7ffc84da0ea91848d25709b4f62f76 | |
parent | d3d943c52a36d02bacc25c3f14b3f0253801ad48 (diff) |
uptex: Enable mac_param for 16bit latin character
git-svn-id: svn://tug.org/texlive/trunk@73756 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Build/source/texk/web2c/uptexdir/ChangeLog | 7 | ||||
-rw-r--r-- | Build/source/texk/web2c/uptexdir/tests/catcd.tex | 53 | ||||
-rw-r--r-- | Build/source/texk/web2c/uptexdir/tests/up-cat.log | 17 | ||||
-rw-r--r-- | Build/source/texk/web2c/uptexdir/uptex-m.ch | 11 |
4 files changed, 73 insertions, 15 deletions
diff --git a/Build/source/texk/web2c/uptexdir/ChangeLog b/Build/source/texk/web2c/uptexdir/ChangeLog index c94bf25286d..dead4d4f0a3 100644 --- a/Build/source/texk/web2c/uptexdir/ChangeLog +++ b/Build/source/texk/web2c/uptexdir/ChangeLog @@ -1,3 +1,10 @@ +2025-02-07 TANAKA Takuji <ttk@t-lab.opal.ne.jp> + + * uptex-m.ch: Enable catcode mac_param(6) for + 16bit latin character. + * tests/catcd.tex, tests/up-cat.log: Update tests. + https://github.com/texjporg/tex-jp-build/issues/170 + 2025-02-02 TANAKA Takuji <ttk@t-lab.opal.ne.jp> * uptex-m.ch: Improve treatment for catcode of diff --git a/Build/source/texk/web2c/uptexdir/tests/catcd.tex b/Build/source/texk/web2c/uptexdir/tests/catcd.tex index decf6e936a6..9cd8b42c880 100644 --- a/Build/source/texk/web2c/uptexdir/tests/catcd.tex +++ b/Build/source/texk/web2c/uptexdir/tests/catcd.tex @@ -7,6 +7,8 @@ % for (e)upTeX \kcatcode"C0=14 % Latin-1 Supplement \kcatcode"100=14 % Latin Extended-A + \kcatcode"1E00=14 % Latin Extended Additional + \kcatcode"2010=14 % General Punctuation \fi \ifx\ocp\undefined\else % for aleph @@ -56,59 +58,90 @@ \immediate\write16{\meaning Ĉ.}% the letter \immediate\write16{\meaning ĉ.}% the characer +% Latin Extended Additional +\catcode"1E01=1 +\catcode"1E02=2 +\catcode"1E03=3 +\catcode"1E04=4 +\catcode"1E05=6 +\catcode"1E06=7 +\catcode"1E07=8 +\catcode"1E08=11 +\catcode"1E09=12 +\immediate\write16{\meaning ḁ; % begin-group character + \meaning Ḃ.}% end-group character +\immediate\write16{\meaning ḃ.}% math shift character +\immediate\write16{\meaning Ḅ.}% alignment tab character +\immediate\write16{\meaning ḅ.}% macro parameter character +\immediate\write16{\meaning Ḇ.}% superscript character +\immediate\write16{\meaning ḇ.}% subscript character +\immediate\write16{\meaning Ḉ.}% the letter +\immediate\write16{\meaning ḉ.}% the characer + % catcode 1,2 : begin-group, end-group character \catcode"F2=1 % ò \catcode"F3=2 % ó \catcode"102=1 % Ă \catcode"103=2 % ă -òabcó Ădefă {ghió òjkl} {mnoă Ăpqr} +\catcode"2039=1 % ‹ +\catcode"203A=2 % › +òabcó Ădefă {ghió òjkl} {mnoă Ăpqr} {stu› ‹vwx} % catcode 11,12 : the letter, the characer \catcode"F2=11 \catcode"F3=12 \catcode"102=11 \catcode"103=12 -òabcó Ădefă {ghió òjkl} {mnoă Ăpqr} +\catcode"2039=11 % ‹ +\catcode"203A=12 % › +òabcó Ădefă {ghió òjkl} {mnoă Ăpqr} {stu› ‹vwx} % catcode 3 : math shift character \catcode"FC=3 % ü \catcode"10C=3 % Č +\catcode"1E0C=3 % Ḍ \immediate\write16{\meaning ü.}% math shift character \immediate\write16{\meaning Č.}% math shift character +\immediate\write16{\meaning Ḍ.}% math shift character % Setting for math fonts is required. -%$d^nx/dt^n$ $d^nx/dt^nü Čd^nx/dt^n$ üd^nx/dt^nČ +%$d^nx/dt^n$ $d^nx/dt^nü Čd^nx/dt^n$ üd^nx/dt^nČ Ḍd^nx/dt^nḌ % catcode 7,8 : superscript, subscript character \catcode"FE=7 % þ \catcode"FF=8 % ÿ \catcode"10E=7 % Ď \catcode"10F=8 % ď -\immediate\write16{\meaning þ.}% math shift character -\immediate\write16{\meaning ÿ.}% math shift character +\catcode"1E0E=7 % Ḏ +\catcode"1E0F=8 % ḏ +\immediate\write16{\meaning þ; \meaning ÿ.}% superscript, subscript character +\immediate\write16{\meaning Ď; \meaning ď.}% superscript, subscript character +\immediate\write16{\meaning Ḏ; \meaning ḏ.}% superscript, subscript character % Setting for math fonts is required. -%$a_nx^m$ $aÿnxþm$ $aďnxĎm$ +%$a_nx^m$ $aÿnxþm$ $aďnxĎm$ $aḏnxḎm$ % catcode 4 : alignment tab character \catcode"F4=4 % ô \catcode"104=4 % Ą +\catcode"1E04=4 % Ḅ \halign{# & # & # \cr aaa & bbb & ccc \cr ddd ô eee ô fff \cr - ggg Ą hhh Ą iii \cr} - -% (e)uptex makes erros for following. -\ifx\kcatcode\undefined\else\end\fi + ggg Ą hhh Ą iii \cr + jjj Ḅ kkk Ḅ lll \cr} % catcode 6 : macro parameter character \catcode"F5=6 % õ \catcode"105=6 % ą +\catcode"1E05=6 % ḅ \def\oWz#1{o{#1}z}\relax \oWz{r} \def\oXzõ1{o{õ1}z}\relax \oXz{r} \def\oYzą1{o{ą1}z}\relax \oYz{r} +\def\oZzḅ1{o{ḅ1}z}\relax +\oZz{r} \end diff --git a/Build/source/texk/web2c/uptexdir/tests/up-cat.log b/Build/source/texk/web2c/uptexdir/tests/up-cat.log index dc9fe314470..1b3b858e719 100644 --- a/Build/source/texk/web2c/uptexdir/tests/up-cat.log +++ b/Build/source/texk/web2c/uptexdir/tests/up-cat.log @@ -18,10 +18,19 @@ superscript character Ć. subscript character ć. the letter Ĉ. the character ĉ. +begin-group character ḁ; end-group character Ḃ. +math shift character ḃ. +alignment tab character Ḅ. +macro parameter character ḅ. +superscript character Ḇ. +subscript character ḇ. +the letter Ḉ. +the character ḉ. math shift character ü. math shift character Č. -superscript character þ. -subscript character ÿ. +math shift character Ḍ. +superscript character þ; subscript character ÿ. +superscript character Ď; subscript character ď. +superscript character Ḏ; subscript character ḏ. [1] ) -(\end occurred when \ifx on line 101 was incomplete) -Output written on up-cat.dvi (1 page, 372 bytes). +Output written on up-cat.dvi (1 page, 440 bytes). diff --git a/Build/source/texk/web2c/uptexdir/uptex-m.ch b/Build/source/texk/web2c/uptexdir/uptex-m.ch index 041b8841818..5eaf7f93990 100644 --- a/Build/source/texk/web2c/uptexdir/uptex-m.ch +++ b/Build/source/texk/web2c/uptexdir/uptex-m.ch @@ -797,7 +797,10 @@ if cat=other_kchar then decr(k); {now |k| points to first nonletter} @y until not((cat=letter)or(cat=kanji)or(cat=kana)or(cat=hangul)or(cat=modifier))or(k>limit); {@@<If an expanded...@@>;} -if not((cat=letter)or(cat=kanji)or(cat=kana)or(cat=hangul)or(cat=modifier)) then decr(k); +if not((cat=letter)or(cat=kanji)or(cat=kana)or(cat=hangul)or(cat=modifier)) then begin + if (cat=mac_param)and(buffer2[k-1])and(multilenbuffchar(cur_chr)>1) then k:=k-multilenbuffchar(cur_chr) + else decr(k); + end; if cat=other_kchar then k:=k-multilenbuffchar(cur_chr)+1; {now |k| points to first nonletter} @z @@ -901,6 +904,12 @@ if cat=other_kchar then k:=k-multilenbuffchar(cur_chr)+1; {now |k| points to fir @z @x +if (info(r)>match_token+255)or(info(r)<match_token) then s:=null +@y +if (info(r)>=match_token+max_latin_val)or(info(r)<match_token) then s:=null +@z + +@x char_given,math_given: scanned_result(cur_chr)(int_val); @y kchar_given, |