夜分遅くに失礼いたします。
当方,TeXLive 2023環境でIPAmj明朝体を利用したいと考え,IPAmj明朝フォントおよびipamjm.styをインストールしたのですが,ttf, tfm, vf, mapファイルを適宜作業ディレクトリ内に配置したり,texmf以下の所定の場所に配置してmktexlsrしたりしても,文字化けのような状態になりうまく漢字が表示されませんでした。
そこで,もしかするとTeXのバージョンの問題かも知れないと考え実験してみたところ,
%%%%%%%%%%ソースここから%%%%%%%%%%
%
\RequirePackage[2021/05/31]{platexrelease}%%% added by me
\documentclass{jbook}
\usepackage[scale=2.0]{ipamjm}
\AtBeginDvi{\special{pdf:mapfile ipamjm.map}}%%% added by me
\begin{document}
\pagestyle{empty}
\parindent=0pt
\huge
\char\sjis"82A0\MJMZM{000147}\char\sjis"82A0\MJMZM{000148}\MJMZM{000150}\MJMZM{000151}\MJMZM{000152}\MJMZM{000153}\MJMZM{000154}\MJMZM{000155}\MJMZM{000156}\MJMZM{000157}\MJMZM{000158}\MJMZM{000159}\MJMZM{000160}\char\sjis"82A0
\end{document}
%
%%%%%%%%%%ソースここまで%%%%%%%%%%
↑こちらのソース(ipamjm.styに付属のsample.texに一部追記したもの)では,本来意図されていたであろう漢字が出力され,PDFにもIPAmj明朝のフォントが埋め込まれていることを確認いたしました(添付zipファイル内の"sample-2021-05-31.pdf")。
一方,
%%%%%%%%%%ソースここから%%%%%%%%%%
%
\RequirePackage[2021/06/01]{platexrelease}%%% added by me
\documentclass{jbook}
\usepackage[scale=2.0]{ipamjm}
\AtBeginDvi{\special{pdf:mapfile ipamjm.map}}%%% added by me
\begin{document}
\pagestyle{empty}
\parindent=0pt
\huge
\char\sjis"82A0\MJMZM{000147}\char\sjis"82A0\MJMZM{000148}\MJMZM{000150}\MJMZM{000151}\MJMZM{000152}\MJMZM{000153}\MJMZM{000154}\MJMZM{000155}\MJMZM{000156}\MJMZM{000157}\MJMZM{000158}\MJMZM{000159}\MJMZM{000160}\char\sjis"82A0
\end{document}
%
%%%%%%%%%%ソースここまで%%%%%%%%%%
↑こちらのソースでは,意図と異なっているであろう漢字が表示され,フォントもTeXLive 2023標準の原ノ味明朝のままとなっていました(添付zipファイル内の"sample-2021-06-01.pdf")。
%%%%%%%%%%以下警告の部分を抜粋%%%%%%%%%%
LaTeX Font Warning: Font shape `JT1/mjmzm/m/' undefined
(Font) using `JT1/mc/m/n' instead on input line 11.
LaTeX Font Warning: Font shape `JY1/mjmzm/m/' undefined
(Font) using `JY1/mc/m/n' instead on input line 11.
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
%%%%%%%%%%以上警告の部分を抜粋%%%%%%%%%%
platexreleaseパッケージのオプションから,2021/05/31と2021/06/01の間に何らかの更新が入っているに違いないだろうと思い少々調べたところ,2021/06/01にLaTeX/pLaTeXが更新されていたとわかりました(恥ずかしながら,皆様がリンク先で議論されていた内容の詳細までは理解できておらず・・・)。
https://okumuralab.org/tex/mod/forum/discuss.php?d=3124
今回の件と関連があるのではないかと思い,ご報告させていただいた次第です。
こちらのフォーラムで既出の話題でしたら恐縮です。
ipamjm.sty の以下の部分を
\@tempcntb=\@tempcnta
\divide\@tempcntb by "40
\multiply\@tempcntb by "C0
\advance\@tempcnta by \@tempcntb
\if@ipamjm@uplatex
\advance\@tempcnta by "113030
\selectfont
\char\@tempcnta
\else
\advance\@tempcnta by "3030
\selectfont
\char\jis\@tempcnta
\fi
以下のように修正すると直ると思います。
\selectfont% \@tempcntb が変更される前に \selectfont を実行する
\@tempcntb=\@tempcnta
\divide\@tempcntb by "40
\multiply\@tempcntb by "C0
\advance\@tempcnta by \@tempcntb
\if@ipamjm@uplatex
\advance\@tempcnta by "113030
\char\@tempcnta
\else
\advance\@tempcnta by "3030
\char\jis\@tempcnta
\fi
\kanjishape
の引数の評価が \selectfont
まで遅延されるようになったことが原因だと思います。
\kanjishape{\ifcase\@tempcntb0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or a\or b\or c\or d\or e\or f\fi}%
\selectfont
よりも前に \@tempcntb
が変更されると意図しないフォントが選択されてしまいます。