bxjaprnindパッケージが処理できない

bxjaprnindパッケージが処理できない

- ヤバルゴ mdl.2 の投稿
返信数: 4
縦書き文書の行頭鍵括弧の調整にbxjaprnindパッケージを導入しましたが,upLaTeXでの処理でエラーが発生します.

以下,その問題の再現を記載します.
作業環境はWindows8.1,W32TeX,upLaTeX+dvipdfmx,TeXworksです.

LaTeXコード(.tex)
------------------------------
%% Document class
\documentclass[a4paper,10pt,twocolumn]{utarticle}
\usepackage{lltjp-geometry}
\usepackage[pass,dvipdfm]{geometry}
\usepackage{bxjaprnind}

%% Font command
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[uplatex]{otf}
\usepackage{lmodern}
\renewcommand{\rmdefault}{ptm}
\usepackage[scaled]{helvet}
\frenchspacing

\begin{document}

彼女は尋ねた.

「どうして?」

彼はため息をつきながら答えた.

「誠に残念な事だが、ここは現実世界だ」

「それは解っている!」

\end{document}
------------------------------

DOSコマンド(.bat)
------------------------------
uplatex -jobname="%~n1" -kanji=utf8 -no-guess-input-enc %1 && ^
uplatex -jobname="%~n1" -kanji=utf8 -no-guess-input-enc %1 && ^
dvipdfmx -f embase14.map -f hiraginopron.map "%~n1"
------------------------------

処理のログ(TeXworksのコンソール出力)
------------------------------
This is e-upTeX, Version 3.14159265-p3.7-u1.20-150805-2.6 (utf8.uptex) (TeX Live 2015/W32TeX) (preloaded format=uplatex)
restricted \write18 enabled.
entering extended mode
(./ut.tex
pLaTeX2e <2011/05/07u00>+0 (based on LaTeX2e <2015/10/01> patch level 2)
Babel <3.9m> and hyphenation patterns for 79 languages loaded.
(c:/w32tex/share/texmf-dist/tex/uplatex/base/utarticle.cls
Document Class: utarticle 2011/05/07 v1.6_u00 Standard upLaTeX class
(c:/w32tex/share/texmf-dist/tex/uplatex/base/utsize10.clo)
(c:/w32tex/share/texmf-dist/tex/platex/base/plext.sty))
(c:/w32tex/share/texmf-local/tex/latex/lltjp-geometry.sty
(c:/w32tex/share/texmf-dist/tex/generic/oberdiek/ifluatex.sty)
(c:/w32tex/share/texmf-dist/tex/latex/filehook/filehook.sty))
(c:/w32tex/share/texmf-dist/tex/latex/geometry/geometry.sty
(c:/w32tex/share/texmf-dist/tex/latex/graphics/keyval.sty)
(c:/w32tex/share/texmf-dist/tex/generic/oberdiek/ifpdf.sty)
(c:/w32tex/share/texmf-dist/tex/generic/oberdiek/ifvtex.sty)
(c:/w32tex/share/texmf-dist/tex/generic/ifxetex/ifxetex.sty)
(c:/w32tex/share/texmf-dist/tex/latex/geometry/geometry.cfg))
(c:/w32tex/share/texmf-dist/tex/latex/geometry/geometry.cfg)
(c:/w32tex/share/texmf-dist/tex/latex/bxjatool/bxjaprnind.sty
(c:/w32tex/share/texmf-dist/tex/latex/bxbase/bxtoolbox.sty
(c:/w32tex/share/texmf-dist/tex/latex/bxbase/bxtoolbox.def
(c:/w32tex/share/texmf-dist/tex/latex/etoolbox/etoolbox.sty))
(c:/w32tex/share/texmf-dist/tex/latex/bxbase/bxtoolbox-ext.def)
(c:/w32tex/share/texmf-dist/tex/latex/bxbase/bxtoolbox-ja.def
(c:/w32tex/share/texmf-dist/tex/latex/pxbase/pxbsjc.def)
! Improper alphabetic or KANJI constant.
<to be read again>
                  \@nil
l.129  \expandafter\bxtb@tmpb\bxtb@tmpa\@nil
                                           
?
------------------------------

エラーとされている部分
------------------------------
bxtoolbox-ja.def 129
Improper alphabetic or KANJI constant.
<to be read again>
                  \@nil
l.129  \expandafter\bxtb@tmpb\bxtb@tmpa\@nil
------------------------------

この問題への対処をご教授ください.よろしくお願いします.
ヤバルゴ mdl.2 への返信

Re: bxjaprnindパッケージが処理できない

- aminophen の投稿
コメントが付かないので…

upLaTeX に限らず pLaTeX でもおきますね。
Z.R. さんの例示ソースも通らないようです。
http://d.hatena.ne.jp/zrbabbler/20120525/1337966128

私が試した環境は以下です:W32TeX [2014/12/27],ソースは UTF-8

=============================
*File List*
  pldefs.ltx    2000/07/13 v1.2 pLaTeX Kernel (Default settings)
  jy1mc.fd    1997/01/24 v1.3 KANJI font defines
  jy1gt.fd    1997/01/24 v1.3 KANJI font defines
  jt1mc.fd    1997/01/24 v1.3 KANJI font defines
  jt1gt.fd    1997/01/24 v1.3 KANJI font defines
kinsoku.tex
tarticle.cls    2006/06/27 v1.6 Standard pLaTeX class
tsize10.clo    2006/06/27 v1.6 Standard pLaTeX file (size option)
  plext.sty   
bxjaprnind.sty    2013/05/05 v0.3a
bxtoolbox.sty    2013/04/29 v1.0 BX developers' toolbox
bxtoolbox.def    2013/04/29 v1.0
etoolbox.sty    2011/01/03 v2.1 e-TeX tools for LaTeX
    etex.sty    1998/03/26 v2.0 eTeX basic definition package (PEB)
bxtoolbox-ext.def    2013/04/29 v1.0
bxtoolbox-ja.def    2013/04/29 v1.0
=============================

まったくわかっていませんが,エラーは内部文字コードの判定で起きているため,とりあえず pxjahyper の
同じことをやっていそうなルーチンからコードを引っ張ってくるとエラーが消えました。パッチは以下です:

--- bxtoolbox-ja.def.orig Mon Apr 29 18:41:04 2013
+++ bxtoolbox-ja.def Thu Jan 14 23:00:11 2016
@@ -123,9 +123,16 @@
\else\ifbxtb@pxbase@ok
  \@@input pxbsjc.def\relax
  \def\bxtb@tmpb#1#2\@nil{%
-    \ifnum `#1=\jis"723F \let\bxInputJaEncoding=s\else
-    \ifnum `#1=\jis"693D \let\bxInputJaEncoding=e\else
-    \ifnum `#1=\jis"7379 \let\bxInputJaEncoding=u\fi\fi\fi}
+    \ifnum    \jis"2121="8140
+      \let\bxInputJaEncoding=s\relax
+    \else\ifnum\jis"2121="A1A1
+      \let\bxInputJaEncoding=e\relax
+    \else\ifnum\jis"2121="3000
+      \let\bxInputJaEncoding=u\relax
+    \fi\fi\fi}
  \expandafter\bxtb@tmpb\bxtb@tmpa\@nil
  \ifx e\bxInputJaEncoding
    \@@input pxbsjc1.def\relax

あとは Z.R. さんにおまかせするしかないです…
ヤバルゴ mdl.2 への返信

Re: bxjaprnindパッケージが処理できない

- Z. R. の投稿

かなりややこしいですが、原因は次のようです。

  • bxjaprnind パッケージは内部で bxtoolbox パッケージを読み込んでいる(便利マクロ集みたいなの)。
  • bxtoolbox パッケージ(bxtoolbox.sty とか)は「BXbase バンドル」に含まれている。
  • ところが、bxtoolbox パッケージは別の「PXbase バンドル」に属するファイル(pxbsjc.def とか)を(存在すれば)読み込む。
  • W32TeX では BXbase と PXbase の両方が含まれていて、バージョンは次の通り。
    • BXbase バンドル: v1.0
    • PXbase バンドル: v0.5
  • 残念ながら、PXbase の方だけ少し古くて、この組み合わせでは正常に動作しない。
  • (ちなみに、TeX Live では両方とも v0.5 だから問題無し。)

従って、PXbase の最新版(v0.9b)を新たにインストールすれば解決します。なお、PXbase v0.5 の一部のパッケージは ifptex という別のバンドルに移動しているので、これもインストールした方がよいでしょう。

Z. R. への返信

Re: bxjaprnindパッケージが処理できない

- ヤバルゴ mdl.2 の投稿
W32TeXに含まれるパッケージバンドルのバージョン差が問題だったわけですね.
Z. R.様のご教示の通りPXbase(v0.9b)とifptex(v1.0)をtexmf-localの下に配置した結果,うまく処理できるようになりました.

pLaTeXでの問題の再現とエラー回避の方法をご教示してくださった アセト アミノフェン様,
bxjaprnind パッケージ等のパッケージバンドルの提供と問題の原因を特定してくださった Z. R.様,
解決に協力していただき本当にありがとうございました.