Twitter ではアナウンスしましたが,LaTeX カーネルが 2020-10-01 に更新される予定です。
更新内容(英語)はコマンド
$ texdoc ltnews32
を実行して読める PDF に記載されていますので読んでいただきたいのですが,
何といってもコア機能の内部実装が大幅に変更・拡張されているため
「LaTeX を更新すると予期せぬ不具合が発生する」
という懸念が(また)あります。
% 前回の事例 (2020-02-02) 並みに大きな変更だと認識しています。
ミニマムな LaTeX 文書を書いているユーザの方には問題が起きないかもしれませんが,
「LaTeX の内部実装に手を加えるパッケージを使っている場合」
あるいは
「自分でもよく分からないコードをコピペして使っている場合」
は特に,不具合が起きる可能性が十分あります。
非互換が発生すると困る方は,
10月1日(本日)以降,当面 TeX Live の更新を控えることをお勧めします。
※ 誤解のないように書いておきます。
ltnews32 を読めばわかるとおり,LaTeX2e 2020-10-01 では非常に多くの
機能追加や改良・バグ修正などがなされています。
それは非常に良い方向性で,多くのユーザにとっても利益になるものです。
(それを実現するために内部実装が変わって予期せぬ挙動が起きる,というのは表裏一体です。)
=====
なお,日本語 TeX 開発コミュニティが維持開発している pLaTeX も
「LaTeX の内部実装に手を加える」
という仕組みで実現されているため,やはり問題が起きそうな状況でしたが,
つい今しがた「致命的な欠陥は起きないであろうレベル」に持ち込みました。
多くの方のご協力をいただきました。大変ありがとうございました。
これが CTAN / TeX Live に反映されれば
pLaTeX2e <2020-10-01>
として起動するようになります。
(対応状況 → https://github.com/texjporg/platex/issues/94 も参照)
多少の非互換が起きる可能性を承知の上で,テストしてくださる方がいれば
TeX Live を更新して新しい pLaTeX を試してくださると助かります。
pLaTeX2e <2020-10-01> の更新内容は添付 (plnewsc15.pdf) のとおりです。
どうやら新しい LaTeX2e 2020-10-01 を使うと
「jsclasses で 10pt 以外のフォントサイズを使用した場合」
に papersize オプションによる用紙サイズ指定が間違うようです。
\documentclass[dvipdfmx,slide,a4paper,papersize]{jsarticle}
\begin{document}
ここから\hfill ここまで
\end{document}
原因調査はこれから行いますが,
(1) 冒頭に
\RequirePackage[2020/02/02]{platexrelease}
を追加すると大丈夫になるようです。
(2) あるいは,
\usepackage{hyperref}
\usepackage{pxjahyper}
という2行を追加しても治るようです。
→ https://github.com/texjporg/jsclasses/issues/72
「jsclasses で 10pt 以外のフォントサイズを使用した場合」
に papersize オプションによる用紙サイズ指定が間違うようです。
\documentclass[dvipdfmx,slide,a4paper,papersize]{jsarticle}
\begin{document}
ここから\hfill ここまで
\end{document}
原因調査はこれから行いますが,
(1) 冒頭に
\RequirePackage[2020/02/02]{platexrelease}
を追加すると大丈夫になるようです。
(2) あるいは,
\usepackage{hyperref}
\usepackage{pxjahyper}
という2行を追加しても治るようです。
→ https://github.com/texjporg/jsclasses/issues/72
> どうやら新しい LaTeX2e 2020-10-01 を使うと
> 「jsclasses で 10pt 以外のフォントサイズを使用した場合」
> に papersize オプションによる用紙サイズ指定が間違うようです。
jsclasses 2020-10-05 で対応を施してリリースしました。
https://github.com/texjporg/jsclasses/releases/tag/2020-10-05
=====
なお,この問題は,LaTeX2e 2020-10-01 における以下の挙動変化に起因します。
『\AtBeginDvi の引数の展開タイミングが,"その場"ではなく"実行時"に変化した』
例えば以下のソースを LaTeX2e 2020-02-02 以前と 2020-10-01 で比べると分かります。
\documentclass{article}
\AtBeginDvi{\ONE\special{\TWO}}
\typeout{\THREE}
\begin{document}
test
\end{document}
当然これを処理すれば「制御綴が未定義」というエラーが出るのですが
* 従来 … \ONE \TWO \THREE の順
* 2020-10-01 … \THREE \ONE \TWO の順
というように違いが出ます。
この挙動変化は \shipout に関わる LaTeX2e のコードが一新された影響ですが,
意図的かどうかはよくわかりません。
> 「jsclasses で 10pt 以外のフォントサイズを使用した場合」
> に papersize オプションによる用紙サイズ指定が間違うようです。
jsclasses 2020-10-05 で対応を施してリリースしました。
https://github.com/texjporg/jsclasses/releases/tag/2020-10-05
=====
なお,この問題は,LaTeX2e 2020-10-01 における以下の挙動変化に起因します。
『\AtBeginDvi の引数の展開タイミングが,"その場"ではなく"実行時"に変化した』
例えば以下のソースを LaTeX2e 2020-02-02 以前と 2020-10-01 で比べると分かります。
\documentclass{article}
\AtBeginDvi{\ONE\special{\TWO}}
\typeout{\THREE}
\begin{document}
test
\end{document}
当然これを処理すれば「制御綴が未定義」というエラーが出るのですが
* 従来 … \ONE \TWO \THREE の順
* 2020-10-01 … \THREE \ONE \TWO の順
というように違いが出ます。
この挙動変化は \shipout に関わる LaTeX2e のコードが一新された影響ですが,
意図的かどうかはよくわかりません。
小生10月に入ってから、tlmgr update --self --all を一切行っておりません。
===============================================
非互換が発生すると困る方は,
10月1日(本日)以降,当面 TeX Live の更新を控えることをお勧めします。・・・とありますが、
===============================================
不具合が出たら、backup から、restoreすればよさそうですが、その作業が面倒な気がして、未だ手をつけていません。更新してもいいですよ、というアナウンスは、近い将来、出るのでしょうか?素朴な質問で恐縮ですが。
===============================================
非互換が発生すると困る方は,
10月1日(本日)以降,当面 TeX Live の更新を控えることをお勧めします。・・・とありますが、
===============================================
不具合が出たら、backup から、restoreすればよさそうですが、その作業が面倒な気がして、未だ手をつけていません。更新してもいいですよ、というアナウンスは、近い将来、出るのでしょうか?素朴な質問で恐縮ですが。
現時点の私見は
・既知の不具合も,まだ直っていないものが複数。(下記)
・ただし,致命的かつ影響が大きい不具合が残っているという報告はない。
という状況を踏まえて
・全員に積極的な更新が「必須あるいは推奨」とはしない。
・ただし,来年以降も LaTeX を使う予定があれば,各自の“困らないタイミング”で更新してよい。
(=早めに新しい LaTeX の挙動を知ることは,将来へ向けた準備になります。)
と述べておきます。
====
既知の不具合:先述の「TikZ (PGF) の shadings で塗りが表示されない」の対策リリース待ちの他,
menukeys パッケージや catoptions パッケージで発生している模様。
https://twitter.com/aminophen/status/1315148932390039552
https://twitter.com/aminophen/status/1316384079571349504
====
> 不具合が出たら、backup から、restoreすればよさそう
方法は
https://okumuralab.org/tex/mod/forum/discuss.php?d=2428
https://okumuralab.org/tex/mod/forum/discuss.php?d=1819
の時と似ています。改めて書くと
$ tlmgr restore latex
で,巻き戻せる latex のバージョンを調べる。
$ tlmgr restore latex (判った数字)
で,latex を巻き戻す。
$ fmtutil-user --all
で,フォーマットを再作成する。
全てコマンドラインでの入力操作ですので,慣れていれば可能です。
・既知の不具合も,まだ直っていないものが複数。(下記)
・ただし,致命的かつ影響が大きい不具合が残っているという報告はない。
という状況を踏まえて
・全員に積極的な更新が「必須あるいは推奨」とはしない。
・ただし,来年以降も LaTeX を使う予定があれば,各自の“困らないタイミング”で更新してよい。
(=早めに新しい LaTeX の挙動を知ることは,将来へ向けた準備になります。)
と述べておきます。
====
既知の不具合:先述の「TikZ (PGF) の shadings で塗りが表示されない」の対策リリース待ちの他,
menukeys パッケージや catoptions パッケージで発生している模様。
https://twitter.com/aminophen/status/1315148932390039552
https://twitter.com/aminophen/status/1316384079571349504
====
> 不具合が出たら、backup から、restoreすればよさそう
方法は
https://okumuralab.org/tex/mod/forum/discuss.php?d=2428
https://okumuralab.org/tex/mod/forum/discuss.php?d=1819
の時と似ています。改めて書くと
$ tlmgr restore latex
で,巻き戻せる latex のバージョンを調べる。
$ tlmgr restore latex (判った数字)
で,latex を巻き戻す。
$ fmtutil-user --all
で,フォーマットを再作成する。
全てコマンドラインでの入力操作ですので,慣れていれば可能です。