-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LaTeX2e 2020-10-01 対策 #94
Comments
現状です。(このコメントは随時編集します) pLaTeX カーネル
platex-tools → Done: release "2020-09-27"
gentombow → Done: release "2020-09-25"
pxjahyper → Done: release "2020-10-05"
jlreq
plautopatch → Done: release "2020-09-27"
jsclasses → Done: release "2020-10-05"
|
latex-dev の定義
platex-dev の定義
これはまずいような気がしますがよくわかりません。 |
一方,LaTeX2e 2020-10-01 pre-release 9 では |
試しに定義を消してみるとエラーが出ました(tests/atbegindvi_tate.tex):
(安直に
|
LaTeX2e 2020-10-01 pre ですと
となっているので,pxatbegshi.sty の内容を platex カーネルに入れてしまえばいいのかなあ,と考えています. |
aminophen/platex-tools#16 とも関連して,やはり aminophen/platex-tools#14 の Ulrike の提案のように「LaTeX カーネル側に \yoko を追加しやすいプレースホルダを用意してもらう」+「pLaTeX カーネルでそのプレースホルダに \yoko を入れる」という方向が実装的にもメンテナンス上も best だと思うに至りました。 |
shipout 関連(\AtBeginDvi を含む)については texjporg/tests-shipout#1 へ集約します。 こちらの issue では,以下 pLaTeX の shipout 関連以外を扱うことにします。 フォント関連 (plfonts.dtx):新命令 \IfFontSeriesContextTF
フォント関連 (plfonts.dtx):フックの名称変更など
|
3332ed9 で それから,plfonts.dtx の中に,私が4月頃に書いたメモがありました。どうやら latex3/latex2e@3503b28 の時点で書いたらしい(すっかり忘れていた)のですが,その後状況が変わったかもしれず,追跡できていません。 % ^^A [TODO] See changes in ltfssini.dtx:
% ^^A * 2020/04/13 v3.1n (latex3/latex2e@3503b28)
% ^^A ===== v3.1n =====
% ^^A ltfssini.dtx 2020/04/13 v3.1n で |latex3/latex2e#315| 対策が入ったが、
% ^^A 従来は |\init@series@setup| から呼び出される
% ^^A |\expand@font@defaults| が |\famdef@ult| を設定していた。
% ^^A 新版は |\init@series@setup| からもはや
% ^^A |\expand@font@defaults| は呼び出さず、代わりに
% ^^A |\init@series@setup| で一度 |\reset@font| を実行し、
% ^^A それに基づいて |\seriesdefault| 設定する。
% ^^A =================
% ^^A 現時点では安定版 latex に従っておくが、本来は
% ^^A |\init@series@setup| が |\reset@font| を実行するかどうか
% ^^A を判定して |\expand@font@defaults| 及び |\init@series@setup| への
% ^^A フック内容を調整すべきである。 |
コード上は latex3/latex2e#315 に追随したつもりですが,テストはまだです。
diff --git a/platex.dtx b/platex.dtx
index 2f94194..b1dd3b3 100644
--- a/platex.dtx
+++ b/platex.dtx
@@ -529,14 +531,18 @@
% \TeX{}の入力ファイル検索パスに設定されている
% ディレクトリに\file{pldefs.cfg}ファイルがある場合は、
% そのファイルを使います。
+% 読み込み後にコードが実行されるかもしれません。
% \changes{v1.0s}{2017/12/05}{デフォルト設定ファイルの読み込みを
% \file{plcore.ltx}から\file{platex.ltx}へ移動}
+% \changes{v1.1b}{2020/09/28}{defs読込後にフック追加}
%\else
% Load font-related default settings, \file{pldefs.ltx}.
% If a file \file{pldefs.cfg} is found, then that file will be
% used instead.
+% Some code may be executed after loading.
% \changes{v1.0s}{2017/12/05}{Moved loading default settings
% from \file{plcore.ltx} to \file{platex.ltx}}
+% \changes{v1.1b}{2020/09/28}{Add hook after loading defs}
%\fi
% \begin{macrocode}
\InputIfFileExists{pldefs.cfg}
@@ -544,6 +550,7 @@
* Local config file pldefs.cfg used^^J%
*************************************}}%
{\input{pldefs.ltx}}
+\ifx\code@after@pldefs\@undefined\else \code@after@pldefs \fi
% \end{macrocode}
%
%\ifJAPANESE
diff --git a/plfonts.dtx b/plfonts.dtx
index 5940052..74059d1 100644
--- a/plfonts.dtx
+++ b/plfonts.dtx
@@ -3111,21 +3113,15 @@
%}
% \end{macrocode}
% p\LaTeX{}では、以下のコードを末尾に追加します。
-% ^^A [TODO] See changes in ltfssini.dtx:
-% ^^A * 2020/04/13 v3.1n (latex3/latex2e@3503b28)
-% ^^A ===== v3.1n =====
-% ^^A ltfssini.dtx 2020/04/13 v3.1n で |latex3/latex2e#315| 対策が入ったが、
+% \file{ltfssini.dtx} 2020/04/13 v3.1nで|latex3/latex2e#315|対策が
+% 入りましたので、その前後で|\expand@font@defaults|および
+% |\init@series@setup|への追加内容が変わります。
% ^^A 従来は |\init@series@setup| から呼び出される
% ^^A |\expand@font@defaults| が |\famdef@ult| を設定していた。
% ^^A 新版は |\init@series@setup| からもはや
% ^^A |\expand@font@defaults| は呼び出さず、代わりに
% ^^A |\init@series@setup| で一度 |\reset@font| を実行し、
% ^^A それに基づいて |\seriesdefault| を設定する。
-% ^^A =================
-% ^^A 現時点では安定版 latex に従っておくが、本来は
-% ^^A |\init@series@setup| が |\reset@font| を実行するかどうか
-% ^^A を判定して |\expand@font@defaults| 及び |\init@series@setup| への
-% ^^A フック内容を調整すべきである。
% \changes{v1.7h}{2020/09/28}{New hook management interface
% (sync with ltfssini.dtx 2020/08/21 v3.2b)}
% \begin{macrocode}
@@ -3140,7 +3136,7 @@
\AddToHook{expand@font@defaults}{%
\edef\mcdef@ult{\mcdefault}%
\edef\gtdef@ult{\gtdefault}%
- \edef\kanjidef@ult{\kanjifamilydefault}%
+ %\edef\kanjidef@ult{\kanjifamilydefault}% !! sync with 2020/04/13 v3.1n
}
\fi % --- for 2020-10-01 END
\fi %</2020-02-02|2020-10-01>
@@ -3407,23 +3403,32 @@
%
% \begin{macro}{\init@series@setup}
% |\begin{document}|で実行される初期化です。
-% まず、オリジナルの\LaTeX{}の定義を載せておきます。
+% まず、オリジナルの\LaTeX{}の定義(ltfssini.dtx 2020/04/13 v3.1n以降)を
+% 載せておきます。
% \begin{macrocode}
%\def\init@series@setup{%
% \ifx\bfseries@rm@kernel\bfseries@rm
-% \expandafter\in@\expandafter{\rmdefault}{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}%
+% \expandafter\in@\expandafter{\rmdefault}%
+% {cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}%
% \ifin@ \else \def\bfseries@rm{b}\fi\fi
% \ifx\bfseries@sf@kernel\bfseries@sf
-% \expandafter\in@\expandafter{\sfdefault}{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}%
+% \expandafter\in@\expandafter{\sfdefault}%
+% {cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}%
% \ifin@ \else \def\bfseries@sf{b}\fi\fi
% \ifx\bfseries@tt@kernel\bfseries@tt
-% \expandafter\in@\expandafter{\ttdefault}{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}%
+% \expandafter\in@\expandafter{\ttdefault}%
+% {cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}%
% \ifin@ \else \def\bfseries@tt{b}\fi\fi
-% \expand@font@defaults
-% \ifx\famdef@ult\rmdef@ult \rmfamily
-% \else\ifx\famdef@ult\sfdef@ult \sffamily
-% \else\ifx\famdef@ult\ttdef@ult \ttfamily
-% \fi\fi\fi
+% %\expand@font@defaults % !! deleted in 2020/04/13 v3.1n BEGIN
+% %\ifx\famdef@ult\rmdef@ult \rmfamily % !! CONT
+% %\else\ifx\famdef@ult\sfdef@ult \sffamily % !! CONT
+% %\else\ifx\famdef@ult\ttdef@ult \ttfamily % !! CONT
+% %\fi\fi\fi % !! deleted in 2020/04/13 v3.1n END
+% \reset@font % !! added in 2020/04/13 v3.1n BEGIN
+% \ifx\seriesdefault\seriesdefault@kernel % !! CONT
+% \mdseries % !! CONT
+% \let\seriesdefault\f@series % !! CONT
+% \fi % !! added in 2020/04/13 v3.1n END
%}%
% \end{macrocode}
% ここからがp\LaTeX{}による追加コードです。
@@ -3434,16 +3439,51 @@
% \end{itemize}
% になることに注意します。
% \changes{v1.6w}{2020/02/03}{巻き戻しのバグ修正}
+% \changes{v1.7h}{2020/09/28}{Handling \cs{seriesdefault} changes
+% (sync with ltfssini.dtx 2020/04/13 v3.1n)}
% \begin{macrocode}
-\expandafter\ifx\csname init@series@setup\endcsname\relax\else % 2020-02-02
+\expandafter\ifx\csname init@series@setup\endcsname\relax
+\else %<*2020-02-02|2020-10-01>
+\ifx\AddToHook\@undefined % --- for 2020-02-02 BEGIN
\g@addto@macro\init@series@setup{%
\ifx\kanjidef@ult\mcdef@ult \mcfamily
\else\ifx\kanjidef@ult\gtdef@ult \gtfamily
\fi\fi
}%
-\fi
+\else % --- for 2020-02-02 END & for 2020-10-01 BEGIN
+\g@addto@macro\init@series@setup{%
+ % !! sync with 2020/04/13 v3.1n BEGIN
+ \ifx\kanjiseriesdefault\kanjiseriesdefault@kernel
+ \mdseries
+ \let\kanjiseriesdefault\k@series
+ \fi
+ % !! sync with 2020/04/13 v3.1n END
+}%
+\fi % --- for 2020-10-01 END
+\fi %</2020-02-02|2020-10-01>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\kanjiseriesdefault}
+% \begin{macro}{\kanjiseriesdefault@kernel}
+% |\kanjiseriesdefault|が\file{pldefs.ltx}または\file{pldefs.cfg}で
+% 定義された後に、その末尾に|\@empty|を追加します。
+% これは展開時に消滅しますが、文書のプリアンブルで別の値に
+% 変更されたかどうか検知できるようになります。
+% \changes{v1.7h}{2020/09/28}{Handling \cs{seriesdefault} changes
+% (sync with ltfssini.dtx 2020/04/13 v3.1n)}
+% \begin{macrocode}
+\ifx\AddToHook\@undefined
+\else % --- for LaTeX2e 2020-10-01 or later BEGIN
+\def\code@after@pldefs{%
+\expandafter\def\expandafter\kanjiseriesdefault
+ \expandafter{\kanjiseriesdefault\@empty}
+\let\kanjiseriesdefault@kernel\kanjiseriesdefault}
+\fi % --- for LaTeX2e 2020-10-01 or later END
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
%
% \begin{macro}{\mcfamily} |
私自身ほぼテストできていませんが,最新の master (4f0ba6c) を入手して「latex-dev + 新 platex = platex-dev」をテストしてくださる方がいれば大変助かります。 なお「latex + 新 platex = platex」の状態については,\AddToHook を検知する新旧判定コードを組み込んでありますので,新しいコードは全く無関係=すなわち従来通りの動作になるはずです(例外は pLaTeX 独自修正である #78 及び texjporg/ptex-base#8 がある)。要するに,10月1日以降 LaTeX が新しくなって問題が起きた場合は「LaTeX だけ tlmgr restore で復旧して fmtutil-sys したら大丈夫(pLaTeX の復旧は不要)」となっているはずです。この状態ならば,最低限のテストで早急にリリースする方向でも良いと考えています。 |
いったん区切りがついたので platex 2020-09-30 として CTAN に登録申請しました。
冒頭のコメントの進捗状況を一度ここに記録します。 現状です。(このコメントは随時編集します) pLaTeX カーネル
platex-tools → Done: release "2020-09-27"
gentombow → Done: release "2020-09-25"
pxjahyper → Done: release "2020-09-27"
jlreq
plautopatch → Done: release "2020-09-27"
jsclasses
よって,既知の残りの課題は以下となりました:
いずれも直近で致命的ではないと思いますが,追って対応しましょう。 |
|
Watching: latex3/latex2e#444 (comment) (Proposed fix of \fontseries) |
latex3/latex2e#444 への対応は #96 へ。 |
めぼしい変更点:
なお pxeveryshi, pxatbegshi については aminophen/platex-tools#14 ですが,atbegshi が LaTeX カーネルに取り込まれる以上,こちらで検討しても良いものと思います。
The text was updated successfully, but these errors were encountered: