pLaTeX / upLaTeX / jsclasses 2020-02-02(新 NFSS 対応)

pLaTeX / upLaTeX / jsclasses 2020-02-02(新 NFSS 対応)

- aminophen の投稿
返信数: 8
LaTeX2e 2020-02-02 がリリースされ,CTAN に登録されました。

% 開発版 latex-dev の方ではなく 本物 の方です。
% てっきり TeX Live 2020 pretest の開始までは保留されるだろうとばかり思っていたのですが…。

そこで,慌てて

pLaTeX2e 2020-02-02
upLaTeX2e 2020-02-02
jsclasses 2020-02-02

をリリースしました。新しいバージョンでは,LaTeX2e 2020-02-02 の下記の新機能が
pLaTeX と upLaTeX でも正常にサポートされます(のはず)。

(1) シリーズの多軸化(← fontaxes パッケージの一部機能に相当)
(2) シェープの多軸化(← fontaxes パッケージの一部機能に相当)
(3) ファミリ毎の実際のシリーズ値の設定(← mweights パッケージの機能に相当)
(4) \em, \emph の入れ子の書体のカスタマイズ

細かい解説は(今日はもう眠いので)しませんが,
https://github.com/texjporg/platex/issues/88
がいくぶん参考になると思います。

----

(補足1) forum:2763 で提起した
「jsarticle 系クラス + newtxtext で \sffamily で和文がゴシックにならない」
という問題への対策も施しました。

(補足2) forum:902 で提起された
「TeX Gyre フォントを使うと警告が出て OTF パッケージが太字にならない」
という挙動が,新しいバージョンでは少し改善して
「警告は出るけど一応太字にはなる」
という挙動に変わります。理由は
https://github.com/texjporg/japanese-otf-mirror/issues/7
に書いていますのでご参考まで。
aminophen への返信

Re: pLaTeX / upLaTeX / jsclasses 2020-02-02(新 NFSS 対応)

- aminophen の投稿
…というわけなんですが,少々テスト不足感は否めません。何か不具合あったら報告ください。
aminophen への返信

Re: pLaTeX / upLaTeX / jsclasses 2020-02-02(新 NFSS 対応)

- aminophen の投稿
今日 (2020/02/03) の夜明けごろには,
新しい LaTeX も pLaTeX・upLaTeX・jsclasses も
TeX Live に入る可能性が極めて高いです。

念のため:卒論など締切を控えている方は,
**いつも以上に** TeX Live の更新は自己責任で慎重に。
本家の LaTeX そのものが新しくなっているので,
もしかするとお手許の既存のドキュメントの
コンパイル結果が変わることも十分にあり得ます。
怖い場合は当面の間は tlmgr update するのは控えると良いでしょう。
aminophen への返信

Re: pLaTeX / upLaTeX / jsclasses 2020-02-02(新 NFSS 対応)

- Toshio Otaguro の投稿
アップデートお疲れ様です.
当方の環境とソースで試したところ,プリアンブルに

\usepackage[deluxe]{otf}
\usepackage[noto-otc,unicode,noalphabet]{pxchfon}

があると大量に

LaTeX Font Warning: Font shape `JY2/hmc/b/n' undefined
(Font) using `JY2/hmc/bx/n' instead on input line 1607.

という警告が出るようになりました.dvipdfmx によるタイプセット自体はできているようですが,何かが新しいNFSSに対応していないためと思われます.b というサフィックスではだめで,bx というサフィックスに置き換えられているようです.

なお,プリアンブルから上記2行を取り去ると,何の警告も出ずにスムーズに処理が行われます.
Toshio Otaguro への返信

Re: pLaTeX / upLaTeX / jsclasses 2020-02-02(新 NFSS 対応)

- Toshio Otaguro の投稿

舌足らずでしたので追記です.ドキュメントクラスは bxjsbook を使っています.


Toshio Otaguro への返信

Re: pLaTeX / upLaTeX / jsclasses 2020-02-02(新 NFSS 対応)

- aminophen の投稿
端的には,pLaTeX に入った仕様変更
「太字はシリーズ bx ではなく b とする」
に OTF パッケージ又は pxchfon パッケージが対応していないのが原因だと思います。

-----

冒頭の投稿に書いた通り,LaTeX の「新 NFSS」には

> (3) ファミリ毎の実際のシリーズ値の設定(← mweights パッケージの機能に相当)

が含まれています。LaTeX チームがこの拡張を施した真の意図は,

* 欧文の太字を b (bold) に変えたい
* しかし,互換性のため「Computer Modern と Latin Modern の場合だけ」は bx (bold-extended) のままにしたい
→そこで,ファミリ毎に太字を選べる機能を導入することにした

だと推測しています。
この LaTeX チームの意図をくみ取ると,pLaTeX についても

* 和文の太字を bx ではなく b に変えるべきだ

と考えるのは至って自然です。
(実際,和文の太字は「線が太い」だけで「横幅が広がる」わけではないですものね。)

今回の pLaTeX2e 2020-02-02 の仕様変更は,以上の考えに基づきます。
仕様変更ではありますが,全体としては正しい方向に進んでいますし,しかも

> (1) シリーズの多軸化(← fontaxes パッケージの一部機能に相当)
> (2) シェープの多軸化(← fontaxes パッケージの一部機能に相当)

の変更も同時に入ったお陰で
「警告は出るけど一応太字にはなる」
ため,組版結果への影響は限定される(実質起きない)と考えています。
aminophen への返信

Re: pLaTeX / upLaTeX / jsclasses 2020-02-02(新 NFSS 対応)

- 本田 知亮 の投稿
更新ありがとうございました.
まさかの2020/02/02リリースでした.

日本語対応もありがとうございます.


日本語対応で,
\DeclareFontSeriesDefaultの
どのあたりに手がはいったのかと思ったら,
そこじゃないんですね.

機能的には問題ではないと思いますし,
細かいことですが,
この実装だと
\DeclareFontSeriesDefault
の出すエラーメッセージに
mc,gtが出てこない状態ですね.
本田 知亮 への返信

Re: pLaTeX / upLaTeX / jsclasses 2020-02-02(新 NFSS 対応)

- aminophen の投稿
先ほど,細かいバグ修正をした platex をリリースしました。
pLaTeX2e <2020-02-02>+1 になります。

> \DeclareFontSeriesDefault
> の出すエラーメッセージに
> mc,gtが出てこない状態ですね.

そうですね。実害がないので変更を最小限にすべく放置しています。
aminophen への返信

Re: pLaTeX / upLaTeX / jsclasses 2020-02-02(新 NFSS 対応)

- aminophen の投稿
LaTeX2e 2020-02-02 のもう一つの重要な変更点の一つとして,
「expl3 の機能が最初から利用可能になっている」
という点があります。つまり従来は \usepackage{expl3} としないと使えなかった LaTeX3 の
優れたプログラミング機能が,何もしなくても使える状態です。

これに付随する変化として,LaTeX2e 2020-02-02 では

\documentclass[dvipdfmx]{jsarticle}
\begin{document}
ドライバ依存性はなさそうなソース
\end{document}

を処理しても Unused global option(s): dvipdfmx の警告は出なくなっています。
なぜなら,expl3 が持つドライバのコードが [dvipdfmx] オプションに応じているからです。
(現時点では大したドライバ依存性はありませんが,今後の expl3 の機能強化に伴い
依存性が増える可能性があります。)

このことからわかるように,今後は
「ドライバオプションは常に必須」
つまり graphicx や color や hyperref や tikz などを何も使っていなくてもとにかく
\documentclass[dvipdfmx]{jsarticle}
のように「グローバルにオプション指定しておく」習慣を今のうちにつけましょう。