\DeclareRelationFontの不具合?

\DeclareRelationFontの不具合?

- 本田 知亮 の投稿
返信数: 4
pLaTeX2e <2020-10-01>+2 (based on LaTeX2e <2021-05-01> pre-release-2 (develop 2021-3-20 branch))
と,少し前のplatex-devで動かしてますが,
当該箇所の
texjp.orgのplcore.ltxのソースでも
ほぼ同じだったので,
たぶん現在のものでも同じだと思います


かなり不遇な扱いの\DeclareRelationFont/\userelfontに関して,
例えば

\documentclass{jartice}
\DeclareRelationFont{JY1}{mc}{m}{n}{T1}{ptm}{b}{it}
\begin{document}
\userelfont\selectfont
あああTimes Bold Italic??れれれれ
\end{document}


とすると,欧文がT1/ptm/b/itになるはずですが,
実際は,T1/ptm/m/nになっているようです.

ここ最近のplcore.ltxの\selectfontの変更で
\delayed@f@adjustment
\delayed@k@adjustment
が入り込んでますが,
\delayed@f@adjustment関連の処理は
\selectfontの先頭だと早すぎるのではないかと思います.

\DeclareRelationFontで従属欧文がリンクされている場合
\delayed@(k|f)@adjustment関係の処理が
\selectfontの最初の方でなされたあとに,
和文の処理が終わって.その次に
\rel@///(|all)が実行されて
このとき\romanseries/\romanshapeで
\delayed@f@adjustmentが更新されていますが,
すでに\delayed@f@adjustmentの処理は終わっているので,
この更新が実際の\f@series/\f@shapeに反映されないまま
欧文のフォント変更がなされていると思います.
\f@encoding/\f@familyは更新されているでの
書体は変わることは変わりますが,series/shapeは変わってません.

これの修正は,、
\selectfontの定義の中で

\let\font\afont
<ここに\ifx\delayed@f@adjustment\@empty ... \fiを移す>
\xdef\font@name{\csname\curr@fontshape/\f@size\endcsname}%

とするといいのかと思います.

\@forced@seriesflaseは
\ifx\delayed@k@adjustment\@empty ... \fiの直後に
残さないといけないのかとは思います.
\@forced@seriesfalseそのものの意図が
そもそも理解できてないですが(^-^;


本田 知亮 への返信

Re: \DeclareRelationFontの不具合?

- aminophen の投稿
報告ありがとうございます。
おっしゃる通りです。
\delayed@f@adjustment の処理を遅らせるのが良いように思っています。

\delayed@k@adjustment の処理
→和文の処理
→\rel@///(|all) = \romanseries/\romanshape で更新
→\delayed@f@adjustment の処理
→欧文の処理

の順にすれば良さそうです。


\@forced@series フラグは,現在の「値更新を \selectfont に遅らせる」実装だと
和文と欧文で干渉しそうなので,フラグを分離した方がいいかもと思っています。
aminophen への返信

Re: \DeclareRelationFontの不具合?

- 本田 知亮 の投稿
# <...> で属性的なものを書く癖があるのですが
# フォーマットの選択を忘れました
# 一部意味不明になってましたが,
# 読み取っていただけたようで
# お手数おかけしました.

個人的には,
mdweightの取り込みまではほぼリアルタイムで
追いかけられたのですが,
多軸化で置いてけぼりになっています.

あの怒涛の更新へのご対応,
感謝し申し上げます.

>\@forced@series フラグは,現在の「値更新を \selectfont に遅らせる」

あ,なるほど,そういうことですか.

ただ,これで別の疑問(もやもや)が
出てきましたので,
やっぱり多軸化の「仕様」そのものの
理解が足りないことがわかりました.
ご教示ありがとうございました.
本田 知亮 への返信

Re: \DeclareRelationFontの不具合?

- aminophen の投稿
\@forced@series フラグについては

> (3) ファミリ毎の実際のシリーズ値の設定

辺りに関係しているのだろうと思いますが
https://github.com/latex3/latex2e/issues/579
↑ かように私もよくわかっていない状態です…。
aminophen への返信

Re: \DeclareRelationFontの不具合?

- aminophen の投稿
* 従属欧文のシリーズ・シェープが反映されない問題に対処
* forced@series フラグの和欧文分離(よく分からないが)

これで pLaTeX2e <2021-06-01>+2 として出しました。