jsarticle 系クラス + newtxtext での \sffamily の注意点

jsarticle 系クラス + newtxtext での \sffamily の注意点

- aminophen の投稿
返信数: 3
TeX Live 2019 でいつからかはわかりませんが,以下のように

* 文書クラスに jsarticle / jsreport / jsbook を使用
* \usepackage{newtxtext} を使用

の両条件を満たすとき,下記のコンパイル結果が TeX Live 2018 までの頃とは変化していることに気づきました。

% TeX Live 2019
\documentclass{jsarticle}
\usepackage{newtxtext}
\begin{document}
{\sffamily あa}
\end{document}

* TeX Live 2018 最終版:「a」はサンセリフ体,「あ」はゴシック体(サンセリフ)
* 最新の TeX Live 2019:「a」はサンセリフ体,「あ」は明朝体(セリフ)

変化した原因は,newtxtext.sty が内部で mweights.sty を読み込むように改修されたためです。

* jsarticle.cls は,もともと欧文用の \sffamily コマンドで和文もサンセリフ(ゴシック)になるよう再定義する。
* mweights.sty は LaTeX2e の当初から存在する NFSS (New Font Selection Scheme) を拡張するために,
  \sffamily などの超基本的なコマンドを再定義する。
→ 結果的に jsarticle.cls の定義が mweights.sty により上書きされる。

このようなソースの書き方をしている場合は注意してください。
\sffamily だけに頼るのではなく,
\gtfamily(これは和文を明示的にゴシックにする命令)と \sffamily を併用すれば問題なしです。


% TeX Live 2020で予定されている新しい LaTeX2e 2020-02-02 の開発版を試そうとして気づきました。
% LaTeX2e 2020-02-02 では本体の NFSS が大改修され,mweights.sty に相当する機能を内蔵するようになります。
% これにより pLaTeX / upLaTeX で何が起こるか(非互換が発生するか?)は,下記のとおり現在調査中ですが
% https://github.com/texjporg/platex/issues/88
% 多忙のため TeX Live 2020 に間に合うかどうかはわかりません。
aminophen への返信

Re: jsarticle 系クラス + newtxtext での \sffamily の注意点

- aminophen の投稿
jsarticle 系だけでなく,jlreq クラスでも全く同じ現象が起きます。
(jlreq.cls が再定義した \sffamily が mweights.sty に上書きされるので)
aminophen への返信

Re: jsarticle 系クラス + newtxtext での \sffamily の注意点

- aminophen の投稿
> TeX Live 2019 でいつからかはわかりませんが

挙動が変わったのは2019年12月29日 (r53255) と判りました。
(newtx が mweights に依存するようになった日付)
aminophen への返信

Re: jsarticle 系クラス + newtxtext での \sffamily の注意点

- はやて (h20y6m) の投稿
bxjscls でも同じ現象がでます。
さらに bxjscls の場合は section 等の見出しが明朝になります。
\renewcommand{\headfont}{\gtfamily\sffamily}
とすることでゴシックにすることが出来ます。


% jsclasses は \headfont が \gtfamily\sffamily と定義されているので問題なし。
% jlreq は見出しのデフォルトは \sffamily\bfseries で明朝の太字がゴシックで代替されるので問題なし?