はじめまして.初の投稿となります.
次のコードを W32TeX(2012/2/4付近のもの)のなかの pTeX で実行すると,通ってしまいました.
/* --- コード --- */
\newcount\foo
\foo`\A
\showthe\foo % 65
\foo`\AA % !?
\showthe\foo
\bye
/* --- 出力 ---*/
$ eptex test.tex
This is e-pTeX, Version 3.1415926-p3.2-110825-2.3 (sjis) (TeX Live 2012/dev/W32TeX)
restricted \write18 enabled.
entering extended mode
(./test.tex
> 65.
l.3 \showthe\foo
% 65
?
> 452.
l.5 \showthe\foo
?
)
No pages of output.
Transcript written on test.log.
この場合,Improper alphabetic or KANJI constant. が出るべきだと思うのですが,どうでしょうか?
ちなみに etex ではエラーになりました.一応,出力をつけておきます.
/* --- 出力@etex ---*/
$ etex test.tex
This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2012/dev/W32TeX)
restricted \write18 enabled.
entering extended mode
(./test.tex
> 65.
l.3 \showthe\foo
% 65
?
! Improper alphabetic constant.
\AA
l.4 \foo`\AA
% !?
?
> 48.
l.5 \showthe\foo
?
[1] )
Output written on test.dvi (1 page, 220 bytes).
Transcript written on test.log.
> 次のコードを W32TeX(2012/2/4付近のもの)のなかの pTeX で実行すると,通ってしまいました.
TeX Live 2012 (x86_64-linux) 上の [e][u]ptex で同様の症状を確認しました.
tetex3 下(ptetex3 ではなく)の pTeX でも
同じ症状が起こっているようです:
---
$ /opt/home-supp/tetex3/bin/x86_64-unknown-linux-gnu/ptex a
This is pTeX, Version 3.141592-p3.1.10 (euc) (Web2C 7.5.4)
(./a.tex
> 65.
l.3 \showthe\foo
% 65
?
> 452.
l.5 \showthe\foo
?
)
No pages of output.
Transcript written on a.log.
---
TeX Live 2012 (x86_64-linux) 上の [e][u]ptex で同様の症状を確認しました.
tetex3 下(ptetex3 ではなく)の pTeX でも
同じ症状が起こっているようです:
---
$ /opt/home-supp/tetex3/bin/x86_64-unknown-linux-gnu/ptex a
This is pTeX, Version 3.141592-p3.1.10 (euc) (Web2C 7.5.4)
(./a.tex
> 65.
l.3 \showthe\foo
% 65
?
> 452.
l.5 \showthe\foo
?
)
No pages of output.
Transcript written on a.log.
---
pTeX のソースコード (ptex-base.ch) に,
@<Scan an alphabetic character code into |cur_val|@>=
……省略……
if (cur_val>255)and(cur_cmd<kanji) then
begin print_err("Improper alphabetic or KANJI constant");
@.Improper alphabetic constant@>
……省略……
というコードがありますが,ここの if 文の判定が甘く,\AA も文字に準ずるものと扱われてしまったようです.
(\AA の内部コードは 66244 = 452 + cs_token_flag+single_base)
パッチを作ってみました.
# 一回投稿しましたが,特殊文字にはまって 7/17 21:22 前後に編集しました.
@<Scan an alphabetic character code into |cur_val|@>=
……省略……
if (cur_val>255)and(cur_cmd<kanji) then
begin print_err("Improper alphabetic or KANJI constant");
@.Improper alphabetic constant@>
……省略……
というコードがありますが,ここの if 文の判定が甘く,\AA も文字に準ずるものと扱われてしまったようです.
(\AA の内部コードは 66244 = 452 + cs_token_flag+single_base)
パッチを作ってみました.
# 一回投稿しましたが,特殊文字にはまって 7/17 21:22 前後に編集しました.