# いつも周回遅れの自己レスばかりで申し訳ありません…:
本トピックを投稿した元々の問題意識は、
最近、「以前作成したマクロが、その後のカーネルの変更の影響で
正しく動かなくなった」というトピックが続けてありました
ということだったのですが、これは、多くの皆さんの場合、お手元の
システムをちゃんと更新してらっしゃるからこそ、生じる事態でした。
それに対して、私自身は W32TeX [2020/07/19] 以来システムを更新
していませんので、私の手元は、
------------------------------------------------------------
This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/W32TeX) (preloaded format=latex 2020.7.18)
LaTeX2e <2020-02-02> patch level 5
L3 programming layer <2020-07-17>
------------------------------------------------------------
といった感じになっています。
(なので、「新しいシステムで古いコードが動かなくなった」とい
うのを、実際には自分のところでは試せていませんでした)
つまり、私の場合は、多くの皆さんとは逆に、
手元のシステムが古いので、新しいコードを試してみることができない
という状態にあるわけです。
で、先日、
> Re: 改ページを伴うlistingsの環境中で行番号をコピーしないようにしたい
> 2025年 04月 6日(日曜日) 13:20 - 本田 知亮 の投稿
> https://okumuralab.org/tex/mod/forum/discuss.php?d=3910#p24472
というご投稿がありまして、この本田さんのコードを試してみたい
なと思ったのですが、手元の LaTeX2e <2020-02-02>; L3 programming
layer <2020-07-17> ではもちろん動きません。
しかし、本トピックに対する aminophen さんの一連のご解説を踏ま
えますと、フォーマットを新しくすれば、それがつまり LaTeX を新
しくするということのような気がして来ました。
そこで、TeX Live のリポジトリから、現在の latex.ltx と、expl3.ltx
(や、expl3-code.tex 等々)をもらってきて、フォーマットを作成
して、手元の 2020 年のエンジンに読み込ませてみましたら、
------------------------------------------------------------
This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/W32TeX) (preloaded format=latex 2025.4.10)
LaTeX2e <2024-11-01> patch level 2
L3 programming layer <2025-03-26>
------------------------------------------------------------
This is e-pTeX, Version 3.14159265-p3.8.3-191112-2.6 (utf8.sjis) (TeX Live 2020/W32TeX) (preloaded format=platex 2025.4.10)
pLaTeX2e <2023-02-14>+1, based on
LaTeX2e <2024-11-01> patch level 2
L3 programming layer <2025-03-26>
------------------------------------------------------------
となり、これらを使って、無事本田さんのすごいコードも試してみ
ることができました。
(最近〔2023年秋~?〕では、ログの末尾にも、
***********
LaTeX2e <2024-11-01> patch level 2
L3 programming layer <2025-03-26>
***********
みたいに、LaTeX のバージョンが表示されるのですね)
オンラインのサービスを利用すれば、手元の LaTeX を更新しなく
とも、多分最新かそれに近いものを使えるのでしょうから、わざわ
ざこんな中途半端なことをするのはあまり意味がないのかも知れま
せんけれど、もしも私と同じような方が他にもいらっしゃいました
ら、一応ご参考まで(でも、飽くまで自己責任ということでお願い
します)。
# また追記の追記です…。
以前、上のほうで、
> 一応、latexrelease で巻き戻すという手段も用意されていますし。
と書いてしまいましたように、私は、latexrelease.sty というのは、
手元のフォーマットよりも古いフォーマットをエミュレートするため
のパッケージだとばかり思い込んでいました。
しかし、今さらですが、ドキュメントを見てみましたら、
... this latexrelease
package may be used to ensure stability where needed, either by making a new
format use an older definition of some commands, or conversely may be used to
supply the new definitions for use with an old format.
とありました…。
つまり、必要な変更が含まれている latexrelease.sty を用意すれ
ば、古いフォーマットのママでも、新しいフォーマットが定義して
いるコマンドを使うことが出来るようです。
(実は、本田さんのコードを試してみたいと思った際に、最初に思
いついたのは、フォーマットの更新ではなくて、Hook 関連のコード
のみを新しい dtx から拾い出して、プリアンブルに追加するという
方法でした。
でも、いろんな dtx に散らばっているであろう新しいコード群の
依存関係を追跡するのは恐らく私には無理だろうなと思い直して、
実際に取り掛かる前に、早々にこの方針は断念したのでした。
ところが、自分で頑張らなくとも、latexrelease.sty が、各種 dtx
への変更分をちゃんとマージしてくれていたのですね…。)
自分のもろもろの早合点を放置しておくのが恥ずかしくて、訂正し
たいという一心での追記ですので、システムをきちんと更新なさっ
ている多くの皆さんにとってはほとんど関係のない話の連続となっ
てしまい、誠に申し訳ありません。
以前、上のほうで、
> 一応、latexrelease で巻き戻すという手段も用意されていますし。
と書いてしまいましたように、私は、latexrelease.sty というのは、
手元のフォーマットよりも古いフォーマットをエミュレートするため
のパッケージだとばかり思い込んでいました。
しかし、今さらですが、ドキュメントを見てみましたら、
... this latexrelease
package may be used to ensure stability where needed, either by making a new
format use an older definition of some commands, or conversely may be used to
supply the new definitions for use with an old format.
とありました…。
つまり、必要な変更が含まれている latexrelease.sty を用意すれ
ば、古いフォーマットのママでも、新しいフォーマットが定義して
いるコマンドを使うことが出来るようです。
(実は、本田さんのコードを試してみたいと思った際に、最初に思
いついたのは、フォーマットの更新ではなくて、Hook 関連のコード
のみを新しい dtx から拾い出して、プリアンブルに追加するという
方法でした。
でも、いろんな dtx に散らばっているであろう新しいコード群の
依存関係を追跡するのは恐らく私には無理だろうなと思い直して、
実際に取り掛かる前に、早々にこの方針は断念したのでした。
ところが、自分で頑張らなくとも、latexrelease.sty が、各種 dtx
への変更分をちゃんとマージしてくれていたのですね…。)
自分のもろもろの早合点を放置しておくのが恥ずかしくて、訂正し
たいという一心での追記ですので、システムをきちんと更新なさっ
ている多くの皆さんにとってはほとんど関係のない話の連続となっ
てしまい、誠に申し訳ありません。