pLaTeX / upLaTeX コミュニティ版 2021-06-01

pLaTeX / upLaTeX コミュニティ版 2021-06-01

- aminophen の投稿
返信数: 11
先ほど CTAN に pLaTeX  / upLaTeX をアップロードしました。
明日 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 の組み合わせ。これは正常動作するはずです。
aminophen への返信

Re: pLaTeX / upLaTeX コミュニティ版 2021-06-01

- Toshio Otaguro の投稿

当方での気づきをご報告します.コンソールに表示されるバージョンは以下のとおりです.

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 を使ってもタイプセットの結果は想定通りでした.

取り急ぎご報告まで.

Toshio Otaguro への返信

Re: pLaTeX / upLaTeX コミュニティ版 2021-06-01

- aminophen の投稿
> メッセージがたくさん出てきてうるさい

早速のご報告ありがとうございます。
pLaTeX2e 2020-04-12 (forum:2819) の時に導入した
「\fontshape は和文のシェープが用意されていなければ変更しない」
という仕様(※ \itshape や \slshape などは内部で \fontshape を呼び出す)を実現するために入れたコードが,
今回の LaTeX2e 2021-06-01 で導入された \selectfont その他の修正に非対応なのかもしれません。

このことは少し前に GitHub でも指摘があったのですが,十分な検討ができなかったという理由で
未修正のまま現在に至っています。後日対応します。
aminophen への返信

Re: pLaTeX / upLaTeX コミュニティ版 2021-06-01

- aminophen の投稿
先ほど pLaTeX2e <2021-06-01>+1 として修正版を出しました。
これでもまだ不完全が残っているかもしれませんが…。
別のコメントに書いた「platexrelease のエラー」についても対処しています。

また,変更内容のまとめ (plnewsc16.pdf) もここに添付しておきます。
「開発版のテストにご協力ください」の説明を詳しくしておきました。
・platex-dev コマンドを使えば開発版が起動する
・同様のことは 2021/05/09 以降の Cloud LaTeX でも使える
・TeXShop や TeXworks ユーザも「ptex2pdf -l」の代わりに「ptex2pdf -ld」に変えるだけ
に言及しています。
aminophen への返信

Re: pLaTeX / upLaTeX コミュニティ版 2021-06-01

- Toshio Otaguro の投稿

大変お疲れ様です.本日 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}

というわけで,半角のコロンやピリオドの直後に全角文字が来ると,自動的にスペースが挿入されるようです.これは仕様でしょうか?従来の挙動とは異なると思います.

度々の報告でお手数をおかけしますが,ご検討ください.

Toshio Otaguro への返信

Re: pLaTeX / upLaTeX コミュニティ版 2021-06-01

- aminophen の投稿
確認をありがとうございます。
新しい報告の「半角のコロンやピリオドの直後に全角文字が来ると,自動的にスペースが挿入される」は
不具合ではなく意図的だと思いますし,挙動はもともとだと思います。

コロンに関して,2021-06-01 前後で唯一変更した点は
https://github.com/texjporg/ptex-base/issues/9
にて指摘のあった
「全角コロン ":" に対する \inhibitxspcode が設定されていない」
「半角コロン ":" に対する \xspcode が設定されていない」
の2点ですが,これは
『コロンの手前に \xkanjiskip が挿入される可能性があったが,挿入されないようにした」
という意図であり,コロンの後ろは何も変化していないはずです。

なお,それを制御する意図で \< を挿入なさっていますが \< は \inhibitglue すなわち
JFM グルーの挿入を抑制する命令であり,半角文字と全角文字の間に挿入される
\xkanjiskip に対しては何の効果ももたらしません。
aminophen への返信

Re: pLaTeX / upLaTeX コミュニティ版 2021-06-01

- Toshio Otaguro の投稿

迅速にご回答頂き多謝です.

では,仕様ということで了解しました.組版上もっともな仕様だと思いますが,自由度という点ではスペースの有無はユーザーに任せてほしかったというのが個人的な意見です.

いずれにせよ,ありがとうございました.

Toshio Otaguro への返信

Re: pLaTeX / upLaTeX コミュニティ版 2021-06-01

- 帯田 木偶太 の投稿
従来と違うかどうかは、何をもって「従来」と呼ぶかによるかもしれません。

当方の手許にある骨董品級の 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}
帯田 木偶太 への返信

Re: pLaTeX / upLaTeX コミュニティ版 2021-06-01

- Toshio Otaguro の投稿

ご教示ありがとうございました.

\xspcode にそのような秘密があるとは知りませんでした.たしかにこれならば十分に自由度がありそうです.むやみにいじるのはまずいと思いますが,作表などのやや特殊な用途では使いでがありそうなので,覚えておきたいと思います.

Toshio Otaguro への返信

Re: pLaTeX / upLaTeX コミュニティ版 2021-06-01

- 帯田 木偶太 の投稿
》 \xspcode にそのような秘密があるとは

「秘密」?

\xspcode って、もろにそのための命令であり、また、
それ以外に大した役目はないと思うのですが…。

》 むやみにいじるのはまずいと思いますが,

微妙ね言い方をされていますが、ソース・ファイルなり、自作のパッケージあるいは
マクロ集なりで、パラメーターへの代入を記述するだけのことですよ。

勿論、配布されているファイルや docstrip で生成されるファイルを書き換えるのは、
基本的には御法度です。
帯田 木偶太 への返信

Re: pLaTeX / upLaTeX コミュニティ版 2021-06-01

- 帯田 木偶太 の投稿
かなり横道にそれますが…

和欧文字間空きとか、リガチャーとか、ペア・カーニングとか、\futurelet の
先読みとか、伸縮長の代入とか、罫線の仕様とか、それぞれ空のボックス、
余剰の波括弧、\bgroup/\egroup、\beginroup/\endgroup、\relax、\empty、代入構文、
空白トークンのどれで阻害(抑制)されて、どれでされないのか、っていうのは
マクロ書いてるときとか時折必要になるんですが、その度にあれこれ実験して
確かめるものの、なかなか記憶に残らないんですよねぇ。自分で網羅的に
まとめるようなエネルギーもなかなか湧いてこないのですが、どこかにまとまった
資料とかないもんでしょうか…