確かTL2020では問題なかったはずですが
■TeX Live 2020での状況の確認
例えば、TeX Live 2020のlualatexで次のソースをコンパイルすると:
% TeX Live 2020のlualatexでコンパイル \documentclass{article} \usepackage{newtxtext,newtxmath} \begin{document} \encodingdefault% エンコーディング /\rmdefault% rmのファミリ名 /\sfdefault% sfのファミリ名 \end{document}
“T1/ntxtlf/qhv”という出力が得られます。エンコーディングが「T1」なのでUnicodeフォントになっていないことがわかります。
実際、この時のNew TXはまだUnicode TeX(XeTeX/LuaTeX)に対応してなかったようで、もし(無理やり)読み込んだ場合は、pdfTeX用の設定(T1エンコーディングのType1形式フォント)をそのまま適用するという動作になります。
一般的に、「Unicode TeXをT1エンコーディングで使用する」ことは以下の理由で推奨されていません。
- 当然だが「Unicode TeXとして期待される」ものに反する動作をする。
- 場合により明らかに理屈に合わない動作をする。
- 種々のパッケージが“その状態”をサポートするとは期待できない。
ただし、LaTeXカーネルとしては一応“その状態”はサポートされているはずです。
そういうわけで、「TeX Live 2020のNew TXと同じ」状態を期待値だと考えてみます。
■TeX Live 2020での状況の再現
今のnewtxパッケージ(newtxtextではなく)には「Type1形式のフォントの使用」を明示的に指示する“type1
”というオプションがあります。色々と試した結果、次のようにすると、同じ状況を得ることができました。
% TeX Live 2021のlualatexでコンパイル \documentclass{article} % エンコーディングを自分でT1に変える \usepackage[T1]{fontenc} % Type1形式を指定, fontspecの読込を抑止 \usepackage[type1,nofontspec]{newtx} \begin{document} \meaning\sfdefault\par \textsf{The quick brown fox jumps over the lazy dog.} \end{document}
※LuaTeX-ja併用でも問題なく動作するようです。
抜本的な対応
マニュアルには「サンセリフはTeX Gyre Herosになる」と書いてあるんだから、UNicode TeXでもその仕様が守られるべきだと自分は思いますけどね……。