明日 LaTeX2e 2021-06-01 という新しいバージョンが出る予定と思われますので,それに備えた調整です。
ただし:多忙のため,誰も十分なテストができていません(!)
それでもリリースせざるを得ないのは,本家 LaTeX2e の変更と日本語拡張部分の干渉部分が多いためです。
% LuaTeX-ja も先日更新のようですが,LaTeX2e 2021-06-01 完全対応かどうかは未確認
(1) 書体選択コマンドの最重要部品である「\selectfont」という命令が本家 LaTeX2e で修正された。
https://github.com/latex3/latex2e/issues/444
(これに対応しなければ,日本語の書体切替ができないケースが出てくる恐れがある?)
(2) 新設される「段落フック機能」のコードが余分にダブって実行される場合がある。
https://github.com/texjporg/platex/issues/96
そういうわけでとりあえず緊急にリリースしましたが,細かい挙動は怪しいです。
2021-06-01 以降,急ぎの案件がある方は tlmgr update を控えるとよいでしょう。
一方,それほど困らない方は是非 tlmgr update して新しい (u)pLaTeX を試してください。
----
更新のタイミングによって,以下のような組み合わせがありえます:
ケース1:
pLaTeX2e <2021-06-01> (based on LaTeX2e <2021-06-01>)
→新しい LaTeX2e + 新しい pLaTeX2e の組み合わせ。上述のとおり,細かい挙動が怪しいかも。
ケース2:
pLaTeX2e <2020-10-01>+2 (based on LaTeX2e <2021-06-01>)
→新しい LaTeX2e + 古い pLaTeX2e の組み合わせ。これはうまく動きません!
ケース3:
pLaTeX2e <2021-06-01> (based on LaTeX2e <2020-10-01> patch level 4)
→古い LaTeX2e + 新しい pLaTeX2e の組み合わせ。これは正常動作するはずです。
当方での気づきをご報告します.コンソールに表示されるバージョンは以下のとおりです.
This is e-upTeX, Version 3.141592653-p3.9.0-u1.27-210218-2.6 (utf8.uptex) (TeX Live 2021) (preloaded format=uplatex)
restricted \write18 enabled.
entering extended mode
(./test.tex
pLaTeX2e <2021-06-01u04> (based on LaTeX2e <2021-06-01>)
L3 programming layer <2021-06-01>
ソースは以下のとおりです.
\documentclass[uplatex,dvipdfmx,ja=standard,b5paper,14pt]{bxjsbook}
% \usepackage[uplatex,deluxe]{otf}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\begin{document}
文字を\emph{強調したい}.\par
文字を\textgt{強調したい}.\par
文字を\textit{強調したい}.\par
文字を\textsl{強調したい}.\par
\end{document}
このソースはエラーメッセージなしにコンパイルできました.ただし \textit{} と \textsl{} の部分は明朝体にフォールバックされます.
次に,上記ソースでコメントアウトしている部分を生かすと,コンソールに以下のメッセージが表示されました.
LaTeX Font Warning: Font shape `JT2/hgt/m/it' undefined
(Font) using `JT2/hgt/m/n' instead on input line 6.
LaTeX Font Warning: Font shape `JY2/hgt/m/it' undefined
(Font) using `JY2/hgt/m/n' instead on input line 6.
LaTeX Font Warning: Font shape `JT2/hmc/m/it' undefined
(Font) using `JT2/hmc/m/n' instead on input line 8.
LaTeX Font Warning: Font shape `JY2/hmc/m/it' undefined
(Font) using `JY2/hmc/m/n' instead on input line 8.
LaTeX Font Warning: Font shape `JY2/hmc/m/sl' undefined
(Font) using `JY2/hmc/m/it' instead on input line 9.
(/usr/local/texlive/2021/texmf-dist/tex/latex/lm/ot1lmr.fd)
(/usr/local/texlive/2021/texmf-dist/tex/latex/lm/omllmm.fd)
(/usr/local/texlive/2021/texmf-dist/tex/latex/lm/omslmsy.fd)
(/usr/local/texlive/2021/texmf-dist/tex/latex/lm/omxlmex.fd) [1] (./test.aux)
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
どうも otf との相性が悪いようです.また \textsl{} から JY2/hmc/m/it にフォールバックしているのも腑に落ちません.JT2/hmc/m/sl についてのメッセージがないのは普通でしょうか?
メッセージがたくさん出てきてうるさいのですが,otf を使ってもタイプセットの結果は想定通りでした.
取り急ぎご報告まで.
早速のご報告ありがとうございます。
pLaTeX2e 2020-04-12 (forum:2819) の時に導入した
「\fontshape は和文のシェープが用意されていなければ変更しない」
という仕様(※ \itshape や \slshape などは内部で \fontshape を呼び出す)を実現するために入れたコードが,
今回の LaTeX2e 2021-06-01 で導入された \selectfont その他の修正に非対応なのかもしれません。
このことは少し前に GitHub でも指摘があったのですが,十分な検討ができなかったという理由で
未修正のまま現在に至っています。後日対応します。
これでもまだ不完全が残っているかもしれませんが…。
別のコメントに書いた「platexrelease のエラー」についても対処しています。
また,変更内容のまとめ (plnewsc16.pdf) もここに添付しておきます。
「開発版のテストにご協力ください」の説明を詳しくしておきました。
・platex-dev コマンドを使えば開発版が起動する
・同様のことは 2021/05/09 以降の Cloud LaTeX でも使える
・TeXShop や TeXworks ユーザも「ptex2pdf -l」の代わりに「ptex2pdf -ld」に変えるだけ
に言及しています。
大変お疲れ様です.本日 tlmgr で落ちてきましたので,早速確認しました.
私が報告したフォントに関する警告文はすべて解消されていることを確認しました.どうもありがとうございました.
ところで,まだ報告していない不具合があります.今回の修正でも再現しているのでご報告します.再現ソースは以下のとおりです.
\documentclass[uplatex,dvipdfmx,ja=standard,b5paper,14pt]{bxjsbook}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\begin{document}
半角コロン:の後に自動的にスペースが挿入される.半角ピリオド.の後も同様.\par
こうやっても{:}自動的にスペースが挿入される.\par
こうやっても:\<挿入される.\par
しかし,これでは?\<スペースは挿入されない.なぜ?\par
Not with:alphabets, either.\par
全角コロン:の後には挿入されない.\par
\end{document}
というわけで,半角のコロンやピリオドの直後に全角文字が来ると,自動的にスペースが挿入されるようです.これは仕様でしょうか?従来の挙動とは異なると思います.
度々の報告でお手数をおかけしますが,ご検討ください.
新しい報告の「半角のコロンやピリオドの直後に全角文字が来ると,自動的にスペースが挿入される」は
不具合ではなく意図的だと思いますし,挙動はもともとだと思います。
コロンに関して,2021-06-01 前後で唯一変更した点は
https://github.com/texjporg/ptex-base/issues/9
にて指摘のあった
「全角コロン ":" に対する \inhibitxspcode が設定されていない」
「半角コロン ":" に対する \xspcode が設定されていない」
の2点ですが,これは
『コロンの手前に \xkanjiskip が挿入される可能性があったが,挿入されないようにした」
という意図であり,コロンの後ろは何も変化していないはずです。
なお,それを制御する意図で \< を挿入なさっていますが \< は \inhibitglue すなわち
JFM グルーの挿入を抑制する命令であり,半角文字と全角文字の間に挿入される
\xkanjiskip に対しては何の効果ももたらしません。
当方の手許にある骨董品級の pLaTeX では、半角コロンの前後いずれにおいても、
\xkanjiskip は抑制されるのがデフォルトのようです。
でも、自由度は充分あります。
\documentclass{jarticle}\relax
\begin{document}
目立つように\verb:\xkanjiskip:を大きくしておく
\xkanjiskip=10pt\relax
デフォルトだと\qquad 和文字:和文字
\xspcode`\:=0\relax
\verb:\xspcode: 0\qquad
両側空きなし\qquad 和文字:和文字
\xspcode`\:=1\relax
\verb:\xspcode: 1\qquad
コロンの前に四分空き\qquad 和文字:和文字
\xspcode`\:=2\relax
\verb:\xspcode: 2\qquad
コロンの後ろに四分空き\qquad 和文字:和文字
\xspcode`\:=3\relax
\verb:\xspcode: 3\qquad
コロンの両側に四分空き\qquad 和文字:和文字
\xspcode`\:=2\relax
\verb:\xspcode: 2\qquad
でも間にボックスを挟むと空きなし\qquad
和文字:\mbox{}和文字
\end{document}
和欧文字間空きとか、リガチャーとか、ペア・カーニングとか、\futurelet の
先読みとか、伸縮長の代入とか、罫線の仕様とか、それぞれ空のボックス、
余剰の波括弧、\bgroup/\egroup、\beginroup/\endgroup、\relax、\empty、代入構文、
空白トークンのどれで阻害(抑制)されて、どれでされないのか、っていうのは
マクロ書いてるときとか時折必要になるんですが、その度にあれこれ実験して
確かめるものの、なかなか記憶に残らないんですよねぇ。自分で網羅的に
まとめるようなエネルギーもなかなか湧いてこないのですが、どこかにまとまった
資料とかないもんでしょうか…
\RequirePackage[2020/10/01]{platexrelease}
がエラーで通らないという問題も見つけました。
この原因は,我々 pLaTeX のミスと本家 LaTeX の問題が重なっているようで厄介…。