Closed aminophen closed 4 years ago
実装案を置いてみました。
基本的にはソース中のコメントに書きましたが,コンセプトは
「\fontshape / \fontshapeforce で和文も欧文も変更されようとした場合に,和文シェープが未定義でも警告しない」
としています(つまり \kanjishape, \kanjishapeforce では従来どおり必要に応じて警告する)。また,紛らわしいかもしれませんが,シリーズが未定義のものを選択する際の警告は消えません。(つまり https://github.com/texjporg/japanese-otf-mirror/issues/7 には影響しない。)
'nowarn' ブランチで取り入れてみました。
2020-04-12 を出したので close します。
LaTeX2e の NFSS が新しくなったのを機に,この警告を消す改良をしても良いのではないかと思ったので issue を立てます。
現象
原因は以下のとおり。
過去の経緯
この現象は随分昔から指摘されていて,例えば 2004 年の井上浩一氏のブログにも記述があります。
この警告を嫌う人は割と多く,警告を抑制するためにプリアンブルに沢山の行を書く人もいるほどです(TeX Wiki にもこの方法が書かれています)。
提案
前掲の井上氏のブログには,以下のような提案がありました。
私もこれは把握していましたが,個人的には「従来の LaTeX2e の \fontshape の動作とかけ離れるので,今になって pLaTeX2e に入れるのはふさわしくない」と考えていました。
提案
ところが,皆様ご存知のとおり LaTeX2e 2020-02-02 で NFSS に大幅な拡張が入り,\fontshape の挙動が大きく変化しました。具体的には #88 のとおりです。
この状況を鑑みると,pLaTeX2e の \fontshape を「直す」なら今だと思います。実際に「pLaTeX2e の新 NFSS 対応コード」を見ると,井上氏の「組み合わせが定義されていない場合はフォントシェイプを変更しない」に近い処理を含めても不自然ではありません。
冒頭のソース例は
#3
の「どちらも無ければ要求シェープそのまま;警告」のブロックを通過しており,そこにチェックを追加すれば警告を消せそうです。これだけではまだ動作が不完全で危険なので,もう少し考えます。