縦書き文書の行頭鍵括弧の調整に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
------------------------------
この問題への対処をご教授ください.よろしくお願いします.
コメントが付かないので…
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. さんにおまかせするしかないです…
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. さんにおまかせするしかないです…
かなりややこしいですが、原因は次のようです。
- 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 という別のバンドルに移動しているので、これもインストールした方がよいでしょう。
- PXbase パッケージバンドル (v0.9b)
- ifptex パッケージバンドル (v1.0)