upLaTeXでjlreq.cls使用時にbxjaprnind.styを使うとエラーが生じる

upLaTeXでjlreq.cls使用時にbxjaprnind.styを使うとエラーが生じる

- yasui kaisuke の投稿
返信数: 5
環境はUbuntu 20.04、TeXLive 2020です。

困っている内容は、題名の通りです。upLaTeXでjlreq使用時にbxjaprnind.styを使うとエラーが生じてしまいます。

\documentclass[uplatex,dvipdfmx]{jlreq}
\usepackage{bxjaprnind}
\begin{document}
\end{document}

このようなソースでupLaTeXを実行すると、

! Use of \bxpi@prnindent@space doesn't match its definition.
\bxpi@prnindent@a ...tok }{\bxpi@prnindent@space }
{\bxIfCharToken \bxpi@tok ...
l.4 あ

のようなエラーが生じます(なお、LuaLaTeXでは正常に動作しました)。このエラーはバグでしょうか?

よろしくお願いいたします。
yasui kaisuke への返信

Re: upLaTeXでjlreq.cls使用時にbxjaprnind.styを使うとエラーが生じる

- 和田 勇 の投稿

問題点は二つあるようです

jlreq + bxjaprnind + uplatex はエラー

1つは、質問者のレポート通り、jlreq + bxjaprnind + uplatex がエラーになるという点。 この件に関しては、jsarticle などに変更すれば通ることから、仕様なのかもしれないので、識者に検討をお願いしたい。

texlive 2020 以降で jlreq + bxjaprnind + lualatex だとエラーになる

もう一点は、ubuntu の lualatex で通るとの報告でしたが texlive 2021 で NG でした。

使用した tex ソース

    \documentclass{jlreq}
    \usepackage{bxjaprnind}
    \begin{document}
    あ
    \end{document}

調査したところ 2020 でも NG でしたが 2019 では通るので ubuntu の jlreq bxjaprnind を追跡調査。 bxjaprnind は 2019-2021 のものと一致。jlreq は、スタイルファイルに記述されているファイル情報を参考にしたところ、ubuntu texlive-full でインストールされるものは texlive 2019 相当と判断すると、報告通り ubuntu の lualatex では通るが、2020 以降に何らかの不具合が混入した可能性が考えられます。

参考情報

bxjaprnind.sty チェックサム
ハッシュ値   ファイルパス情報など
217eff6a5133d43a4bc5e3410aa66eb40cb3f7c0 /usr/share/texlive/texmf-dist/tex/latex/bxjaprnind/bxjaprnind.sty
217eff6a5133d43a4bc5e3410aa66eb40cb3f7c0 2019/texmf-dist/tex/latex/bxjaprnind/bxjaprnind.sty
217eff6a5133d43a4bc5e3410aa66eb40cb3f7c0 2020/texmf-dist/tex/latex/bxjaprnind/bxjaprnind.sty
217eff6a5133d43a4bc5e3410aa66eb40cb3f7c0 2021/texmf-dist/tex/latex/bxjaprnind/bxjaprnind.sty
jlreq バージョン情報
OK/NG ファイルパス情報 日付情報
OK /usr/share/texlive/texmf-dist/tex/latex/jlreq/jlreq.cls \ProvidesClass{jlreq}[2020/12/29 jlreq]
OK 2019/texmf-dist/tex/latex/jlreq/jlreq.cls \ProvidesClass{jlreq}[2020/02/07 jlreq]
NG 2020/texmf-dist/tex/latex/jlreq/jlreq.cls \ProvidesClass{jlreq}[2021/03/17 jlreq]
NG 2021/texmf-dist/tex/latex/jlreq/jlreq.cls \ProvidesClass{jlreq}[2021/05/28 jlreq]

OK/NG: lualatex で処理できるか否かの状態

和田 勇 への返信

Re: upLaTeXでjlreq.cls使用時にbxjaprnind.styを使うとエラーが生じる

- 和田 勇 の投稿
補足 ubuntu の texlive って 2019 みたいと書いた件について 報告したようにスタイルファイルの中身を日付情報だけで判断して 2019 相当だと書きましたが、関連する texmf.cnf をみると 2020だと初手いるらしい。
/usr/share/texlive/texmf-dist/web2c/texmf.cnf
7:% installed in /some/path/to/texlive/2020/texmf-dist/web2c/texmf.cnf,
8:% add your custom settings to /some/path/to/texlive/2020/texmf.cnf.
90:TEXMFVAR = ~/.texlive2020/texmf-var
93:TEXMFCONFIG = ~/.texlive2020/texmf-config

/usr/share/texmf/web2c/texmf.cnf
7:% installed in /some/path/to/texlive/2020/texmf-dist/web2c/texmf.cnf,
8:% add your custom settings to /some/path/to/texlive/2020/texmf.cnf.
90:TEXMFVAR = ~/.texlive2020/texmf-var
93:TEXMFCONFIG = ~/.texlive2020/texmf-config
和田 勇 への返信

Re: upLaTeXでjlreq.cls使用時にbxjaprnind.styを使うとエラーが生じる

- yasui kaisuke の投稿
詳しく分析してくださり誠にありがとうございます。


よく考えてみると、jlreq.clsでは始め括弧のインデントをクラスオプションで指定できるようになっているので、bxjaprnind.styとの併用は元々想定されていないのかもしれない、と思えてきました。

そもそも私はそれほど複雑な組版をしようと思っていたわけではなく、単に始め括弧のインデントの挙動をデフォルトから少し変更したいと思っていただけでした。情けないことにjlreq.clsのクラスオプションを使えばそれが実現できることをすっかり失念しており、bxjaprnind.styとの併用で対処しようとしていたのでした。現在、クラスオプションを適切に指定することで望みの組版結果が得られるようになりました。

ですのでとりあえず私の抱えていた問題は自己解決いたしました。大変お騒がせしました。
yasui kaisuke への返信

Re: upLaTeXでjlreq.cls使用時にbxjaprnind.styを使うとエラーが生じる

- 阿部 紀行 の投稿
以下でエラーが出ます.bxjaprnindでのスペーストークン判定のミスかと思います.

\documentclass{jarticle}
\usepackage{bxjaprnind}
\begin{document}
\noindent
\empty

\end{document}