Acetaminophen’s diary

化学に関すること,TeXに関すること,ゆきだるまに関すること。

ptexenc のアレ?を試してみる

この記事は、サブブログの 2016-02-17 投稿記事を移転してきたものです。

あべのりさんのを実験。ここでは e-pTeX ではなく pTeX を使ってみた。

file-0.tex

\newcount\filenum
\filenum0
(\the\filenum)
\advance\filenum1

\input file-\the\filenum.tex
\bye

file-1.tex

(\the\filenum)
\advance\filenum1

\input file-\the\filenum.tex
\bye

file-50.tex

(\the\filenum)
\advance\filenum1

\bye

copyfiles.sh

#/bin/sh
for i in {2..49}
do
  cp file-1.tex file-$i.tex
done

そして ./copyfiles.sh を実行して file-1.tex を file-2.tex から file-49.tex としてコピーを作成。これで、file-0.texコンパイルすると file-1.tex から file-50.tex までが読み込まれる。期待される結果は「(0) から (50) までの数字が DVI に並ぶ」。

W32TeX [2012/11/04]

> set max_in_open=99
> ptex file-0
This is pTeX, Version 3.1415926-p3.3 (sjis) (TeX Live 2012/W32TeX)
 restricted \write18 enabled.
(./file-0.tex (./file-1.tex (./file-2.tex (./file-3.tex (./file-4.tex
(./file-5.tex (./file-6.tex (./file-7.tex (./file-8.tex (./file-9.tex
(./file-10.tex (./file-11.tex (./file-12.tex (./file-13.tex (./file-14.tex
(./file-15.tex (./file-16.tex (./file-17.tex (./file-18.tex (./file-19.tex
(./file-20.tex (./file-21.tex (./file-22.tex (./file-23.tex (./file-24.tex
(./file-25.tex (./file-26.tex
! TeX capacity exceeded, sorry [main memory size=3000000].
l.374194 ^^@^^@^^@(\the\filenum)
                                
If you really absolutely need more capacity,
you can ask a wizard to enlarge me.

No pages of output.

27個目のファイルを読もうとして main memory size を超過。よくみると…えっ、l.374194? そんなに行はないはずなのだが…

W32TeX [2014/11/08]

> set max_in_open=99
> ptex file-0
This is pTeX, Version 3.14159265-p3.5 (sjis) (TeX Live 2014/W32TeX)
 restricted \write18 enabled.
(./file-0.tex (./file-1.tex (./file-2.tex (./file-3.tex (./file-4.tex
(./file-5.tex (./file-6.tex (./file-7.tex (./file-8.tex (./file-9.tex
(./file-10.tex (./file-11.tex (./file-12.tex (./file-13.tex (./file-14.tex
(./file-15.tex (./file-16.tex (./file-17.tex (./file-18.tex (./file-19.tex
(./file-20.tex

固まった。Ctrl + C でも止まらず、タスクマネージャで kill した。

TeX Live 2012 (Cygwin)

$ export max_in_open=99
$ ptex file-0
This is pTeX, Version 3.1415926-p3.3 (utf8.euc) (TeX Live 2012)
 restricted \write18 enabled.
(./file-0.tex (./file-1.tex (./file-2.tex (./file-3.tex (./file-4.tex
(./file-5.tex (./file-6.tex (./file-7.tex (./file-8.tex (./file-9.tex
(./file-10.tex (./file-11.tex (./file-12.tex (./file-13.tex (./file-14.tex
(./file-15.tex (./file-16.tex (./file-17.tex (./file-18.tex (./file-19.tex
(./file-20.tex (./file-21.tex (./file-22.tex (./file-23.tex (./file-24.tex
(./file-25.tex (./file-26.tex (./file-27.tex (./file-28.tex (./file-29.tex
(./file-30.tex (./file-31.tex (./file-32.tex (./file-33.tex (./file-34.tex
(./file-35.tex (./file-36.tex (./file-37.tex (./file-38.tex (./file-39.tex
(./file-40.tex (./file-41.tex (./file-42.tex (./file-43.tex (./file-44.tex
(./file-45.tex (./file-46.tex (./file-47.tex (./file-48.tex (./file-49.tex
(./file-50.tex [1] ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
Output written on file-0.dvi (1 page, 756 bytes).
Transcript written on file-0.log.

正常終了。出力も期待どおり。

TeX Live 2015 (OS X)

$ export max_in_open=99
$ ptex file-0
This is pTeX, Version 3.14159265-p3.6 (utf8.euc) (TeX Live 2015)
 restricted \write18 enabled.
(./file-0.tex (./file-1.tex (./file-2.tex (./file-3.tex (./file-4.tex
(./file-5.tex (./file-6.tex (./file-7.tex (./file-8.tex (./file-9.tex
(./file-10.tex (./file-11.tex (./file-12.tex (./file-13.tex (./file-14.tex
(./file-15.tex (./file-16.tex (./file-17.tex (./file-18.tex (./file-19.tex
(./file-20.tex (./file-21.tex (./file-22.tex (./file-23.tex (./file-24.tex
(./file-25.tex (./file-26.tex (./file-27.tex (./file-28.tex (./file-29.tex
(./file-30.tex (./file-31.tex (./file-32.tex (./file-33.tex (./file-34.tex
(./file-35.tex (./file-36.tex (./file-37.tex (./file-38.tex (./file-39.tex
(./file-40.tex (./file-41.tex (./file-42.tex (./file-43.tex (./file-44.tex
(./file-45.tex (./file-46.tex (./file-47.tex (./file-48.tex (./file-49.tex
(./file-50.tex [1] ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
Output written on file-0.dvi (1 page, 756 bytes).
Transcript written on file-0.log.

正常終了。出力も期待どおり。

あべのりさんのところで「(20)の前と最後にΛがふたつ並んでいる」というのは Computer Modern でいくと End Of Text (^C) の制御コードにあたる。MinGW でビルドしたもので起きたそうなので、ビルドしてみるか…

追記 (2016-03-01):TeX Live r39901 でとりあえず OPEN_MAX = 132 に設定する応急処置が入ったので、この問題は(見かけ上?)起こらなくなった。