texlive[56686] Master/texmf-dist: bxjscls (17oct20)

commits+karl at tug.org commits+karl at tug.org
Sat Oct 17 23:02:15 CEST 2020


Revision: 56686
          http://tug.org/svn/texlive?view=revision&revision=56686
Author:   karl
Date:     2020-10-17 23:02:14 +0200 (Sat, 17 Oct 2020)
Log Message:
-----------
bxjscls (17oct20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/bxjscls/README-ja.md
    trunk/Master/texmf-dist/doc/latex/bxjscls/README.md
    trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf
    trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex
    trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf
    trunk/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
    trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls
    trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls
    trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty
    trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty
    trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def
    trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def
    trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def
    trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def
    trunk/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty
    trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls
    trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls

Modified: trunk/Master/texmf-dist/doc/latex/bxjscls/README-ja.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/bxjscls/README-ja.md	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/doc/latex/bxjscls/README-ja.md	2020-10-17 21:02:14 UTC (rev 56686)
@@ -99,6 +99,11 @@
 更新履歴
 --------
 
+  * Version 2.4  〈2020/10/16〉
+      - geometry と互換の用紙サイズ名オプションを追加。
+      - `iso-bsize` オプションを追加。
+      - (試験的) `pandoc+` オプションを追加。
+      - 非推奨のオプションの一部について、警告を出す。
   * Version 2.3  〈2020/10/10〉
       - jsclasses の 2020/10/05 と同期。
       - minijs パッケージの読込をブロックする。
@@ -115,9 +120,7 @@
         の機能に移した。
       - pandoc 和文ドライバパラメタ `strong` を追加。
       - `custompaper` オプションを追加。
-      - (試験的) pandoc 和文ドライバパラメタ `fix-strong`・`fix-code`
-        を追加。
-      - (試験的) 多数の用紙サイズ名オプションを追加。
+      - pandoc 和文ドライバパラメタ `fix-strong`・`fix-code` を追加。
   * Version 2.1  〈2020/05/28〉
       - fontspec と互換の `\strong` 命令・`strongenv` 環境を追加。
       - 和文等幅フォントの挙動が ltjsclasses と異なるのを修正。

Modified: trunk/Master/texmf-dist/doc/latex/bxjscls/README.md
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex	2020-10-17 21:02:14 UTC (rev 56686)
@@ -11,8 +11,8 @@
 \bxtexlogoimport{*}
 \usepackage{shortvrb}
 \MakeShortVerb{\|}
-\newcommand{\PkgVersion}{2.3}
-\newcommand{\PkgDate}{2020/10/10}
+\newcommand{\PkgVersion}{2.4}
+\newcommand{\PkgDate}{2020/10/16}
 \newcommand{\Pkg}[1]{\textsf{#1}}
 \newcommand{\Meta}[1]{$\langle$\mbox{}\nobr#1\nobr\mbox{}$\rangle$}
 \newcommand{\Note}{\par\noindent ※}
@@ -645,11 +645,55 @@
   \footnote{これはJSクラスの設計に基づく値である。
     ただし実装の都合で、JSクラスの実際のスケール値はこれから
     僅かだけずれている。}
+\item 用紙サイズオプション\Means
+  用紙サイズ名のオプションはJSクラスで定義されているもの
+  (\ref{ssec:JS-inherited-option}節参照)の他に以下のものが使える。
+  \begin{itemize}
+  \item |iso-bsize|\Means
+    |bNpaper| の名前のオプションをISO~B判の指定と見なす。
+    既定では |bNpaper| はJIS~B判の指定と見なされる。
+  \item \Pkg{geometry}パッケージ(5.x版)の用紙サイズ名のオプション\Means
+    以下に挙げるもの
+    \footnote{JSクラスにあるオプションも含めている。}:
+    \begin{quote}
+      |a0paper|~|a6paper|、
+      |b0paper|~|b6paper|、
+      |c0paper|~|c6paper|、
+      |b0j|~|b6j|、
+      |ansiapaper|~|ansiepaper|、
+      |letterpaper|、|executivepaper|、|legalpaper|、
+      |screen|
+    \end{quote}
+    \Note |bNpaper| は\Pkg{geometry}ではISO~B判を意味するが、
+    JSクラスとの互換のため、BXJSでの意味は |iso-bsize| の有無に従う
+    (つまり既定ではJIS~B判)。
+    |bNj| は\Pkg{geometry}と同じく常にJIS~B判である。
+  \item 末尾が |~paper| でない名前のオプションについて、
+    末尾に |~paper| を付けたもの。
+    以下のものが該当する
+    \footnote{|aNj|・|bNj| は |aNpaper|・|bNpaper| で代用できるので
+      除いている。}:
+    \begin{quote}
+      |a4varpaper|、|b5varpaper|、|screenpaper|
+    \end{quote}
+    \Note Pandocで |-V papersize=a4var| 等の指定を可能にするため。
+  \item |custompaper|\Means
+    実際には何もしないダミーの用紙サイズ指定オプション。
+    \Note 外部ツールと連携する場合に、
+    「何らかの用紙サイズの名前が要求されるが、用紙サイズは別の方法
+    (|paper| オプション等)で指定したい」
+    という場合のダミーとして利用する。
+  \end{itemize}
 \item |paper={|\Meta{横幅}|}{|\Meta{縦幅}|}|\Means
-  用紙サイズ設定。
-  |a4paper| 等と同じ役割で、任意の長さ値を指定できる。
+  長さ値の直接指定による用紙サイズ設定。
   用紙サイズの既定値はA4縦
   ($\mbox{210\,mm}\times\mbox{294\,mm}$)である。
+\item |paper=|\Meta{横幅}|*|\Meta{縦幅}\Means
+  用紙サイズ指定の別形式で、
+  |paper={|\Meta{横幅}|}{|\Meta{縦幅}|}| と等価。
+  \Note Pandocで波括弧の扱いが面倒になる場合があることへの対策。
+  \Note 用紙サイズ指定にはさらに\Pkg{jlreq}互換の別形式 %
+    |paper={|\Meta{横幅}|,|\Meta{縦幅}|}| もある。
 \item |enablejfam=|\Meta{値}\Means
   数式中の和文出力をサポートするか否か。
   値は |true|(有効)\JSl|false|(無効)\JSl|default|(既定値に従う)
@@ -721,14 +765,14 @@
   パッケージが読み込まれた場合も無効化される。
   特に、和文ドライバがstandardである場合は、必ず\Pkg{xeCJK}が
   読み込まれるため、このオプションは無意味である。
-\item |a4varpaper|、|b5varpaper|\Means
-  用紙サイズ指定オプション |a4var|、|b5var| の別名。
-  \Note Pandocで |-V papersize=a4var| の指定を可能にするため。
-\item |custompaper|\Means
-  実際には何もしない用紙サイズ指定オプション。
-  \Note Pandocを使う際に「用紙サイズは |classoption=paper=...|
-  で指定するから |papersize| は不要だが何か指定しないといけない」
-  という場合に |-V papersize=custom| を指定する。
+%\item |a4varpaper|、|b5varpaper|\Means
+%  用紙サイズ指定オプション |a4var|、|b5var| の別名。
+%  \Note Pandocで |-V papersize=a4var| の指定を可能にするため。
+%\item |custompaper|\Means
+%  実際には何もしない用紙サイズ指定オプション。
+%  \Note Pandocを使う際に「用紙サイズは |classoption=paper=...|
+%  で指定するから |papersize| は不要だが何か指定しないといけない」
+%  という場合に |-V papersize=custom| を指定する。
 \item |mag=|\Meta{整数}\Means
   版面拡大率(mag値)の直接設定。
   既定は基底フォントサイズから算出する。
@@ -1243,6 +1287,9 @@
 \item それ以外の場合\Means
   「updmap-kanji-configで指定されたファミリ名」が |jafont|
   の値に指定されたと見なされる。
+  \footnote{|updmap-kanji-config| の |--jis2004| オプションにより
+  2004JIS字形が選択されている場合は、さらに |jis2004| 和文パラメタを
+  有効にする。}
 \end{itemize}
 
 %===========================================================
@@ -1310,8 +1357,27 @@
   \item |boldsans|\Means
     太字サンセリフ(|\sffamily\bfseries|)。
   \end{itemize}
-  \Note PandocモードではPandocの重要(Strong)要素は |\strong| 命令
+  \Note Pandocモードの既定ではPandocの重要(Strong)要素は |\strong| 命令
   で実現されるので、このパラメタの設定に追随する。
+\item |fix-strong=|\Meta{真偽値}\Means
+  |\textbf| 命令の動作を |\strong| と同等にするか。
+  既定値は真。
+  \Note Pandocの重要(Strong)要素は{\LaTeX}への変換において |\textbf|
+  命令が適用される。
+  和文フォントを単ウェイトで用いている場合、生の |\textbf| は体裁
+  が悪い(ゴシックの和文とセリフの欧文の組み合わせになる)ため、
+  |\strong| に移譲して調整ができるようにしている。
+  \footnote{|\strong| に適用される書体は、|strong| パラメタで選択
+    できるが、その他に({\XeLaTeX}・{\LuaLaTeX}の場合は)
+    \Pkg{fontspec}の |\strongfontdeclare| 命令でも設定できる。}
+  \Note |\bfseries| 命令の動作は変わらない。
+\item |fix-code=|\Meta{真偽値}\Means
+  |\texttt| 命令と周囲の和文の間に和欧文間空白が常に入るようにするか。
+  既定値は真。
+  \Note Pandocのインラインコード(Code)要素は{\LaTeX}への変換に
+  おいて |\texttt| 命令が適用される。
+  \Note 真である場合、|\texttt| の出力の周囲に欧文ゴーストが挿入される。
+
 \end{itemize}
 
 %===========================================================

Modified: trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx	2020-10-17 21:02:14 UTC (rev 56686)
@@ -56,7 +56,8 @@
 %<*driver>
 \ProvidesFile{bxjscls.dtx}
 %</driver>
-  [2020/10/10 v2.3  BXJS document classes]
+  [2020/10/16 v2.4  BXJS document classes]
+% [2020/10/10 v2.3  BXJS document classes]
 % based on jsclasses [2020/10/05]
 % [2020/10/04 v2.2c BXJS document classes]
 % [2020/09/29 v2.2b BXJS document classes]
@@ -806,13 +807,18 @@
 %    \begin{macrocode}
 \@onlypreamble\bxjs at setpaper
 \def\bxjs at setpaper#1{\def\bxjs at param@paper{#1}}
+\newif\ifbxjs at iso@bsize
+\DeclareOption{iso-bsize}{\bxjs at iso@bsizetrue}
+\@onlypreamble\bxjs at setpaper@bsize
+\def\bxjs at setpaper@bsize#1{\edef\bxjs at param@paper{%
+  b#1\ifbxjs at iso@bsize paper\else j\fi}}
 \DeclareOption{a3paper}{\bxjs at setpaper{a3paper}}
 \DeclareOption{a4paper}{\bxjs at setpaper{a4paper}}
 \DeclareOption{a5paper}{\bxjs at setpaper{a5paper}}
 \DeclareOption{a6paper}{\bxjs at setpaper{a6paper}}
-\DeclareOption{b4paper}{\bxjs at setpaper{b4j}}
-\DeclareOption{b5paper}{\bxjs at setpaper{b5j}}
-\DeclareOption{b6paper}{\bxjs at setpaper{b6j}}
+\DeclareOption{b4paper}{\bxjs at setpaper@bsize{4}}
+\DeclareOption{b5paper}{\bxjs at setpaper@bsize{5}}
+\DeclareOption{b6paper}{\bxjs at setpaper@bsize{6}}
 \DeclareOption{a4j}{\bxjs at setpaper{a4paper}}
 \DeclareOption{a5j}{\bxjs at setpaper{a5paper}}
 \DeclareOption{b4j}{\bxjs at setpaper{b4j}}
@@ -825,27 +831,22 @@
 %    \end{macrocode}
 % |geometry| の用紙サイズのオプション名を全てサポートする。
 %    \begin{macrocode}
-\def\bxjs at tmpb#1#2{\DeclareOption{#1}{\bxjs at setpaper{#2}}}
 \@for\bxjs at tmpa:={%
   a0,a1,a2,c0,c1,c2,c3,c4,c5,c6,ansia,ansib,ansic,ansid,ansie%
 }\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{\bxjs at tmpa paper}{\bxjs at tmpa paper}%
+  \noexpand\DeclareOption{\bxjs at tmpa paper}%
+    {\noexpand\bxjs at setpaper{\bxjs at tmpa paper}}%
 }\bxjs at next}
-\bxjs at tmpb{screen}{screen}
+\DeclareOption{screen}{\bxjs at setpaper{screen}}
 %    \end{macrocode}
-% ただし |b?paper| はJISのB列に従う。
+% ただし |b?paper| は |iso-bsize| の指定に従いISOとJISの
+% 適切な方のB列を選択する。
 %    \begin{macrocode}
 \@for\bxjs at tmpa:={0,1,2,3}\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{b\bxjs at tmpa paper}{b\bxjs at tmpa j}%
+  \noexpand\DeclareOption{b\bxjs at tmpa paper}%
+    {\noexpand\bxjs at setpaper@bsize{\bxjs at tmpa}}%
 }\bxjs at next}
 %    \end{macrocode}
-% |B?paper| でISOのB列を指定できるようにする。
-%    \begin{macrocode}
-\@for\bxjs at tmpa:={0,1,2,3,4,5,6}\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{A\bxjs at tmpa paper}{a\bxjs at tmpa paper}%
-  \noexpand\bxjs at tmpb{B\bxjs at tmpa paper}{b\bxjs at tmpa paper}%
-}\bxjs at next}
-%    \end{macrocode}
 % Pandocでは用紙サイズ指定について「後ろに |paper| を付けた名前
 % のオプション」を指定する。
 % これに対処するため、後ろに |paper| をつけた形を用意する。
@@ -977,9 +978,9 @@
 %
 % JSクラス互換のmagstyle設定オプション。
 %    \begin{macrocode}
-\DeclareOption{usemag}{\let\bxjs at magstyle\bxjs at magstyle@usemag}
-\DeclareOption{nomag}{\let\bxjs at magstyle\bxjs at magstyle@nomag}
-\DeclareOption{nomag*}{\let\bxjs at magstyle\bxjs at magstyle@xreal}
+\DeclareOption{usemag}{\let\bxjs at magstyle\bxjs at magstyle@@usemag}
+\DeclareOption{nomag}{\let\bxjs at magstyle\bxjs at magstyle@@nomag}
+\DeclareOption{nomag*}{\let\bxjs at magstyle\bxjs at magstyle@@xreal}
 %    \end{macrocode}
 % 
 % \end{ZRnote}
@@ -1356,6 +1357,9 @@
 % 最適化した設定を与える。
 %    \begin{macrocode}
 \DeclareOption{pandoc}{%
+  \bxjs at apply@pandoc at opt}
+\@onlypreamble\bxjs at apply@pandoc at opt
+\def\bxjs at apply@pandoc at opt{%
 %    \end{macrocode}
 % 和文ドライバを |pandoc| に、エンジン指定を |autodetect-engine| に
 % 変更する。
@@ -1369,12 +1373,22 @@
 % ドライバオプションを |dvi=dvipdfmx| 相当に変更する。
 % \Note これは実際のドライバ設定で上書きできる
 % (オプション宣言順に注意)。
-% \TODO できない気がする…。
 %    \begin{macrocode}
-  \def\bxjs at driver@opt{dvipdfmx}%
-  \bxjs at dvi@opttrue}
+  \ifx\bxjs at driver@opt\@undefined
+    \def\bxjs at driver@opt{dvipdfmx}%
+    \bxjs at dvi@opttrue
+  \fi
+  \global\let\bxjs at apply@pandoc at opt\relax}
 %    \end{macrocode}
 %
+% |pandoc+| オプションは、|pandoc| と同じ設定をした上で、
+% さらに和文パラメタの先頭に |_plus| を追加する。
+%    \begin{macrocode}
+\DeclareOption{pandoc+}{%
+  \g at addto@macro\bxjs at post@option at hook{%
+    \edef\jsJaParam{\bxjs at catopt{_plus}\jsJaParam}}%
+  \ExecuteOptions{pandoc}}
+%    \end{macrocode}
 % \end{ZRnote}
 %
 % \paragraph{エンジン・ドライバオプション \ZRX}
@@ -1477,17 +1491,9 @@
   \let\bxjs at driver@given\bxjs at driver@@xetex}
 %    \end{macrocode}
 %
-% |dvipdfmx-if-dvi| は互換性のためのオプションで、|dvi=dvipdfmx| と
-% 同値である。
-% \Note 2.0版より |dvipdfmx-if-dvi| は非推奨となった。
+% |dvipdfmx-if-dvi| は2.0版より非推奨となった。
 %    \begin{macrocode}
-\DeclareOption{dvipdfmx-if-dvi}{%
-  \ClassWarningNoLine\bxjs at clsname
-   {The old option 'dvipdfmx-if-dvi' is DEPRECATED\MessageBreak
-    and may be abolished in future!\MessageBreak
-    You should write 'dvi=dvipdfmx' instead}%
-  \setkeys{bxjs}{dvi=dvipdfmx}}
-
+\DeclareOption{dvipdfmx-if-dvi}{\bxjs at depre@opt at do{dvipdfmx-if-dvi}{dvi=dvipdfmx}}
 %    \end{macrocode}
 %
 % \end{ZRnote}
@@ -1496,6 +1502,26 @@
 % \mbox{}
 % \begin{ZRnote}
 % \TODO 互換用オプションを分離する(2.0版で?)。
+%
+% \begin{macro}{\bxjs at depre@opt}
+% \begin{macro}{\bxjs at depre@opt at do}
+% 非推奨のオプションについて警告を出す。
+%    \begin{macrocode}
+\@onlypreamble\bxjs at depre@opt
+\def\bxjs at depre@opt#1#2{%
+  \ClassWarningNoLine\bxjs at clsname
+   {The old option '#1' is DEPRECATED\MessageBreak
+    and may be abolished in future!\MessageBreak
+    You should instead write:\MessageBreak
+    \space\space #2}}
+\@onlypreamble\bxjs at depre@opt at do
+\def\bxjs at depre@opt at do#1#2{%
+  \bxjs at depre@opt{#1}{#2}%
+  \setkeys{bxjs}{#2}}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
 % \begin{macro}{\ifbxjs at bigcode}
 % {\upTeX}で有効化するToUnicode CMapとして
 % 「|UTF8-UCS2|」の代わりに「|UTF8-UTF16|」を使うか。
@@ -1576,13 +1602,15 @@
 % \end{macro}
 %
 % \begin{macro}{\bxjs at declare@enum at option}
-% |\bxjs at declare@enum at option{|\Meta{オプション名}|}{|\Meta{enum名}|}|\par
+% |\bxjs at declare@enum at option{|\Meta{オプション名}|}{|^^A
+%    \Meta{enum名}|}{|\Meta{初期値}|}|\par
 % “\Meta{オプション名}|=|\Meta{値}”のオプション指定に対して、
 % |\|[|bxjs@|\Meta{enum名}] を |\|[|bxjs@|\Meta{enum名}|@@|\Meta{値}] に
 % 等値する(後者の制御綴が未定義の場合はエラー)、という動作を規定する。
 %    \begin{macrocode}
 \@onlypreamble\bxjs at declare@enum at option
-\def\bxjs at declare@enum at option#1#2{%
+\def\bxjs at declare@enum at option#1#2#3{%
+  \bxjs at csletcs{bxjs@#2}{bxjs@#2@@#3}%
   \define at key{bxjs}{#1}{%
     \expandafter\ifx\csname bxjs@#2@@##1\endcsname\relax
       \bxjs at error@keyval{#1}{##1}%
@@ -1592,12 +1620,15 @@
 % \end{macro}
 %
 % \begin{macro}{\bxjs at declare@bool at option}
-% |\bxjs at declare@bool at option{|\Meta{オプション名}|}{|\Meta{スイッチ名}|}|\par
+% |\bxjs at declare@bool at option{|\Meta{オプション名}|}{|^^A
+%     \Meta{スイッチ名}|}{|\Meta{初期値}|}|\par
 % “\Meta{オプション名}|=|\Meta{真偽値}”のオプション指定に対して、
 % |\if|[|bxjs@|\Meta{スイッチ名}] を設定する、という動作を規定する。
 %    \begin{macrocode}
 \@onlypreamble\bxjs at declare@bool at option
-\def\bxjs at declare@bool at option#1#2{%
+\def\bxjs at declare@bool at option#1#2#3{%
+  \csname newif\expandafter\endcsname\csname ifbxjs@#2\endcsname
+  \@nameuse{bxjs@#2#3}%
   \define at key{bxjs}{#1}[true]{%
     \expandafter\ifx\csname bxjs@#2##1\endcsname\relax
       \bxjs at error@keyval{#1}{##1}%
@@ -1612,7 +1643,7 @@
 % 未定義ならエラーを出す。
 %    \begin{macrocode}
 \def\bxjs at set@keyval#1#2#3{%
-  \expandafter\let\expandafter\bxjs at next\csname bxjs at kv@#1@#2\endcsname
+  \bxjs at csletcs{bxjs at next}{bxjs at kv@#1@#2}%
   \ifx\bxjs at next\relax
     \bxjs at error@keyval{#1}{#2}%
     #3%
@@ -1678,7 +1709,7 @@
 %
 % |noscale| オプションの処理。
 %    \begin{macrocode}
-\DeclareOption{noscale}{\setkeys{bxjs}{scale=1}}
+\DeclareOption{noscale}{\bxjs at depre@opt at do{noscale}{scale=1}}
 %    \end{macrocode}
 %
 % \begin{macro}{\bxjs at param@mag}
@@ -1710,7 +1741,8 @@
 % \Note |jadriver| は0.9版で用いられた旧称。
 % \Note 単なる |ja| という指定は無視される(Pandoc 対策)。
 %    \begin{macrocode}
-\define at key{bxjs}{jadriver}{\edef\bxjs at jadriver@opt{#1}}
+\define at key{bxjs}{jadriver}{%
+  \bxjs at depre@opt{jadriver}{ja=#1}\edef\bxjs at jadriver@opt{#1}}
 \define at key{bxjs}{ja}[\relax]{%
   \ifx\relax#1\else\edef\bxjs at jadriver@opt{#1}\fi}
 %    \end{macrocode}
@@ -1736,34 +1768,46 @@
 %
 % |japaram| オプションの処理。
 %    \begin{macrocode}
-\define at key{bxjs}{japaram}{\edef\jsJaParam{#1}}
+\define at key{bxjs}{japaram}{%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
 %    \end{macrocode}
 %
+% 引数をもつ |pandoc|・|pandoc+| オプションは、その引数を
+% 和文パラメタの指定と見なす。
+%    \begin{macrocode}
+\define at key{bxjs}{pandoc}[]{%
+  \ExecuteOptions{pandoc}%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+\define at key{bxjs}{pandoc+}[]{%
+  \ExecuteOptions{pandoc+}%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+%    \end{macrocode}
+%
 % \begin{macro}{\bxjs at magstyle}
 % magstyle設定値。(古いイマイチな名前。)
 %    \begin{macrocode}
-\let\bxjs at magstyle@mag=m
-\let\bxjs at magstyle@real=r
-\let\bxjs at magstyle@xreal=x
+\let\bxjs at magstyle@@mag=m
+\let\bxjs at magstyle@@real=r
+\let\bxjs at magstyle@@xreal=x
 %    \end{macrocode}
 % (新しい素敵な名前。)
-% \Note ただし制御綴としては、|*|付の名前は扱い難いので、|\bxjs at magstyle@xreal|
+% \Note ただし制御綴としては、|*|付の名前は扱い難いので、|\bxjs at magstyle@@xreal|
 % の方を優先させる。
 %    \begin{macrocode}
-\let\bxjs at magstyle@usemag\bxjs at magstyle@mag
-\let\bxjs at magstyle@nomag\bxjs at magstyle@real
-\expandafter\let\csname bxjs at magstyle@nomag*\endcsname\bxjs at magstyle@xreal
+\let\bxjs at magstyle@@usemag\bxjs at magstyle@@mag
+\let\bxjs at magstyle@@nomag\bxjs at magstyle@@real
+\bxjs at cslet{bxjs at magstyle@@nomag*}\bxjs at magstyle@@xreal
 %    \end{macrocode}
-% |\bxjs at magstyle@default| は既定の値を表す。
+% |\bxjs at magstyle@@default| は既定の値を表す。
 %    \begin{macrocode}
-\let\bxjs at magstyle@default\bxjs at magstyle@usemag
+\let\bxjs at magstyle@@default\bxjs at magstyle@@usemag
 \ifx l\jsEngine \ifnum\luatexversion>86
-  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+  \let\bxjs at magstyle@@default\bxjs at magstyle@@xreal
 \fi\fi
 \ifjsWithpTeXng
-  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+  \let\bxjs at magstyle@@default\bxjs at magstyle@@xreal
 \fi
-\let\bxjs at magstyle\bxjs at magstyle@default
+\let\bxjs at magstyle\bxjs at magstyle@@default
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1770,52 +1814,30 @@
 % |magstyle| オプションの処理。
 %    \begin{macrocode}
 \define at key{bxjs}{magstyle}{%
-  \expandafter\let\expandafter\bxjs at magstyle\csname
-   bxjs at magstyle@#1\endcsname
+  \bxjs at csletcs{bxjs at magstyle}{bxjs at magstyle@@#1}%
   \ifx\bxjs at magstyle\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option magstyle}\@ehc
-    \let\bxjs at magstyle\bxjs at magstyle@default
+    \bxjs at error@keyval{magstyle}{#1}%
+    \let\bxjs at magstyle\bxjs at magstyle@@default
   \fi}
 %    \end{macrocode}
 %
 % \begin{macro}{\bxjs at geometry}
-% |geometry| オプションの値。
+% |geometry| オプションの指定値。
 %    \begin{macrocode}
-\let\bxjs at geometry@class=c
-\let\bxjs at geometry@user=u
-\let\bxjs at geometry\bxjs at geometry@class
+\let\bxjs at geometry@@class=c
+\let\bxjs at geometry@@user=u
+\bxjs at declare@enum at option{geometry}{geometry}{class}
 %    \end{macrocode}
 % \end{macro}
 %
-% |geometry| オプションの処理。
-%    \begin{macrocode}
-\define at key{bxjs}{geometry}{%
-  \expandafter\let\expandafter\bxjs at geometry\csname
-   bxjs at geometry@#1\endcsname
-  \ifx\bxjs at geometry\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option geometry}\@ehc
-    \let\bxjs at geometry\bxjs at geometry@class
-  \fi}
-%    \end{macrocode}
-%
 % \begin{macro}{\ifbxjs at fancyhdr}
-% 〔スイッチ〕
+% 〔スイッチ〕 |fancyhdr| の指定値。
 % |fancyhdr| パッケージに対する調整を行うか。
 %    \begin{macrocode}
-\newif\ifbxjs at fancyhdr \bxjs at fancyhdrtrue
+\bxjs at declare@bool at option{fancyhdr}{fancyhdr}{true}
 %    \end{macrocode}
 % \end{macro}
 %
-% |fancyhdr| オプションの処理。
-%    \begin{macrocode}
-\let\bxjs at kv@fancyhdr at true\bxjs at fancyhdrtrue
-\let\bxjs at kv@fancyhdr at false\bxjs at fancyhdrfalse
-\define at key{bxjs}{fancyhdr}[true]{%
-  \bxjs at set@keyval{fancyhdr}{#1}{}}
-%    \end{macrocode}
-%
 % \begin{macro}{\ifbxjs at dvi@opt}
 % |dvi| オプションが指定されたか。
 %    \begin{macrocode}
@@ -1835,11 +1857,9 @@
 % |dvi| オプションの処理。
 %    \begin{macrocode}
 \define at key{bxjs}{dvi}{%
-  \expandafter\let\expandafter\bxjs at tmpa\csname
-   bxjs at dvidriver@@#1\endcsname
+  \bxjs at csletcs{bxjs at tmpa}{bxjs at dvidriver@@#1}%
   \ifx\bxjs at tmpa\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option dvi}\@ehc
+    \bxjs at error@keyval{dvi}{#1}%
   \else
 %    \end{macrocode}
 % |\bxjs at driver@given| を未定義にしていることに注意。
@@ -1889,6 +1909,7 @@
 %    \begin{macrocode}
 %\let\bxjs at textwidth@limit at opt\@undefined
 \define at key{bxjs}{textwidth-limit}{%
+  \bxjs at depre@opt{textwidth-limit}{textwidth=#1zw}%
   \edef\bxjs at textwidth@limit at opt{#1}}
 %    \end{macrocode}
 % \end{macro}
@@ -1924,10 +1945,7 @@
 % \begin{macro}{\ifbxjs at whole@zw at lines}
 % 〔スイッチ〕 |whole-zw-lines| の指定値。
 %    \begin{macrocode}
-\newif\ifbxjs at whole@zw at lines \bxjs at whole@zw at linestrue
-\let\bxjs at kv@wholezwlines at true\bxjs at whole@zw at linestrue
-\let\bxjs at kv@wholezwlines at false\bxjs at whole@zw at linesfalse
-\define at key{bxjs}{whole-zw-lines}[true]{\bxjs at set@keyval{wholezwlines}{#1}{}}
+\bxjs at declare@bool at option{whole-zw-lines}{whole at zw@lines}{true}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1934,11 +1952,8 @@
 % \begin{macro}{\ifbxjs at jaspace@cmd}
 % 〔スイッチ〕 |jaspace-cmd| の指定値。
 %    \begin{macrocode}
-\newif\ifbxjs at jaspace@cmd \bxjs at jaspace@cmdtrue
-\let\bxjs at kv@jaspacecmd at true\bxjs at jaspace@cmdtrue
-\let\bxjs at kv@jaspacecmd at false\bxjs at jaspace@cmdfalse
-\define at key{bxjs}{jaspace-cmd}[true]{\bxjs at set@keyval{jaspacecmd}{#1}{}}
-\define at key{bxjs}{xkanjiskip-cmd}[true]{\bxjs at set@keyval{jaspacecmd}{#1}{}}
+\bxjs at declare@bool at option{jaspace-cmd}{jaspace at cmd}{true}
+\define at key{bxjs}{xkanjiskip-cmd}[true]{\setkeys{bxjs}{jaspace-cmd=#1}}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1945,10 +1960,7 @@
 % \begin{macro}{\ifbxjs at fix@at at cmd}
 % 〔スイッチ〕 |fix-at-cmd| の指定値。
 %    \begin{macrocode}
-\newif\ifbxjs at fix@at at cmd \bxjs at fix@at at cmdtrue
-\let\bxjs at kv@fixatcmd at true\bxjs at fix@at at cmdtrue
-\let\bxjs at kv@fixatcmd at false\bxjs at fix@at at cmdfalse
-\define at key{bxjs}{fix-at-cmd}[true]{\bxjs at set@keyval{fixatcmd}{#1}{}}
+\bxjs at declare@bool at option{fix-at-cmd}{fix at at@cmd}{true}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1955,10 +1967,7 @@
 % \begin{macro}{\ifbxjs at hyperref@enc}
 % 〔スイッチ〕 |hyperref-enc| の指定値。
 %    \begin{macrocode}
-\newif\ifbxjs at hyperref@enc \bxjs at hyperref@enctrue
-\let\bxjs at kv@hyperrefenc at true\bxjs at hyperref@enctrue
-\let\bxjs at kv@hyperrefenc at false\bxjs at hyperref@encfalse
-\define at key{bxjs}{hyperref-enc}[true]{\bxjs at set@keyval{hyperrefenc}{#1}{}}
+\bxjs at declare@bool at option{hyperref-enc}{hyperref at enc}{true}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1965,18 +1974,11 @@
 % \begin{macro}{\bxjs at everyparhook}
 % |everyparhook| の指定値。
 %    \begin{macrocode}
-\chardef\bxjs at everyparhook@none=0
-\chardef\bxjs at everyparhook@compat=1
-\chardef\bxjs at everyparhook@modern=2
-\if j\jsEngine
-  \let\bxjs at everyparhook\bxjs at everyparhook@compat
-\else
-  \let\bxjs at everyparhook\bxjs at everyparhook@modern
-\fi
-\def\bxjs at kv@everyparhook at none{\let\bxjs at everyparhook\bxjs at everyparhook@none}
-\def\bxjs at kv@everyparhook at compat{\let\bxjs at everyparhook\bxjs at everyparhook@compat}
-\def\bxjs at kv@everyparhook at modern{\let\bxjs at everyparhook\bxjs at everyparhook@modern}
-\define at key{bxjs}{everyparhook}{\bxjs at set@keyval{everyparhook}{#1}{}}
+\chardef\bxjs at everyparhook@@none=0
+\chardef\bxjs at everyparhook@@compat=1
+\chardef\bxjs at everyparhook@@modern=2
+\bxjs at declare@enum at option{everyparhook}{everyparhook}{%
+  \if j\jsEngine compat\else modern\fi}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1983,14 +1985,10 @@
 % \begin{macro}{\bxjs at label@section}
 % |label-section| の指定値。
 %    \begin{macrocode}
-\chardef\bxjs at label@section at none=0
-\chardef\bxjs at label@section at compat=1
-\chardef\bxjs at label@section at modern=2
-\let\bxjs at label@section\bxjs at label@section at compat
-\def\bxjs at kv@labelsection at none{\let\bxjs at label@section\bxjs at label@section at none}
-\def\bxjs at kv@labelsection at compat{\let\bxjs at label@section\bxjs at label@section at compat}
-\def\bxjs at kv@labelsection at modern{\let\bxjs at label@section\bxjs at label@section at modern}
-\define at key{bxjs}{label-section}{\bxjs at set@keyval{labelsection}{#1}{}}
+\chardef\bxjs at label@section@@none=0
+\chardef\bxjs at label@section@@compat=1
+\chardef\bxjs at label@section@@modern=2
+\bxjs at declare@enum at option{label-section}{label at section}{compat}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1997,10 +1995,9 @@
 % \begin{macro}{\ifbxjs at usezw}
 % 〔スイッチ〕 |use-zw| の指定値。
 %    \begin{macrocode}
-\newif\ifbxjs at usezw \bxjs at usezwtrue
-\bxjs at declare@bool at option{use-zw}{usezw}
-\DeclareOption{nozw}{\setkeys{bxjs}{use-zw=false}}
-\DeclareOption{zw}{\setkeys{bxjs}{use-zw=true}}
+\bxjs at declare@bool at option{use-zw}{usezw}{true}
+\DeclareOption{nozw}{\bxjs at depre@opt at do{nozw}{use-zw=false}}
+\DeclareOption{zw}{\bxjs at depre@opt at do{zw}{use-zw=true}}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2007,10 +2004,9 @@
 % \begin{macro}{\ifbxjs at disguise@js}
 % 〔スイッチ〕 |disguise-js| の指定値。
 %    \begin{macrocode}
-\newif\ifbxjs at disguise@js \bxjs at disguise@jstrue
-\bxjs at declare@bool at option{disguise-js}{disguise at js}
-\DeclareOption{nojs}{\setkeys{bxjs}{disguise-js=false}}
-\DeclareOption{js}{\setkeys{bxjs}{disguise-js=true}}
+\bxjs at declare@bool at option{disguise-js}{disguise at js}{true}
+\DeclareOption{nojs}{\bxjs at depre@opt at do{nojs}{disguise-js=false}}
+\DeclareOption{js}{\bxjs at depre@opt at do{js}{disguise-js=true}}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2017,10 +2013,9 @@
 % \begin{macro}{\ifbxjs at precisetext}
 % 〔スイッチ〕 |precise-text| の指定値。
 %    \begin{macrocode}
-\newif\ifbxjs at precisetext
-\bxjs at declare@bool at option{precise-text}{precisetext}
-\DeclareOption{noprecisetext}{\setkeys{bxjs}{precise-text=false}}
-\DeclareOption{precisetext}{\setkeys{bxjs}{precise-text=true}}
+\bxjs at declare@bool at option{precise-text}{precisetext}{false}
+\DeclareOption{noprecisetext}{\bxjs at depre@opt at do{noprecisetext}{precise-text=false}}
+\DeclareOption{precisetext}{\bxjs at depre@opt at do{precisetext}{precise-text=true}}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2027,10 +2022,9 @@
 % \begin{macro}{\ifbxjs at simplejasetup}
 % 〔スイッチ〕 |simple-ja-setup| の指定値。
 %    \begin{macrocode}
-\newif\ifbxjs at simplejasetup \bxjs at simplejasetuptrue
-\bxjs at declare@bool at option{simple-ja-setup}{simplejasetup}
-\DeclareOption{nosimplejasetup}{\setkeys{bxjs}{simple-ja-setup=false}}
-\DeclareOption{simplejasetup}{\setkeys{bxjs}{simple-ja-setup=true}}
+\bxjs at declare@bool at option{simple-ja-setup}{simplejasetup}{true}
+\DeclareOption{nosimplejasetup}{\bxjs at depre@opt at do{nosimplejasetup}{simple-ja-setup=false}}
+\DeclareOption{simplejasetup}{\bxjs at depre@opt at do{simplejasetup}{simple-ja-setup=true}}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2321,9 +2315,9 @@
 % (この場合の既定値は |nomag*| であり、
 % エラーの場合は既定値に置き換えられる。)
 %    \begin{macrocode}
-\ifx\bxjs at magstyle@default\bxjs at magstyle@mag\else
-  \ifx\bxjs at magstyle\bxjs at magstyle@mag
-    \let\bxjs at magstyle\bxjs at magstyle@default
+\ifx\bxjs at magstyle@@default\bxjs at magstyle@@mag\else
+  \ifx\bxjs at magstyle\bxjs at magstyle@@mag
+    \let\bxjs at magstyle\bxjs at magstyle@@default
     \ClassError\bxjs at clsname
      {The engine does not support 'magstyle=usemag'}%
      {LuaTeX v0.87 or later no longer supports the "mag" feature of TeX.\MessageBreak
@@ -2482,9 +2476,9 @@
 % |\bxjs at magstyle| の値に応じてスイッチ |jsc at mag| と |jsc at mag@xreal| を
 % 設定する。
 %    \begin{macrocode}
-\ifx\bxjs at magstyle\bxjs at magstyle@mag
+\ifx\bxjs at magstyle\bxjs at magstyle@@mag
   \jsc at magtrue
-\else\ifx\bxjs at magstyle\bxjs at magstyle@xreal
+\else\ifx\bxjs at magstyle\bxjs at magstyle@@xreal
   \jsc at mag@xrealtrue
 \fi\fi
 %    \end{macrocode}
@@ -3303,19 +3297,40 @@
 \def\bxjs at unit@zw{\jsZw}\let\bxjs at unit@zh\bxjs at unit@zw
 %    \end{macrocode}
 %
-% |\bxjs at param@paper| が長さ指定(|{W}{H}|)の場合、
+% |\bxjs at param@paper| が長さ指定の場合、
 % |geometry| の形式(|papersize={W,H}|)に変換する。
+% |{W}{H}| の形式について。
 %    \begin{macrocode}
-\def\bxjs at tmpdo{\futurelet\bxjs at tmpa\bxjs at tmpdo@a}
-\def\bxjs at tmpdo@a{%
-  \ifx\bxjs at tmpa\bgroup \expandafter\bxjs at tmpdo@b
-  \else \expandafter\bxjs at tmpdo@c \fi}
-\def\bxjs at tmpdo@b#1#2#3\@nil{\edef\bxjs at param@paper{papersize={#1,#2}}}
-\def\bxjs at tmpdo@c#1\@nil{\bxjs at tmpdo@d#1,,\@nil}
-\def\bxjs at tmpdo@d#1,#2,#3\@nil{%
-  \ifx\@nil#3\@nil\else \edef\bxjs at param@paper{papersize={#1,#2}}\fi}
-\expandafter\bxjs at tmpdo\bxjs at param@paper\@empty\@empty\@nil
+\@tempswafalse
+\def\bxjs at tmpdo{\@ifnextchar\bgroup\bxjs at tmpdo@a\remove at to@nnil}
+\def\bxjs at tmpdo@a#1{\edef\bxjs at tmpa{#1}%
+  \@ifnextchar\bgroup\bxjs at tmpdo@b\remove at to@nnil}
+\def\bxjs at tmpdo@b#1{\edef\bxjs at tmpa{\bxjs at tmpa,#1}%
+  \@ifnextchar\@nnil\bxjs at tmpdo@c\remove at to@nnil}
+\def\bxjs at tmpdo@c\@nnil{\@tempswatrue
+  \edef\bxjs at param@paper{papersize={\bxjs at tmpa}}}
+\expandafter\bxjs at tmpdo\bxjs at param@paper\@nnil
 %    \end{macrocode}
+% |W,H| の形式について。
+%    \begin{macrocode}
+\if at tempswa\else
+  \def\bxjs at tmpa{\@nil,\@nil}
+  \def\bxjs at tmpdo#1,#2,#3\@nnil{%
+    \def\bxjs at tmpb{#3}\ifx\bxjs at tmpa\bxjs at tmpb
+      \@tempswatrue\edef\bxjs at param@paper{papersize={#1,#2}}\fi}
+  \expandafter\bxjs at tmpdo\bxjs at param@paper,\@nil,\@nil\@nnil
+\fi
+%    \end{macrocode}
+% |W*H| の形式について。
+%    \begin{macrocode}
+\if at tempswa\else
+  \def\bxjs at tmpa{\@nil*\@nil}
+  \def\bxjs at tmpdo#1*#2*#3\@nnil{%
+    \def\bxjs at tmpb{#3}\ifx\bxjs at tmpa\bxjs at tmpb
+      \@tempswatrue\edef\bxjs at param@paper{papersize={#1,#2}}\fi}
+  \expandafter\bxjs at tmpdo\bxjs at param@paper*\@nil*\@nil\@nnil
+\fi
+%    \end{macrocode}
 %
 % \begin{macro}{\bxjs at layout@paper}
 % |geometry| の用紙設定のオプション。
@@ -3537,7 +3552,7 @@
 %
 % |geoemtry=class| の場合に、実際に |geometry| パッケージを読みこむ。
 %    \begin{macrocode}
-\ifx\bxjs at geometry\bxjs at geometry@class
+\ifx\bxjs at geometry\bxjs at geometry@@class
 %    \end{macrocode}
 %
 % |geometry| のドライバオプション指定。
@@ -3633,7 +3648,7 @@
 % \begin{ZRnote}
 % |geometry=user|の場合の処理。
 %    \begin{macrocode}
-\else\ifx\bxjs at geometry\bxjs at geometry@user
+\else\ifx\bxjs at geometry\bxjs at geometry@@user
 %    \end{macrocode}
 %
 % この場合はユーザが何らかの方法(例えば |geometry| を読み込む)
@@ -4901,7 +4916,7 @@
 % \begin{macro}{\@secpos}
 % 節番号の接尾辞。
 %    \begin{macrocode}
-\ifnum\bxjs at label@section=\bxjs at label@section at compat\else
+\ifnum\bxjs at label@section=\bxjs at label@section@@compat\else
 \def\@secapp{\presectionname}
 \def\@secpos{\postsectionname}
 \fi
@@ -4911,7 +4926,7 @@
 % \begin{macro}{\labelsection}
 % 節番号の出力書式。
 %    \begin{macrocode}
-\ifnum\bxjs at label@section=\bxjs at label@section at modern
+\ifnum\bxjs at label@section=\bxjs at label@section@@modern
 \def\labelsection{\@secapp\thesection\@secpos}
 \fi
 %    \end{macrocode}
@@ -5001,7 +5016,7 @@
 % \begin{macro}{\bxjs at if@ceph}
 % |everyparhook=compat| である場合にのみ直後のトークンを実行する。
 %    \begin{macrocode}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
   \let\bxjs at if@ceph\@firstofone
 \else \let\bxjs at if@ceph\@gobble
 \fi
@@ -5196,7 +5211,7 @@
 %    \begin{macrocode}
 \renewcommand{\thepart}{\@Roman\c at part}
 %<*!book&!report>
-\ifnum\bxjs at label@section=\bxjs at label@section at compat
+\ifnum\bxjs at label@section=\bxjs at label@section@@compat
 \renewcommand{\thesection}{\presectionname\@arabic\c at section\postsectionname}
 \renewcommand{\thesubsection}{\@arabic\c at section.\@arabic\c at subsection}
 \else
@@ -6274,7 +6289,7 @@
 \newcommand{\appendix}{\par
   \setcounter{section}{0}%
   \setcounter{subsection}{0}%
-  \ifnum\bxjs at label@section=\bxjs at label@section at compat
+  \ifnum\bxjs at label@section=\bxjs at label@section@@compat
   \gdef\presectionname{\appendixname}%
   \gdef\postsectionname{}%
 % \gdef\thesection{\@Alph\c at section}% [2003-03-02]
@@ -7620,7 +7635,7 @@
 % これの初期値を先述の |\jsInhibitGlueAtParTop| とする。
 %    \begin{macrocode}
 \def\everyparhook{\jsInhibitGlueAtParTop}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
 \g at addto@macro\bxjs at begin@document at hook{\everypar{\everyparhook}}
 \fi
 %    \end{macrocode}
@@ -7681,7 +7696,7 @@
 % これは、|everyparhook=compat| の場合にのみ実行する。
 % \end{ZRnote}
 %    \begin{macrocode}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
 %    \end{macrocode}
 %
 % これだけではいけないようです。あちこちに |\everypar| を初期化するコマンドが
@@ -7817,7 +7832,7 @@
 % のを防ぐため遅延させる。
 % \end{ZRnote}
 %    \begin{macrocode}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@none\else
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@none\else
 \AtEndOfPackage{%
 \def\@gnewline #1{%
   \ifvmode
@@ -8829,7 +8844,7 @@
 % |everyparhook=modern| の場合の、|\everyparhook| の有効化の実装。
 % \Note 本体開始時ではなく最初から有効化していることに注意。
 %    \begin{macrocode}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@modern
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@modern
 %    \end{macrocode}
 % まず |\everypar| を“乗っ取る”処理を行う。
 %    \begin{macrocode}
@@ -9439,16 +9454,16 @@
 \@onlypreamble\bxjs at get@kanjiEmbed
 \def\bxjs at get@kanjiEmbed{%
   \begingroup\setbox\z@=\hbox{%
-    \global\let\bxjs at do\@empty
+    \global\let\bxjs at tmpdo\@empty
     \def\bxjs at next##1##2##3{%
       \def##1####1##3 ####2\@nil####3\@nnil{%
         \ifx$####1$\gdef##2{####2}\fi}%
-      \g at addto@macro\bxjs at do{%
+      \g at addto@macro\bxjs at tmpdo{%
         \expandafter##1\bxjs at tmpa\@nil##3 \@nil\@nnil}}%
-    \bxjs at next\bxjs at do@a\bxjs at g@tmpa{kanjiEmbed}%
-    \bxjs at next\bxjs at do@b\bxjs at g@tmpa{jaEmbed}%
-    \bxjs at next\bxjs at do@c\bxjs at g@tmpb{kanjiVariant}%
-    \bxjs at next\bxjs at do@d\bxjs at g@tmpb{jaVariant}%
+    \bxjs at next\bxjs at tmpdo@a\bxjs at g@tmpa{kanjiEmbed}%
+    \bxjs at next\bxjs at tmpdo@b\bxjs at g@tmpa{jaEmbed}%
+    \bxjs at next\bxjs at tmpdo@c\bxjs at g@tmpb{kanjiVariant}%
+    \bxjs at next\bxjs at tmpdo@d\bxjs at g@tmpb{jaVariant}%
 %
     \global\let\bxjs at g@tmpa\relax
     \global\let\bxjs at g@tmpb\relax
@@ -9466,7 +9481,7 @@
       \@tempswatrue
       \loop\if at tempswa
         \read\@inputcheck to\bxjs at tmpa
-        \bxjs at do
+        \bxjs at tmpdo
         \ifeof\@inputcheck \@tempswafalse \fi
       \repeat
     \fi
@@ -10260,11 +10275,11 @@
 %
 % |ltjs*| クラスの定義と同等になるようにパッチを当てる。
 %    \begin{macrocode}
-\unless\ifnum\bxjs at everyparhook=\bxjs at everyparhook@none
+\unless\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@none
 \begingroup
   \let\%\@percentchar \def\@#1{[[\detokenize{#1}]]}
   \@gobble\if\def\bxjs at tmpa{\@{\everypar{}\fi}}
-  \ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+  \ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
     \@gobble\if\def\bxjs at tmpa{\@{\everypar{\everyparhook}\fi}}\fi
   \directlua{
     local function patchcmd(cs, code, from, to)
@@ -10562,6 +10577,49 @@
   \bxjs at set@keyval{strong}{#1}{}}
 %    \end{macrocode}
 %
+% \begin{macro}{\ifbxjs at jp@or at indent}
+% \begin{macro}{\ifbxjs at jp@or at secnumdepth}
+% \begin{macro}{\ifbxjs at jp@or at block@heading}
+% プレアンブルでのレイアウト上書きを許可するか。
+% 既定値は真。
+%    \begin{macrocode}
+\newif\ifbxjs at jp@or at indent \bxjs at jp@or at indenttrue
+\newif\ifbxjs at jp@or at secnumdepth \bxjs at jp@or at secnumdepthtrue
+\newif\ifbxjs at jp@or at block@heading \bxjs at jp@or at block@headingtrue
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% クラスで |pandoc+| が指定された場合、内部和文パラメタ |_plus| が
+% 和文ドライバに渡される。
+% この場合、レイアウト上書きを禁止する。
+% \Note |_plus| は必ずパラメタ列の先頭にあるので、
+% 個別のパラメタ設定の方が常に優先される。
+%    \begin{macrocode}
+\define at key{bxjsPan}{_plus}[]{%
+  \bxjs at jp@or at indentfalse
+  \bxjs at jp@or at secnumdepthfalse
+  \bxjs at jp@or at block@headingfalse}
+%    \end{macrocode}
+%
+% レイアウト上書き許可オプション
+% (|or-indent|・|or-secnumdepth|・|or-block-heading|)の処理。
+%    \begin{macrocode}
+\let\bxjs at kv@orindent at true\bxjs at jp@or at indenttrue
+\let\bxjs at kv@orindent at false\bxjs at jp@or at indentfalse
+\define at key{bxjsPan}{or-indent}[true]{%
+  \bxjs at set@keyval{orindent}{#1}{}}
+\let\bxjs at kv@orsecnumdepth at true\bxjs at jp@or at secnumdepthtrue
+\let\bxjs at kv@orsecnumdepth at false\bxjs at jp@or at secnumdepthfalse
+\define at key{bxjsPan}{or-secnumdepth}[true]{%
+  \bxjs at set@keyval{orsecnumdepth}{#1}{}}
+\let\bxjs at kv@orblockheading at true\bxjs at jp@or at block@headingtrue
+\let\bxjs at kv@orblockheading at false\bxjs at jp@or at block@headingfalse
+\define at key{bxjsPan}{or-block-heading}[true]{%
+  \bxjs at set@keyval{blockheading}{#1}{}}
+%    \end{macrocode}
+%
 % 実際の |japaram| の値を適用する。
 %    \begin{macrocode}
 \def\bxjs at next#1{\bxjs at safe@setkeys{bxjsPan}{#1}}
@@ -10843,6 +10901,66 @@
 %    \end{macrocode}
 %
 %^^A----------------
+% \subsection{レイアウト上書き禁止}
+%
+% レイアウト上書き禁止の実装は |etoolbox| の機能を使う。
+%    \begin{macrocode}
+\ifjsWitheTeX
+\@onlypreamble\bxjs at info@or at ban
+\def\bxjs at info@or at ban#1{%
+  \PackageInfo\bxjs at clsname
+   {Freeze layout on '#1',\MessageBreak detected}}
+%    \end{macrocode}
+%
+% \paragraph{indentについて}
+% indent変数を指定しない場合に
+% 「段落表現形式をインデント方式に変更する」
+% 動作を抑止する。
+%    \begin{macrocode}
+\unless\ifbxjs at jp@or at indent
+  \bxjs at info@or at ban{indent}
+%    \end{macrocode}
+% |parskip| がある場合はそれを読み込もうとするため、
+% |parskip| の読込をブロックする。
+%    \begin{macrocode}
+  \IfFileExists{parskip.sty}{%
+    \pandocSkipLoadPackage{parskip}%
+%    \end{macrocode}
+% |parskip| がない場合はパラメタを変更しようとするため、
+% 該当のパラメタを復帰させる。
+%    \begin{macrocode}
+  }{%else
+    \eappto\bxjs at endpreamble@hook{%
+      \parindent=\the\parindent\relax
+      \parskip=\the\parskip\relax}}
+\fi
+%
+% \paragraph{secnumdepthについて}
+% |secnumdepth| の値を決めるのはnumbersections変数
+% (|-N|/|--number-sections| オプションに連動する)
+% やsecnumdepth変数であるが、何れにしても |secnumdepth|
+% の値は書き換えられる。
+% そのため、|secnumdepth| を復帰させる。
+\ifbxjs at jp@or at secnumdepth\else
+  \bxjs at info@or at ban{secnumdepth}
+  \eappto\bxjs at endpreamble@hook{%
+    \c at secnumdepth=\the\c at secnumdepth\relax}
+\fi
+%
+% \paragraph{block-headingについて}
+\ifbxjs at jp@or at block@heading\else
+  \let\bxjs at frozen@paragraph\paragraph
+  \let\bxjs at frozen@subparagraph\subparagraph
+  \bxjs at info@or at ban{block-heading}
+  \appto\bxjs at endpreamble@hook{%
+  \let\oldparagraph\@undefined
+  \let\paragraph\bxjs at frozen@paragraph
+  \let\subparagraph\bxjs at frozen@subparagraph}
+\fi
+\fi
+%    \end{macrocode}
+%
+%^^A----------------
 % \subsection{paragraphのマーク}
 %
 % BXJSクラスでは |\paragraph| の見出しの前に |\jsParagraphMark|

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls	2020-10-17 21:02:14 UTC (rev 56686)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsarticle}
-  [2020/10/10 v2.3  BXJS document classes]
+  [2020/10/16 v2.4  BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \def\bxjs at clsname{bxjsarticle}
 \newif\ifjsc at needsp@tch
@@ -183,13 +183,18 @@
 \newif\if at enablejfam \@enablejfamfalse
 \@onlypreamble\bxjs at setpaper
 \def\bxjs at setpaper#1{\def\bxjs at param@paper{#1}}
+\newif\ifbxjs at iso@bsize
+\DeclareOption{iso-bsize}{\bxjs at iso@bsizetrue}
+\@onlypreamble\bxjs at setpaper@bsize
+\def\bxjs at setpaper@bsize#1{\edef\bxjs at param@paper{%
+  b#1\ifbxjs at iso@bsize paper\else j\fi}}
 \DeclareOption{a3paper}{\bxjs at setpaper{a3paper}}
 \DeclareOption{a4paper}{\bxjs at setpaper{a4paper}}
 \DeclareOption{a5paper}{\bxjs at setpaper{a5paper}}
 \DeclareOption{a6paper}{\bxjs at setpaper{a6paper}}
-\DeclareOption{b4paper}{\bxjs at setpaper{b4j}}
-\DeclareOption{b5paper}{\bxjs at setpaper{b5j}}
-\DeclareOption{b6paper}{\bxjs at setpaper{b6j}}
+\DeclareOption{b4paper}{\bxjs at setpaper@bsize{4}}
+\DeclareOption{b5paper}{\bxjs at setpaper@bsize{5}}
+\DeclareOption{b6paper}{\bxjs at setpaper@bsize{6}}
 \DeclareOption{a4j}{\bxjs at setpaper{a4paper}}
 \DeclareOption{a5j}{\bxjs at setpaper{a5paper}}
 \DeclareOption{b4j}{\bxjs at setpaper{b4j}}
@@ -199,20 +204,17 @@
 \DeclareOption{letterpaper}{\bxjs at setpaper{letterpaper}}
 \DeclareOption{legalpaper}{\bxjs at setpaper{legalpaper}}
 \DeclareOption{executivepaper}{\bxjs at setpaper{executivepaper}}
-\def\bxjs at tmpb#1#2{\DeclareOption{#1}{\bxjs at setpaper{#2}}}
 \@for\bxjs at tmpa:={%
   a0,a1,a2,c0,c1,c2,c3,c4,c5,c6,ansia,ansib,ansic,ansid,ansie%
 }\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{\bxjs at tmpa paper}{\bxjs at tmpa paper}%
+  \noexpand\DeclareOption{\bxjs at tmpa paper}%
+    {\noexpand\bxjs at setpaper{\bxjs at tmpa paper}}%
 }\bxjs at next}
-\bxjs at tmpb{screen}{screen}
+\DeclareOption{screen}{\bxjs at setpaper{screen}}
 \@for\bxjs at tmpa:={0,1,2,3}\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{b\bxjs at tmpa paper}{b\bxjs at tmpa j}%
+  \noexpand\DeclareOption{b\bxjs at tmpa paper}%
+    {\noexpand\bxjs at setpaper@bsize{\bxjs at tmpa}}%
 }\bxjs at next}
-\@for\bxjs at tmpa:={0,1,2,3,4,5,6}\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{A\bxjs at tmpa paper}{a\bxjs at tmpa paper}%
-  \noexpand\bxjs at tmpb{B\bxjs at tmpa paper}{b\bxjs at tmpa paper}%
-}\bxjs at next}
 \DeclareOption{a4varpaper}{\bxjs at setpaper{{210truemm}{283truemm}}}
 \DeclareOption{b5varpaper}{\bxjs at setpaper{{182truemm}{230truemm}}}
 \DeclareOption{screenpaper}{\bxjs at setpaper{screen}}
@@ -255,9 +257,9 @@
 \DeclareOption{10.5ptj}{\bxjs at setjbasefontsize{10.5pt}}
 \DeclareOption{11ptj}{\bxjs at setjbasefontsize{11pt}}
 \DeclareOption{12ptj}{\bxjs at setjbasefontsize{12pt}}
-\DeclareOption{usemag}{\let\bxjs at magstyle\bxjs at magstyle@usemag}
-\DeclareOption{nomag}{\let\bxjs at magstyle\bxjs at magstyle@nomag}
-\DeclareOption{nomag*}{\let\bxjs at magstyle\bxjs at magstyle@xreal}
+\DeclareOption{usemag}{\let\bxjs at magstyle\bxjs at magstyle@@usemag}
+\DeclareOption{nomag}{\let\bxjs at magstyle\bxjs at magstyle@@nomag}
+\DeclareOption{nomag*}{\let\bxjs at magstyle\bxjs at magstyle@@xreal}
 \if j\jsEngine
 \hour\time \divide\hour by 60\relax
 \@tempcnta\hour \multiply\@tempcnta 60\relax
@@ -373,12 +375,22 @@
     \xdef\bxjs at gtmpa{\the\@tempdimb}%
   \endgroup #1=\bxjs at gtmpa\relax}
 \DeclareOption{pandoc}{%
+  \bxjs at apply@pandoc at opt}
+\@onlypreamble\bxjs at apply@pandoc at opt
+\def\bxjs at apply@pandoc at opt{%
   \g at addto@macro\bxjs at post@option at hook{%
     \bxjs at oldfontcommandstrue
     \setkeys{bxjs}{ja=pandoc}%
     \let\bxjs at engine@given=*}%
-  \def\bxjs at driver@opt{dvipdfmx}%
-  \bxjs at dvi@opttrue}
+  \ifx\bxjs at driver@opt\@undefined
+    \def\bxjs at driver@opt{dvipdfmx}%
+    \bxjs at dvi@opttrue
+  \fi
+  \global\let\bxjs at apply@pandoc at opt\relax}
+\DeclareOption{pandoc+}{%
+  \g at addto@macro\bxjs at post@option at hook{%
+    \edef\jsJaParam{\bxjs at catopt{_plus}\jsJaParam}}%
+  \ExecuteOptions{pandoc}}
 \DeclareOption{autodetect-engine}{%
   \let\bxjs at engine@given=*}
 \DeclareOption{latex}{%
@@ -436,13 +448,18 @@
 \DeclareOption{xetex}{%
   \def\bxjs at driver@opt{xetex}%
   \let\bxjs at driver@given\bxjs at driver@@xetex}
-\DeclareOption{dvipdfmx-if-dvi}{%
+\DeclareOption{dvipdfmx-if-dvi}{\bxjs at depre@opt at do{dvipdfmx-if-dvi}{dvi=dvipdfmx}}
+\@onlypreamble\bxjs at depre@opt
+\def\bxjs at depre@opt#1#2{%
   \ClassWarningNoLine\bxjs at clsname
-   {The old option 'dvipdfmx-if-dvi' is DEPRECATED\MessageBreak
+   {The old option '#1' is DEPRECATED\MessageBreak
     and may be abolished in future!\MessageBreak
-    You should write 'dvi=dvipdfmx' instead}%
-  \setkeys{bxjs}{dvi=dvipdfmx}}
-
+    You should instead write:\MessageBreak
+    \space\space #2}}
+\@onlypreamble\bxjs at depre@opt at do
+\def\bxjs at depre@opt at do#1#2{%
+  \bxjs at depre@opt{#1}{#2}%
+  \setkeys{bxjs}{#2}}
 \newif\ifbxjs at bigcode \bxjs at bigcodetrue
 \DeclareOption{nobigcode}{%
   \bxjs at bigcodefalse}
@@ -473,7 +490,8 @@
   \setkeys{#1}{#2}%
   \let\KV at errx\bxjs at save@KV at errx}
 \@onlypreamble\bxjs at declare@enum at option
-\def\bxjs at declare@enum at option#1#2{%
+\def\bxjs at declare@enum at option#1#2#3{%
+  \bxjs at csletcs{bxjs@#2}{bxjs@#2@@#3}%
   \define at key{bxjs}{#1}{%
     \expandafter\ifx\csname bxjs@#2@@##1\endcsname\relax
       \bxjs at error@keyval{#1}{##1}%
@@ -480,7 +498,9 @@
     \else \bxjs at csletcs{bxjs@#2}{bxjs@#2@@##1}%
     \fi}}
 \@onlypreamble\bxjs at declare@bool at option
-\def\bxjs at declare@bool at option#1#2{%
+\def\bxjs at declare@bool at option#1#2#3{%
+  \csname newif\expandafter\endcsname\csname ifbxjs@#2\endcsname
+  \@nameuse{bxjs@#2#3}%
   \define at key{bxjs}{#1}[true]{%
     \expandafter\ifx\csname bxjs@#2##1\endcsname\relax
       \bxjs at error@keyval{#1}{##1}%
@@ -487,7 +507,7 @@
     \else \@nameuse{bxjs@#2##1}%
     \fi}}
 \def\bxjs at set@keyval#1#2#3{%
-  \expandafter\let\expandafter\bxjs at next\csname bxjs at kv@#1@#2\endcsname
+  \bxjs at csletcs{bxjs at next}{bxjs at kv@#1@#2}%
   \ifx\bxjs at next\relax
     \bxjs at error@keyval{#1}{#2}%
     #3%
@@ -508,56 +528,50 @@
   \edef\bxjs at scale@opt{#1}%
   \let\jsScale\bxjs at scale@opt}
 \define at key{bxjs}{jafontscale}{\setkeys{bxjs}{scale=#1}}
-\DeclareOption{noscale}{\setkeys{bxjs}{scale=1}}
+\DeclareOption{noscale}{\bxjs at depre@opt at do{noscale}{scale=1}}
 \let\bxjs at param@mag\relax
 \define at key{bxjs}{mag}{\edef\bxjs at param@mag{#1}}
 \define at key{bxjs}{paper}{\edef\bxjs at param@paper{#1}}
 \let\bxjs at jadriver\relax
-\define at key{bxjs}{jadriver}{\edef\bxjs at jadriver@opt{#1}}
+\define at key{bxjs}{jadriver}{%
+  \bxjs at depre@opt{jadriver}{ja=#1}\edef\bxjs at jadriver@opt{#1}}
 \define at key{bxjs}{ja}[\relax]{%
   \ifx\relax#1\else\edef\bxjs at jadriver@opt{#1}\fi}
 \let\jsJaFont\@empty
 \define at key{bxjs}{jafont}{\edef\jsJaFont{#1}}
 \let\jsJaParam\@empty
-\define at key{bxjs}{japaram}{\edef\jsJaParam{#1}}
-\let\bxjs at magstyle@mag=m
-\let\bxjs at magstyle@real=r
-\let\bxjs at magstyle@xreal=x
-\let\bxjs at magstyle@usemag\bxjs at magstyle@mag
-\let\bxjs at magstyle@nomag\bxjs at magstyle@real
-\expandafter\let\csname bxjs at magstyle@nomag*\endcsname\bxjs at magstyle@xreal
-\let\bxjs at magstyle@default\bxjs at magstyle@usemag
+\define at key{bxjs}{japaram}{%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+\define at key{bxjs}{pandoc}[]{%
+  \ExecuteOptions{pandoc}%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+\define at key{bxjs}{pandoc+}[]{%
+  \ExecuteOptions{pandoc+}%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+\let\bxjs at magstyle@@mag=m
+\let\bxjs at magstyle@@real=r
+\let\bxjs at magstyle@@xreal=x
+\let\bxjs at magstyle@@usemag\bxjs at magstyle@@mag
+\let\bxjs at magstyle@@nomag\bxjs at magstyle@@real
+\bxjs at cslet{bxjs at magstyle@@nomag*}\bxjs at magstyle@@xreal
+\let\bxjs at magstyle@@default\bxjs at magstyle@@usemag
 \ifx l\jsEngine \ifnum\luatexversion>86
-  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+  \let\bxjs at magstyle@@default\bxjs at magstyle@@xreal
 \fi\fi
 \ifjsWithpTeXng
-  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+  \let\bxjs at magstyle@@default\bxjs at magstyle@@xreal
 \fi
-\let\bxjs at magstyle\bxjs at magstyle@default
+\let\bxjs at magstyle\bxjs at magstyle@@default
 \define at key{bxjs}{magstyle}{%
-  \expandafter\let\expandafter\bxjs at magstyle\csname
-   bxjs at magstyle@#1\endcsname
+  \bxjs at csletcs{bxjs at magstyle}{bxjs at magstyle@@#1}%
   \ifx\bxjs at magstyle\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option magstyle}\@ehc
-    \let\bxjs at magstyle\bxjs at magstyle@default
+    \bxjs at error@keyval{magstyle}{#1}%
+    \let\bxjs at magstyle\bxjs at magstyle@@default
   \fi}
-\let\bxjs at geometry@class=c
-\let\bxjs at geometry@user=u
-\let\bxjs at geometry\bxjs at geometry@class
-\define at key{bxjs}{geometry}{%
-  \expandafter\let\expandafter\bxjs at geometry\csname
-   bxjs at geometry@#1\endcsname
-  \ifx\bxjs at geometry\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option geometry}\@ehc
-    \let\bxjs at geometry\bxjs at geometry@class
-  \fi}
-\newif\ifbxjs at fancyhdr \bxjs at fancyhdrtrue
-\let\bxjs at kv@fancyhdr at true\bxjs at fancyhdrtrue
-\let\bxjs at kv@fancyhdr at false\bxjs at fancyhdrfalse
-\define at key{bxjs}{fancyhdr}[true]{%
-  \bxjs at set@keyval{fancyhdr}{#1}{}}
+\let\bxjs at geometry@@class=c
+\let\bxjs at geometry@@user=u
+\bxjs at declare@enum at option{geometry}{geometry}{class}
+\bxjs at declare@bool at option{fancyhdr}{fancyhdr}{true}
 \newif\ifbxjs at dvi@opt
 \let\bxjs at dvidriver@@dvipdfmx=\bxjs at driver@@dvipdfmx
 \let\bxjs at dvidriver@@dvips=\bxjs at driver@@dvips
@@ -565,11 +579,9 @@
 \let\bxjs at dvidriver@@xdvi=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@nodvidriver=\bxjs at driver@@none
 \define at key{bxjs}{dvi}{%
-  \expandafter\let\expandafter\bxjs at tmpa\csname
-   bxjs at dvidriver@@#1\endcsname
+  \bxjs at csletcs{bxjs at tmpa}{bxjs at dvidriver@@#1}%
   \ifx\bxjs at tmpa\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option dvi}\@ehc
+    \bxjs at error@keyval{dvi}{#1}%
   \else
     \def\bxjs at driver@opt{#1}%
     \let\bxjs at driver@given\@undefined
@@ -584,6 +596,7 @@
 \define at key{bxjs}{layout}{%
   \bxjs at set@keyval{layout}{#1}{}}
 \define at key{bxjs}{textwidth-limit}{%
+  \bxjs at depre@opt{textwidth-limit}{textwidth=#1zw}%
   \edef\bxjs at textwidth@limit at opt{#1}}
 \define at key{bxjs}{textwidth}{\edef\bxjs at textwidth@opt{#1}}
 \define at key{bxjs}{line_length}{\setkeys{bxjs}{textwidth=#1}}
@@ -591,59 +604,32 @@
 \define at key{bxjs}{number_of_lines}{\setkeys{bxjs}{number-of-lines=#1}}
 \define at key{bxjs}{paragraph-mark}{%
   \edef\bxjs at paragraph@mark{#1}}
-\newif\ifbxjs at whole@zw at lines \bxjs at whole@zw at linestrue
-\let\bxjs at kv@wholezwlines at true\bxjs at whole@zw at linestrue
-\let\bxjs at kv@wholezwlines at false\bxjs at whole@zw at linesfalse
-\define at key{bxjs}{whole-zw-lines}[true]{\bxjs at set@keyval{wholezwlines}{#1}{}}
-\newif\ifbxjs at jaspace@cmd \bxjs at jaspace@cmdtrue
-\let\bxjs at kv@jaspacecmd at true\bxjs at jaspace@cmdtrue
-\let\bxjs at kv@jaspacecmd at false\bxjs at jaspace@cmdfalse
-\define at key{bxjs}{jaspace-cmd}[true]{\bxjs at set@keyval{jaspacecmd}{#1}{}}
-\define at key{bxjs}{xkanjiskip-cmd}[true]{\bxjs at set@keyval{jaspacecmd}{#1}{}}
-\newif\ifbxjs at fix@at at cmd \bxjs at fix@at at cmdtrue
-\let\bxjs at kv@fixatcmd at true\bxjs at fix@at at cmdtrue
-\let\bxjs at kv@fixatcmd at false\bxjs at fix@at at cmdfalse
-\define at key{bxjs}{fix-at-cmd}[true]{\bxjs at set@keyval{fixatcmd}{#1}{}}
-\newif\ifbxjs at hyperref@enc \bxjs at hyperref@enctrue
-\let\bxjs at kv@hyperrefenc at true\bxjs at hyperref@enctrue
-\let\bxjs at kv@hyperrefenc at false\bxjs at hyperref@encfalse
-\define at key{bxjs}{hyperref-enc}[true]{\bxjs at set@keyval{hyperrefenc}{#1}{}}
-\chardef\bxjs at everyparhook@none=0
-\chardef\bxjs at everyparhook@compat=1
-\chardef\bxjs at everyparhook@modern=2
-\if j\jsEngine
-  \let\bxjs at everyparhook\bxjs at everyparhook@compat
-\else
-  \let\bxjs at everyparhook\bxjs at everyparhook@modern
-\fi
-\def\bxjs at kv@everyparhook at none{\let\bxjs at everyparhook\bxjs at everyparhook@none}
-\def\bxjs at kv@everyparhook at compat{\let\bxjs at everyparhook\bxjs at everyparhook@compat}
-\def\bxjs at kv@everyparhook at modern{\let\bxjs at everyparhook\bxjs at everyparhook@modern}
-\define at key{bxjs}{everyparhook}{\bxjs at set@keyval{everyparhook}{#1}{}}
-\chardef\bxjs at label@section at none=0
-\chardef\bxjs at label@section at compat=1
-\chardef\bxjs at label@section at modern=2
-\let\bxjs at label@section\bxjs at label@section at compat
-\def\bxjs at kv@labelsection at none{\let\bxjs at label@section\bxjs at label@section at none}
-\def\bxjs at kv@labelsection at compat{\let\bxjs at label@section\bxjs at label@section at compat}
-\def\bxjs at kv@labelsection at modern{\let\bxjs at label@section\bxjs at label@section at modern}
-\define at key{bxjs}{label-section}{\bxjs at set@keyval{labelsection}{#1}{}}
-\newif\ifbxjs at usezw \bxjs at usezwtrue
-\bxjs at declare@bool at option{use-zw}{usezw}
-\DeclareOption{nozw}{\setkeys{bxjs}{use-zw=false}}
-\DeclareOption{zw}{\setkeys{bxjs}{use-zw=true}}
-\newif\ifbxjs at disguise@js \bxjs at disguise@jstrue
-\bxjs at declare@bool at option{disguise-js}{disguise at js}
-\DeclareOption{nojs}{\setkeys{bxjs}{disguise-js=false}}
-\DeclareOption{js}{\setkeys{bxjs}{disguise-js=true}}
-\newif\ifbxjs at precisetext
-\bxjs at declare@bool at option{precise-text}{precisetext}
-\DeclareOption{noprecisetext}{\setkeys{bxjs}{precise-text=false}}
-\DeclareOption{precisetext}{\setkeys{bxjs}{precise-text=true}}
-\newif\ifbxjs at simplejasetup \bxjs at simplejasetuptrue
-\bxjs at declare@bool at option{simple-ja-setup}{simplejasetup}
-\DeclareOption{nosimplejasetup}{\setkeys{bxjs}{simple-ja-setup=false}}
-\DeclareOption{simplejasetup}{\setkeys{bxjs}{simple-ja-setup=true}}
+\bxjs at declare@bool at option{whole-zw-lines}{whole at zw@lines}{true}
+\bxjs at declare@bool at option{jaspace-cmd}{jaspace at cmd}{true}
+\define at key{bxjs}{xkanjiskip-cmd}[true]{\setkeys{bxjs}{jaspace-cmd=#1}}
+\bxjs at declare@bool at option{fix-at-cmd}{fix at at@cmd}{true}
+\bxjs at declare@bool at option{hyperref-enc}{hyperref at enc}{true}
+\chardef\bxjs at everyparhook@@none=0
+\chardef\bxjs at everyparhook@@compat=1
+\chardef\bxjs at everyparhook@@modern=2
+\bxjs at declare@enum at option{everyparhook}{everyparhook}{%
+  \if j\jsEngine compat\else modern\fi}
+\chardef\bxjs at label@section@@none=0
+\chardef\bxjs at label@section@@compat=1
+\chardef\bxjs at label@section@@modern=2
+\bxjs at declare@enum at option{label-section}{label at section}{compat}
+\bxjs at declare@bool at option{use-zw}{usezw}{true}
+\DeclareOption{nozw}{\bxjs at depre@opt at do{nozw}{use-zw=false}}
+\DeclareOption{zw}{\bxjs at depre@opt at do{zw}{use-zw=true}}
+\bxjs at declare@bool at option{disguise-js}{disguise at js}{true}
+\DeclareOption{nojs}{\bxjs at depre@opt at do{nojs}{disguise-js=false}}
+\DeclareOption{js}{\bxjs at depre@opt at do{js}{disguise-js=true}}
+\bxjs at declare@bool at option{precise-text}{precisetext}{false}
+\DeclareOption{noprecisetext}{\bxjs at depre@opt at do{noprecisetext}{precise-text=false}}
+\DeclareOption{precisetext}{\bxjs at depre@opt at do{precisetext}{precise-text=true}}
+\bxjs at declare@bool at option{simple-ja-setup}{simplejasetup}{true}
+\DeclareOption{nosimplejasetup}{\bxjs at depre@opt at do{nosimplejasetup}{simple-ja-setup=false}}
+\DeclareOption{simplejasetup}{\bxjs at depre@opt at do{simplejasetup}{simple-ja-setup=true}}
 \let\bxjs at org@removeelement\@removeelement
 \def\@removeelement#1#2#3{%
   \def\reserved at a{#2}%
@@ -786,9 +772,9 @@
      {When you use a Japanese-driver you must specify a correct\MessageBreak
       engine option.\MessageBreak\@ehc}
 \fi\fi
-\ifx\bxjs at magstyle@default\bxjs at magstyle@mag\else
-  \ifx\bxjs at magstyle\bxjs at magstyle@mag
-    \let\bxjs at magstyle\bxjs at magstyle@default
+\ifx\bxjs at magstyle@@default\bxjs at magstyle@@mag\else
+  \ifx\bxjs at magstyle\bxjs at magstyle@@mag
+    \let\bxjs at magstyle\bxjs at magstyle@@default
     \ClassError\bxjs at clsname
      {The engine does not support 'magstyle=usemag'}%
      {LuaTeX v0.87 or later no longer supports the "mag" feature of TeX.\MessageBreak
@@ -837,9 +823,9 @@
 \fi
 \ifdim\bxjs at param@basefontsize<10pt \def\n at baseline{15}%
 \else \def\n at baseline{16}\fi
-\ifx\bxjs at magstyle\bxjs at magstyle@mag
+\ifx\bxjs at magstyle\bxjs at magstyle@@mag
   \jsc at magtrue
-\else\ifx\bxjs at magstyle\bxjs at magstyle@xreal
+\else\ifx\bxjs at magstyle\bxjs at magstyle@@xreal
   \jsc at mag@xrealtrue
 \fi\fi
 \ifx\bxjs at param@mag\relax
@@ -1082,15 +1068,29 @@
 \setlength{\topskip}{10\p@?}
 \def\bxjs at unit@trueQ{0.25truemm}\let\bxjs at unit@trueH\bxjs at unit@trueQ
 \def\bxjs at unit@zw{\jsZw}\let\bxjs at unit@zh\bxjs at unit@zw
-\def\bxjs at tmpdo{\futurelet\bxjs at tmpa\bxjs at tmpdo@a}
-\def\bxjs at tmpdo@a{%
-  \ifx\bxjs at tmpa\bgroup \expandafter\bxjs at tmpdo@b
-  \else \expandafter\bxjs at tmpdo@c \fi}
-\def\bxjs at tmpdo@b#1#2#3\@nil{\edef\bxjs at param@paper{papersize={#1,#2}}}
-\def\bxjs at tmpdo@c#1\@nil{\bxjs at tmpdo@d#1,,\@nil}
-\def\bxjs at tmpdo@d#1,#2,#3\@nil{%
-  \ifx\@nil#3\@nil\else \edef\bxjs at param@paper{papersize={#1,#2}}\fi}
-\expandafter\bxjs at tmpdo\bxjs at param@paper\@empty\@empty\@nil
+\@tempswafalse
+\def\bxjs at tmpdo{\@ifnextchar\bgroup\bxjs at tmpdo@a\remove at to@nnil}
+\def\bxjs at tmpdo@a#1{\edef\bxjs at tmpa{#1}%
+  \@ifnextchar\bgroup\bxjs at tmpdo@b\remove at to@nnil}
+\def\bxjs at tmpdo@b#1{\edef\bxjs at tmpa{\bxjs at tmpa,#1}%
+  \@ifnextchar\@nnil\bxjs at tmpdo@c\remove at to@nnil}
+\def\bxjs at tmpdo@c\@nnil{\@tempswatrue
+  \edef\bxjs at param@paper{papersize={\bxjs at tmpa}}}
+\expandafter\bxjs at tmpdo\bxjs at param@paper\@nnil
+\if at tempswa\else
+  \def\bxjs at tmpa{\@nil,\@nil}
+  \def\bxjs at tmpdo#1,#2,#3\@nnil{%
+    \def\bxjs at tmpb{#3}\ifx\bxjs at tmpa\bxjs at tmpb
+      \@tempswatrue\edef\bxjs at param@paper{papersize={#1,#2}}\fi}
+  \expandafter\bxjs at tmpdo\bxjs at param@paper,\@nil,\@nil\@nnil
+\fi
+\if at tempswa\else
+  \def\bxjs at tmpa{\@nil*\@nil}
+  \def\bxjs at tmpdo#1*#2*#3\@nnil{%
+    \def\bxjs at tmpb{#3}\ifx\bxjs at tmpa\bxjs at tmpb
+      \@tempswatrue\edef\bxjs at param@paper{papersize={#1,#2}}\fi}
+  \expandafter\bxjs at tmpdo\bxjs at param@paper*\@nil*\@nil\@nnil
+\fi
 \edef\bxjs at layout@paper{%
   \ifjsc at mag truedimen,\fi
   \if at landscape landscape,\fi
@@ -1159,7 +1159,7 @@
   \def\bxjs at apply@bd at pre@geometry at hook{%
     \AddToHook{begindocument}[\bxjs at geometry@name]}
 \fi
-\ifx\bxjs at geometry\bxjs at geometry@class
+\ifx\bxjs at geometry\bxjs at geometry@@class
 \ifbxjs at papersize
   \ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx
     \PassOptionsToPackage{dvipdfm}{geometry}
@@ -1207,7 +1207,7 @@
     \noexpand\geometry{\bxjs at next}%
   }\bxjs at next
   \bxjs at postproc@layout}
-\else\ifx\bxjs at geometry\bxjs at geometry@user
+\else\ifx\bxjs at geometry\bxjs at geometry@@user
 \g at addto@macro\bxjs at begin@document at hook{%
   \ifdim\textwidth=.5\maxdimen
     \ClassError\bxjs at clsname
@@ -1461,11 +1461,11 @@
   \else \csname label#1\endcsname
   \fi}
 \def\@seccntformat#1{\bxjs at label@sect{#1}\quad}
-\ifnum\bxjs at label@section=\bxjs at label@section at compat\else
+\ifnum\bxjs at label@section=\bxjs at label@section@@compat\else
 \def\@secapp{\presectionname}
 \def\@secpos{\postsectionname}
 \fi
-\ifnum\bxjs at label@section=\bxjs at label@section at modern
+\ifnum\bxjs at label@section=\bxjs at label@section@@modern
 \def\labelsection{\@secapp\thesection\@secpos}
 \fi
 \def\@startsection#1#2#3#4#5#6{%
@@ -1492,7 +1492,7 @@
   \@ifstar
     {\@ssect{#3}{#4}{#5}{#6}}%
     {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
   \let\bxjs at if@ceph\@firstofone
 \else \let\bxjs at if@ceph\@gobble
 \fi
@@ -1580,7 +1580,7 @@
 \newcounter{paragraph}[subsubsection]
 \newcounter{subparagraph}[paragraph]
 \renewcommand{\thepart}{\@Roman\c at part}
-\ifnum\bxjs at label@section=\bxjs at label@section at compat
+\ifnum\bxjs at label@section=\bxjs at label@section@@compat
 \renewcommand{\thesection}{\presectionname\@arabic\c at section\postsectionname}
 \renewcommand{\thesubsection}{\@arabic\c at section.\@arabic\c at subsection}
 \else
@@ -1854,7 +1854,7 @@
 \newcommand{\appendix}{\par
   \setcounter{section}{0}%
   \setcounter{subsection}{0}%
-  \ifnum\bxjs at label@section=\bxjs at label@section at compat
+  \ifnum\bxjs at label@section=\bxjs at label@section@@compat
   \gdef\presectionname{\appendixname}%
   \gdef\postsectionname{}%
   \gdef\thesection{\presectionname\@Alph\c at section\postsectionname}%
@@ -2166,7 +2166,7 @@
   \llap{\@makefnmark\hskip0.3\jsZw}#1}
 \let\jsInhibitGlueAtParTop\@empty
 \def\everyparhook{\jsInhibitGlueAtParTop}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
 \g at addto@macro\bxjs at begin@document at hook{\everypar{\everyparhook}}
 \fi
 \ifx j\jsEngine
@@ -2198,7 +2198,7 @@
     \fi
   \fi}
 \fi
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
 \def\@doendpe{%
   \@endpetrue
   \def\par{%
@@ -2285,7 +2285,7 @@
       \everypar{\everyparhook}%
     \fi\everyparhook}}
 \fi
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@none\else
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@none\else
 \AtEndOfPackage{%
 \def\@gnewline #1{%
   \ifvmode

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls	2020-10-17 21:02:14 UTC (rev 56686)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsbook}
-  [2020/10/10 v2.3  BXJS document classes]
+  [2020/10/16 v2.4  BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \def\bxjs at clsname{bxjsbook}
 \newif\ifjsc at needsp@tch
@@ -186,13 +186,18 @@
 \newif\if at enablejfam \@enablejfamfalse
 \@onlypreamble\bxjs at setpaper
 \def\bxjs at setpaper#1{\def\bxjs at param@paper{#1}}
+\newif\ifbxjs at iso@bsize
+\DeclareOption{iso-bsize}{\bxjs at iso@bsizetrue}
+\@onlypreamble\bxjs at setpaper@bsize
+\def\bxjs at setpaper@bsize#1{\edef\bxjs at param@paper{%
+  b#1\ifbxjs at iso@bsize paper\else j\fi}}
 \DeclareOption{a3paper}{\bxjs at setpaper{a3paper}}
 \DeclareOption{a4paper}{\bxjs at setpaper{a4paper}}
 \DeclareOption{a5paper}{\bxjs at setpaper{a5paper}}
 \DeclareOption{a6paper}{\bxjs at setpaper{a6paper}}
-\DeclareOption{b4paper}{\bxjs at setpaper{b4j}}
-\DeclareOption{b5paper}{\bxjs at setpaper{b5j}}
-\DeclareOption{b6paper}{\bxjs at setpaper{b6j}}
+\DeclareOption{b4paper}{\bxjs at setpaper@bsize{4}}
+\DeclareOption{b5paper}{\bxjs at setpaper@bsize{5}}
+\DeclareOption{b6paper}{\bxjs at setpaper@bsize{6}}
 \DeclareOption{a4j}{\bxjs at setpaper{a4paper}}
 \DeclareOption{a5j}{\bxjs at setpaper{a5paper}}
 \DeclareOption{b4j}{\bxjs at setpaper{b4j}}
@@ -202,20 +207,17 @@
 \DeclareOption{letterpaper}{\bxjs at setpaper{letterpaper}}
 \DeclareOption{legalpaper}{\bxjs at setpaper{legalpaper}}
 \DeclareOption{executivepaper}{\bxjs at setpaper{executivepaper}}
-\def\bxjs at tmpb#1#2{\DeclareOption{#1}{\bxjs at setpaper{#2}}}
 \@for\bxjs at tmpa:={%
   a0,a1,a2,c0,c1,c2,c3,c4,c5,c6,ansia,ansib,ansic,ansid,ansie%
 }\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{\bxjs at tmpa paper}{\bxjs at tmpa paper}%
+  \noexpand\DeclareOption{\bxjs at tmpa paper}%
+    {\noexpand\bxjs at setpaper{\bxjs at tmpa paper}}%
 }\bxjs at next}
-\bxjs at tmpb{screen}{screen}
+\DeclareOption{screen}{\bxjs at setpaper{screen}}
 \@for\bxjs at tmpa:={0,1,2,3}\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{b\bxjs at tmpa paper}{b\bxjs at tmpa j}%
+  \noexpand\DeclareOption{b\bxjs at tmpa paper}%
+    {\noexpand\bxjs at setpaper@bsize{\bxjs at tmpa}}%
 }\bxjs at next}
-\@for\bxjs at tmpa:={0,1,2,3,4,5,6}\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{A\bxjs at tmpa paper}{a\bxjs at tmpa paper}%
-  \noexpand\bxjs at tmpb{B\bxjs at tmpa paper}{b\bxjs at tmpa paper}%
-}\bxjs at next}
 \DeclareOption{a4varpaper}{\bxjs at setpaper{{210truemm}{283truemm}}}
 \DeclareOption{b5varpaper}{\bxjs at setpaper{{182truemm}{230truemm}}}
 \DeclareOption{screenpaper}{\bxjs at setpaper{screen}}
@@ -258,9 +260,9 @@
 \DeclareOption{10.5ptj}{\bxjs at setjbasefontsize{10.5pt}}
 \DeclareOption{11ptj}{\bxjs at setjbasefontsize{11pt}}
 \DeclareOption{12ptj}{\bxjs at setjbasefontsize{12pt}}
-\DeclareOption{usemag}{\let\bxjs at magstyle\bxjs at magstyle@usemag}
-\DeclareOption{nomag}{\let\bxjs at magstyle\bxjs at magstyle@nomag}
-\DeclareOption{nomag*}{\let\bxjs at magstyle\bxjs at magstyle@xreal}
+\DeclareOption{usemag}{\let\bxjs at magstyle\bxjs at magstyle@@usemag}
+\DeclareOption{nomag}{\let\bxjs at magstyle\bxjs at magstyle@@nomag}
+\DeclareOption{nomag*}{\let\bxjs at magstyle\bxjs at magstyle@@xreal}
 \if j\jsEngine
 \hour\time \divide\hour by 60\relax
 \@tempcnta\hour \multiply\@tempcnta 60\relax
@@ -379,12 +381,22 @@
     \xdef\bxjs at gtmpa{\the\@tempdimb}%
   \endgroup #1=\bxjs at gtmpa\relax}
 \DeclareOption{pandoc}{%
+  \bxjs at apply@pandoc at opt}
+\@onlypreamble\bxjs at apply@pandoc at opt
+\def\bxjs at apply@pandoc at opt{%
   \g at addto@macro\bxjs at post@option at hook{%
     \bxjs at oldfontcommandstrue
     \setkeys{bxjs}{ja=pandoc}%
     \let\bxjs at engine@given=*}%
-  \def\bxjs at driver@opt{dvipdfmx}%
-  \bxjs at dvi@opttrue}
+  \ifx\bxjs at driver@opt\@undefined
+    \def\bxjs at driver@opt{dvipdfmx}%
+    \bxjs at dvi@opttrue
+  \fi
+  \global\let\bxjs at apply@pandoc at opt\relax}
+\DeclareOption{pandoc+}{%
+  \g at addto@macro\bxjs at post@option at hook{%
+    \edef\jsJaParam{\bxjs at catopt{_plus}\jsJaParam}}%
+  \ExecuteOptions{pandoc}}
 \DeclareOption{autodetect-engine}{%
   \let\bxjs at engine@given=*}
 \DeclareOption{latex}{%
@@ -442,13 +454,18 @@
 \DeclareOption{xetex}{%
   \def\bxjs at driver@opt{xetex}%
   \let\bxjs at driver@given\bxjs at driver@@xetex}
-\DeclareOption{dvipdfmx-if-dvi}{%
+\DeclareOption{dvipdfmx-if-dvi}{\bxjs at depre@opt at do{dvipdfmx-if-dvi}{dvi=dvipdfmx}}
+\@onlypreamble\bxjs at depre@opt
+\def\bxjs at depre@opt#1#2{%
   \ClassWarningNoLine\bxjs at clsname
-   {The old option 'dvipdfmx-if-dvi' is DEPRECATED\MessageBreak
+   {The old option '#1' is DEPRECATED\MessageBreak
     and may be abolished in future!\MessageBreak
-    You should write 'dvi=dvipdfmx' instead}%
-  \setkeys{bxjs}{dvi=dvipdfmx}}
-
+    You should instead write:\MessageBreak
+    \space\space #2}}
+\@onlypreamble\bxjs at depre@opt at do
+\def\bxjs at depre@opt at do#1#2{%
+  \bxjs at depre@opt{#1}{#2}%
+  \setkeys{bxjs}{#2}}
 \newif\ifbxjs at bigcode \bxjs at bigcodetrue
 \DeclareOption{nobigcode}{%
   \bxjs at bigcodefalse}
@@ -479,7 +496,8 @@
   \setkeys{#1}{#2}%
   \let\KV at errx\bxjs at save@KV at errx}
 \@onlypreamble\bxjs at declare@enum at option
-\def\bxjs at declare@enum at option#1#2{%
+\def\bxjs at declare@enum at option#1#2#3{%
+  \bxjs at csletcs{bxjs@#2}{bxjs@#2@@#3}%
   \define at key{bxjs}{#1}{%
     \expandafter\ifx\csname bxjs@#2@@##1\endcsname\relax
       \bxjs at error@keyval{#1}{##1}%
@@ -486,7 +504,9 @@
     \else \bxjs at csletcs{bxjs@#2}{bxjs@#2@@##1}%
     \fi}}
 \@onlypreamble\bxjs at declare@bool at option
-\def\bxjs at declare@bool at option#1#2{%
+\def\bxjs at declare@bool at option#1#2#3{%
+  \csname newif\expandafter\endcsname\csname ifbxjs@#2\endcsname
+  \@nameuse{bxjs@#2#3}%
   \define at key{bxjs}{#1}[true]{%
     \expandafter\ifx\csname bxjs@#2##1\endcsname\relax
       \bxjs at error@keyval{#1}{##1}%
@@ -493,7 +513,7 @@
     \else \@nameuse{bxjs@#2##1}%
     \fi}}
 \def\bxjs at set@keyval#1#2#3{%
-  \expandafter\let\expandafter\bxjs at next\csname bxjs at kv@#1@#2\endcsname
+  \bxjs at csletcs{bxjs at next}{bxjs at kv@#1@#2}%
   \ifx\bxjs at next\relax
     \bxjs at error@keyval{#1}{#2}%
     #3%
@@ -514,56 +534,50 @@
   \edef\bxjs at scale@opt{#1}%
   \let\jsScale\bxjs at scale@opt}
 \define at key{bxjs}{jafontscale}{\setkeys{bxjs}{scale=#1}}
-\DeclareOption{noscale}{\setkeys{bxjs}{scale=1}}
+\DeclareOption{noscale}{\bxjs at depre@opt at do{noscale}{scale=1}}
 \let\bxjs at param@mag\relax
 \define at key{bxjs}{mag}{\edef\bxjs at param@mag{#1}}
 \define at key{bxjs}{paper}{\edef\bxjs at param@paper{#1}}
 \let\bxjs at jadriver\relax
-\define at key{bxjs}{jadriver}{\edef\bxjs at jadriver@opt{#1}}
+\define at key{bxjs}{jadriver}{%
+  \bxjs at depre@opt{jadriver}{ja=#1}\edef\bxjs at jadriver@opt{#1}}
 \define at key{bxjs}{ja}[\relax]{%
   \ifx\relax#1\else\edef\bxjs at jadriver@opt{#1}\fi}
 \let\jsJaFont\@empty
 \define at key{bxjs}{jafont}{\edef\jsJaFont{#1}}
 \let\jsJaParam\@empty
-\define at key{bxjs}{japaram}{\edef\jsJaParam{#1}}
-\let\bxjs at magstyle@mag=m
-\let\bxjs at magstyle@real=r
-\let\bxjs at magstyle@xreal=x
-\let\bxjs at magstyle@usemag\bxjs at magstyle@mag
-\let\bxjs at magstyle@nomag\bxjs at magstyle@real
-\expandafter\let\csname bxjs at magstyle@nomag*\endcsname\bxjs at magstyle@xreal
-\let\bxjs at magstyle@default\bxjs at magstyle@usemag
+\define at key{bxjs}{japaram}{%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+\define at key{bxjs}{pandoc}[]{%
+  \ExecuteOptions{pandoc}%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+\define at key{bxjs}{pandoc+}[]{%
+  \ExecuteOptions{pandoc+}%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+\let\bxjs at magstyle@@mag=m
+\let\bxjs at magstyle@@real=r
+\let\bxjs at magstyle@@xreal=x
+\let\bxjs at magstyle@@usemag\bxjs at magstyle@@mag
+\let\bxjs at magstyle@@nomag\bxjs at magstyle@@real
+\bxjs at cslet{bxjs at magstyle@@nomag*}\bxjs at magstyle@@xreal
+\let\bxjs at magstyle@@default\bxjs at magstyle@@usemag
 \ifx l\jsEngine \ifnum\luatexversion>86
-  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+  \let\bxjs at magstyle@@default\bxjs at magstyle@@xreal
 \fi\fi
 \ifjsWithpTeXng
-  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+  \let\bxjs at magstyle@@default\bxjs at magstyle@@xreal
 \fi
-\let\bxjs at magstyle\bxjs at magstyle@default
+\let\bxjs at magstyle\bxjs at magstyle@@default
 \define at key{bxjs}{magstyle}{%
-  \expandafter\let\expandafter\bxjs at magstyle\csname
-   bxjs at magstyle@#1\endcsname
+  \bxjs at csletcs{bxjs at magstyle}{bxjs at magstyle@@#1}%
   \ifx\bxjs at magstyle\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option magstyle}\@ehc
-    \let\bxjs at magstyle\bxjs at magstyle@default
+    \bxjs at error@keyval{magstyle}{#1}%
+    \let\bxjs at magstyle\bxjs at magstyle@@default
   \fi}
-\let\bxjs at geometry@class=c
-\let\bxjs at geometry@user=u
-\let\bxjs at geometry\bxjs at geometry@class
-\define at key{bxjs}{geometry}{%
-  \expandafter\let\expandafter\bxjs at geometry\csname
-   bxjs at geometry@#1\endcsname
-  \ifx\bxjs at geometry\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option geometry}\@ehc
-    \let\bxjs at geometry\bxjs at geometry@class
-  \fi}
-\newif\ifbxjs at fancyhdr \bxjs at fancyhdrtrue
-\let\bxjs at kv@fancyhdr at true\bxjs at fancyhdrtrue
-\let\bxjs at kv@fancyhdr at false\bxjs at fancyhdrfalse
-\define at key{bxjs}{fancyhdr}[true]{%
-  \bxjs at set@keyval{fancyhdr}{#1}{}}
+\let\bxjs at geometry@@class=c
+\let\bxjs at geometry@@user=u
+\bxjs at declare@enum at option{geometry}{geometry}{class}
+\bxjs at declare@bool at option{fancyhdr}{fancyhdr}{true}
 \newif\ifbxjs at dvi@opt
 \let\bxjs at dvidriver@@dvipdfmx=\bxjs at driver@@dvipdfmx
 \let\bxjs at dvidriver@@dvips=\bxjs at driver@@dvips
@@ -571,11 +585,9 @@
 \let\bxjs at dvidriver@@xdvi=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@nodvidriver=\bxjs at driver@@none
 \define at key{bxjs}{dvi}{%
-  \expandafter\let\expandafter\bxjs at tmpa\csname
-   bxjs at dvidriver@@#1\endcsname
+  \bxjs at csletcs{bxjs at tmpa}{bxjs at dvidriver@@#1}%
   \ifx\bxjs at tmpa\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option dvi}\@ehc
+    \bxjs at error@keyval{dvi}{#1}%
   \else
     \def\bxjs at driver@opt{#1}%
     \let\bxjs at driver@given\@undefined
@@ -593,6 +605,7 @@
 \define at key{bxjs}{layout}{%
   \bxjs at set@keyval{layout}{#1}{}}
 \define at key{bxjs}{textwidth-limit}{%
+  \bxjs at depre@opt{textwidth-limit}{textwidth=#1zw}%
   \edef\bxjs at textwidth@limit at opt{#1}}
 \define at key{bxjs}{textwidth}{\edef\bxjs at textwidth@opt{#1}}
 \define at key{bxjs}{line_length}{\setkeys{bxjs}{textwidth=#1}}
@@ -600,59 +613,32 @@
 \define at key{bxjs}{number_of_lines}{\setkeys{bxjs}{number-of-lines=#1}}
 \define at key{bxjs}{paragraph-mark}{%
   \edef\bxjs at paragraph@mark{#1}}
-\newif\ifbxjs at whole@zw at lines \bxjs at whole@zw at linestrue
-\let\bxjs at kv@wholezwlines at true\bxjs at whole@zw at linestrue
-\let\bxjs at kv@wholezwlines at false\bxjs at whole@zw at linesfalse
-\define at key{bxjs}{whole-zw-lines}[true]{\bxjs at set@keyval{wholezwlines}{#1}{}}
-\newif\ifbxjs at jaspace@cmd \bxjs at jaspace@cmdtrue
-\let\bxjs at kv@jaspacecmd at true\bxjs at jaspace@cmdtrue
-\let\bxjs at kv@jaspacecmd at false\bxjs at jaspace@cmdfalse
-\define at key{bxjs}{jaspace-cmd}[true]{\bxjs at set@keyval{jaspacecmd}{#1}{}}
-\define at key{bxjs}{xkanjiskip-cmd}[true]{\bxjs at set@keyval{jaspacecmd}{#1}{}}
-\newif\ifbxjs at fix@at at cmd \bxjs at fix@at at cmdtrue
-\let\bxjs at kv@fixatcmd at true\bxjs at fix@at at cmdtrue
-\let\bxjs at kv@fixatcmd at false\bxjs at fix@at at cmdfalse
-\define at key{bxjs}{fix-at-cmd}[true]{\bxjs at set@keyval{fixatcmd}{#1}{}}
-\newif\ifbxjs at hyperref@enc \bxjs at hyperref@enctrue
-\let\bxjs at kv@hyperrefenc at true\bxjs at hyperref@enctrue
-\let\bxjs at kv@hyperrefenc at false\bxjs at hyperref@encfalse
-\define at key{bxjs}{hyperref-enc}[true]{\bxjs at set@keyval{hyperrefenc}{#1}{}}
-\chardef\bxjs at everyparhook@none=0
-\chardef\bxjs at everyparhook@compat=1
-\chardef\bxjs at everyparhook@modern=2
-\if j\jsEngine
-  \let\bxjs at everyparhook\bxjs at everyparhook@compat
-\else
-  \let\bxjs at everyparhook\bxjs at everyparhook@modern
-\fi
-\def\bxjs at kv@everyparhook at none{\let\bxjs at everyparhook\bxjs at everyparhook@none}
-\def\bxjs at kv@everyparhook at compat{\let\bxjs at everyparhook\bxjs at everyparhook@compat}
-\def\bxjs at kv@everyparhook at modern{\let\bxjs at everyparhook\bxjs at everyparhook@modern}
-\define at key{bxjs}{everyparhook}{\bxjs at set@keyval{everyparhook}{#1}{}}
-\chardef\bxjs at label@section at none=0
-\chardef\bxjs at label@section at compat=1
-\chardef\bxjs at label@section at modern=2
-\let\bxjs at label@section\bxjs at label@section at compat
-\def\bxjs at kv@labelsection at none{\let\bxjs at label@section\bxjs at label@section at none}
-\def\bxjs at kv@labelsection at compat{\let\bxjs at label@section\bxjs at label@section at compat}
-\def\bxjs at kv@labelsection at modern{\let\bxjs at label@section\bxjs at label@section at modern}
-\define at key{bxjs}{label-section}{\bxjs at set@keyval{labelsection}{#1}{}}
-\newif\ifbxjs at usezw \bxjs at usezwtrue
-\bxjs at declare@bool at option{use-zw}{usezw}
-\DeclareOption{nozw}{\setkeys{bxjs}{use-zw=false}}
-\DeclareOption{zw}{\setkeys{bxjs}{use-zw=true}}
-\newif\ifbxjs at disguise@js \bxjs at disguise@jstrue
-\bxjs at declare@bool at option{disguise-js}{disguise at js}
-\DeclareOption{nojs}{\setkeys{bxjs}{disguise-js=false}}
-\DeclareOption{js}{\setkeys{bxjs}{disguise-js=true}}
-\newif\ifbxjs at precisetext
-\bxjs at declare@bool at option{precise-text}{precisetext}
-\DeclareOption{noprecisetext}{\setkeys{bxjs}{precise-text=false}}
-\DeclareOption{precisetext}{\setkeys{bxjs}{precise-text=true}}
-\newif\ifbxjs at simplejasetup \bxjs at simplejasetuptrue
-\bxjs at declare@bool at option{simple-ja-setup}{simplejasetup}
-\DeclareOption{nosimplejasetup}{\setkeys{bxjs}{simple-ja-setup=false}}
-\DeclareOption{simplejasetup}{\setkeys{bxjs}{simple-ja-setup=true}}
+\bxjs at declare@bool at option{whole-zw-lines}{whole at zw@lines}{true}
+\bxjs at declare@bool at option{jaspace-cmd}{jaspace at cmd}{true}
+\define at key{bxjs}{xkanjiskip-cmd}[true]{\setkeys{bxjs}{jaspace-cmd=#1}}
+\bxjs at declare@bool at option{fix-at-cmd}{fix at at@cmd}{true}
+\bxjs at declare@bool at option{hyperref-enc}{hyperref at enc}{true}
+\chardef\bxjs at everyparhook@@none=0
+\chardef\bxjs at everyparhook@@compat=1
+\chardef\bxjs at everyparhook@@modern=2
+\bxjs at declare@enum at option{everyparhook}{everyparhook}{%
+  \if j\jsEngine compat\else modern\fi}
+\chardef\bxjs at label@section@@none=0
+\chardef\bxjs at label@section@@compat=1
+\chardef\bxjs at label@section@@modern=2
+\bxjs at declare@enum at option{label-section}{label at section}{compat}
+\bxjs at declare@bool at option{use-zw}{usezw}{true}
+\DeclareOption{nozw}{\bxjs at depre@opt at do{nozw}{use-zw=false}}
+\DeclareOption{zw}{\bxjs at depre@opt at do{zw}{use-zw=true}}
+\bxjs at declare@bool at option{disguise-js}{disguise at js}{true}
+\DeclareOption{nojs}{\bxjs at depre@opt at do{nojs}{disguise-js=false}}
+\DeclareOption{js}{\bxjs at depre@opt at do{js}{disguise-js=true}}
+\bxjs at declare@bool at option{precise-text}{precisetext}{false}
+\DeclareOption{noprecisetext}{\bxjs at depre@opt at do{noprecisetext}{precise-text=false}}
+\DeclareOption{precisetext}{\bxjs at depre@opt at do{precisetext}{precise-text=true}}
+\bxjs at declare@bool at option{simple-ja-setup}{simplejasetup}{true}
+\DeclareOption{nosimplejasetup}{\bxjs at depre@opt at do{nosimplejasetup}{simple-ja-setup=false}}
+\DeclareOption{simplejasetup}{\bxjs at depre@opt at do{simplejasetup}{simple-ja-setup=true}}
 \let\bxjs at org@removeelement\@removeelement
 \def\@removeelement#1#2#3{%
   \def\reserved at a{#2}%
@@ -795,9 +781,9 @@
      {When you use a Japanese-driver you must specify a correct\MessageBreak
       engine option.\MessageBreak\@ehc}
 \fi\fi
-\ifx\bxjs at magstyle@default\bxjs at magstyle@mag\else
-  \ifx\bxjs at magstyle\bxjs at magstyle@mag
-    \let\bxjs at magstyle\bxjs at magstyle@default
+\ifx\bxjs at magstyle@@default\bxjs at magstyle@@mag\else
+  \ifx\bxjs at magstyle\bxjs at magstyle@@mag
+    \let\bxjs at magstyle\bxjs at magstyle@@default
     \ClassError\bxjs at clsname
      {The engine does not support 'magstyle=usemag'}%
      {LuaTeX v0.87 or later no longer supports the "mag" feature of TeX.\MessageBreak
@@ -846,9 +832,9 @@
 \fi
 \ifdim\bxjs at param@basefontsize<10pt \def\n at baseline{15}%
 \else \def\n at baseline{16}\fi
-\ifx\bxjs at magstyle\bxjs at magstyle@mag
+\ifx\bxjs at magstyle\bxjs at magstyle@@mag
   \jsc at magtrue
-\else\ifx\bxjs at magstyle\bxjs at magstyle@xreal
+\else\ifx\bxjs at magstyle\bxjs at magstyle@@xreal
   \jsc at mag@xrealtrue
 \fi\fi
 \ifx\bxjs at param@mag\relax
@@ -1091,15 +1077,29 @@
 \setlength{\topskip}{10\p@?}
 \def\bxjs at unit@trueQ{0.25truemm}\let\bxjs at unit@trueH\bxjs at unit@trueQ
 \def\bxjs at unit@zw{\jsZw}\let\bxjs at unit@zh\bxjs at unit@zw
-\def\bxjs at tmpdo{\futurelet\bxjs at tmpa\bxjs at tmpdo@a}
-\def\bxjs at tmpdo@a{%
-  \ifx\bxjs at tmpa\bgroup \expandafter\bxjs at tmpdo@b
-  \else \expandafter\bxjs at tmpdo@c \fi}
-\def\bxjs at tmpdo@b#1#2#3\@nil{\edef\bxjs at param@paper{papersize={#1,#2}}}
-\def\bxjs at tmpdo@c#1\@nil{\bxjs at tmpdo@d#1,,\@nil}
-\def\bxjs at tmpdo@d#1,#2,#3\@nil{%
-  \ifx\@nil#3\@nil\else \edef\bxjs at param@paper{papersize={#1,#2}}\fi}
-\expandafter\bxjs at tmpdo\bxjs at param@paper\@empty\@empty\@nil
+\@tempswafalse
+\def\bxjs at tmpdo{\@ifnextchar\bgroup\bxjs at tmpdo@a\remove at to@nnil}
+\def\bxjs at tmpdo@a#1{\edef\bxjs at tmpa{#1}%
+  \@ifnextchar\bgroup\bxjs at tmpdo@b\remove at to@nnil}
+\def\bxjs at tmpdo@b#1{\edef\bxjs at tmpa{\bxjs at tmpa,#1}%
+  \@ifnextchar\@nnil\bxjs at tmpdo@c\remove at to@nnil}
+\def\bxjs at tmpdo@c\@nnil{\@tempswatrue
+  \edef\bxjs at param@paper{papersize={\bxjs at tmpa}}}
+\expandafter\bxjs at tmpdo\bxjs at param@paper\@nnil
+\if at tempswa\else
+  \def\bxjs at tmpa{\@nil,\@nil}
+  \def\bxjs at tmpdo#1,#2,#3\@nnil{%
+    \def\bxjs at tmpb{#3}\ifx\bxjs at tmpa\bxjs at tmpb
+      \@tempswatrue\edef\bxjs at param@paper{papersize={#1,#2}}\fi}
+  \expandafter\bxjs at tmpdo\bxjs at param@paper,\@nil,\@nil\@nnil
+\fi
+\if at tempswa\else
+  \def\bxjs at tmpa{\@nil*\@nil}
+  \def\bxjs at tmpdo#1*#2*#3\@nnil{%
+    \def\bxjs at tmpb{#3}\ifx\bxjs at tmpa\bxjs at tmpb
+      \@tempswatrue\edef\bxjs at param@paper{papersize={#1,#2}}\fi}
+  \expandafter\bxjs at tmpdo\bxjs at param@paper*\@nil*\@nil\@nnil
+\fi
 \edef\bxjs at layout@paper{%
   \ifjsc at mag truedimen,\fi
   \if at landscape landscape,\fi
@@ -1193,7 +1193,7 @@
   \def\bxjs at apply@bd at pre@geometry at hook{%
     \AddToHook{begindocument}[\bxjs at geometry@name]}
 \fi
-\ifx\bxjs at geometry\bxjs at geometry@class
+\ifx\bxjs at geometry\bxjs at geometry@@class
 \ifbxjs at papersize
   \ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx
     \PassOptionsToPackage{dvipdfm}{geometry}
@@ -1241,7 +1241,7 @@
     \noexpand\geometry{\bxjs at next}%
   }\bxjs at next
   \bxjs at postproc@layout}
-\else\ifx\bxjs at geometry\bxjs at geometry@user
+\else\ifx\bxjs at geometry\bxjs at geometry@@user
 \g at addto@macro\bxjs at begin@document at hook{%
   \ifdim\textwidth=.5\maxdimen
     \ClassError\bxjs at clsname
@@ -1496,11 +1496,11 @@
   \else \csname label#1\endcsname
   \fi}
 \def\@seccntformat#1{\bxjs at label@sect{#1}\quad}
-\ifnum\bxjs at label@section=\bxjs at label@section at compat\else
+\ifnum\bxjs at label@section=\bxjs at label@section@@compat\else
 \def\@secapp{\presectionname}
 \def\@secpos{\postsectionname}
 \fi
-\ifnum\bxjs at label@section=\bxjs at label@section at modern
+\ifnum\bxjs at label@section=\bxjs at label@section@@modern
 \def\labelsection{\@secapp\thesection\@secpos}
 \fi
 \def\@startsection#1#2#3#4#5#6{%
@@ -1527,7 +1527,7 @@
   \@ifstar
     {\@ssect{#3}{#4}{#5}{#6}}%
     {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
   \let\bxjs at if@ceph\@firstofone
 \else \let\bxjs at if@ceph\@gobble
 \fi
@@ -2271,7 +2271,7 @@
   \llap{\@makefnmark\hskip0.3\jsZw}#1}
 \let\jsInhibitGlueAtParTop\@empty
 \def\everyparhook{\jsInhibitGlueAtParTop}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
 \g at addto@macro\bxjs at begin@document at hook{\everypar{\everyparhook}}
 \fi
 \ifx j\jsEngine
@@ -2303,7 +2303,7 @@
     \fi
   \fi}
 \fi
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
 \def\@doendpe{%
   \@endpetrue
   \def\par{%
@@ -2390,7 +2390,7 @@
       \everypar{\everyparhook}%
     \fi\everyparhook}}
 \fi
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@none\else
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@none\else
 \AtEndOfPackage{%
 \def\@gnewline #1{%
   \ifvmode

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty	2020-10-17 21:02:14 UTC (rev 56686)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{bxjscjkcat}
-  [2020/10/10 v2.3  BXJS document classes]
+  [2020/10/16 v2.4  BXJS document classes]
 \def\bxjx at pkgname{bxjscjkcat}
 \newcount\bxjx at cnta
 \@onlypreamble\bxjx at tmpdo

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty	2020-10-17 21:02:14 UTC (rev 56686)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{bxjscompat}
-  [2020/10/10 v2.3  BXJS document classes]
+  [2020/10/16 v2.4  BXJS document classes]
 \def\bxac at pkgname{bxjscompat}
 \let\bxac at engine=n
 \def\bxac at do#1#2{%

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def	2020-10-17 21:02:14 UTC (rev 56686)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesFile{bxjsja-minimal.def}
-  [2020/10/10 v2.3  BXJS document classes]
+  [2020/10/16 v2.4  BXJS document classes]
 %% このファイルは日本語文字を含みます
 \def\DeclareJaTextFontCommand#1#2{%
   \DeclareRobustCommand#1[1]{%
@@ -345,7 +345,7 @@
       \let\everyparhook\@empty
     \fi
   \fi}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@modern
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@modern
   \let\bxjs at everypar\everypar
   \newtoks\everypar
   \everypar\bxjs at everypar

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def	2020-10-17 21:02:14 UTC (rev 56686)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesFile{bxjsja-modern.def}
-  [2020/10/10 v2.3  BXJS document classes]
+  [2020/10/16 v2.4  BXJS document classes]
 \input{bxjsja-standard.def}
 \ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi=\z@
 \def\encodingdefault{T1}%

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def	2020-10-17 21:02:14 UTC (rev 56686)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesFile{bxjsja-pandoc.def}
-  [2020/10/10 v2.3  BXJS document classes]
+  [2020/10/16 v2.4  BXJS document classes]
 \input{bxjsja-standard.def}
 \RequirePackage{bxjspandoc}
 \@onlypreamble\bxjs at endpreamble@hook
@@ -46,6 +46,25 @@
 \def\bxjs at kv@strong at boldsans{\chardef\bxjs at jp@strong=2 }
 \define at key{bxjsPan}{strong}{%
   \bxjs at set@keyval{strong}{#1}{}}
+\newif\ifbxjs at jp@or at indent \bxjs at jp@or at indenttrue
+\newif\ifbxjs at jp@or at secnumdepth \bxjs at jp@or at secnumdepthtrue
+\newif\ifbxjs at jp@or at block@heading \bxjs at jp@or at block@headingtrue
+\define at key{bxjsPan}{_plus}[]{%
+  \bxjs at jp@or at indentfalse
+  \bxjs at jp@or at secnumdepthfalse
+  \bxjs at jp@or at block@headingfalse}
+\let\bxjs at kv@orindent at true\bxjs at jp@or at indenttrue
+\let\bxjs at kv@orindent at false\bxjs at jp@or at indentfalse
+\define at key{bxjsPan}{or-indent}[true]{%
+  \bxjs at set@keyval{orindent}{#1}{}}
+\let\bxjs at kv@orsecnumdepth at true\bxjs at jp@or at secnumdepthtrue
+\let\bxjs at kv@orsecnumdepth at false\bxjs at jp@or at secnumdepthfalse
+\define at key{bxjsPan}{or-secnumdepth}[true]{%
+  \bxjs at set@keyval{orsecnumdepth}{#1}{}}
+\let\bxjs at kv@orblockheading at true\bxjs at jp@or at block@headingtrue
+\let\bxjs at kv@orblockheading at false\bxjs at jp@or at block@headingfalse
+\define at key{bxjsPan}{or-block-heading}[true]{%
+  \bxjs at set@keyval{blockheading}{#1}{}}
 \def\bxjs at next#1{\bxjs at safe@setkeys{bxjsPan}{#1}}
 \expandafter\bxjs at next\expandafter{\jsJaParam}
 \@onlypreamble\bxjs at set@dupload at proc
@@ -172,6 +191,35 @@
   \expandafter\g at addto@macro\csname opt at xeCJK.sty\endcsname{%
     ,space}
 \fi
+\ifjsWitheTeX
+\@onlypreamble\bxjs at info@or at ban
+\def\bxjs at info@or at ban#1{%
+  \PackageInfo\bxjs at clsname
+   {Freeze layout on '#1',\MessageBreak detected}}
+\unless\ifbxjs at jp@or at indent
+  \bxjs at info@or at ban{indent}
+  \IfFileExists{parskip.sty}{%
+    \pandocSkipLoadPackage{parskip}%
+  }{%else
+    \eappto\bxjs at endpreamble@hook{%
+      \parindent=\the\parindent\relax
+      \parskip=\the\parskip\relax}}
+\fi
+\ifbxjs at jp@or at secnumdepth\else
+  \bxjs at info@or at ban{secnumdepth}
+  \eappto\bxjs at endpreamble@hook{%
+    \c at secnumdepth=\the\c at secnumdepth\relax}
+\fi
+\ifbxjs at jp@or at block@heading\else
+  \let\bxjs at frozen@paragraph\paragraph
+  \let\bxjs at frozen@subparagraph\subparagraph
+  \bxjs at info@or at ban{block-heading}
+  \appto\bxjs at endpreamble@hook{%
+  \let\oldparagraph\@undefined
+  \let\paragraph\bxjs at frozen@paragraph
+  \let\subparagraph\bxjs at frozen@subparagraph}
+\fi
+\fi
 \g at addto@macro\bxjs at begin@document at hook{%
   \@tempswafalse
   \ifx\oldparagraph\@undefined\else

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def	2020-10-17 21:02:14 UTC (rev 56686)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesFile{bxjsja-standard.def}
-  [2020/10/10 v2.3  BXJS document classes]
+  [2020/10/16 v2.4  BXJS document classes]
 %% このファイルは日本語文字を含みます
 \input{bxjsja-minimal.def}
 \bxjs at simplejasetupfalse
@@ -198,16 +198,16 @@
 \@onlypreamble\bxjs at get@kanjiEmbed
 \def\bxjs at get@kanjiEmbed{%
   \begingroup\setbox\z@=\hbox{%
-    \global\let\bxjs at do\@empty
+    \global\let\bxjs at tmpdo\@empty
     \def\bxjs at next##1##2##3{%
       \def##1####1##3 ####2\@nil####3\@nnil{%
         \ifx$####1$\gdef##2{####2}\fi}%
-      \g at addto@macro\bxjs at do{%
+      \g at addto@macro\bxjs at tmpdo{%
         \expandafter##1\bxjs at tmpa\@nil##3 \@nil\@nnil}}%
-    \bxjs at next\bxjs at do@a\bxjs at g@tmpa{kanjiEmbed}%
-    \bxjs at next\bxjs at do@b\bxjs at g@tmpa{jaEmbed}%
-    \bxjs at next\bxjs at do@c\bxjs at g@tmpb{kanjiVariant}%
-    \bxjs at next\bxjs at do@d\bxjs at g@tmpb{jaVariant}%
+    \bxjs at next\bxjs at tmpdo@a\bxjs at g@tmpa{kanjiEmbed}%
+    \bxjs at next\bxjs at tmpdo@b\bxjs at g@tmpa{jaEmbed}%
+    \bxjs at next\bxjs at tmpdo@c\bxjs at g@tmpb{kanjiVariant}%
+    \bxjs at next\bxjs at tmpdo@d\bxjs at g@tmpb{jaVariant}%
     \global\let\bxjs at g@tmpa\relax
     \global\let\bxjs at g@tmpb\relax
     \endlinechar\m at ne
@@ -224,7 +224,7 @@
       \@tempswatrue
       \loop\if at tempswa
         \read\@inputcheck to\bxjs at tmpa
-        \bxjs at do
+        \bxjs at tmpdo
         \ifeof\@inputcheck \@tempswafalse \fi
       \repeat
     \fi
@@ -655,11 +655,11 @@
         luatexja.jfmglue.create_beginpar_node()}}
     \fi}
 \fi
-\unless\ifnum\bxjs at everyparhook=\bxjs at everyparhook@none
+\unless\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@none
 \begingroup
   \let\%\@percentchar \def\@#1{[[\detokenize{#1}]]}
   \@gobble\if\def\bxjs at tmpa{\@{\everypar{}\fi}}
-  \ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+  \ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
     \@gobble\if\def\bxjs at tmpa{\@{\everypar{\everyparhook}\fi}}\fi
   \directlua{
     local function patchcmd(cs, code, from, to)

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty	2020-10-17 21:02:14 UTC (rev 56686)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{bxjspandoc}
-  [2020/10/10 v2.3  BXJS document classes]
+  [2020/10/16 v2.4  BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \def\bxjsp at pkgname{bxjscjkcat}
 \let\bxjsp at engine=n

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls	2020-10-17 21:02:14 UTC (rev 56686)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsreport}
-  [2020/10/10 v2.3  BXJS document classes]
+  [2020/10/16 v2.4  BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \def\bxjs at clsname{bxjsreport}
 \newif\ifjsc at needsp@tch
@@ -186,13 +186,18 @@
 \newif\if at enablejfam \@enablejfamfalse
 \@onlypreamble\bxjs at setpaper
 \def\bxjs at setpaper#1{\def\bxjs at param@paper{#1}}
+\newif\ifbxjs at iso@bsize
+\DeclareOption{iso-bsize}{\bxjs at iso@bsizetrue}
+\@onlypreamble\bxjs at setpaper@bsize
+\def\bxjs at setpaper@bsize#1{\edef\bxjs at param@paper{%
+  b#1\ifbxjs at iso@bsize paper\else j\fi}}
 \DeclareOption{a3paper}{\bxjs at setpaper{a3paper}}
 \DeclareOption{a4paper}{\bxjs at setpaper{a4paper}}
 \DeclareOption{a5paper}{\bxjs at setpaper{a5paper}}
 \DeclareOption{a6paper}{\bxjs at setpaper{a6paper}}
-\DeclareOption{b4paper}{\bxjs at setpaper{b4j}}
-\DeclareOption{b5paper}{\bxjs at setpaper{b5j}}
-\DeclareOption{b6paper}{\bxjs at setpaper{b6j}}
+\DeclareOption{b4paper}{\bxjs at setpaper@bsize{4}}
+\DeclareOption{b5paper}{\bxjs at setpaper@bsize{5}}
+\DeclareOption{b6paper}{\bxjs at setpaper@bsize{6}}
 \DeclareOption{a4j}{\bxjs at setpaper{a4paper}}
 \DeclareOption{a5j}{\bxjs at setpaper{a5paper}}
 \DeclareOption{b4j}{\bxjs at setpaper{b4j}}
@@ -202,20 +207,17 @@
 \DeclareOption{letterpaper}{\bxjs at setpaper{letterpaper}}
 \DeclareOption{legalpaper}{\bxjs at setpaper{legalpaper}}
 \DeclareOption{executivepaper}{\bxjs at setpaper{executivepaper}}
-\def\bxjs at tmpb#1#2{\DeclareOption{#1}{\bxjs at setpaper{#2}}}
 \@for\bxjs at tmpa:={%
   a0,a1,a2,c0,c1,c2,c3,c4,c5,c6,ansia,ansib,ansic,ansid,ansie%
 }\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{\bxjs at tmpa paper}{\bxjs at tmpa paper}%
+  \noexpand\DeclareOption{\bxjs at tmpa paper}%
+    {\noexpand\bxjs at setpaper{\bxjs at tmpa paper}}%
 }\bxjs at next}
-\bxjs at tmpb{screen}{screen}
+\DeclareOption{screen}{\bxjs at setpaper{screen}}
 \@for\bxjs at tmpa:={0,1,2,3}\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{b\bxjs at tmpa paper}{b\bxjs at tmpa j}%
+  \noexpand\DeclareOption{b\bxjs at tmpa paper}%
+    {\noexpand\bxjs at setpaper@bsize{\bxjs at tmpa}}%
 }\bxjs at next}
-\@for\bxjs at tmpa:={0,1,2,3,4,5,6}\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{A\bxjs at tmpa paper}{a\bxjs at tmpa paper}%
-  \noexpand\bxjs at tmpb{B\bxjs at tmpa paper}{b\bxjs at tmpa paper}%
-}\bxjs at next}
 \DeclareOption{a4varpaper}{\bxjs at setpaper{{210truemm}{283truemm}}}
 \DeclareOption{b5varpaper}{\bxjs at setpaper{{182truemm}{230truemm}}}
 \DeclareOption{screenpaper}{\bxjs at setpaper{screen}}
@@ -258,9 +260,9 @@
 \DeclareOption{10.5ptj}{\bxjs at setjbasefontsize{10.5pt}}
 \DeclareOption{11ptj}{\bxjs at setjbasefontsize{11pt}}
 \DeclareOption{12ptj}{\bxjs at setjbasefontsize{12pt}}
-\DeclareOption{usemag}{\let\bxjs at magstyle\bxjs at magstyle@usemag}
-\DeclareOption{nomag}{\let\bxjs at magstyle\bxjs at magstyle@nomag}
-\DeclareOption{nomag*}{\let\bxjs at magstyle\bxjs at magstyle@xreal}
+\DeclareOption{usemag}{\let\bxjs at magstyle\bxjs at magstyle@@usemag}
+\DeclareOption{nomag}{\let\bxjs at magstyle\bxjs at magstyle@@nomag}
+\DeclareOption{nomag*}{\let\bxjs at magstyle\bxjs at magstyle@@xreal}
 \if j\jsEngine
 \hour\time \divide\hour by 60\relax
 \@tempcnta\hour \multiply\@tempcnta 60\relax
@@ -379,12 +381,22 @@
     \xdef\bxjs at gtmpa{\the\@tempdimb}%
   \endgroup #1=\bxjs at gtmpa\relax}
 \DeclareOption{pandoc}{%
+  \bxjs at apply@pandoc at opt}
+\@onlypreamble\bxjs at apply@pandoc at opt
+\def\bxjs at apply@pandoc at opt{%
   \g at addto@macro\bxjs at post@option at hook{%
     \bxjs at oldfontcommandstrue
     \setkeys{bxjs}{ja=pandoc}%
     \let\bxjs at engine@given=*}%
-  \def\bxjs at driver@opt{dvipdfmx}%
-  \bxjs at dvi@opttrue}
+  \ifx\bxjs at driver@opt\@undefined
+    \def\bxjs at driver@opt{dvipdfmx}%
+    \bxjs at dvi@opttrue
+  \fi
+  \global\let\bxjs at apply@pandoc at opt\relax}
+\DeclareOption{pandoc+}{%
+  \g at addto@macro\bxjs at post@option at hook{%
+    \edef\jsJaParam{\bxjs at catopt{_plus}\jsJaParam}}%
+  \ExecuteOptions{pandoc}}
 \DeclareOption{autodetect-engine}{%
   \let\bxjs at engine@given=*}
 \DeclareOption{latex}{%
@@ -442,13 +454,18 @@
 \DeclareOption{xetex}{%
   \def\bxjs at driver@opt{xetex}%
   \let\bxjs at driver@given\bxjs at driver@@xetex}
-\DeclareOption{dvipdfmx-if-dvi}{%
+\DeclareOption{dvipdfmx-if-dvi}{\bxjs at depre@opt at do{dvipdfmx-if-dvi}{dvi=dvipdfmx}}
+\@onlypreamble\bxjs at depre@opt
+\def\bxjs at depre@opt#1#2{%
   \ClassWarningNoLine\bxjs at clsname
-   {The old option 'dvipdfmx-if-dvi' is DEPRECATED\MessageBreak
+   {The old option '#1' is DEPRECATED\MessageBreak
     and may be abolished in future!\MessageBreak
-    You should write 'dvi=dvipdfmx' instead}%
-  \setkeys{bxjs}{dvi=dvipdfmx}}
-
+    You should instead write:\MessageBreak
+    \space\space #2}}
+\@onlypreamble\bxjs at depre@opt at do
+\def\bxjs at depre@opt at do#1#2{%
+  \bxjs at depre@opt{#1}{#2}%
+  \setkeys{bxjs}{#2}}
 \newif\ifbxjs at bigcode \bxjs at bigcodetrue
 \DeclareOption{nobigcode}{%
   \bxjs at bigcodefalse}
@@ -479,7 +496,8 @@
   \setkeys{#1}{#2}%
   \let\KV at errx\bxjs at save@KV at errx}
 \@onlypreamble\bxjs at declare@enum at option
-\def\bxjs at declare@enum at option#1#2{%
+\def\bxjs at declare@enum at option#1#2#3{%
+  \bxjs at csletcs{bxjs@#2}{bxjs@#2@@#3}%
   \define at key{bxjs}{#1}{%
     \expandafter\ifx\csname bxjs@#2@@##1\endcsname\relax
       \bxjs at error@keyval{#1}{##1}%
@@ -486,7 +504,9 @@
     \else \bxjs at csletcs{bxjs@#2}{bxjs@#2@@##1}%
     \fi}}
 \@onlypreamble\bxjs at declare@bool at option
-\def\bxjs at declare@bool at option#1#2{%
+\def\bxjs at declare@bool at option#1#2#3{%
+  \csname newif\expandafter\endcsname\csname ifbxjs@#2\endcsname
+  \@nameuse{bxjs@#2#3}%
   \define at key{bxjs}{#1}[true]{%
     \expandafter\ifx\csname bxjs@#2##1\endcsname\relax
       \bxjs at error@keyval{#1}{##1}%
@@ -493,7 +513,7 @@
     \else \@nameuse{bxjs@#2##1}%
     \fi}}
 \def\bxjs at set@keyval#1#2#3{%
-  \expandafter\let\expandafter\bxjs at next\csname bxjs at kv@#1@#2\endcsname
+  \bxjs at csletcs{bxjs at next}{bxjs at kv@#1@#2}%
   \ifx\bxjs at next\relax
     \bxjs at error@keyval{#1}{#2}%
     #3%
@@ -514,56 +534,50 @@
   \edef\bxjs at scale@opt{#1}%
   \let\jsScale\bxjs at scale@opt}
 \define at key{bxjs}{jafontscale}{\setkeys{bxjs}{scale=#1}}
-\DeclareOption{noscale}{\setkeys{bxjs}{scale=1}}
+\DeclareOption{noscale}{\bxjs at depre@opt at do{noscale}{scale=1}}
 \let\bxjs at param@mag\relax
 \define at key{bxjs}{mag}{\edef\bxjs at param@mag{#1}}
 \define at key{bxjs}{paper}{\edef\bxjs at param@paper{#1}}
 \let\bxjs at jadriver\relax
-\define at key{bxjs}{jadriver}{\edef\bxjs at jadriver@opt{#1}}
+\define at key{bxjs}{jadriver}{%
+  \bxjs at depre@opt{jadriver}{ja=#1}\edef\bxjs at jadriver@opt{#1}}
 \define at key{bxjs}{ja}[\relax]{%
   \ifx\relax#1\else\edef\bxjs at jadriver@opt{#1}\fi}
 \let\jsJaFont\@empty
 \define at key{bxjs}{jafont}{\edef\jsJaFont{#1}}
 \let\jsJaParam\@empty
-\define at key{bxjs}{japaram}{\edef\jsJaParam{#1}}
-\let\bxjs at magstyle@mag=m
-\let\bxjs at magstyle@real=r
-\let\bxjs at magstyle@xreal=x
-\let\bxjs at magstyle@usemag\bxjs at magstyle@mag
-\let\bxjs at magstyle@nomag\bxjs at magstyle@real
-\expandafter\let\csname bxjs at magstyle@nomag*\endcsname\bxjs at magstyle@xreal
-\let\bxjs at magstyle@default\bxjs at magstyle@usemag
+\define at key{bxjs}{japaram}{%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+\define at key{bxjs}{pandoc}[]{%
+  \ExecuteOptions{pandoc}%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+\define at key{bxjs}{pandoc+}[]{%
+  \ExecuteOptions{pandoc+}%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+\let\bxjs at magstyle@@mag=m
+\let\bxjs at magstyle@@real=r
+\let\bxjs at magstyle@@xreal=x
+\let\bxjs at magstyle@@usemag\bxjs at magstyle@@mag
+\let\bxjs at magstyle@@nomag\bxjs at magstyle@@real
+\bxjs at cslet{bxjs at magstyle@@nomag*}\bxjs at magstyle@@xreal
+\let\bxjs at magstyle@@default\bxjs at magstyle@@usemag
 \ifx l\jsEngine \ifnum\luatexversion>86
-  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+  \let\bxjs at magstyle@@default\bxjs at magstyle@@xreal
 \fi\fi
 \ifjsWithpTeXng
-  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+  \let\bxjs at magstyle@@default\bxjs at magstyle@@xreal
 \fi
-\let\bxjs at magstyle\bxjs at magstyle@default
+\let\bxjs at magstyle\bxjs at magstyle@@default
 \define at key{bxjs}{magstyle}{%
-  \expandafter\let\expandafter\bxjs at magstyle\csname
-   bxjs at magstyle@#1\endcsname
+  \bxjs at csletcs{bxjs at magstyle}{bxjs at magstyle@@#1}%
   \ifx\bxjs at magstyle\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option magstyle}\@ehc
-    \let\bxjs at magstyle\bxjs at magstyle@default
+    \bxjs at error@keyval{magstyle}{#1}%
+    \let\bxjs at magstyle\bxjs at magstyle@@default
   \fi}
-\let\bxjs at geometry@class=c
-\let\bxjs at geometry@user=u
-\let\bxjs at geometry\bxjs at geometry@class
-\define at key{bxjs}{geometry}{%
-  \expandafter\let\expandafter\bxjs at geometry\csname
-   bxjs at geometry@#1\endcsname
-  \ifx\bxjs at geometry\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option geometry}\@ehc
-    \let\bxjs at geometry\bxjs at geometry@class
-  \fi}
-\newif\ifbxjs at fancyhdr \bxjs at fancyhdrtrue
-\let\bxjs at kv@fancyhdr at true\bxjs at fancyhdrtrue
-\let\bxjs at kv@fancyhdr at false\bxjs at fancyhdrfalse
-\define at key{bxjs}{fancyhdr}[true]{%
-  \bxjs at set@keyval{fancyhdr}{#1}{}}
+\let\bxjs at geometry@@class=c
+\let\bxjs at geometry@@user=u
+\bxjs at declare@enum at option{geometry}{geometry}{class}
+\bxjs at declare@bool at option{fancyhdr}{fancyhdr}{true}
 \newif\ifbxjs at dvi@opt
 \let\bxjs at dvidriver@@dvipdfmx=\bxjs at driver@@dvipdfmx
 \let\bxjs at dvidriver@@dvips=\bxjs at driver@@dvips
@@ -571,11 +585,9 @@
 \let\bxjs at dvidriver@@xdvi=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@nodvidriver=\bxjs at driver@@none
 \define at key{bxjs}{dvi}{%
-  \expandafter\let\expandafter\bxjs at tmpa\csname
-   bxjs at dvidriver@@#1\endcsname
+  \bxjs at csletcs{bxjs at tmpa}{bxjs at dvidriver@@#1}%
   \ifx\bxjs at tmpa\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option dvi}\@ehc
+    \bxjs at error@keyval{dvi}{#1}%
   \else
     \def\bxjs at driver@opt{#1}%
     \let\bxjs at driver@given\@undefined
@@ -592,6 +604,7 @@
 \define at key{bxjs}{layout}{%
   \bxjs at set@keyval{layout}{#1}{}}
 \define at key{bxjs}{textwidth-limit}{%
+  \bxjs at depre@opt{textwidth-limit}{textwidth=#1zw}%
   \edef\bxjs at textwidth@limit at opt{#1}}
 \define at key{bxjs}{textwidth}{\edef\bxjs at textwidth@opt{#1}}
 \define at key{bxjs}{line_length}{\setkeys{bxjs}{textwidth=#1}}
@@ -599,59 +612,32 @@
 \define at key{bxjs}{number_of_lines}{\setkeys{bxjs}{number-of-lines=#1}}
 \define at key{bxjs}{paragraph-mark}{%
   \edef\bxjs at paragraph@mark{#1}}
-\newif\ifbxjs at whole@zw at lines \bxjs at whole@zw at linestrue
-\let\bxjs at kv@wholezwlines at true\bxjs at whole@zw at linestrue
-\let\bxjs at kv@wholezwlines at false\bxjs at whole@zw at linesfalse
-\define at key{bxjs}{whole-zw-lines}[true]{\bxjs at set@keyval{wholezwlines}{#1}{}}
-\newif\ifbxjs at jaspace@cmd \bxjs at jaspace@cmdtrue
-\let\bxjs at kv@jaspacecmd at true\bxjs at jaspace@cmdtrue
-\let\bxjs at kv@jaspacecmd at false\bxjs at jaspace@cmdfalse
-\define at key{bxjs}{jaspace-cmd}[true]{\bxjs at set@keyval{jaspacecmd}{#1}{}}
-\define at key{bxjs}{xkanjiskip-cmd}[true]{\bxjs at set@keyval{jaspacecmd}{#1}{}}
-\newif\ifbxjs at fix@at at cmd \bxjs at fix@at at cmdtrue
-\let\bxjs at kv@fixatcmd at true\bxjs at fix@at at cmdtrue
-\let\bxjs at kv@fixatcmd at false\bxjs at fix@at at cmdfalse
-\define at key{bxjs}{fix-at-cmd}[true]{\bxjs at set@keyval{fixatcmd}{#1}{}}
-\newif\ifbxjs at hyperref@enc \bxjs at hyperref@enctrue
-\let\bxjs at kv@hyperrefenc at true\bxjs at hyperref@enctrue
-\let\bxjs at kv@hyperrefenc at false\bxjs at hyperref@encfalse
-\define at key{bxjs}{hyperref-enc}[true]{\bxjs at set@keyval{hyperrefenc}{#1}{}}
-\chardef\bxjs at everyparhook@none=0
-\chardef\bxjs at everyparhook@compat=1
-\chardef\bxjs at everyparhook@modern=2
-\if j\jsEngine
-  \let\bxjs at everyparhook\bxjs at everyparhook@compat
-\else
-  \let\bxjs at everyparhook\bxjs at everyparhook@modern
-\fi
-\def\bxjs at kv@everyparhook at none{\let\bxjs at everyparhook\bxjs at everyparhook@none}
-\def\bxjs at kv@everyparhook at compat{\let\bxjs at everyparhook\bxjs at everyparhook@compat}
-\def\bxjs at kv@everyparhook at modern{\let\bxjs at everyparhook\bxjs at everyparhook@modern}
-\define at key{bxjs}{everyparhook}{\bxjs at set@keyval{everyparhook}{#1}{}}
-\chardef\bxjs at label@section at none=0
-\chardef\bxjs at label@section at compat=1
-\chardef\bxjs at label@section at modern=2
-\let\bxjs at label@section\bxjs at label@section at compat
-\def\bxjs at kv@labelsection at none{\let\bxjs at label@section\bxjs at label@section at none}
-\def\bxjs at kv@labelsection at compat{\let\bxjs at label@section\bxjs at label@section at compat}
-\def\bxjs at kv@labelsection at modern{\let\bxjs at label@section\bxjs at label@section at modern}
-\define at key{bxjs}{label-section}{\bxjs at set@keyval{labelsection}{#1}{}}
-\newif\ifbxjs at usezw \bxjs at usezwtrue
-\bxjs at declare@bool at option{use-zw}{usezw}
-\DeclareOption{nozw}{\setkeys{bxjs}{use-zw=false}}
-\DeclareOption{zw}{\setkeys{bxjs}{use-zw=true}}
-\newif\ifbxjs at disguise@js \bxjs at disguise@jstrue
-\bxjs at declare@bool at option{disguise-js}{disguise at js}
-\DeclareOption{nojs}{\setkeys{bxjs}{disguise-js=false}}
-\DeclareOption{js}{\setkeys{bxjs}{disguise-js=true}}
-\newif\ifbxjs at precisetext
-\bxjs at declare@bool at option{precise-text}{precisetext}
-\DeclareOption{noprecisetext}{\setkeys{bxjs}{precise-text=false}}
-\DeclareOption{precisetext}{\setkeys{bxjs}{precise-text=true}}
-\newif\ifbxjs at simplejasetup \bxjs at simplejasetuptrue
-\bxjs at declare@bool at option{simple-ja-setup}{simplejasetup}
-\DeclareOption{nosimplejasetup}{\setkeys{bxjs}{simple-ja-setup=false}}
-\DeclareOption{simplejasetup}{\setkeys{bxjs}{simple-ja-setup=true}}
+\bxjs at declare@bool at option{whole-zw-lines}{whole at zw@lines}{true}
+\bxjs at declare@bool at option{jaspace-cmd}{jaspace at cmd}{true}
+\define at key{bxjs}{xkanjiskip-cmd}[true]{\setkeys{bxjs}{jaspace-cmd=#1}}
+\bxjs at declare@bool at option{fix-at-cmd}{fix at at@cmd}{true}
+\bxjs at declare@bool at option{hyperref-enc}{hyperref at enc}{true}
+\chardef\bxjs at everyparhook@@none=0
+\chardef\bxjs at everyparhook@@compat=1
+\chardef\bxjs at everyparhook@@modern=2
+\bxjs at declare@enum at option{everyparhook}{everyparhook}{%
+  \if j\jsEngine compat\else modern\fi}
+\chardef\bxjs at label@section@@none=0
+\chardef\bxjs at label@section@@compat=1
+\chardef\bxjs at label@section@@modern=2
+\bxjs at declare@enum at option{label-section}{label at section}{compat}
+\bxjs at declare@bool at option{use-zw}{usezw}{true}
+\DeclareOption{nozw}{\bxjs at depre@opt at do{nozw}{use-zw=false}}
+\DeclareOption{zw}{\bxjs at depre@opt at do{zw}{use-zw=true}}
+\bxjs at declare@bool at option{disguise-js}{disguise at js}{true}
+\DeclareOption{nojs}{\bxjs at depre@opt at do{nojs}{disguise-js=false}}
+\DeclareOption{js}{\bxjs at depre@opt at do{js}{disguise-js=true}}
+\bxjs at declare@bool at option{precise-text}{precisetext}{false}
+\DeclareOption{noprecisetext}{\bxjs at depre@opt at do{noprecisetext}{precise-text=false}}
+\DeclareOption{precisetext}{\bxjs at depre@opt at do{precisetext}{precise-text=true}}
+\bxjs at declare@bool at option{simple-ja-setup}{simplejasetup}{true}
+\DeclareOption{nosimplejasetup}{\bxjs at depre@opt at do{nosimplejasetup}{simple-ja-setup=false}}
+\DeclareOption{simplejasetup}{\bxjs at depre@opt at do{simplejasetup}{simple-ja-setup=true}}
 \let\bxjs at org@removeelement\@removeelement
 \def\@removeelement#1#2#3{%
   \def\reserved at a{#2}%
@@ -794,9 +780,9 @@
      {When you use a Japanese-driver you must specify a correct\MessageBreak
       engine option.\MessageBreak\@ehc}
 \fi\fi
-\ifx\bxjs at magstyle@default\bxjs at magstyle@mag\else
-  \ifx\bxjs at magstyle\bxjs at magstyle@mag
-    \let\bxjs at magstyle\bxjs at magstyle@default
+\ifx\bxjs at magstyle@@default\bxjs at magstyle@@mag\else
+  \ifx\bxjs at magstyle\bxjs at magstyle@@mag
+    \let\bxjs at magstyle\bxjs at magstyle@@default
     \ClassError\bxjs at clsname
      {The engine does not support 'magstyle=usemag'}%
      {LuaTeX v0.87 or later no longer supports the "mag" feature of TeX.\MessageBreak
@@ -845,9 +831,9 @@
 \fi
 \ifdim\bxjs at param@basefontsize<10pt \def\n at baseline{15}%
 \else \def\n at baseline{16}\fi
-\ifx\bxjs at magstyle\bxjs at magstyle@mag
+\ifx\bxjs at magstyle\bxjs at magstyle@@mag
   \jsc at magtrue
-\else\ifx\bxjs at magstyle\bxjs at magstyle@xreal
+\else\ifx\bxjs at magstyle\bxjs at magstyle@@xreal
   \jsc at mag@xrealtrue
 \fi\fi
 \ifx\bxjs at param@mag\relax
@@ -1090,15 +1076,29 @@
 \setlength{\topskip}{10\p@?}
 \def\bxjs at unit@trueQ{0.25truemm}\let\bxjs at unit@trueH\bxjs at unit@trueQ
 \def\bxjs at unit@zw{\jsZw}\let\bxjs at unit@zh\bxjs at unit@zw
-\def\bxjs at tmpdo{\futurelet\bxjs at tmpa\bxjs at tmpdo@a}
-\def\bxjs at tmpdo@a{%
-  \ifx\bxjs at tmpa\bgroup \expandafter\bxjs at tmpdo@b
-  \else \expandafter\bxjs at tmpdo@c \fi}
-\def\bxjs at tmpdo@b#1#2#3\@nil{\edef\bxjs at param@paper{papersize={#1,#2}}}
-\def\bxjs at tmpdo@c#1\@nil{\bxjs at tmpdo@d#1,,\@nil}
-\def\bxjs at tmpdo@d#1,#2,#3\@nil{%
-  \ifx\@nil#3\@nil\else \edef\bxjs at param@paper{papersize={#1,#2}}\fi}
-\expandafter\bxjs at tmpdo\bxjs at param@paper\@empty\@empty\@nil
+\@tempswafalse
+\def\bxjs at tmpdo{\@ifnextchar\bgroup\bxjs at tmpdo@a\remove at to@nnil}
+\def\bxjs at tmpdo@a#1{\edef\bxjs at tmpa{#1}%
+  \@ifnextchar\bgroup\bxjs at tmpdo@b\remove at to@nnil}
+\def\bxjs at tmpdo@b#1{\edef\bxjs at tmpa{\bxjs at tmpa,#1}%
+  \@ifnextchar\@nnil\bxjs at tmpdo@c\remove at to@nnil}
+\def\bxjs at tmpdo@c\@nnil{\@tempswatrue
+  \edef\bxjs at param@paper{papersize={\bxjs at tmpa}}}
+\expandafter\bxjs at tmpdo\bxjs at param@paper\@nnil
+\if at tempswa\else
+  \def\bxjs at tmpa{\@nil,\@nil}
+  \def\bxjs at tmpdo#1,#2,#3\@nnil{%
+    \def\bxjs at tmpb{#3}\ifx\bxjs at tmpa\bxjs at tmpb
+      \@tempswatrue\edef\bxjs at param@paper{papersize={#1,#2}}\fi}
+  \expandafter\bxjs at tmpdo\bxjs at param@paper,\@nil,\@nil\@nnil
+\fi
+\if at tempswa\else
+  \def\bxjs at tmpa{\@nil*\@nil}
+  \def\bxjs at tmpdo#1*#2*#3\@nnil{%
+    \def\bxjs at tmpb{#3}\ifx\bxjs at tmpa\bxjs at tmpb
+      \@tempswatrue\edef\bxjs at param@paper{papersize={#1,#2}}\fi}
+  \expandafter\bxjs at tmpdo\bxjs at param@paper*\@nil*\@nil\@nnil
+\fi
 \edef\bxjs at layout@paper{%
   \ifjsc at mag truedimen,\fi
   \if at landscape landscape,\fi
@@ -1167,7 +1167,7 @@
   \def\bxjs at apply@bd at pre@geometry at hook{%
     \AddToHook{begindocument}[\bxjs at geometry@name]}
 \fi
-\ifx\bxjs at geometry\bxjs at geometry@class
+\ifx\bxjs at geometry\bxjs at geometry@@class
 \ifbxjs at papersize
   \ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx
     \PassOptionsToPackage{dvipdfm}{geometry}
@@ -1215,7 +1215,7 @@
     \noexpand\geometry{\bxjs at next}%
   }\bxjs at next
   \bxjs at postproc@layout}
-\else\ifx\bxjs at geometry\bxjs at geometry@user
+\else\ifx\bxjs at geometry\bxjs at geometry@@user
 \g at addto@macro\bxjs at begin@document at hook{%
   \ifdim\textwidth=.5\maxdimen
     \ClassError\bxjs at clsname
@@ -1470,11 +1470,11 @@
   \else \csname label#1\endcsname
   \fi}
 \def\@seccntformat#1{\bxjs at label@sect{#1}\quad}
-\ifnum\bxjs at label@section=\bxjs at label@section at compat\else
+\ifnum\bxjs at label@section=\bxjs at label@section@@compat\else
 \def\@secapp{\presectionname}
 \def\@secpos{\postsectionname}
 \fi
-\ifnum\bxjs at label@section=\bxjs at label@section at modern
+\ifnum\bxjs at label@section=\bxjs at label@section@@modern
 \def\labelsection{\@secapp\thesection\@secpos}
 \fi
 \def\@startsection#1#2#3#4#5#6{%
@@ -1501,7 +1501,7 @@
   \@ifstar
     {\@ssect{#3}{#4}{#5}{#6}}%
     {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
   \let\bxjs at if@ceph\@firstofone
 \else \let\bxjs at if@ceph\@gobble
 \fi
@@ -2293,7 +2293,7 @@
   \llap{\@makefnmark\hskip0.3\jsZw}#1}
 \let\jsInhibitGlueAtParTop\@empty
 \def\everyparhook{\jsInhibitGlueAtParTop}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
 \g at addto@macro\bxjs at begin@document at hook{\everypar{\everyparhook}}
 \fi
 \ifx j\jsEngine
@@ -2325,7 +2325,7 @@
     \fi
   \fi}
 \fi
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
 \def\@doendpe{%
   \@endpetrue
   \def\par{%
@@ -2412,7 +2412,7 @@
       \everypar{\everyparhook}%
     \fi\everyparhook}}
 \fi
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@none\else
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@none\else
 \AtEndOfPackage{%
 \def\@gnewline #1{%
   \ifvmode

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls	2020-10-17 21:01:27 UTC (rev 56685)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls	2020-10-17 21:02:14 UTC (rev 56686)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsslide}
-  [2020/10/10 v2.3  BXJS document classes]
+  [2020/10/16 v2.4  BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \def\bxjs at clsname{bxjsslide}
 \newif\ifjsc at needsp@tch
@@ -183,13 +183,18 @@
 \newif\if at enablejfam \@enablejfamfalse
 \@onlypreamble\bxjs at setpaper
 \def\bxjs at setpaper#1{\def\bxjs at param@paper{#1}}
+\newif\ifbxjs at iso@bsize
+\DeclareOption{iso-bsize}{\bxjs at iso@bsizetrue}
+\@onlypreamble\bxjs at setpaper@bsize
+\def\bxjs at setpaper@bsize#1{\edef\bxjs at param@paper{%
+  b#1\ifbxjs at iso@bsize paper\else j\fi}}
 \DeclareOption{a3paper}{\bxjs at setpaper{a3paper}}
 \DeclareOption{a4paper}{\bxjs at setpaper{a4paper}}
 \DeclareOption{a5paper}{\bxjs at setpaper{a5paper}}
 \DeclareOption{a6paper}{\bxjs at setpaper{a6paper}}
-\DeclareOption{b4paper}{\bxjs at setpaper{b4j}}
-\DeclareOption{b5paper}{\bxjs at setpaper{b5j}}
-\DeclareOption{b6paper}{\bxjs at setpaper{b6j}}
+\DeclareOption{b4paper}{\bxjs at setpaper@bsize{4}}
+\DeclareOption{b5paper}{\bxjs at setpaper@bsize{5}}
+\DeclareOption{b6paper}{\bxjs at setpaper@bsize{6}}
 \DeclareOption{a4j}{\bxjs at setpaper{a4paper}}
 \DeclareOption{a5j}{\bxjs at setpaper{a5paper}}
 \DeclareOption{b4j}{\bxjs at setpaper{b4j}}
@@ -199,20 +204,17 @@
 \DeclareOption{letterpaper}{\bxjs at setpaper{letterpaper}}
 \DeclareOption{legalpaper}{\bxjs at setpaper{legalpaper}}
 \DeclareOption{executivepaper}{\bxjs at setpaper{executivepaper}}
-\def\bxjs at tmpb#1#2{\DeclareOption{#1}{\bxjs at setpaper{#2}}}
 \@for\bxjs at tmpa:={%
   a0,a1,a2,c0,c1,c2,c3,c4,c5,c6,ansia,ansib,ansic,ansid,ansie%
 }\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{\bxjs at tmpa paper}{\bxjs at tmpa paper}%
+  \noexpand\DeclareOption{\bxjs at tmpa paper}%
+    {\noexpand\bxjs at setpaper{\bxjs at tmpa paper}}%
 }\bxjs at next}
-\bxjs at tmpb{screen}{screen}
+\DeclareOption{screen}{\bxjs at setpaper{screen}}
 \@for\bxjs at tmpa:={0,1,2,3}\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{b\bxjs at tmpa paper}{b\bxjs at tmpa j}%
+  \noexpand\DeclareOption{b\bxjs at tmpa paper}%
+    {\noexpand\bxjs at setpaper@bsize{\bxjs at tmpa}}%
 }\bxjs at next}
-\@for\bxjs at tmpa:={0,1,2,3,4,5,6}\do{\edef\bxjs at next{%
-  \noexpand\bxjs at tmpb{A\bxjs at tmpa paper}{a\bxjs at tmpa paper}%
-  \noexpand\bxjs at tmpb{B\bxjs at tmpa paper}{b\bxjs at tmpa paper}%
-}\bxjs at next}
 \DeclareOption{a4varpaper}{\bxjs at setpaper{{210truemm}{283truemm}}}
 \DeclareOption{b5varpaper}{\bxjs at setpaper{{182truemm}{230truemm}}}
 \DeclareOption{screenpaper}{\bxjs at setpaper{screen}}
@@ -255,9 +257,9 @@
 \DeclareOption{10.5ptj}{\bxjs at setjbasefontsize{10.5pt}}
 \DeclareOption{11ptj}{\bxjs at setjbasefontsize{11pt}}
 \DeclareOption{12ptj}{\bxjs at setjbasefontsize{12pt}}
-\DeclareOption{usemag}{\let\bxjs at magstyle\bxjs at magstyle@usemag}
-\DeclareOption{nomag}{\let\bxjs at magstyle\bxjs at magstyle@nomag}
-\DeclareOption{nomag*}{\let\bxjs at magstyle\bxjs at magstyle@xreal}
+\DeclareOption{usemag}{\let\bxjs at magstyle\bxjs at magstyle@@usemag}
+\DeclareOption{nomag}{\let\bxjs at magstyle\bxjs at magstyle@@nomag}
+\DeclareOption{nomag*}{\let\bxjs at magstyle\bxjs at magstyle@@xreal}
 \if j\jsEngine
 \hour\time \divide\hour by 60\relax
 \@tempcnta\hour \multiply\@tempcnta 60\relax
@@ -373,12 +375,22 @@
     \xdef\bxjs at gtmpa{\the\@tempdimb}%
   \endgroup #1=\bxjs at gtmpa\relax}
 \DeclareOption{pandoc}{%
+  \bxjs at apply@pandoc at opt}
+\@onlypreamble\bxjs at apply@pandoc at opt
+\def\bxjs at apply@pandoc at opt{%
   \g at addto@macro\bxjs at post@option at hook{%
     \bxjs at oldfontcommandstrue
     \setkeys{bxjs}{ja=pandoc}%
     \let\bxjs at engine@given=*}%
-  \def\bxjs at driver@opt{dvipdfmx}%
-  \bxjs at dvi@opttrue}
+  \ifx\bxjs at driver@opt\@undefined
+    \def\bxjs at driver@opt{dvipdfmx}%
+    \bxjs at dvi@opttrue
+  \fi
+  \global\let\bxjs at apply@pandoc at opt\relax}
+\DeclareOption{pandoc+}{%
+  \g at addto@macro\bxjs at post@option at hook{%
+    \edef\jsJaParam{\bxjs at catopt{_plus}\jsJaParam}}%
+  \ExecuteOptions{pandoc}}
 \DeclareOption{autodetect-engine}{%
   \let\bxjs at engine@given=*}
 \DeclareOption{latex}{%
@@ -436,13 +448,18 @@
 \DeclareOption{xetex}{%
   \def\bxjs at driver@opt{xetex}%
   \let\bxjs at driver@given\bxjs at driver@@xetex}
-\DeclareOption{dvipdfmx-if-dvi}{%
+\DeclareOption{dvipdfmx-if-dvi}{\bxjs at depre@opt at do{dvipdfmx-if-dvi}{dvi=dvipdfmx}}
+\@onlypreamble\bxjs at depre@opt
+\def\bxjs at depre@opt#1#2{%
   \ClassWarningNoLine\bxjs at clsname
-   {The old option 'dvipdfmx-if-dvi' is DEPRECATED\MessageBreak
+   {The old option '#1' is DEPRECATED\MessageBreak
     and may be abolished in future!\MessageBreak
-    You should write 'dvi=dvipdfmx' instead}%
-  \setkeys{bxjs}{dvi=dvipdfmx}}
-
+    You should instead write:\MessageBreak
+    \space\space #2}}
+\@onlypreamble\bxjs at depre@opt at do
+\def\bxjs at depre@opt at do#1#2{%
+  \bxjs at depre@opt{#1}{#2}%
+  \setkeys{bxjs}{#2}}
 \newif\ifbxjs at bigcode \bxjs at bigcodetrue
 \DeclareOption{nobigcode}{%
   \bxjs at bigcodefalse}
@@ -473,7 +490,8 @@
   \setkeys{#1}{#2}%
   \let\KV at errx\bxjs at save@KV at errx}
 \@onlypreamble\bxjs at declare@enum at option
-\def\bxjs at declare@enum at option#1#2{%
+\def\bxjs at declare@enum at option#1#2#3{%
+  \bxjs at csletcs{bxjs@#2}{bxjs@#2@@#3}%
   \define at key{bxjs}{#1}{%
     \expandafter\ifx\csname bxjs@#2@@##1\endcsname\relax
       \bxjs at error@keyval{#1}{##1}%
@@ -480,7 +498,9 @@
     \else \bxjs at csletcs{bxjs@#2}{bxjs@#2@@##1}%
     \fi}}
 \@onlypreamble\bxjs at declare@bool at option
-\def\bxjs at declare@bool at option#1#2{%
+\def\bxjs at declare@bool at option#1#2#3{%
+  \csname newif\expandafter\endcsname\csname ifbxjs@#2\endcsname
+  \@nameuse{bxjs@#2#3}%
   \define at key{bxjs}{#1}[true]{%
     \expandafter\ifx\csname bxjs@#2##1\endcsname\relax
       \bxjs at error@keyval{#1}{##1}%
@@ -487,7 +507,7 @@
     \else \@nameuse{bxjs@#2##1}%
     \fi}}
 \def\bxjs at set@keyval#1#2#3{%
-  \expandafter\let\expandafter\bxjs at next\csname bxjs at kv@#1@#2\endcsname
+  \bxjs at csletcs{bxjs at next}{bxjs at kv@#1@#2}%
   \ifx\bxjs at next\relax
     \bxjs at error@keyval{#1}{#2}%
     #3%
@@ -508,56 +528,50 @@
   \edef\bxjs at scale@opt{#1}%
   \let\jsScale\bxjs at scale@opt}
 \define at key{bxjs}{jafontscale}{\setkeys{bxjs}{scale=#1}}
-\DeclareOption{noscale}{\setkeys{bxjs}{scale=1}}
+\DeclareOption{noscale}{\bxjs at depre@opt at do{noscale}{scale=1}}
 \let\bxjs at param@mag\relax
 \define at key{bxjs}{mag}{\edef\bxjs at param@mag{#1}}
 \define at key{bxjs}{paper}{\edef\bxjs at param@paper{#1}}
 \let\bxjs at jadriver\relax
-\define at key{bxjs}{jadriver}{\edef\bxjs at jadriver@opt{#1}}
+\define at key{bxjs}{jadriver}{%
+  \bxjs at depre@opt{jadriver}{ja=#1}\edef\bxjs at jadriver@opt{#1}}
 \define at key{bxjs}{ja}[\relax]{%
   \ifx\relax#1\else\edef\bxjs at jadriver@opt{#1}\fi}
 \let\jsJaFont\@empty
 \define at key{bxjs}{jafont}{\edef\jsJaFont{#1}}
 \let\jsJaParam\@empty
-\define at key{bxjs}{japaram}{\edef\jsJaParam{#1}}
-\let\bxjs at magstyle@mag=m
-\let\bxjs at magstyle@real=r
-\let\bxjs at magstyle@xreal=x
-\let\bxjs at magstyle@usemag\bxjs at magstyle@mag
-\let\bxjs at magstyle@nomag\bxjs at magstyle@real
-\expandafter\let\csname bxjs at magstyle@nomag*\endcsname\bxjs at magstyle@xreal
-\let\bxjs at magstyle@default\bxjs at magstyle@usemag
+\define at key{bxjs}{japaram}{%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+\define at key{bxjs}{pandoc}[]{%
+  \ExecuteOptions{pandoc}%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+\define at key{bxjs}{pandoc+}[]{%
+  \ExecuteOptions{pandoc+}%
+  \edef\jsJaParam{\bxjs at catopt\jsJaParam{#1}}}
+\let\bxjs at magstyle@@mag=m
+\let\bxjs at magstyle@@real=r
+\let\bxjs at magstyle@@xreal=x
+\let\bxjs at magstyle@@usemag\bxjs at magstyle@@mag
+\let\bxjs at magstyle@@nomag\bxjs at magstyle@@real
+\bxjs at cslet{bxjs at magstyle@@nomag*}\bxjs at magstyle@@xreal
+\let\bxjs at magstyle@@default\bxjs at magstyle@@usemag
 \ifx l\jsEngine \ifnum\luatexversion>86
-  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+  \let\bxjs at magstyle@@default\bxjs at magstyle@@xreal
 \fi\fi
 \ifjsWithpTeXng
-  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+  \let\bxjs at magstyle@@default\bxjs at magstyle@@xreal
 \fi
-\let\bxjs at magstyle\bxjs at magstyle@default
+\let\bxjs at magstyle\bxjs at magstyle@@default
 \define at key{bxjs}{magstyle}{%
-  \expandafter\let\expandafter\bxjs at magstyle\csname
-   bxjs at magstyle@#1\endcsname
+  \bxjs at csletcs{bxjs at magstyle}{bxjs at magstyle@@#1}%
   \ifx\bxjs at magstyle\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option magstyle}\@ehc
-    \let\bxjs at magstyle\bxjs at magstyle@default
+    \bxjs at error@keyval{magstyle}{#1}%
+    \let\bxjs at magstyle\bxjs at magstyle@@default
   \fi}
-\let\bxjs at geometry@class=c
-\let\bxjs at geometry@user=u
-\let\bxjs at geometry\bxjs at geometry@class
-\define at key{bxjs}{geometry}{%
-  \expandafter\let\expandafter\bxjs at geometry\csname
-   bxjs at geometry@#1\endcsname
-  \ifx\bxjs at geometry\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option geometry}\@ehc
-    \let\bxjs at geometry\bxjs at geometry@class
-  \fi}
-\newif\ifbxjs at fancyhdr \bxjs at fancyhdrtrue
-\let\bxjs at kv@fancyhdr at true\bxjs at fancyhdrtrue
-\let\bxjs at kv@fancyhdr at false\bxjs at fancyhdrfalse
-\define at key{bxjs}{fancyhdr}[true]{%
-  \bxjs at set@keyval{fancyhdr}{#1}{}}
+\let\bxjs at geometry@@class=c
+\let\bxjs at geometry@@user=u
+\bxjs at declare@enum at option{geometry}{geometry}{class}
+\bxjs at declare@bool at option{fancyhdr}{fancyhdr}{true}
 \newif\ifbxjs at dvi@opt
 \let\bxjs at dvidriver@@dvipdfmx=\bxjs at driver@@dvipdfmx
 \let\bxjs at dvidriver@@dvips=\bxjs at driver@@dvips
@@ -565,11 +579,9 @@
 \let\bxjs at dvidriver@@xdvi=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@nodvidriver=\bxjs at driver@@none
 \define at key{bxjs}{dvi}{%
-  \expandafter\let\expandafter\bxjs at tmpa\csname
-   bxjs at dvidriver@@#1\endcsname
+  \bxjs at csletcs{bxjs at tmpa}{bxjs at dvidriver@@#1}%
   \ifx\bxjs at tmpa\relax
-    \ClassError\bxjs at clsname
-     {Invalid value '#1' for option dvi}\@ehc
+    \bxjs at error@keyval{dvi}{#1}%
   \else
     \def\bxjs at driver@opt{#1}%
     \let\bxjs at driver@given\@undefined
@@ -584,6 +596,7 @@
 \define at key{bxjs}{layout}{%
   \bxjs at set@keyval{layout}{#1}{}}
 \define at key{bxjs}{textwidth-limit}{%
+  \bxjs at depre@opt{textwidth-limit}{textwidth=#1zw}%
   \edef\bxjs at textwidth@limit at opt{#1}}
 \define at key{bxjs}{textwidth}{\edef\bxjs at textwidth@opt{#1}}
 \define at key{bxjs}{line_length}{\setkeys{bxjs}{textwidth=#1}}
@@ -591,59 +604,32 @@
 \define at key{bxjs}{number_of_lines}{\setkeys{bxjs}{number-of-lines=#1}}
 \define at key{bxjs}{paragraph-mark}{%
   \edef\bxjs at paragraph@mark{#1}}
-\newif\ifbxjs at whole@zw at lines \bxjs at whole@zw at linestrue
-\let\bxjs at kv@wholezwlines at true\bxjs at whole@zw at linestrue
-\let\bxjs at kv@wholezwlines at false\bxjs at whole@zw at linesfalse
-\define at key{bxjs}{whole-zw-lines}[true]{\bxjs at set@keyval{wholezwlines}{#1}{}}
-\newif\ifbxjs at jaspace@cmd \bxjs at jaspace@cmdtrue
-\let\bxjs at kv@jaspacecmd at true\bxjs at jaspace@cmdtrue
-\let\bxjs at kv@jaspacecmd at false\bxjs at jaspace@cmdfalse
-\define at key{bxjs}{jaspace-cmd}[true]{\bxjs at set@keyval{jaspacecmd}{#1}{}}
-\define at key{bxjs}{xkanjiskip-cmd}[true]{\bxjs at set@keyval{jaspacecmd}{#1}{}}
-\newif\ifbxjs at fix@at at cmd \bxjs at fix@at at cmdtrue
-\let\bxjs at kv@fixatcmd at true\bxjs at fix@at at cmdtrue
-\let\bxjs at kv@fixatcmd at false\bxjs at fix@at at cmdfalse
-\define at key{bxjs}{fix-at-cmd}[true]{\bxjs at set@keyval{fixatcmd}{#1}{}}
-\newif\ifbxjs at hyperref@enc \bxjs at hyperref@enctrue
-\let\bxjs at kv@hyperrefenc at true\bxjs at hyperref@enctrue
-\let\bxjs at kv@hyperrefenc at false\bxjs at hyperref@encfalse
-\define at key{bxjs}{hyperref-enc}[true]{\bxjs at set@keyval{hyperrefenc}{#1}{}}
-\chardef\bxjs at everyparhook@none=0
-\chardef\bxjs at everyparhook@compat=1
-\chardef\bxjs at everyparhook@modern=2
-\if j\jsEngine
-  \let\bxjs at everyparhook\bxjs at everyparhook@compat
-\else
-  \let\bxjs at everyparhook\bxjs at everyparhook@modern
-\fi
-\def\bxjs at kv@everyparhook at none{\let\bxjs at everyparhook\bxjs at everyparhook@none}
-\def\bxjs at kv@everyparhook at compat{\let\bxjs at everyparhook\bxjs at everyparhook@compat}
-\def\bxjs at kv@everyparhook at modern{\let\bxjs at everyparhook\bxjs at everyparhook@modern}
-\define at key{bxjs}{everyparhook}{\bxjs at set@keyval{everyparhook}{#1}{}}
-\chardef\bxjs at label@section at none=0
-\chardef\bxjs at label@section at compat=1
-\chardef\bxjs at label@section at modern=2
-\let\bxjs at label@section\bxjs at label@section at compat
-\def\bxjs at kv@labelsection at none{\let\bxjs at label@section\bxjs at label@section at none}
-\def\bxjs at kv@labelsection at compat{\let\bxjs at label@section\bxjs at label@section at compat}
-\def\bxjs at kv@labelsection at modern{\let\bxjs at label@section\bxjs at label@section at modern}
-\define at key{bxjs}{label-section}{\bxjs at set@keyval{labelsection}{#1}{}}
-\newif\ifbxjs at usezw \bxjs at usezwtrue
-\bxjs at declare@bool at option{use-zw}{usezw}
-\DeclareOption{nozw}{\setkeys{bxjs}{use-zw=false}}
-\DeclareOption{zw}{\setkeys{bxjs}{use-zw=true}}
-\newif\ifbxjs at disguise@js \bxjs at disguise@jstrue
-\bxjs at declare@bool at option{disguise-js}{disguise at js}
-\DeclareOption{nojs}{\setkeys{bxjs}{disguise-js=false}}
-\DeclareOption{js}{\setkeys{bxjs}{disguise-js=true}}
-\newif\ifbxjs at precisetext
-\bxjs at declare@bool at option{precise-text}{precisetext}
-\DeclareOption{noprecisetext}{\setkeys{bxjs}{precise-text=false}}
-\DeclareOption{precisetext}{\setkeys{bxjs}{precise-text=true}}
-\newif\ifbxjs at simplejasetup \bxjs at simplejasetuptrue
-\bxjs at declare@bool at option{simple-ja-setup}{simplejasetup}
-\DeclareOption{nosimplejasetup}{\setkeys{bxjs}{simple-ja-setup=false}}
-\DeclareOption{simplejasetup}{\setkeys{bxjs}{simple-ja-setup=true}}
+\bxjs at declare@bool at option{whole-zw-lines}{whole at zw@lines}{true}
+\bxjs at declare@bool at option{jaspace-cmd}{jaspace at cmd}{true}
+\define at key{bxjs}{xkanjiskip-cmd}[true]{\setkeys{bxjs}{jaspace-cmd=#1}}
+\bxjs at declare@bool at option{fix-at-cmd}{fix at at@cmd}{true}
+\bxjs at declare@bool at option{hyperref-enc}{hyperref at enc}{true}
+\chardef\bxjs at everyparhook@@none=0
+\chardef\bxjs at everyparhook@@compat=1
+\chardef\bxjs at everyparhook@@modern=2
+\bxjs at declare@enum at option{everyparhook}{everyparhook}{%
+  \if j\jsEngine compat\else modern\fi}
+\chardef\bxjs at label@section@@none=0
+\chardef\bxjs at label@section@@compat=1
+\chardef\bxjs at label@section@@modern=2
+\bxjs at declare@enum at option{label-section}{label at section}{compat}
+\bxjs at declare@bool at option{use-zw}{usezw}{true}
+\DeclareOption{nozw}{\bxjs at depre@opt at do{nozw}{use-zw=false}}
+\DeclareOption{zw}{\bxjs at depre@opt at do{zw}{use-zw=true}}
+\bxjs at declare@bool at option{disguise-js}{disguise at js}{true}
+\DeclareOption{nojs}{\bxjs at depre@opt at do{nojs}{disguise-js=false}}
+\DeclareOption{js}{\bxjs at depre@opt at do{js}{disguise-js=true}}
+\bxjs at declare@bool at option{precise-text}{precisetext}{false}
+\DeclareOption{noprecisetext}{\bxjs at depre@opt at do{noprecisetext}{precise-text=false}}
+\DeclareOption{precisetext}{\bxjs at depre@opt at do{precisetext}{precise-text=true}}
+\bxjs at declare@bool at option{simple-ja-setup}{simplejasetup}{true}
+\DeclareOption{nosimplejasetup}{\bxjs at depre@opt at do{nosimplejasetup}{simple-ja-setup=false}}
+\DeclareOption{simplejasetup}{\bxjs at depre@opt at do{simplejasetup}{simple-ja-setup=true}}
 \let\bxjs at org@removeelement\@removeelement
 \def\@removeelement#1#2#3{%
   \def\reserved at a{#2}%
@@ -786,9 +772,9 @@
      {When you use a Japanese-driver you must specify a correct\MessageBreak
       engine option.\MessageBreak\@ehc}
 \fi\fi
-\ifx\bxjs at magstyle@default\bxjs at magstyle@mag\else
-  \ifx\bxjs at magstyle\bxjs at magstyle@mag
-    \let\bxjs at magstyle\bxjs at magstyle@default
+\ifx\bxjs at magstyle@@default\bxjs at magstyle@@mag\else
+  \ifx\bxjs at magstyle\bxjs at magstyle@@mag
+    \let\bxjs at magstyle\bxjs at magstyle@@default
     \ClassError\bxjs at clsname
      {The engine does not support 'magstyle=usemag'}%
      {LuaTeX v0.87 or later no longer supports the "mag" feature of TeX.\MessageBreak
@@ -836,9 +822,9 @@
   \advance \stockheight 2in
 \fi
 \def\n at baseline{13}%
-\ifx\bxjs at magstyle\bxjs at magstyle@mag
+\ifx\bxjs at magstyle\bxjs at magstyle@@mag
   \jsc at magtrue
-\else\ifx\bxjs at magstyle\bxjs at magstyle@xreal
+\else\ifx\bxjs at magstyle\bxjs at magstyle@@xreal
   \jsc at mag@xrealtrue
 \fi\fi
 \ifx\bxjs at param@mag\relax
@@ -1081,15 +1067,29 @@
 \setlength{\topskip}{10\p@?}
 \def\bxjs at unit@trueQ{0.25truemm}\let\bxjs at unit@trueH\bxjs at unit@trueQ
 \def\bxjs at unit@zw{\jsZw}\let\bxjs at unit@zh\bxjs at unit@zw
-\def\bxjs at tmpdo{\futurelet\bxjs at tmpa\bxjs at tmpdo@a}
-\def\bxjs at tmpdo@a{%
-  \ifx\bxjs at tmpa\bgroup \expandafter\bxjs at tmpdo@b
-  \else \expandafter\bxjs at tmpdo@c \fi}
-\def\bxjs at tmpdo@b#1#2#3\@nil{\edef\bxjs at param@paper{papersize={#1,#2}}}
-\def\bxjs at tmpdo@c#1\@nil{\bxjs at tmpdo@d#1,,\@nil}
-\def\bxjs at tmpdo@d#1,#2,#3\@nil{%
-  \ifx\@nil#3\@nil\else \edef\bxjs at param@paper{papersize={#1,#2}}\fi}
-\expandafter\bxjs at tmpdo\bxjs at param@paper\@empty\@empty\@nil
+\@tempswafalse
+\def\bxjs at tmpdo{\@ifnextchar\bgroup\bxjs at tmpdo@a\remove at to@nnil}
+\def\bxjs at tmpdo@a#1{\edef\bxjs at tmpa{#1}%
+  \@ifnextchar\bgroup\bxjs at tmpdo@b\remove at to@nnil}
+\def\bxjs at tmpdo@b#1{\edef\bxjs at tmpa{\bxjs at tmpa,#1}%
+  \@ifnextchar\@nnil\bxjs at tmpdo@c\remove at to@nnil}
+\def\bxjs at tmpdo@c\@nnil{\@tempswatrue
+  \edef\bxjs at param@paper{papersize={\bxjs at tmpa}}}
+\expandafter\bxjs at tmpdo\bxjs at param@paper\@nnil
+\if at tempswa\else
+  \def\bxjs at tmpa{\@nil,\@nil}
+  \def\bxjs at tmpdo#1,#2,#3\@nnil{%
+    \def\bxjs at tmpb{#3}\ifx\bxjs at tmpa\bxjs at tmpb
+      \@tempswatrue\edef\bxjs at param@paper{papersize={#1,#2}}\fi}
+  \expandafter\bxjs at tmpdo\bxjs at param@paper,\@nil,\@nil\@nnil
+\fi
+\if at tempswa\else
+  \def\bxjs at tmpa{\@nil*\@nil}
+  \def\bxjs at tmpdo#1*#2*#3\@nnil{%
+    \def\bxjs at tmpb{#3}\ifx\bxjs at tmpa\bxjs at tmpb
+      \@tempswatrue\edef\bxjs at param@paper{papersize={#1,#2}}\fi}
+  \expandafter\bxjs at tmpdo\bxjs at param@paper*\@nil*\@nil\@nnil
+\fi
 \edef\bxjs at layout@paper{%
   \ifjsc at mag truedimen,\fi
   \if at landscape landscape,\fi
@@ -1157,7 +1157,7 @@
   \def\bxjs at apply@bd at pre@geometry at hook{%
     \AddToHook{begindocument}[\bxjs at geometry@name]}
 \fi
-\ifx\bxjs at geometry\bxjs at geometry@class
+\ifx\bxjs at geometry\bxjs at geometry@@class
 \ifbxjs at papersize
   \ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx
     \PassOptionsToPackage{dvipdfm}{geometry}
@@ -1205,7 +1205,7 @@
     \noexpand\geometry{\bxjs at next}%
   }\bxjs at next
   \bxjs at postproc@layout}
-\else\ifx\bxjs at geometry\bxjs at geometry@user
+\else\ifx\bxjs at geometry\bxjs at geometry@@user
 \g at addto@macro\bxjs at begin@document at hook{%
   \ifdim\textwidth=.5\maxdimen
     \ClassError\bxjs at clsname
@@ -1459,11 +1459,11 @@
   \else \csname label#1\endcsname
   \fi}
 \def\@seccntformat#1{\bxjs at label@sect{#1}\quad}
-\ifnum\bxjs at label@section=\bxjs at label@section at compat\else
+\ifnum\bxjs at label@section=\bxjs at label@section@@compat\else
 \def\@secapp{\presectionname}
 \def\@secpos{\postsectionname}
 \fi
-\ifnum\bxjs at label@section=\bxjs at label@section at modern
+\ifnum\bxjs at label@section=\bxjs at label@section@@modern
 \def\labelsection{\@secapp\thesection\@secpos}
 \fi
 \def\@startsection#1#2#3#4#5#6{%
@@ -1490,7 +1490,7 @@
   \@ifstar
     {\@ssect{#3}{#4}{#5}{#6}}%
     {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
   \let\bxjs at if@ceph\@firstofone
 \else \let\bxjs at if@ceph\@gobble
 \fi
@@ -1578,7 +1578,7 @@
 \newcounter{paragraph}[subsubsection]
 \newcounter{subparagraph}[paragraph]
 \renewcommand{\thepart}{\@Roman\c at part}
-\ifnum\bxjs at label@section=\bxjs at label@section at compat
+\ifnum\bxjs at label@section=\bxjs at label@section@@compat
 \renewcommand{\thesection}{\presectionname\@arabic\c at section\postsectionname}
 \renewcommand{\thesubsection}{\@arabic\c at section.\@arabic\c at subsection}
 \else
@@ -1852,7 +1852,7 @@
 \newcommand{\appendix}{\par
   \setcounter{section}{0}%
   \setcounter{subsection}{0}%
-  \ifnum\bxjs at label@section=\bxjs at label@section at compat
+  \ifnum\bxjs at label@section=\bxjs at label@section@@compat
   \gdef\presectionname{\appendixname}%
   \gdef\postsectionname{}%
   \gdef\thesection{\presectionname\@Alph\c at section\postsectionname}%
@@ -2164,7 +2164,7 @@
   \llap{\@makefnmark\hskip0.3\jsZw}#1}
 \let\jsInhibitGlueAtParTop\@empty
 \def\everyparhook{\jsInhibitGlueAtParTop}
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
 \g at addto@macro\bxjs at begin@document at hook{\everypar{\everyparhook}}
 \fi
 \ifx j\jsEngine
@@ -2196,7 +2196,7 @@
     \fi
   \fi}
 \fi
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@compat
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@compat
 \def\@doendpe{%
   \@endpetrue
   \def\par{%
@@ -2283,7 +2283,7 @@
       \everypar{\everyparhook}%
     \fi\everyparhook}}
 \fi
-\ifnum\bxjs at everyparhook=\bxjs at everyparhook@none\else
+\ifnum\bxjs at everyparhook=\bxjs at everyparhook@@none\else
 \AtEndOfPackage{%
 \def\@gnewline #1{%
   \ifvmode



More information about the tex-live-commits mailing list.