summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-10-17 21:02:14 +0000
committerKarl Berry <karl@freefriends.org>2020-10-17 21:02:14 +0000
commit707f629e14e56b9e7b47522033f588c210c34cbb (patch)
tree8980cf90122d9ee89a81bd04044ca7cc41827a43 /Master
parent0e5e2f0d8a0472c17785e552e27fa41b0930c74c (diff)
bxjscls (17oct20)
git-svn-id: svn://tug.org/texlive/trunk@56686 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/README-ja.md9
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/README.md1
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdfbin374709 -> 382171 bytes
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex92
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdfbin1168525 -> 1173357 bytes
-rw-r--r--Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx468
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls280
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls276
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty2
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty2
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def4
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def2
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def50
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def20
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty2
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls276
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls280
17 files changed, 1000 insertions, 764 deletions
diff --git a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md
index a52f63f2dfe..431c8fe52c7 100644
--- a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md
+++ b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md
@@ -99,6 +99,11 @@ XeLaTeX / LuaLaTeX の上でも日本語処理パッケージと連携して使
更新履歴
--------
+ * 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 @@ XeLaTeX / LuaLaTeX の上でも日本語処理パッケージと連携して使
の機能に移した。
- pandoc 和文ドライバパラメタ `strong` を追加。
- `custompaper` オプションを追加。
- - (試験的) pandoc 和文ドライバパラメタ `fix-strong`・`fix-code`
- を追加。
- - (試験的) 多数の用紙サイズ名オプションを追加。
+ - pandoc 和文ドライバパラメタ `fix-strong`・`fix-code` を追加。
* Version 2.1 〈2020/05/28〉
- fontspec と互換の `\strong` 命令・`strongenv` 環境を追加。
- 和文等幅フォントの挙動が ltjsclasses と異なるのを修正。
diff --git a/Master/texmf-dist/doc/latex/bxjscls/README.md b/Master/texmf-dist/doc/latex/bxjscls/README.md
index acd69b1d056..f8f8eeb3034 100644
--- a/Master/texmf-dist/doc/latex/bxjscls/README.md
+++ b/Master/texmf-dist/doc/latex/bxjscls/README.md
@@ -89,6 +89,7 @@ This package is distributed under the BSD 2-Clause License.
Revision History
----------------
+ * Version 2.4 〈2020/10/16〉
* Version 2.3 〈2020/10/10〉
- Sync with jsclasses 2020/10/05.
* Version 2.2c 〈2020/10/04〉
diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf
index 250272dadb1..4b188a5a493 100644
--- a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf
+++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex
index cec1bf665d8..c0d2c109f55 100644
--- a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex
+++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex
@@ -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 @@ JSクラスには無くBXJSクラスで追加されたクラスオプション
\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 @@ JSクラスには無くBXJSクラスで追加されたクラスオプション
パッケージが読み込まれた場合も無効化される。
特に、和文ドライバが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 @@ minimalに配置している。}%
\item それ以外の場合\Means
「updmap-kanji-configで指定されたファミリ名」が |jafont|
の値に指定されたと見なされる。
+ \footnote{|updmap-kanji-config| の |--jis2004| オプションにより
+ 2004JIS字形が選択されている場合は、さらに |jis2004| 和文パラメタを
+ 有効にする。}
\end{itemize}
%===========================================================
@@ -1310,8 +1357,27 @@ standard用のものに加えて、以下の和文ドライバパラメタが存
\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}
%===========================================================
diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf
index dceb12a49fa..7700df43b61 100644
--- a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf
+++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
index e3e7a21d007..5ca16063ebc 100644
--- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
+++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
@@ -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@setpaper
\def\bxjs@setpaper#1{\def\bxjs@param@paper{#1}}
+\newif\ifbxjs@iso@bsize
+\DeclareOption{iso-bsize}{\bxjs@iso@bsizetrue}
+\@onlypreamble\bxjs@setpaper@bsize
+\def\bxjs@setpaper@bsize#1{\edef\bxjs@param@paper{%
+ b#1\ifbxjs@iso@bsize paper\else j\fi}}
\DeclareOption{a3paper}{\bxjs@setpaper{a3paper}}
\DeclareOption{a4paper}{\bxjs@setpaper{a4paper}}
\DeclareOption{a5paper}{\bxjs@setpaper{a5paper}}
\DeclareOption{a6paper}{\bxjs@setpaper{a6paper}}
-\DeclareOption{b4paper}{\bxjs@setpaper{b4j}}
-\DeclareOption{b5paper}{\bxjs@setpaper{b5j}}
-\DeclareOption{b6paper}{\bxjs@setpaper{b6j}}
+\DeclareOption{b4paper}{\bxjs@setpaper@bsize{4}}
+\DeclareOption{b5paper}{\bxjs@setpaper@bsize{5}}
+\DeclareOption{b6paper}{\bxjs@setpaper@bsize{6}}
\DeclareOption{a4j}{\bxjs@setpaper{a4paper}}
\DeclareOption{a5j}{\bxjs@setpaper{a5paper}}
\DeclareOption{b4j}{\bxjs@setpaper{b4j}}
@@ -825,25 +831,20 @@
% \end{macrocode}
% |geometry| の用紙サイズのオプション名を全てサポートする。
% \begin{macrocode}
-\def\bxjs@tmpb#1#2{\DeclareOption{#1}{\bxjs@setpaper{#2}}}
\@for\bxjs@tmpa:={%
a0,a1,a2,c0,c1,c2,c3,c4,c5,c6,ansia,ansib,ansic,ansid,ansie%
}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{\bxjs@tmpa paper}{\bxjs@tmpa paper}%
+ \noexpand\DeclareOption{\bxjs@tmpa paper}%
+ {\noexpand\bxjs@setpaper{\bxjs@tmpa paper}}%
}\bxjs@next}
-\bxjs@tmpb{screen}{screen}
+\DeclareOption{screen}{\bxjs@setpaper{screen}}
% \end{macrocode}
-% ただし |b?paper| はJISのB列に従う。
+% ただし |b?paper| は |iso-bsize| の指定に従いISOとJISの
+% 適切な方のB列を選択する。
% \begin{macrocode}
\@for\bxjs@tmpa:={0,1,2,3}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{b\bxjs@tmpa paper}{b\bxjs@tmpa j}%
-}\bxjs@next}
-% \end{macrocode}
-% |B?paper| でISOのB列を指定できるようにする。
-% \begin{macrocode}
-\@for\bxjs@tmpa:={0,1,2,3,4,5,6}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{A\bxjs@tmpa paper}{a\bxjs@tmpa paper}%
- \noexpand\bxjs@tmpb{B\bxjs@tmpa paper}{b\bxjs@tmpa paper}%
+ \noexpand\DeclareOption{b\bxjs@tmpa paper}%
+ {\noexpand\bxjs@setpaper@bsize{\bxjs@tmpa}}%
}\bxjs@next}
% \end{macrocode}
% Pandocでは用紙サイズ指定について「後ろに |paper| を付けた名前
@@ -977,9 +978,9 @@
%
% JSクラス互換のmagstyle設定オプション。
% \begin{macrocode}
-\DeclareOption{usemag}{\let\bxjs@magstyle\bxjs@magstyle@usemag}
-\DeclareOption{nomag}{\let\bxjs@magstyle\bxjs@magstyle@nomag}
-\DeclareOption{nomag*}{\let\bxjs@magstyle\bxjs@magstyle@xreal}
+\DeclareOption{usemag}{\let\bxjs@magstyle\bxjs@magstyle@@usemag}
+\DeclareOption{nomag}{\let\bxjs@magstyle\bxjs@magstyle@@nomag}
+\DeclareOption{nomag*}{\let\bxjs@magstyle\bxjs@magstyle@@xreal}
% \end{macrocode}
%
% \end{ZRnote}
@@ -1356,6 +1357,9 @@
% 最適化した設定を与える。
% \begin{macrocode}
\DeclareOption{pandoc}{%
+ \bxjs@apply@pandoc@opt}
+\@onlypreamble\bxjs@apply@pandoc@opt
+\def\bxjs@apply@pandoc@opt{%
% \end{macrocode}
% 和文ドライバを |pandoc| に、エンジン指定を |autodetect-engine| に
% 変更する。
@@ -1369,12 +1373,22 @@
% ドライバオプションを |dvi=dvipdfmx| 相当に変更する。
% \Note これは実際のドライバ設定で上書きできる
% (オプション宣言順に注意)。
-% \TODO できない気がする…。
% \begin{macrocode}
- \def\bxjs@driver@opt{dvipdfmx}%
- \bxjs@dvi@opttrue}
+ \ifx\bxjs@driver@opt\@undefined
+ \def\bxjs@driver@opt{dvipdfmx}%
+ \bxjs@dvi@opttrue
+ \fi
+ \global\let\bxjs@apply@pandoc@opt\relax}
% \end{macrocode}
%
+% |pandoc+| オプションは、|pandoc| と同じ設定をした上で、
+% さらに和文パラメタの先頭に |_plus| を追加する。
+% \begin{macrocode}
+\DeclareOption{pandoc+}{%
+ \g@addto@macro\bxjs@post@option@hook{%
+ \edef\jsJaParam{\bxjs@catopt{_plus}\jsJaParam}}%
+ \ExecuteOptions{pandoc}}
+% \end{macrocode}
% \end{ZRnote}
%
% \paragraph{エンジン・ドライバオプション \ZRX}
@@ -1477,17 +1491,9 @@
\let\bxjs@driver@given\bxjs@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@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@depre@opt@do{dvipdfmx-if-dvi}{dvi=dvipdfmx}}
% \end{macrocode}
%
% \end{ZRnote}
@@ -1496,6 +1502,26 @@
% \mbox{}
% \begin{ZRnote}
% \TODO 互換用オプションを分離する(2.0版で?)。
+%
+% \begin{macro}{\bxjs@depre@opt}
+% \begin{macro}{\bxjs@depre@opt@do}
+% 非推奨のオプションについて警告を出す。
+% \begin{macrocode}
+\@onlypreamble\bxjs@depre@opt
+\def\bxjs@depre@opt#1#2{%
+ \ClassWarningNoLine\bxjs@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@depre@opt@do
+\def\bxjs@depre@opt@do#1#2{%
+ \bxjs@depre@opt{#1}{#2}%
+ \setkeys{bxjs}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\ifbxjs@bigcode}
% {\upTeX}で有効化するToUnicode CMapとして
% 「|UTF8-UCS2|」の代わりに「|UTF8-UTF16|」を使うか。
@@ -1576,13 +1602,15 @@
% \end{macro}
%
% \begin{macro}{\bxjs@declare@enum@option}
-% |\bxjs@declare@enum@option{|\Meta{オプション名}|}{|\Meta{enum名}|}|\par
+% |\bxjs@declare@enum@option{|\Meta{オプション名}|}{|^^A
+% \Meta{enum名}|}{|\Meta{初期値}|}|\par
% “\Meta{オプション名}|=|\Meta{値}”のオプション指定に対して、
% |\|[|bxjs@|\Meta{enum名}] を |\|[|bxjs@|\Meta{enum名}|@@|\Meta{値}] に
% 等値する(後者の制御綴が未定義の場合はエラー)、という動作を規定する。
% \begin{macrocode}
\@onlypreamble\bxjs@declare@enum@option
-\def\bxjs@declare@enum@option#1#2{%
+\def\bxjs@declare@enum@option#1#2#3{%
+ \bxjs@csletcs{bxjs@#2}{bxjs@#2@@#3}%
\define@key{bxjs}{#1}{%
\expandafter\ifx\csname bxjs@#2@@##1\endcsname\relax
\bxjs@error@keyval{#1}{##1}%
@@ -1592,12 +1620,15 @@
% \end{macro}
%
% \begin{macro}{\bxjs@declare@bool@option}
-% |\bxjs@declare@bool@option{|\Meta{オプション名}|}{|\Meta{スイッチ名}|}|\par
+% |\bxjs@declare@bool@option{|\Meta{オプション名}|}{|^^A
+% \Meta{スイッチ名}|}{|\Meta{初期値}|}|\par
% “\Meta{オプション名}|=|\Meta{真偽値}”のオプション指定に対して、
% |\if|[|bxjs@|\Meta{スイッチ名}] を設定する、という動作を規定する。
% \begin{macrocode}
\@onlypreamble\bxjs@declare@bool@option
-\def\bxjs@declare@bool@option#1#2{%
+\def\bxjs@declare@bool@option#1#2#3{%
+ \csname newif\expandafter\endcsname\csname ifbxjs@#2\endcsname
+ \@nameuse{bxjs@#2#3}%
\define@key{bxjs}{#1}[true]{%
\expandafter\ifx\csname bxjs@#2##1\endcsname\relax
\bxjs@error@keyval{#1}{##1}%
@@ -1612,7 +1643,7 @@
% 未定義ならエラーを出す。
% \begin{macrocode}
\def\bxjs@set@keyval#1#2#3{%
- \expandafter\let\expandafter\bxjs@next\csname bxjs@kv@#1@#2\endcsname
+ \bxjs@csletcs{bxjs@next}{bxjs@kv@#1@#2}%
\ifx\bxjs@next\relax
\bxjs@error@keyval{#1}{#2}%
#3%
@@ -1678,7 +1709,7 @@
%
% |noscale| オプションの処理。
% \begin{macrocode}
-\DeclareOption{noscale}{\setkeys{bxjs}{scale=1}}
+\DeclareOption{noscale}{\bxjs@depre@opt@do{noscale}{scale=1}}
% \end{macrocode}
%
% \begin{macro}{\bxjs@param@mag}
@@ -1710,7 +1741,8 @@
% \Note |jadriver| は0.9版で用いられた旧称。
% \Note 単なる |ja| という指定は無視される(Pandoc 対策)。
% \begin{macrocode}
-\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver@opt{#1}}
+\define@key{bxjs}{jadriver}{%
+ \bxjs@depre@opt{jadriver}{ja=#1}\edef\bxjs@jadriver@opt{#1}}
\define@key{bxjs}{ja}[\relax]{%
\ifx\relax#1\else\edef\bxjs@jadriver@opt{#1}\fi}
% \end{macrocode}
@@ -1736,86 +1768,76 @@
%
% |japaram| オプションの処理。
% \begin{macrocode}
-\define@key{bxjs}{japaram}{\edef\jsJaParam{#1}}
+\define@key{bxjs}{japaram}{%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+% \end{macrocode}
+%
+% 引数をもつ |pandoc|・|pandoc+| オプションは、その引数を
+% 和文パラメタの指定と見なす。
+% \begin{macrocode}
+\define@key{bxjs}{pandoc}[]{%
+ \ExecuteOptions{pandoc}%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+\define@key{bxjs}{pandoc+}[]{%
+ \ExecuteOptions{pandoc+}%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
% \end{macrocode}
%
% \begin{macro}{\bxjs@magstyle}
% magstyle設定値。(古いイマイチな名前。)
% \begin{macrocode}
-\let\bxjs@magstyle@mag=m
-\let\bxjs@magstyle@real=r
-\let\bxjs@magstyle@xreal=x
+\let\bxjs@magstyle@@mag=m
+\let\bxjs@magstyle@@real=r
+\let\bxjs@magstyle@@xreal=x
% \end{macrocode}
% (新しい素敵な名前。)
-% \Note ただし制御綴としては、|*|付の名前は扱い難いので、|\bxjs@magstyle@xreal|
+% \Note ただし制御綴としては、|*|付の名前は扱い難いので、|\bxjs@magstyle@@xreal|
% の方を優先させる。
% \begin{macrocode}
-\let\bxjs@magstyle@usemag\bxjs@magstyle@mag
-\let\bxjs@magstyle@nomag\bxjs@magstyle@real
-\expandafter\let\csname bxjs@magstyle@nomag*\endcsname\bxjs@magstyle@xreal
+\let\bxjs@magstyle@@usemag\bxjs@magstyle@@mag
+\let\bxjs@magstyle@@nomag\bxjs@magstyle@@real
+\bxjs@cslet{bxjs@magstyle@@nomag*}\bxjs@magstyle@@xreal
% \end{macrocode}
-% |\bxjs@magstyle@default| は既定の値を表す。
+% |\bxjs@magstyle@@default| は既定の値を表す。
% \begin{macrocode}
-\let\bxjs@magstyle@default\bxjs@magstyle@usemag
+\let\bxjs@magstyle@@default\bxjs@magstyle@@usemag
\ifx l\jsEngine \ifnum\luatexversion>86
- \let\bxjs@magstyle@default\bxjs@magstyle@xreal
+ \let\bxjs@magstyle@@default\bxjs@magstyle@@xreal
\fi\fi
\ifjsWithpTeXng
- \let\bxjs@magstyle@default\bxjs@magstyle@xreal
+ \let\bxjs@magstyle@@default\bxjs@magstyle@@xreal
\fi
-\let\bxjs@magstyle\bxjs@magstyle@default
+\let\bxjs@magstyle\bxjs@magstyle@@default
% \end{macrocode}
% \end{macro}
%
% |magstyle| オプションの処理。
% \begin{macrocode}
\define@key{bxjs}{magstyle}{%
- \expandafter\let\expandafter\bxjs@magstyle\csname
- bxjs@magstyle@#1\endcsname
+ \bxjs@csletcs{bxjs@magstyle}{bxjs@magstyle@@#1}%
\ifx\bxjs@magstyle\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option magstyle}\@ehc
- \let\bxjs@magstyle\bxjs@magstyle@default
+ \bxjs@error@keyval{magstyle}{#1}%
+ \let\bxjs@magstyle\bxjs@magstyle@@default
\fi}
% \end{macrocode}
%
% \begin{macro}{\bxjs@geometry}
-% |geometry| オプションの値。
+% |geometry| オプションの指定値。
% \begin{macrocode}
-\let\bxjs@geometry@class=c
-\let\bxjs@geometry@user=u
-\let\bxjs@geometry\bxjs@geometry@class
+\let\bxjs@geometry@@class=c
+\let\bxjs@geometry@@user=u
+\bxjs@declare@enum@option{geometry}{geometry}{class}
% \end{macrocode}
% \end{macro}
%
-% |geometry| オプションの処理。
-% \begin{macrocode}
-\define@key{bxjs}{geometry}{%
- \expandafter\let\expandafter\bxjs@geometry\csname
- bxjs@geometry@#1\endcsname
- \ifx\bxjs@geometry\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option geometry}\@ehc
- \let\bxjs@geometry\bxjs@geometry@class
- \fi}
-% \end{macrocode}
-%
% \begin{macro}{\ifbxjs@fancyhdr}
-% 〔スイッチ〕
+% 〔スイッチ〕 |fancyhdr| の指定値。
% |fancyhdr| パッケージに対する調整を行うか。
% \begin{macrocode}
-\newif\ifbxjs@fancyhdr \bxjs@fancyhdrtrue
+\bxjs@declare@bool@option{fancyhdr}{fancyhdr}{true}
% \end{macrocode}
% \end{macro}
%
-% |fancyhdr| オプションの処理。
-% \begin{macrocode}
-\let\bxjs@kv@fancyhdr@true\bxjs@fancyhdrtrue
-\let\bxjs@kv@fancyhdr@false\bxjs@fancyhdrfalse
-\define@key{bxjs}{fancyhdr}[true]{%
- \bxjs@set@keyval{fancyhdr}{#1}{}}
-% \end{macrocode}
-%
% \begin{macro}{\ifbxjs@dvi@opt}
% |dvi| オプションが指定されたか。
% \begin{macrocode}
@@ -1835,11 +1857,9 @@
% |dvi| オプションの処理。
% \begin{macrocode}
\define@key{bxjs}{dvi}{%
- \expandafter\let\expandafter\bxjs@tmpa\csname
- bxjs@dvidriver@@#1\endcsname
+ \bxjs@csletcs{bxjs@tmpa}{bxjs@dvidriver@@#1}%
\ifx\bxjs@tmpa\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option dvi}\@ehc
+ \bxjs@error@keyval{dvi}{#1}%
\else
% \end{macrocode}
% |\bxjs@driver@given| を未定義にしていることに注意。
@@ -1889,6 +1909,7 @@
% \begin{macrocode}
%\let\bxjs@textwidth@limit@opt\@undefined
\define@key{bxjs}{textwidth-limit}{%
+ \bxjs@depre@opt{textwidth-limit}{textwidth=#1zw}%
\edef\bxjs@textwidth@limit@opt{#1}}
% \end{macrocode}
% \end{macro}
@@ -1924,113 +1945,86 @@
% \begin{macro}{\ifbxjs@whole@zw@lines}
% 〔スイッチ〕 |whole-zw-lines| の指定値。
% \begin{macrocode}
-\newif\ifbxjs@whole@zw@lines \bxjs@whole@zw@linestrue
-\let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue
-\let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse
-\define@key{bxjs}{whole-zw-lines}[true]{\bxjs@set@keyval{wholezwlines}{#1}{}}
+\bxjs@declare@bool@option{whole-zw-lines}{whole@zw@lines}{true}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifbxjs@jaspace@cmd}
% 〔スイッチ〕 |jaspace-cmd| の指定値。
% \begin{macrocode}
-\newif\ifbxjs@jaspace@cmd \bxjs@jaspace@cmdtrue
-\let\bxjs@kv@jaspacecmd@true\bxjs@jaspace@cmdtrue
-\let\bxjs@kv@jaspacecmd@false\bxjs@jaspace@cmdfalse
-\define@key{bxjs}{jaspace-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}}
-\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}}
+\bxjs@declare@bool@option{jaspace-cmd}{jaspace@cmd}{true}
+\define@key{bxjs}{xkanjiskip-cmd}[true]{\setkeys{bxjs}{jaspace-cmd=#1}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifbxjs@fix@at@cmd}
% 〔スイッチ〕 |fix-at-cmd| の指定値。
% \begin{macrocode}
-\newif\ifbxjs@fix@at@cmd \bxjs@fix@at@cmdtrue
-\let\bxjs@kv@fixatcmd@true\bxjs@fix@at@cmdtrue
-\let\bxjs@kv@fixatcmd@false\bxjs@fix@at@cmdfalse
-\define@key{bxjs}{fix-at-cmd}[true]{\bxjs@set@keyval{fixatcmd}{#1}{}}
+\bxjs@declare@bool@option{fix-at-cmd}{fix@at@cmd}{true}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifbxjs@hyperref@enc}
% 〔スイッチ〕 |hyperref-enc| の指定値。
% \begin{macrocode}
-\newif\ifbxjs@hyperref@enc \bxjs@hyperref@enctrue
-\let\bxjs@kv@hyperrefenc@true\bxjs@hyperref@enctrue
-\let\bxjs@kv@hyperrefenc@false\bxjs@hyperref@encfalse
-\define@key{bxjs}{hyperref-enc}[true]{\bxjs@set@keyval{hyperrefenc}{#1}{}}
+\bxjs@declare@bool@option{hyperref-enc}{hyperref@enc}{true}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\bxjs@everyparhook}
% |everyparhook| の指定値。
% \begin{macrocode}
-\chardef\bxjs@everyparhook@none=0
-\chardef\bxjs@everyparhook@compat=1
-\chardef\bxjs@everyparhook@modern=2
-\if j\jsEngine
- \let\bxjs@everyparhook\bxjs@everyparhook@compat
-\else
- \let\bxjs@everyparhook\bxjs@everyparhook@modern
-\fi
-\def\bxjs@kv@everyparhook@none{\let\bxjs@everyparhook\bxjs@everyparhook@none}
-\def\bxjs@kv@everyparhook@compat{\let\bxjs@everyparhook\bxjs@everyparhook@compat}
-\def\bxjs@kv@everyparhook@modern{\let\bxjs@everyparhook\bxjs@everyparhook@modern}
-\define@key{bxjs}{everyparhook}{\bxjs@set@keyval{everyparhook}{#1}{}}
+\chardef\bxjs@everyparhook@@none=0
+\chardef\bxjs@everyparhook@@compat=1
+\chardef\bxjs@everyparhook@@modern=2
+\bxjs@declare@enum@option{everyparhook}{everyparhook}{%
+ \if j\jsEngine compat\else modern\fi}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\bxjs@label@section}
% |label-section| の指定値。
% \begin{macrocode}
-\chardef\bxjs@label@section@none=0
-\chardef\bxjs@label@section@compat=1
-\chardef\bxjs@label@section@modern=2
-\let\bxjs@label@section\bxjs@label@section@compat
-\def\bxjs@kv@labelsection@none{\let\bxjs@label@section\bxjs@label@section@none}
-\def\bxjs@kv@labelsection@compat{\let\bxjs@label@section\bxjs@label@section@compat}
-\def\bxjs@kv@labelsection@modern{\let\bxjs@label@section\bxjs@label@section@modern}
-\define@key{bxjs}{label-section}{\bxjs@set@keyval{labelsection}{#1}{}}
+\chardef\bxjs@label@section@@none=0
+\chardef\bxjs@label@section@@compat=1
+\chardef\bxjs@label@section@@modern=2
+\bxjs@declare@enum@option{label-section}{label@section}{compat}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifbxjs@usezw}
% 〔スイッチ〕 |use-zw| の指定値。
% \begin{macrocode}
-\newif\ifbxjs@usezw \bxjs@usezwtrue
-\bxjs@declare@bool@option{use-zw}{usezw}
-\DeclareOption{nozw}{\setkeys{bxjs}{use-zw=false}}
-\DeclareOption{zw}{\setkeys{bxjs}{use-zw=true}}
+\bxjs@declare@bool@option{use-zw}{usezw}{true}
+\DeclareOption{nozw}{\bxjs@depre@opt@do{nozw}{use-zw=false}}
+\DeclareOption{zw}{\bxjs@depre@opt@do{zw}{use-zw=true}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifbxjs@disguise@js}
% 〔スイッチ〕 |disguise-js| の指定値。
% \begin{macrocode}
-\newif\ifbxjs@disguise@js \bxjs@disguise@jstrue
-\bxjs@declare@bool@option{disguise-js}{disguise@js}
-\DeclareOption{nojs}{\setkeys{bxjs}{disguise-js=false}}
-\DeclareOption{js}{\setkeys{bxjs}{disguise-js=true}}
+\bxjs@declare@bool@option{disguise-js}{disguise@js}{true}
+\DeclareOption{nojs}{\bxjs@depre@opt@do{nojs}{disguise-js=false}}
+\DeclareOption{js}{\bxjs@depre@opt@do{js}{disguise-js=true}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifbxjs@precisetext}
% 〔スイッチ〕 |precise-text| の指定値。
% \begin{macrocode}
-\newif\ifbxjs@precisetext
-\bxjs@declare@bool@option{precise-text}{precisetext}
-\DeclareOption{noprecisetext}{\setkeys{bxjs}{precise-text=false}}
-\DeclareOption{precisetext}{\setkeys{bxjs}{precise-text=true}}
+\bxjs@declare@bool@option{precise-text}{precisetext}{false}
+\DeclareOption{noprecisetext}{\bxjs@depre@opt@do{noprecisetext}{precise-text=false}}
+\DeclareOption{precisetext}{\bxjs@depre@opt@do{precisetext}{precise-text=true}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifbxjs@simplejasetup}
% 〔スイッチ〕 |simple-ja-setup| の指定値。
% \begin{macrocode}
-\newif\ifbxjs@simplejasetup \bxjs@simplejasetuptrue
-\bxjs@declare@bool@option{simple-ja-setup}{simplejasetup}
-\DeclareOption{nosimplejasetup}{\setkeys{bxjs}{simple-ja-setup=false}}
-\DeclareOption{simplejasetup}{\setkeys{bxjs}{simple-ja-setup=true}}
+\bxjs@declare@bool@option{simple-ja-setup}{simplejasetup}{true}
+\DeclareOption{nosimplejasetup}{\bxjs@depre@opt@do{nosimplejasetup}{simple-ja-setup=false}}
+\DeclareOption{simplejasetup}{\bxjs@depre@opt@do{simplejasetup}{simple-ja-setup=true}}
% \end{macrocode}
% \end{macro}
%
@@ -2321,9 +2315,9 @@
% (この場合の既定値は |nomag*| であり、
% エラーの場合は既定値に置き換えられる。)
% \begin{macrocode}
-\ifx\bxjs@magstyle@default\bxjs@magstyle@mag\else
- \ifx\bxjs@magstyle\bxjs@magstyle@mag
- \let\bxjs@magstyle\bxjs@magstyle@default
+\ifx\bxjs@magstyle@@default\bxjs@magstyle@@mag\else
+ \ifx\bxjs@magstyle\bxjs@magstyle@@mag
+ \let\bxjs@magstyle\bxjs@magstyle@@default
\ClassError\bxjs@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@magstyle| の値に応じてスイッチ |jsc@mag| と |jsc@mag@xreal| を
% 設定する。
% \begin{macrocode}
-\ifx\bxjs@magstyle\bxjs@magstyle@mag
+\ifx\bxjs@magstyle\bxjs@magstyle@@mag
\jsc@magtrue
-\else\ifx\bxjs@magstyle\bxjs@magstyle@xreal
+\else\ifx\bxjs@magstyle\bxjs@magstyle@@xreal
\jsc@mag@xrealtrue
\fi\fi
% \end{macrocode}
@@ -3303,18 +3297,39 @@
\def\bxjs@unit@zw{\jsZw}\let\bxjs@unit@zh\bxjs@unit@zw
% \end{macrocode}
%
-% |\bxjs@param@paper| が長さ指定(|{W}{H}|)の場合、
+% |\bxjs@param@paper| が長さ指定の場合、
% |geometry| の形式(|papersize={W,H}|)に変換する。
+% |{W}{H}| の形式について。
+% \begin{macrocode}
+\@tempswafalse
+\def\bxjs@tmpdo{\@ifnextchar\bgroup\bxjs@tmpdo@a\remove@to@nnil}
+\def\bxjs@tmpdo@a#1{\edef\bxjs@tmpa{#1}%
+ \@ifnextchar\bgroup\bxjs@tmpdo@b\remove@to@nnil}
+\def\bxjs@tmpdo@b#1{\edef\bxjs@tmpa{\bxjs@tmpa,#1}%
+ \@ifnextchar\@nnil\bxjs@tmpdo@c\remove@to@nnil}
+\def\bxjs@tmpdo@c\@nnil{\@tempswatrue
+ \edef\bxjs@param@paper{papersize={\bxjs@tmpa}}}
+\expandafter\bxjs@tmpdo\bxjs@param@paper\@nnil
+% \end{macrocode}
+% |W,H| の形式について。
+% \begin{macrocode}
+\if@tempswa\else
+ \def\bxjs@tmpa{\@nil,\@nil}
+ \def\bxjs@tmpdo#1,#2,#3\@nnil{%
+ \def\bxjs@tmpb{#3}\ifx\bxjs@tmpa\bxjs@tmpb
+ \@tempswatrue\edef\bxjs@param@paper{papersize={#1,#2}}\fi}
+ \expandafter\bxjs@tmpdo\bxjs@param@paper,\@nil,\@nil\@nnil
+\fi
+% \end{macrocode}
+% |W*H| の形式について。
% \begin{macrocode}
-\def\bxjs@tmpdo{\futurelet\bxjs@tmpa\bxjs@tmpdo@a}
-\def\bxjs@tmpdo@a{%
- \ifx\bxjs@tmpa\bgroup \expandafter\bxjs@tmpdo@b
- \else \expandafter\bxjs@tmpdo@c \fi}
-\def\bxjs@tmpdo@b#1#2#3\@nil{\edef\bxjs@param@paper{papersize={#1,#2}}}
-\def\bxjs@tmpdo@c#1\@nil{\bxjs@tmpdo@d#1,,\@nil}
-\def\bxjs@tmpdo@d#1,#2,#3\@nil{%
- \ifx\@nil#3\@nil\else \edef\bxjs@param@paper{papersize={#1,#2}}\fi}
-\expandafter\bxjs@tmpdo\bxjs@param@paper\@empty\@empty\@nil
+\if@tempswa\else
+ \def\bxjs@tmpa{\@nil*\@nil}
+ \def\bxjs@tmpdo#1*#2*#3\@nnil{%
+ \def\bxjs@tmpb{#3}\ifx\bxjs@tmpa\bxjs@tmpb
+ \@tempswatrue\edef\bxjs@param@paper{papersize={#1,#2}}\fi}
+ \expandafter\bxjs@tmpdo\bxjs@param@paper*\@nil*\@nil\@nnil
+\fi
% \end{macrocode}
%
% \begin{macro}{\bxjs@layout@paper}
@@ -3537,7 +3552,7 @@
%
% |geoemtry=class| の場合に、実際に |geometry| パッケージを読みこむ。
% \begin{macrocode}
-\ifx\bxjs@geometry\bxjs@geometry@class
+\ifx\bxjs@geometry\bxjs@geometry@@class
% \end{macrocode}
%
% |geometry| のドライバオプション指定。
@@ -3633,7 +3648,7 @@
% \begin{ZRnote}
% |geometry=user|の場合の処理。
% \begin{macrocode}
-\else\ifx\bxjs@geometry\bxjs@geometry@user
+\else\ifx\bxjs@geometry\bxjs@geometry@@user
% \end{macrocode}
%
% この場合はユーザが何らかの方法(例えば |geometry| を読み込む)
@@ -4901,7 +4916,7 @@
% \begin{macro}{\@secpos}
% 節番号の接尾辞。
% \begin{macrocode}
-\ifnum\bxjs@label@section=\bxjs@label@section@compat\else
+\ifnum\bxjs@label@section=\bxjs@label@section@@compat\else
\def\@secapp{\presectionname}
\def\@secpos{\postsectionname}
\fi
@@ -4911,7 +4926,7 @@
% \begin{macro}{\labelsection}
% 節番号の出力書式。
% \begin{macrocode}
-\ifnum\bxjs@label@section=\bxjs@label@section@modern
+\ifnum\bxjs@label@section=\bxjs@label@section@@modern
\def\labelsection{\@secapp\thesection\@secpos}
\fi
% \end{macrocode}
@@ -5001,7 +5016,7 @@
% \begin{macro}{\bxjs@if@ceph}
% |everyparhook=compat| である場合にのみ直後のトークンを実行する。
% \begin{macrocode}
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\let\bxjs@if@ceph\@firstofone
\else \let\bxjs@if@ceph\@gobble
\fi
@@ -5196,7 +5211,7 @@
% \begin{macrocode}
\renewcommand{\thepart}{\@Roman\c@part}
%<*!book&!report>
-\ifnum\bxjs@label@section=\bxjs@label@section@compat
+\ifnum\bxjs@label@section=\bxjs@label@section@@compat
\renewcommand{\thesection}{\presectionname\@arabic\c@section\postsectionname}
\renewcommand{\thesubsection}{\@arabic\c@section.\@arabic\c@subsection}
\else
@@ -6274,7 +6289,7 @@
\newcommand{\appendix}{\par
\setcounter{section}{0}%
\setcounter{subsection}{0}%
- \ifnum\bxjs@label@section=\bxjs@label@section@compat
+ \ifnum\bxjs@label@section=\bxjs@label@section@@compat
\gdef\presectionname{\appendixname}%
\gdef\postsectionname{}%
% \gdef\thesection{\@Alph\c@section}% [2003-03-02]
@@ -7620,7 +7635,7 @@
% これの初期値を先述の |\jsInhibitGlueAtParTop| とする。
% \begin{macrocode}
\def\everyparhook{\jsInhibitGlueAtParTop}
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\g@addto@macro\bxjs@begin@document@hook{\everypar{\everyparhook}}
\fi
% \end{macrocode}
@@ -7681,7 +7696,7 @@
% これは、|everyparhook=compat| の場合にのみ実行する。
% \end{ZRnote}
% \begin{macrocode}
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
% \end{macrocode}
%
% これだけではいけないようです。あちこちに |\everypar| を初期化するコマンドが
@@ -7817,7 +7832,7 @@
% のを防ぐため遅延させる。
% \end{ZRnote}
% \begin{macrocode}
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none\else
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@none\else
\AtEndOfPackage{%
\def\@gnewline #1{%
\ifvmode
@@ -8829,7 +8844,7 @@
% |everyparhook=modern| の場合の、|\everyparhook| の有効化の実装。
% \Note 本体開始時ではなく最初から有効化していることに注意。
% \begin{macrocode}
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@modern
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@modern
% \end{macrocode}
% まず |\everypar| を“乗っ取る”処理を行う。
% \begin{macrocode}
@@ -9439,16 +9454,16 @@
\@onlypreamble\bxjs@get@kanjiEmbed
\def\bxjs@get@kanjiEmbed{%
\begingroup\setbox\z@=\hbox{%
- \global\let\bxjs@do\@empty
+ \global\let\bxjs@tmpdo\@empty
\def\bxjs@next##1##2##3{%
\def##1####1##3 ####2\@nil####3\@nnil{%
\ifx$####1$\gdef##2{####2}\fi}%
- \g@addto@macro\bxjs@do{%
+ \g@addto@macro\bxjs@tmpdo{%
\expandafter##1\bxjs@tmpa\@nil##3 \@nil\@nnil}}%
- \bxjs@next\bxjs@do@a\bxjs@g@tmpa{kanjiEmbed}%
- \bxjs@next\bxjs@do@b\bxjs@g@tmpa{jaEmbed}%
- \bxjs@next\bxjs@do@c\bxjs@g@tmpb{kanjiVariant}%
- \bxjs@next\bxjs@do@d\bxjs@g@tmpb{jaVariant}%
+ \bxjs@next\bxjs@tmpdo@a\bxjs@g@tmpa{kanjiEmbed}%
+ \bxjs@next\bxjs@tmpdo@b\bxjs@g@tmpa{jaEmbed}%
+ \bxjs@next\bxjs@tmpdo@c\bxjs@g@tmpb{kanjiVariant}%
+ \bxjs@next\bxjs@tmpdo@d\bxjs@g@tmpb{jaVariant}%
%
\global\let\bxjs@g@tmpa\relax
\global\let\bxjs@g@tmpb\relax
@@ -9466,7 +9481,7 @@
\@tempswatrue
\loop\if@tempswa
\read\@inputcheck to\bxjs@tmpa
- \bxjs@do
+ \bxjs@tmpdo
\ifeof\@inputcheck \@tempswafalse \fi
\repeat
\fi
@@ -10260,11 +10275,11 @@
%
% |ltjs*| クラスの定義と同等になるようにパッチを当てる。
% \begin{macrocode}
-\unless\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none
+\unless\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@none
\begingroup
\let\%\@percentchar \def\@#1{[[\detokenize{#1}]]}
\@gobble\if\def\bxjs@tmpa{\@{\everypar{}\fi}}
- \ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat
+ \ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\@gobble\if\def\bxjs@tmpa{\@{\everypar{\everyparhook}\fi}}\fi
\directlua{
local function patchcmd(cs, code, from, to)
@@ -10562,6 +10577,49 @@
\bxjs@set@keyval{strong}{#1}{}}
% \end{macrocode}
%
+% \begin{macro}{\ifbxjs@jp@or@indent}
+% \begin{macro}{\ifbxjs@jp@or@secnumdepth}
+% \begin{macro}{\ifbxjs@jp@or@block@heading}
+% プレアンブルでのレイアウト上書きを許可するか。
+% 既定値は真。
+% \begin{macrocode}
+\newif\ifbxjs@jp@or@indent \bxjs@jp@or@indenttrue
+\newif\ifbxjs@jp@or@secnumdepth \bxjs@jp@or@secnumdepthtrue
+\newif\ifbxjs@jp@or@block@heading \bxjs@jp@or@block@headingtrue
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% クラスで |pandoc+| が指定された場合、内部和文パラメタ |_plus| が
+% 和文ドライバに渡される。
+% この場合、レイアウト上書きを禁止する。
+% \Note |_plus| は必ずパラメタ列の先頭にあるので、
+% 個別のパラメタ設定の方が常に優先される。
+% \begin{macrocode}
+\define@key{bxjsPan}{_plus}[]{%
+ \bxjs@jp@or@indentfalse
+ \bxjs@jp@or@secnumdepthfalse
+ \bxjs@jp@or@block@headingfalse}
+% \end{macrocode}
+%
+% レイアウト上書き許可オプション
+% (|or-indent|・|or-secnumdepth|・|or-block-heading|)の処理。
+% \begin{macrocode}
+\let\bxjs@kv@orindent@true\bxjs@jp@or@indenttrue
+\let\bxjs@kv@orindent@false\bxjs@jp@or@indentfalse
+\define@key{bxjsPan}{or-indent}[true]{%
+ \bxjs@set@keyval{orindent}{#1}{}}
+\let\bxjs@kv@orsecnumdepth@true\bxjs@jp@or@secnumdepthtrue
+\let\bxjs@kv@orsecnumdepth@false\bxjs@jp@or@secnumdepthfalse
+\define@key{bxjsPan}{or-secnumdepth}[true]{%
+ \bxjs@set@keyval{orsecnumdepth}{#1}{}}
+\let\bxjs@kv@orblockheading@true\bxjs@jp@or@block@headingtrue
+\let\bxjs@kv@orblockheading@false\bxjs@jp@or@block@headingfalse
+\define@key{bxjsPan}{or-block-heading}[true]{%
+ \bxjs@set@keyval{blockheading}{#1}{}}
+% \end{macrocode}
+%
% 実際の |japaram| の値を適用する。
% \begin{macrocode}
\def\bxjs@next#1{\bxjs@safe@setkeys{bxjsPan}{#1}}
@@ -10843,6 +10901,66 @@
% \end{macrocode}
%
%^^A----------------
+% \subsection{レイアウト上書き禁止}
+%
+% レイアウト上書き禁止の実装は |etoolbox| の機能を使う。
+% \begin{macrocode}
+\ifjsWitheTeX
+\@onlypreamble\bxjs@info@or@ban
+\def\bxjs@info@or@ban#1{%
+ \PackageInfo\bxjs@clsname
+ {Freeze layout on '#1',\MessageBreak detected}}
+% \end{macrocode}
+%
+% \paragraph{indentについて}
+% indent変数を指定しない場合に
+% 「段落表現形式をインデント方式に変更する」
+% 動作を抑止する。
+% \begin{macrocode}
+\unless\ifbxjs@jp@or@indent
+ \bxjs@info@or@ban{indent}
+% \end{macrocode}
+% |parskip| がある場合はそれを読み込もうとするため、
+% |parskip| の読込をブロックする。
+% \begin{macrocode}
+ \IfFileExists{parskip.sty}{%
+ \pandocSkipLoadPackage{parskip}%
+% \end{macrocode}
+% |parskip| がない場合はパラメタを変更しようとするため、
+% 該当のパラメタを復帰させる。
+% \begin{macrocode}
+ }{%else
+ \eappto\bxjs@endpreamble@hook{%
+ \parindent=\the\parindent\relax
+ \parskip=\the\parskip\relax}}
+\fi
+%
+% \paragraph{secnumdepthについて}
+% |secnumdepth| の値を決めるのはnumbersections変数
+% (|-N|/|--number-sections| オプションに連動する)
+% やsecnumdepth変数であるが、何れにしても |secnumdepth|
+% の値は書き換えられる。
+% そのため、|secnumdepth| を復帰させる。
+\ifbxjs@jp@or@secnumdepth\else
+ \bxjs@info@or@ban{secnumdepth}
+ \eappto\bxjs@endpreamble@hook{%
+ \c@secnumdepth=\the\c@secnumdepth\relax}
+\fi
+%
+% \paragraph{block-headingについて}
+\ifbxjs@jp@or@block@heading\else
+ \let\bxjs@frozen@paragraph\paragraph
+ \let\bxjs@frozen@subparagraph\subparagraph
+ \bxjs@info@or@ban{block-heading}
+ \appto\bxjs@endpreamble@hook{%
+ \let\oldparagraph\@undefined
+ \let\paragraph\bxjs@frozen@paragraph
+ \let\subparagraph\bxjs@frozen@subparagraph}
+\fi
+\fi
+% \end{macrocode}
+%
+%^^A----------------
% \subsection{paragraphのマーク}
%
% BXJSクラスでは |\paragraph| の見出しの前に |\jsParagraphMark|
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls
index a0ce52858b4..4f2e47222cb 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls
@@ -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@clsname{bxjsarticle}
\newif\ifjsc@needsp@tch
@@ -183,13 +183,18 @@
\newif\if@enablejfam \@enablejfamfalse
\@onlypreamble\bxjs@setpaper
\def\bxjs@setpaper#1{\def\bxjs@param@paper{#1}}
+\newif\ifbxjs@iso@bsize
+\DeclareOption{iso-bsize}{\bxjs@iso@bsizetrue}
+\@onlypreamble\bxjs@setpaper@bsize
+\def\bxjs@setpaper@bsize#1{\edef\bxjs@param@paper{%
+ b#1\ifbxjs@iso@bsize paper\else j\fi}}
\DeclareOption{a3paper}{\bxjs@setpaper{a3paper}}
\DeclareOption{a4paper}{\bxjs@setpaper{a4paper}}
\DeclareOption{a5paper}{\bxjs@setpaper{a5paper}}
\DeclareOption{a6paper}{\bxjs@setpaper{a6paper}}
-\DeclareOption{b4paper}{\bxjs@setpaper{b4j}}
-\DeclareOption{b5paper}{\bxjs@setpaper{b5j}}
-\DeclareOption{b6paper}{\bxjs@setpaper{b6j}}
+\DeclareOption{b4paper}{\bxjs@setpaper@bsize{4}}
+\DeclareOption{b5paper}{\bxjs@setpaper@bsize{5}}
+\DeclareOption{b6paper}{\bxjs@setpaper@bsize{6}}
\DeclareOption{a4j}{\bxjs@setpaper{a4paper}}
\DeclareOption{a5j}{\bxjs@setpaper{a5paper}}
\DeclareOption{b4j}{\bxjs@setpaper{b4j}}
@@ -199,19 +204,16 @@
\DeclareOption{letterpaper}{\bxjs@setpaper{letterpaper}}
\DeclareOption{legalpaper}{\bxjs@setpaper{legalpaper}}
\DeclareOption{executivepaper}{\bxjs@setpaper{executivepaper}}
-\def\bxjs@tmpb#1#2{\DeclareOption{#1}{\bxjs@setpaper{#2}}}
\@for\bxjs@tmpa:={%
a0,a1,a2,c0,c1,c2,c3,c4,c5,c6,ansia,ansib,ansic,ansid,ansie%
}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{\bxjs@tmpa paper}{\bxjs@tmpa paper}%
+ \noexpand\DeclareOption{\bxjs@tmpa paper}%
+ {\noexpand\bxjs@setpaper{\bxjs@tmpa paper}}%
}\bxjs@next}
-\bxjs@tmpb{screen}{screen}
+\DeclareOption{screen}{\bxjs@setpaper{screen}}
\@for\bxjs@tmpa:={0,1,2,3}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{b\bxjs@tmpa paper}{b\bxjs@tmpa j}%
-}\bxjs@next}
-\@for\bxjs@tmpa:={0,1,2,3,4,5,6}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{A\bxjs@tmpa paper}{a\bxjs@tmpa paper}%
- \noexpand\bxjs@tmpb{B\bxjs@tmpa paper}{b\bxjs@tmpa paper}%
+ \noexpand\DeclareOption{b\bxjs@tmpa paper}%
+ {\noexpand\bxjs@setpaper@bsize{\bxjs@tmpa}}%
}\bxjs@next}
\DeclareOption{a4varpaper}{\bxjs@setpaper{{210truemm}{283truemm}}}
\DeclareOption{b5varpaper}{\bxjs@setpaper{{182truemm}{230truemm}}}
@@ -255,9 +257,9 @@
\DeclareOption{10.5ptj}{\bxjs@setjbasefontsize{10.5pt}}
\DeclareOption{11ptj}{\bxjs@setjbasefontsize{11pt}}
\DeclareOption{12ptj}{\bxjs@setjbasefontsize{12pt}}
-\DeclareOption{usemag}{\let\bxjs@magstyle\bxjs@magstyle@usemag}
-\DeclareOption{nomag}{\let\bxjs@magstyle\bxjs@magstyle@nomag}
-\DeclareOption{nomag*}{\let\bxjs@magstyle\bxjs@magstyle@xreal}
+\DeclareOption{usemag}{\let\bxjs@magstyle\bxjs@magstyle@@usemag}
+\DeclareOption{nomag}{\let\bxjs@magstyle\bxjs@magstyle@@nomag}
+\DeclareOption{nomag*}{\let\bxjs@magstyle\bxjs@magstyle@@xreal}
\if j\jsEngine
\hour\time \divide\hour by 60\relax
\@tempcnta\hour \multiply\@tempcnta 60\relax
@@ -373,12 +375,22 @@
\xdef\bxjs@gtmpa{\the\@tempdimb}%
\endgroup #1=\bxjs@gtmpa\relax}
\DeclareOption{pandoc}{%
+ \bxjs@apply@pandoc@opt}
+\@onlypreamble\bxjs@apply@pandoc@opt
+\def\bxjs@apply@pandoc@opt{%
\g@addto@macro\bxjs@post@option@hook{%
\bxjs@oldfontcommandstrue
\setkeys{bxjs}{ja=pandoc}%
\let\bxjs@engine@given=*}%
- \def\bxjs@driver@opt{dvipdfmx}%
- \bxjs@dvi@opttrue}
+ \ifx\bxjs@driver@opt\@undefined
+ \def\bxjs@driver@opt{dvipdfmx}%
+ \bxjs@dvi@opttrue
+ \fi
+ \global\let\bxjs@apply@pandoc@opt\relax}
+\DeclareOption{pandoc+}{%
+ \g@addto@macro\bxjs@post@option@hook{%
+ \edef\jsJaParam{\bxjs@catopt{_plus}\jsJaParam}}%
+ \ExecuteOptions{pandoc}}
\DeclareOption{autodetect-engine}{%
\let\bxjs@engine@given=*}
\DeclareOption{latex}{%
@@ -436,13 +448,18 @@
\DeclareOption{xetex}{%
\def\bxjs@driver@opt{xetex}%
\let\bxjs@driver@given\bxjs@driver@@xetex}
-\DeclareOption{dvipdfmx-if-dvi}{%
+\DeclareOption{dvipdfmx-if-dvi}{\bxjs@depre@opt@do{dvipdfmx-if-dvi}{dvi=dvipdfmx}}
+\@onlypreamble\bxjs@depre@opt
+\def\bxjs@depre@opt#1#2{%
\ClassWarningNoLine\bxjs@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@depre@opt@do
+\def\bxjs@depre@opt@do#1#2{%
+ \bxjs@depre@opt{#1}{#2}%
+ \setkeys{bxjs}{#2}}
\newif\ifbxjs@bigcode \bxjs@bigcodetrue
\DeclareOption{nobigcode}{%
\bxjs@bigcodefalse}
@@ -473,21 +490,24 @@
\setkeys{#1}{#2}%
\let\KV@errx\bxjs@save@KV@errx}
\@onlypreamble\bxjs@declare@enum@option
-\def\bxjs@declare@enum@option#1#2{%
+\def\bxjs@declare@enum@option#1#2#3{%
+ \bxjs@csletcs{bxjs@#2}{bxjs@#2@@#3}%
\define@key{bxjs}{#1}{%
\expandafter\ifx\csname bxjs@#2@@##1\endcsname\relax
\bxjs@error@keyval{#1}{##1}%
\else \bxjs@csletcs{bxjs@#2}{bxjs@#2@@##1}%
\fi}}
\@onlypreamble\bxjs@declare@bool@option
-\def\bxjs@declare@bool@option#1#2{%
+\def\bxjs@declare@bool@option#1#2#3{%
+ \csname newif\expandafter\endcsname\csname ifbxjs@#2\endcsname
+ \@nameuse{bxjs@#2#3}%
\define@key{bxjs}{#1}[true]{%
\expandafter\ifx\csname bxjs@#2##1\endcsname\relax
\bxjs@error@keyval{#1}{##1}%
\else \@nameuse{bxjs@#2##1}%
\fi}}
\def\bxjs@set@keyval#1#2#3{%
- \expandafter\let\expandafter\bxjs@next\csname bxjs@kv@#1@#2\endcsname
+ \bxjs@csletcs{bxjs@next}{bxjs@kv@#1@#2}%
\ifx\bxjs@next\relax
\bxjs@error@keyval{#1}{#2}%
#3%
@@ -508,56 +528,50 @@
\edef\bxjs@scale@opt{#1}%
\let\jsScale\bxjs@scale@opt}
\define@key{bxjs}{jafontscale}{\setkeys{bxjs}{scale=#1}}
-\DeclareOption{noscale}{\setkeys{bxjs}{scale=1}}
+\DeclareOption{noscale}{\bxjs@depre@opt@do{noscale}{scale=1}}
\let\bxjs@param@mag\relax
\define@key{bxjs}{mag}{\edef\bxjs@param@mag{#1}}
\define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}}
\let\bxjs@jadriver\relax
-\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver@opt{#1}}
+\define@key{bxjs}{jadriver}{%
+ \bxjs@depre@opt{jadriver}{ja=#1}\edef\bxjs@jadriver@opt{#1}}
\define@key{bxjs}{ja}[\relax]{%
\ifx\relax#1\else\edef\bxjs@jadriver@opt{#1}\fi}
\let\jsJaFont\@empty
\define@key{bxjs}{jafont}{\edef\jsJaFont{#1}}
\let\jsJaParam\@empty
-\define@key{bxjs}{japaram}{\edef\jsJaParam{#1}}
-\let\bxjs@magstyle@mag=m
-\let\bxjs@magstyle@real=r
-\let\bxjs@magstyle@xreal=x
-\let\bxjs@magstyle@usemag\bxjs@magstyle@mag
-\let\bxjs@magstyle@nomag\bxjs@magstyle@real
-\expandafter\let\csname bxjs@magstyle@nomag*\endcsname\bxjs@magstyle@xreal
-\let\bxjs@magstyle@default\bxjs@magstyle@usemag
+\define@key{bxjs}{japaram}{%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+\define@key{bxjs}{pandoc}[]{%
+ \ExecuteOptions{pandoc}%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+\define@key{bxjs}{pandoc+}[]{%
+ \ExecuteOptions{pandoc+}%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+\let\bxjs@magstyle@@mag=m
+\let\bxjs@magstyle@@real=r
+\let\bxjs@magstyle@@xreal=x
+\let\bxjs@magstyle@@usemag\bxjs@magstyle@@mag
+\let\bxjs@magstyle@@nomag\bxjs@magstyle@@real
+\bxjs@cslet{bxjs@magstyle@@nomag*}\bxjs@magstyle@@xreal
+\let\bxjs@magstyle@@default\bxjs@magstyle@@usemag
\ifx l\jsEngine \ifnum\luatexversion>86
- \let\bxjs@magstyle@default\bxjs@magstyle@xreal
+ \let\bxjs@magstyle@@default\bxjs@magstyle@@xreal
\fi\fi
\ifjsWithpTeXng
- \let\bxjs@magstyle@default\bxjs@magstyle@xreal
+ \let\bxjs@magstyle@@default\bxjs@magstyle@@xreal
\fi
-\let\bxjs@magstyle\bxjs@magstyle@default
+\let\bxjs@magstyle\bxjs@magstyle@@default
\define@key{bxjs}{magstyle}{%
- \expandafter\let\expandafter\bxjs@magstyle\csname
- bxjs@magstyle@#1\endcsname
+ \bxjs@csletcs{bxjs@magstyle}{bxjs@magstyle@@#1}%
\ifx\bxjs@magstyle\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option magstyle}\@ehc
- \let\bxjs@magstyle\bxjs@magstyle@default
- \fi}
-\let\bxjs@geometry@class=c
-\let\bxjs@geometry@user=u
-\let\bxjs@geometry\bxjs@geometry@class
-\define@key{bxjs}{geometry}{%
- \expandafter\let\expandafter\bxjs@geometry\csname
- bxjs@geometry@#1\endcsname
- \ifx\bxjs@geometry\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option geometry}\@ehc
- \let\bxjs@geometry\bxjs@geometry@class
+ \bxjs@error@keyval{magstyle}{#1}%
+ \let\bxjs@magstyle\bxjs@magstyle@@default
\fi}
-\newif\ifbxjs@fancyhdr \bxjs@fancyhdrtrue
-\let\bxjs@kv@fancyhdr@true\bxjs@fancyhdrtrue
-\let\bxjs@kv@fancyhdr@false\bxjs@fancyhdrfalse
-\define@key{bxjs}{fancyhdr}[true]{%
- \bxjs@set@keyval{fancyhdr}{#1}{}}
+\let\bxjs@geometry@@class=c
+\let\bxjs@geometry@@user=u
+\bxjs@declare@enum@option{geometry}{geometry}{class}
+\bxjs@declare@bool@option{fancyhdr}{fancyhdr}{true}
\newif\ifbxjs@dvi@opt
\let\bxjs@dvidriver@@dvipdfmx=\bxjs@driver@@dvipdfmx
\let\bxjs@dvidriver@@dvips=\bxjs@driver@@dvips
@@ -565,11 +579,9 @@
\let\bxjs@dvidriver@@xdvi=\bxjs@driver@@dvimode
\let\bxjs@dvidriver@@nodvidriver=\bxjs@driver@@none
\define@key{bxjs}{dvi}{%
- \expandafter\let\expandafter\bxjs@tmpa\csname
- bxjs@dvidriver@@#1\endcsname
+ \bxjs@csletcs{bxjs@tmpa}{bxjs@dvidriver@@#1}%
\ifx\bxjs@tmpa\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option dvi}\@ehc
+ \bxjs@error@keyval{dvi}{#1}%
\else
\def\bxjs@driver@opt{#1}%
\let\bxjs@driver@given\@undefined
@@ -584,6 +596,7 @@
\define@key{bxjs}{layout}{%
\bxjs@set@keyval{layout}{#1}{}}
\define@key{bxjs}{textwidth-limit}{%
+ \bxjs@depre@opt{textwidth-limit}{textwidth=#1zw}%
\edef\bxjs@textwidth@limit@opt{#1}}
\define@key{bxjs}{textwidth}{\edef\bxjs@textwidth@opt{#1}}
\define@key{bxjs}{line_length}{\setkeys{bxjs}{textwidth=#1}}
@@ -591,59 +604,32 @@
\define@key{bxjs}{number_of_lines}{\setkeys{bxjs}{number-of-lines=#1}}
\define@key{bxjs}{paragraph-mark}{%
\edef\bxjs@paragraph@mark{#1}}
-\newif\ifbxjs@whole@zw@lines \bxjs@whole@zw@linestrue
-\let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue
-\let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse
-\define@key{bxjs}{whole-zw-lines}[true]{\bxjs@set@keyval{wholezwlines}{#1}{}}
-\newif\ifbxjs@jaspace@cmd \bxjs@jaspace@cmdtrue
-\let\bxjs@kv@jaspacecmd@true\bxjs@jaspace@cmdtrue
-\let\bxjs@kv@jaspacecmd@false\bxjs@jaspace@cmdfalse
-\define@key{bxjs}{jaspace-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}}
-\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}}
-\newif\ifbxjs@fix@at@cmd \bxjs@fix@at@cmdtrue
-\let\bxjs@kv@fixatcmd@true\bxjs@fix@at@cmdtrue
-\let\bxjs@kv@fixatcmd@false\bxjs@fix@at@cmdfalse
-\define@key{bxjs}{fix-at-cmd}[true]{\bxjs@set@keyval{fixatcmd}{#1}{}}
-\newif\ifbxjs@hyperref@enc \bxjs@hyperref@enctrue
-\let\bxjs@kv@hyperrefenc@true\bxjs@hyperref@enctrue
-\let\bxjs@kv@hyperrefenc@false\bxjs@hyperref@encfalse
-\define@key{bxjs}{hyperref-enc}[true]{\bxjs@set@keyval{hyperrefenc}{#1}{}}
-\chardef\bxjs@everyparhook@none=0
-\chardef\bxjs@everyparhook@compat=1
-\chardef\bxjs@everyparhook@modern=2
-\if j\jsEngine
- \let\bxjs@everyparhook\bxjs@everyparhook@compat
-\else
- \let\bxjs@everyparhook\bxjs@everyparhook@modern
-\fi
-\def\bxjs@kv@everyparhook@none{\let\bxjs@everyparhook\bxjs@everyparhook@none}
-\def\bxjs@kv@everyparhook@compat{\let\bxjs@everyparhook\bxjs@everyparhook@compat}
-\def\bxjs@kv@everyparhook@modern{\let\bxjs@everyparhook\bxjs@everyparhook@modern}
-\define@key{bxjs}{everyparhook}{\bxjs@set@keyval{everyparhook}{#1}{}}
-\chardef\bxjs@label@section@none=0
-\chardef\bxjs@label@section@compat=1
-\chardef\bxjs@label@section@modern=2
-\let\bxjs@label@section\bxjs@label@section@compat
-\def\bxjs@kv@labelsection@none{\let\bxjs@label@section\bxjs@label@section@none}
-\def\bxjs@kv@labelsection@compat{\let\bxjs@label@section\bxjs@label@section@compat}
-\def\bxjs@kv@labelsection@modern{\let\bxjs@label@section\bxjs@label@section@modern}
-\define@key{bxjs}{label-section}{\bxjs@set@keyval{labelsection}{#1}{}}
-\newif\ifbxjs@usezw \bxjs@usezwtrue
-\bxjs@declare@bool@option{use-zw}{usezw}
-\DeclareOption{nozw}{\setkeys{bxjs}{use-zw=false}}
-\DeclareOption{zw}{\setkeys{bxjs}{use-zw=true}}
-\newif\ifbxjs@disguise@js \bxjs@disguise@jstrue
-\bxjs@declare@bool@option{disguise-js}{disguise@js}
-\DeclareOption{nojs}{\setkeys{bxjs}{disguise-js=false}}
-\DeclareOption{js}{\setkeys{bxjs}{disguise-js=true}}
-\newif\ifbxjs@precisetext
-\bxjs@declare@bool@option{precise-text}{precisetext}
-\DeclareOption{noprecisetext}{\setkeys{bxjs}{precise-text=false}}
-\DeclareOption{precisetext}{\setkeys{bxjs}{precise-text=true}}
-\newif\ifbxjs@simplejasetup \bxjs@simplejasetuptrue
-\bxjs@declare@bool@option{simple-ja-setup}{simplejasetup}
-\DeclareOption{nosimplejasetup}{\setkeys{bxjs}{simple-ja-setup=false}}
-\DeclareOption{simplejasetup}{\setkeys{bxjs}{simple-ja-setup=true}}
+\bxjs@declare@bool@option{whole-zw-lines}{whole@zw@lines}{true}
+\bxjs@declare@bool@option{jaspace-cmd}{jaspace@cmd}{true}
+\define@key{bxjs}{xkanjiskip-cmd}[true]{\setkeys{bxjs}{jaspace-cmd=#1}}
+\bxjs@declare@bool@option{fix-at-cmd}{fix@at@cmd}{true}
+\bxjs@declare@bool@option{hyperref-enc}{hyperref@enc}{true}
+\chardef\bxjs@everyparhook@@none=0
+\chardef\bxjs@everyparhook@@compat=1
+\chardef\bxjs@everyparhook@@modern=2
+\bxjs@declare@enum@option{everyparhook}{everyparhook}{%
+ \if j\jsEngine compat\else modern\fi}
+\chardef\bxjs@label@section@@none=0
+\chardef\bxjs@label@section@@compat=1
+\chardef\bxjs@label@section@@modern=2
+\bxjs@declare@enum@option{label-section}{label@section}{compat}
+\bxjs@declare@bool@option{use-zw}{usezw}{true}
+\DeclareOption{nozw}{\bxjs@depre@opt@do{nozw}{use-zw=false}}
+\DeclareOption{zw}{\bxjs@depre@opt@do{zw}{use-zw=true}}
+\bxjs@declare@bool@option{disguise-js}{disguise@js}{true}
+\DeclareOption{nojs}{\bxjs@depre@opt@do{nojs}{disguise-js=false}}
+\DeclareOption{js}{\bxjs@depre@opt@do{js}{disguise-js=true}}
+\bxjs@declare@bool@option{precise-text}{precisetext}{false}
+\DeclareOption{noprecisetext}{\bxjs@depre@opt@do{noprecisetext}{precise-text=false}}
+\DeclareOption{precisetext}{\bxjs@depre@opt@do{precisetext}{precise-text=true}}
+\bxjs@declare@bool@option{simple-ja-setup}{simplejasetup}{true}
+\DeclareOption{nosimplejasetup}{\bxjs@depre@opt@do{nosimplejasetup}{simple-ja-setup=false}}
+\DeclareOption{simplejasetup}{\bxjs@depre@opt@do{simplejasetup}{simple-ja-setup=true}}
\let\bxjs@org@removeelement\@removeelement
\def\@removeelement#1#2#3{%
\def\reserved@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@magstyle@default\bxjs@magstyle@mag\else
- \ifx\bxjs@magstyle\bxjs@magstyle@mag
- \let\bxjs@magstyle\bxjs@magstyle@default
+\ifx\bxjs@magstyle@@default\bxjs@magstyle@@mag\else
+ \ifx\bxjs@magstyle\bxjs@magstyle@@mag
+ \let\bxjs@magstyle\bxjs@magstyle@@default
\ClassError\bxjs@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@param@basefontsize<10pt \def\n@baseline{15}%
\else \def\n@baseline{16}\fi
-\ifx\bxjs@magstyle\bxjs@magstyle@mag
+\ifx\bxjs@magstyle\bxjs@magstyle@@mag
\jsc@magtrue
-\else\ifx\bxjs@magstyle\bxjs@magstyle@xreal
+\else\ifx\bxjs@magstyle\bxjs@magstyle@@xreal
\jsc@mag@xrealtrue
\fi\fi
\ifx\bxjs@param@mag\relax
@@ -1082,15 +1068,29 @@
\setlength{\topskip}{10\p@?}
\def\bxjs@unit@trueQ{0.25truemm}\let\bxjs@unit@trueH\bxjs@unit@trueQ
\def\bxjs@unit@zw{\jsZw}\let\bxjs@unit@zh\bxjs@unit@zw
-\def\bxjs@tmpdo{\futurelet\bxjs@tmpa\bxjs@tmpdo@a}
-\def\bxjs@tmpdo@a{%
- \ifx\bxjs@tmpa\bgroup \expandafter\bxjs@tmpdo@b
- \else \expandafter\bxjs@tmpdo@c \fi}
-\def\bxjs@tmpdo@b#1#2#3\@nil{\edef\bxjs@param@paper{papersize={#1,#2}}}
-\def\bxjs@tmpdo@c#1\@nil{\bxjs@tmpdo@d#1,,\@nil}
-\def\bxjs@tmpdo@d#1,#2,#3\@nil{%
- \ifx\@nil#3\@nil\else \edef\bxjs@param@paper{papersize={#1,#2}}\fi}
-\expandafter\bxjs@tmpdo\bxjs@param@paper\@empty\@empty\@nil
+\@tempswafalse
+\def\bxjs@tmpdo{\@ifnextchar\bgroup\bxjs@tmpdo@a\remove@to@nnil}
+\def\bxjs@tmpdo@a#1{\edef\bxjs@tmpa{#1}%
+ \@ifnextchar\bgroup\bxjs@tmpdo@b\remove@to@nnil}
+\def\bxjs@tmpdo@b#1{\edef\bxjs@tmpa{\bxjs@tmpa,#1}%
+ \@ifnextchar\@nnil\bxjs@tmpdo@c\remove@to@nnil}
+\def\bxjs@tmpdo@c\@nnil{\@tempswatrue
+ \edef\bxjs@param@paper{papersize={\bxjs@tmpa}}}
+\expandafter\bxjs@tmpdo\bxjs@param@paper\@nnil
+\if@tempswa\else
+ \def\bxjs@tmpa{\@nil,\@nil}
+ \def\bxjs@tmpdo#1,#2,#3\@nnil{%
+ \def\bxjs@tmpb{#3}\ifx\bxjs@tmpa\bxjs@tmpb
+ \@tempswatrue\edef\bxjs@param@paper{papersize={#1,#2}}\fi}
+ \expandafter\bxjs@tmpdo\bxjs@param@paper,\@nil,\@nil\@nnil
+\fi
+\if@tempswa\else
+ \def\bxjs@tmpa{\@nil*\@nil}
+ \def\bxjs@tmpdo#1*#2*#3\@nnil{%
+ \def\bxjs@tmpb{#3}\ifx\bxjs@tmpa\bxjs@tmpb
+ \@tempswatrue\edef\bxjs@param@paper{papersize={#1,#2}}\fi}
+ \expandafter\bxjs@tmpdo\bxjs@param@paper*\@nil*\@nil\@nnil
+\fi
\edef\bxjs@layout@paper{%
\ifjsc@mag truedimen,\fi
\if@landscape landscape,\fi
@@ -1159,7 +1159,7 @@
\def\bxjs@apply@bd@pre@geometry@hook{%
\AddToHook{begindocument}[\bxjs@geometry@name]}
\fi
-\ifx\bxjs@geometry\bxjs@geometry@class
+\ifx\bxjs@geometry\bxjs@geometry@@class
\ifbxjs@papersize
\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx
\PassOptionsToPackage{dvipdfm}{geometry}
@@ -1207,7 +1207,7 @@
\noexpand\geometry{\bxjs@next}%
}\bxjs@next
\bxjs@postproc@layout}
-\else\ifx\bxjs@geometry\bxjs@geometry@user
+\else\ifx\bxjs@geometry\bxjs@geometry@@user
\g@addto@macro\bxjs@begin@document@hook{%
\ifdim\textwidth=.5\maxdimen
\ClassError\bxjs@clsname
@@ -1461,11 +1461,11 @@
\else \csname label#1\endcsname
\fi}
\def\@seccntformat#1{\bxjs@label@sect{#1}\quad}
-\ifnum\bxjs@label@section=\bxjs@label@section@compat\else
+\ifnum\bxjs@label@section=\bxjs@label@section@@compat\else
\def\@secapp{\presectionname}
\def\@secpos{\postsectionname}
\fi
-\ifnum\bxjs@label@section=\bxjs@label@section@modern
+\ifnum\bxjs@label@section=\bxjs@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@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\let\bxjs@if@ceph\@firstofone
\else \let\bxjs@if@ceph\@gobble
\fi
@@ -1580,7 +1580,7 @@
\newcounter{paragraph}[subsubsection]
\newcounter{subparagraph}[paragraph]
\renewcommand{\thepart}{\@Roman\c@part}
-\ifnum\bxjs@label@section=\bxjs@label@section@compat
+\ifnum\bxjs@label@section=\bxjs@label@section@@compat
\renewcommand{\thesection}{\presectionname\@arabic\c@section\postsectionname}
\renewcommand{\thesubsection}{\@arabic\c@section.\@arabic\c@subsection}
\else
@@ -1854,7 +1854,7 @@
\newcommand{\appendix}{\par
\setcounter{section}{0}%
\setcounter{subsection}{0}%
- \ifnum\bxjs@label@section=\bxjs@label@section@compat
+ \ifnum\bxjs@label@section=\bxjs@label@section@@compat
\gdef\presectionname{\appendixname}%
\gdef\postsectionname{}%
\gdef\thesection{\presectionname\@Alph\c@section\postsectionname}%
@@ -2166,7 +2166,7 @@
\llap{\@makefnmark\hskip0.3\jsZw}#1}
\let\jsInhibitGlueAtParTop\@empty
\def\everyparhook{\jsInhibitGlueAtParTop}
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\g@addto@macro\bxjs@begin@document@hook{\everypar{\everyparhook}}
\fi
\ifx j\jsEngine
@@ -2198,7 +2198,7 @@
\fi
\fi}
\fi
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\def\@doendpe{%
\@endpetrue
\def\par{%
@@ -2285,7 +2285,7 @@
\everypar{\everyparhook}%
\fi\everyparhook}}
\fi
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none\else
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@none\else
\AtEndOfPackage{%
\def\@gnewline #1{%
\ifvmode
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls
index 2192ed1e64f..6b8e939c8fe 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls
@@ -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@clsname{bxjsbook}
\newif\ifjsc@needsp@tch
@@ -186,13 +186,18 @@
\newif\if@enablejfam \@enablejfamfalse
\@onlypreamble\bxjs@setpaper
\def\bxjs@setpaper#1{\def\bxjs@param@paper{#1}}
+\newif\ifbxjs@iso@bsize
+\DeclareOption{iso-bsize}{\bxjs@iso@bsizetrue}
+\@onlypreamble\bxjs@setpaper@bsize
+\def\bxjs@setpaper@bsize#1{\edef\bxjs@param@paper{%
+ b#1\ifbxjs@iso@bsize paper\else j\fi}}
\DeclareOption{a3paper}{\bxjs@setpaper{a3paper}}
\DeclareOption{a4paper}{\bxjs@setpaper{a4paper}}
\DeclareOption{a5paper}{\bxjs@setpaper{a5paper}}
\DeclareOption{a6paper}{\bxjs@setpaper{a6paper}}
-\DeclareOption{b4paper}{\bxjs@setpaper{b4j}}
-\DeclareOption{b5paper}{\bxjs@setpaper{b5j}}
-\DeclareOption{b6paper}{\bxjs@setpaper{b6j}}
+\DeclareOption{b4paper}{\bxjs@setpaper@bsize{4}}
+\DeclareOption{b5paper}{\bxjs@setpaper@bsize{5}}
+\DeclareOption{b6paper}{\bxjs@setpaper@bsize{6}}
\DeclareOption{a4j}{\bxjs@setpaper{a4paper}}
\DeclareOption{a5j}{\bxjs@setpaper{a5paper}}
\DeclareOption{b4j}{\bxjs@setpaper{b4j}}
@@ -202,19 +207,16 @@
\DeclareOption{letterpaper}{\bxjs@setpaper{letterpaper}}
\DeclareOption{legalpaper}{\bxjs@setpaper{legalpaper}}
\DeclareOption{executivepaper}{\bxjs@setpaper{executivepaper}}
-\def\bxjs@tmpb#1#2{\DeclareOption{#1}{\bxjs@setpaper{#2}}}
\@for\bxjs@tmpa:={%
a0,a1,a2,c0,c1,c2,c3,c4,c5,c6,ansia,ansib,ansic,ansid,ansie%
}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{\bxjs@tmpa paper}{\bxjs@tmpa paper}%
+ \noexpand\DeclareOption{\bxjs@tmpa paper}%
+ {\noexpand\bxjs@setpaper{\bxjs@tmpa paper}}%
}\bxjs@next}
-\bxjs@tmpb{screen}{screen}
+\DeclareOption{screen}{\bxjs@setpaper{screen}}
\@for\bxjs@tmpa:={0,1,2,3}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{b\bxjs@tmpa paper}{b\bxjs@tmpa j}%
-}\bxjs@next}
-\@for\bxjs@tmpa:={0,1,2,3,4,5,6}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{A\bxjs@tmpa paper}{a\bxjs@tmpa paper}%
- \noexpand\bxjs@tmpb{B\bxjs@tmpa paper}{b\bxjs@tmpa paper}%
+ \noexpand\DeclareOption{b\bxjs@tmpa paper}%
+ {\noexpand\bxjs@setpaper@bsize{\bxjs@tmpa}}%
}\bxjs@next}
\DeclareOption{a4varpaper}{\bxjs@setpaper{{210truemm}{283truemm}}}
\DeclareOption{b5varpaper}{\bxjs@setpaper{{182truemm}{230truemm}}}
@@ -258,9 +260,9 @@
\DeclareOption{10.5ptj}{\bxjs@setjbasefontsize{10.5pt}}
\DeclareOption{11ptj}{\bxjs@setjbasefontsize{11pt}}
\DeclareOption{12ptj}{\bxjs@setjbasefontsize{12pt}}
-\DeclareOption{usemag}{\let\bxjs@magstyle\bxjs@magstyle@usemag}
-\DeclareOption{nomag}{\let\bxjs@magstyle\bxjs@magstyle@nomag}
-\DeclareOption{nomag*}{\let\bxjs@magstyle\bxjs@magstyle@xreal}
+\DeclareOption{usemag}{\let\bxjs@magstyle\bxjs@magstyle@@usemag}
+\DeclareOption{nomag}{\let\bxjs@magstyle\bxjs@magstyle@@nomag}
+\DeclareOption{nomag*}{\let\bxjs@magstyle\bxjs@magstyle@@xreal}
\if j\jsEngine
\hour\time \divide\hour by 60\relax
\@tempcnta\hour \multiply\@tempcnta 60\relax
@@ -379,12 +381,22 @@
\xdef\bxjs@gtmpa{\the\@tempdimb}%
\endgroup #1=\bxjs@gtmpa\relax}
\DeclareOption{pandoc}{%
+ \bxjs@apply@pandoc@opt}
+\@onlypreamble\bxjs@apply@pandoc@opt
+\def\bxjs@apply@pandoc@opt{%
\g@addto@macro\bxjs@post@option@hook{%
\bxjs@oldfontcommandstrue
\setkeys{bxjs}{ja=pandoc}%
\let\bxjs@engine@given=*}%
- \def\bxjs@driver@opt{dvipdfmx}%
- \bxjs@dvi@opttrue}
+ \ifx\bxjs@driver@opt\@undefined
+ \def\bxjs@driver@opt{dvipdfmx}%
+ \bxjs@dvi@opttrue
+ \fi
+ \global\let\bxjs@apply@pandoc@opt\relax}
+\DeclareOption{pandoc+}{%
+ \g@addto@macro\bxjs@post@option@hook{%
+ \edef\jsJaParam{\bxjs@catopt{_plus}\jsJaParam}}%
+ \ExecuteOptions{pandoc}}
\DeclareOption{autodetect-engine}{%
\let\bxjs@engine@given=*}
\DeclareOption{latex}{%
@@ -442,13 +454,18 @@
\DeclareOption{xetex}{%
\def\bxjs@driver@opt{xetex}%
\let\bxjs@driver@given\bxjs@driver@@xetex}
-\DeclareOption{dvipdfmx-if-dvi}{%
+\DeclareOption{dvipdfmx-if-dvi}{\bxjs@depre@opt@do{dvipdfmx-if-dvi}{dvi=dvipdfmx}}
+\@onlypreamble\bxjs@depre@opt
+\def\bxjs@depre@opt#1#2{%
\ClassWarningNoLine\bxjs@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@depre@opt@do
+\def\bxjs@depre@opt@do#1#2{%
+ \bxjs@depre@opt{#1}{#2}%
+ \setkeys{bxjs}{#2}}
\newif\ifbxjs@bigcode \bxjs@bigcodetrue
\DeclareOption{nobigcode}{%
\bxjs@bigcodefalse}
@@ -479,21 +496,24 @@
\setkeys{#1}{#2}%
\let\KV@errx\bxjs@save@KV@errx}
\@onlypreamble\bxjs@declare@enum@option
-\def\bxjs@declare@enum@option#1#2{%
+\def\bxjs@declare@enum@option#1#2#3{%
+ \bxjs@csletcs{bxjs@#2}{bxjs@#2@@#3}%
\define@key{bxjs}{#1}{%
\expandafter\ifx\csname bxjs@#2@@##1\endcsname\relax
\bxjs@error@keyval{#1}{##1}%
\else \bxjs@csletcs{bxjs@#2}{bxjs@#2@@##1}%
\fi}}
\@onlypreamble\bxjs@declare@bool@option
-\def\bxjs@declare@bool@option#1#2{%
+\def\bxjs@declare@bool@option#1#2#3{%
+ \csname newif\expandafter\endcsname\csname ifbxjs@#2\endcsname
+ \@nameuse{bxjs@#2#3}%
\define@key{bxjs}{#1}[true]{%
\expandafter\ifx\csname bxjs@#2##1\endcsname\relax
\bxjs@error@keyval{#1}{##1}%
\else \@nameuse{bxjs@#2##1}%
\fi}}
\def\bxjs@set@keyval#1#2#3{%
- \expandafter\let\expandafter\bxjs@next\csname bxjs@kv@#1@#2\endcsname
+ \bxjs@csletcs{bxjs@next}{bxjs@kv@#1@#2}%
\ifx\bxjs@next\relax
\bxjs@error@keyval{#1}{#2}%
#3%
@@ -514,56 +534,50 @@
\edef\bxjs@scale@opt{#1}%
\let\jsScale\bxjs@scale@opt}
\define@key{bxjs}{jafontscale}{\setkeys{bxjs}{scale=#1}}
-\DeclareOption{noscale}{\setkeys{bxjs}{scale=1}}
+\DeclareOption{noscale}{\bxjs@depre@opt@do{noscale}{scale=1}}
\let\bxjs@param@mag\relax
\define@key{bxjs}{mag}{\edef\bxjs@param@mag{#1}}
\define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}}
\let\bxjs@jadriver\relax
-\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver@opt{#1}}
+\define@key{bxjs}{jadriver}{%
+ \bxjs@depre@opt{jadriver}{ja=#1}\edef\bxjs@jadriver@opt{#1}}
\define@key{bxjs}{ja}[\relax]{%
\ifx\relax#1\else\edef\bxjs@jadriver@opt{#1}\fi}
\let\jsJaFont\@empty
\define@key{bxjs}{jafont}{\edef\jsJaFont{#1}}
\let\jsJaParam\@empty
-\define@key{bxjs}{japaram}{\edef\jsJaParam{#1}}
-\let\bxjs@magstyle@mag=m
-\let\bxjs@magstyle@real=r
-\let\bxjs@magstyle@xreal=x
-\let\bxjs@magstyle@usemag\bxjs@magstyle@mag
-\let\bxjs@magstyle@nomag\bxjs@magstyle@real
-\expandafter\let\csname bxjs@magstyle@nomag*\endcsname\bxjs@magstyle@xreal
-\let\bxjs@magstyle@default\bxjs@magstyle@usemag
+\define@key{bxjs}{japaram}{%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+\define@key{bxjs}{pandoc}[]{%
+ \ExecuteOptions{pandoc}%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+\define@key{bxjs}{pandoc+}[]{%
+ \ExecuteOptions{pandoc+}%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+\let\bxjs@magstyle@@mag=m
+\let\bxjs@magstyle@@real=r
+\let\bxjs@magstyle@@xreal=x
+\let\bxjs@magstyle@@usemag\bxjs@magstyle@@mag
+\let\bxjs@magstyle@@nomag\bxjs@magstyle@@real
+\bxjs@cslet{bxjs@magstyle@@nomag*}\bxjs@magstyle@@xreal
+\let\bxjs@magstyle@@default\bxjs@magstyle@@usemag
\ifx l\jsEngine \ifnum\luatexversion>86
- \let\bxjs@magstyle@default\bxjs@magstyle@xreal
+ \let\bxjs@magstyle@@default\bxjs@magstyle@@xreal
\fi\fi
\ifjsWithpTeXng
- \let\bxjs@magstyle@default\bxjs@magstyle@xreal
+ \let\bxjs@magstyle@@default\bxjs@magstyle@@xreal
\fi
-\let\bxjs@magstyle\bxjs@magstyle@default
+\let\bxjs@magstyle\bxjs@magstyle@@default
\define@key{bxjs}{magstyle}{%
- \expandafter\let\expandafter\bxjs@magstyle\csname
- bxjs@magstyle@#1\endcsname
+ \bxjs@csletcs{bxjs@magstyle}{bxjs@magstyle@@#1}%
\ifx\bxjs@magstyle\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option magstyle}\@ehc
- \let\bxjs@magstyle\bxjs@magstyle@default
- \fi}
-\let\bxjs@geometry@class=c
-\let\bxjs@geometry@user=u
-\let\bxjs@geometry\bxjs@geometry@class
-\define@key{bxjs}{geometry}{%
- \expandafter\let\expandafter\bxjs@geometry\csname
- bxjs@geometry@#1\endcsname
- \ifx\bxjs@geometry\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option geometry}\@ehc
- \let\bxjs@geometry\bxjs@geometry@class
+ \bxjs@error@keyval{magstyle}{#1}%
+ \let\bxjs@magstyle\bxjs@magstyle@@default
\fi}
-\newif\ifbxjs@fancyhdr \bxjs@fancyhdrtrue
-\let\bxjs@kv@fancyhdr@true\bxjs@fancyhdrtrue
-\let\bxjs@kv@fancyhdr@false\bxjs@fancyhdrfalse
-\define@key{bxjs}{fancyhdr}[true]{%
- \bxjs@set@keyval{fancyhdr}{#1}{}}
+\let\bxjs@geometry@@class=c
+\let\bxjs@geometry@@user=u
+\bxjs@declare@enum@option{geometry}{geometry}{class}
+\bxjs@declare@bool@option{fancyhdr}{fancyhdr}{true}
\newif\ifbxjs@dvi@opt
\let\bxjs@dvidriver@@dvipdfmx=\bxjs@driver@@dvipdfmx
\let\bxjs@dvidriver@@dvips=\bxjs@driver@@dvips
@@ -571,11 +585,9 @@
\let\bxjs@dvidriver@@xdvi=\bxjs@driver@@dvimode
\let\bxjs@dvidriver@@nodvidriver=\bxjs@driver@@none
\define@key{bxjs}{dvi}{%
- \expandafter\let\expandafter\bxjs@tmpa\csname
- bxjs@dvidriver@@#1\endcsname
+ \bxjs@csletcs{bxjs@tmpa}{bxjs@dvidriver@@#1}%
\ifx\bxjs@tmpa\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option dvi}\@ehc
+ \bxjs@error@keyval{dvi}{#1}%
\else
\def\bxjs@driver@opt{#1}%
\let\bxjs@driver@given\@undefined
@@ -593,6 +605,7 @@
\define@key{bxjs}{layout}{%
\bxjs@set@keyval{layout}{#1}{}}
\define@key{bxjs}{textwidth-limit}{%
+ \bxjs@depre@opt{textwidth-limit}{textwidth=#1zw}%
\edef\bxjs@textwidth@limit@opt{#1}}
\define@key{bxjs}{textwidth}{\edef\bxjs@textwidth@opt{#1}}
\define@key{bxjs}{line_length}{\setkeys{bxjs}{textwidth=#1}}
@@ -600,59 +613,32 @@
\define@key{bxjs}{number_of_lines}{\setkeys{bxjs}{number-of-lines=#1}}
\define@key{bxjs}{paragraph-mark}{%
\edef\bxjs@paragraph@mark{#1}}
-\newif\ifbxjs@whole@zw@lines \bxjs@whole@zw@linestrue
-\let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue
-\let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse
-\define@key{bxjs}{whole-zw-lines}[true]{\bxjs@set@keyval{wholezwlines}{#1}{}}
-\newif\ifbxjs@jaspace@cmd \bxjs@jaspace@cmdtrue
-\let\bxjs@kv@jaspacecmd@true\bxjs@jaspace@cmdtrue
-\let\bxjs@kv@jaspacecmd@false\bxjs@jaspace@cmdfalse
-\define@key{bxjs}{jaspace-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}}
-\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}}
-\newif\ifbxjs@fix@at@cmd \bxjs@fix@at@cmdtrue
-\let\bxjs@kv@fixatcmd@true\bxjs@fix@at@cmdtrue
-\let\bxjs@kv@fixatcmd@false\bxjs@fix@at@cmdfalse
-\define@key{bxjs}{fix-at-cmd}[true]{\bxjs@set@keyval{fixatcmd}{#1}{}}
-\newif\ifbxjs@hyperref@enc \bxjs@hyperref@enctrue
-\let\bxjs@kv@hyperrefenc@true\bxjs@hyperref@enctrue
-\let\bxjs@kv@hyperrefenc@false\bxjs@hyperref@encfalse
-\define@key{bxjs}{hyperref-enc}[true]{\bxjs@set@keyval{hyperrefenc}{#1}{}}
-\chardef\bxjs@everyparhook@none=0
-\chardef\bxjs@everyparhook@compat=1
-\chardef\bxjs@everyparhook@modern=2
-\if j\jsEngine
- \let\bxjs@everyparhook\bxjs@everyparhook@compat
-\else
- \let\bxjs@everyparhook\bxjs@everyparhook@modern
-\fi
-\def\bxjs@kv@everyparhook@none{\let\bxjs@everyparhook\bxjs@everyparhook@none}
-\def\bxjs@kv@everyparhook@compat{\let\bxjs@everyparhook\bxjs@everyparhook@compat}
-\def\bxjs@kv@everyparhook@modern{\let\bxjs@everyparhook\bxjs@everyparhook@modern}
-\define@key{bxjs}{everyparhook}{\bxjs@set@keyval{everyparhook}{#1}{}}
-\chardef\bxjs@label@section@none=0
-\chardef\bxjs@label@section@compat=1
-\chardef\bxjs@label@section@modern=2
-\let\bxjs@label@section\bxjs@label@section@compat
-\def\bxjs@kv@labelsection@none{\let\bxjs@label@section\bxjs@label@section@none}
-\def\bxjs@kv@labelsection@compat{\let\bxjs@label@section\bxjs@label@section@compat}
-\def\bxjs@kv@labelsection@modern{\let\bxjs@label@section\bxjs@label@section@modern}
-\define@key{bxjs}{label-section}{\bxjs@set@keyval{labelsection}{#1}{}}
-\newif\ifbxjs@usezw \bxjs@usezwtrue
-\bxjs@declare@bool@option{use-zw}{usezw}
-\DeclareOption{nozw}{\setkeys{bxjs}{use-zw=false}}
-\DeclareOption{zw}{\setkeys{bxjs}{use-zw=true}}
-\newif\ifbxjs@disguise@js \bxjs@disguise@jstrue
-\bxjs@declare@bool@option{disguise-js}{disguise@js}
-\DeclareOption{nojs}{\setkeys{bxjs}{disguise-js=false}}
-\DeclareOption{js}{\setkeys{bxjs}{disguise-js=true}}
-\newif\ifbxjs@precisetext
-\bxjs@declare@bool@option{precise-text}{precisetext}
-\DeclareOption{noprecisetext}{\setkeys{bxjs}{precise-text=false}}
-\DeclareOption{precisetext}{\setkeys{bxjs}{precise-text=true}}
-\newif\ifbxjs@simplejasetup \bxjs@simplejasetuptrue
-\bxjs@declare@bool@option{simple-ja-setup}{simplejasetup}
-\DeclareOption{nosimplejasetup}{\setkeys{bxjs}{simple-ja-setup=false}}
-\DeclareOption{simplejasetup}{\setkeys{bxjs}{simple-ja-setup=true}}
+\bxjs@declare@bool@option{whole-zw-lines}{whole@zw@lines}{true}
+\bxjs@declare@bool@option{jaspace-cmd}{jaspace@cmd}{true}
+\define@key{bxjs}{xkanjiskip-cmd}[true]{\setkeys{bxjs}{jaspace-cmd=#1}}
+\bxjs@declare@bool@option{fix-at-cmd}{fix@at@cmd}{true}
+\bxjs@declare@bool@option{hyperref-enc}{hyperref@enc}{true}
+\chardef\bxjs@everyparhook@@none=0
+\chardef\bxjs@everyparhook@@compat=1
+\chardef\bxjs@everyparhook@@modern=2
+\bxjs@declare@enum@option{everyparhook}{everyparhook}{%
+ \if j\jsEngine compat\else modern\fi}
+\chardef\bxjs@label@section@@none=0
+\chardef\bxjs@label@section@@compat=1
+\chardef\bxjs@label@section@@modern=2
+\bxjs@declare@enum@option{label-section}{label@section}{compat}
+\bxjs@declare@bool@option{use-zw}{usezw}{true}
+\DeclareOption{nozw}{\bxjs@depre@opt@do{nozw}{use-zw=false}}
+\DeclareOption{zw}{\bxjs@depre@opt@do{zw}{use-zw=true}}
+\bxjs@declare@bool@option{disguise-js}{disguise@js}{true}
+\DeclareOption{nojs}{\bxjs@depre@opt@do{nojs}{disguise-js=false}}
+\DeclareOption{js}{\bxjs@depre@opt@do{js}{disguise-js=true}}
+\bxjs@declare@bool@option{precise-text}{precisetext}{false}
+\DeclareOption{noprecisetext}{\bxjs@depre@opt@do{noprecisetext}{precise-text=false}}
+\DeclareOption{precisetext}{\bxjs@depre@opt@do{precisetext}{precise-text=true}}
+\bxjs@declare@bool@option{simple-ja-setup}{simplejasetup}{true}
+\DeclareOption{nosimplejasetup}{\bxjs@depre@opt@do{nosimplejasetup}{simple-ja-setup=false}}
+\DeclareOption{simplejasetup}{\bxjs@depre@opt@do{simplejasetup}{simple-ja-setup=true}}
\let\bxjs@org@removeelement\@removeelement
\def\@removeelement#1#2#3{%
\def\reserved@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@magstyle@default\bxjs@magstyle@mag\else
- \ifx\bxjs@magstyle\bxjs@magstyle@mag
- \let\bxjs@magstyle\bxjs@magstyle@default
+\ifx\bxjs@magstyle@@default\bxjs@magstyle@@mag\else
+ \ifx\bxjs@magstyle\bxjs@magstyle@@mag
+ \let\bxjs@magstyle\bxjs@magstyle@@default
\ClassError\bxjs@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@param@basefontsize<10pt \def\n@baseline{15}%
\else \def\n@baseline{16}\fi
-\ifx\bxjs@magstyle\bxjs@magstyle@mag
+\ifx\bxjs@magstyle\bxjs@magstyle@@mag
\jsc@magtrue
-\else\ifx\bxjs@magstyle\bxjs@magstyle@xreal
+\else\ifx\bxjs@magstyle\bxjs@magstyle@@xreal
\jsc@mag@xrealtrue
\fi\fi
\ifx\bxjs@param@mag\relax
@@ -1091,15 +1077,29 @@
\setlength{\topskip}{10\p@?}
\def\bxjs@unit@trueQ{0.25truemm}\let\bxjs@unit@trueH\bxjs@unit@trueQ
\def\bxjs@unit@zw{\jsZw}\let\bxjs@unit@zh\bxjs@unit@zw
-\def\bxjs@tmpdo{\futurelet\bxjs@tmpa\bxjs@tmpdo@a}
-\def\bxjs@tmpdo@a{%
- \ifx\bxjs@tmpa\bgroup \expandafter\bxjs@tmpdo@b
- \else \expandafter\bxjs@tmpdo@c \fi}
-\def\bxjs@tmpdo@b#1#2#3\@nil{\edef\bxjs@param@paper{papersize={#1,#2}}}
-\def\bxjs@tmpdo@c#1\@nil{\bxjs@tmpdo@d#1,,\@nil}
-\def\bxjs@tmpdo@d#1,#2,#3\@nil{%
- \ifx\@nil#3\@nil\else \edef\bxjs@param@paper{papersize={#1,#2}}\fi}
-\expandafter\bxjs@tmpdo\bxjs@param@paper\@empty\@empty\@nil
+\@tempswafalse
+\def\bxjs@tmpdo{\@ifnextchar\bgroup\bxjs@tmpdo@a\remove@to@nnil}
+\def\bxjs@tmpdo@a#1{\edef\bxjs@tmpa{#1}%
+ \@ifnextchar\bgroup\bxjs@tmpdo@b\remove@to@nnil}
+\def\bxjs@tmpdo@b#1{\edef\bxjs@tmpa{\bxjs@tmpa,#1}%
+ \@ifnextchar\@nnil\bxjs@tmpdo@c\remove@to@nnil}
+\def\bxjs@tmpdo@c\@nnil{\@tempswatrue
+ \edef\bxjs@param@paper{papersize={\bxjs@tmpa}}}
+\expandafter\bxjs@tmpdo\bxjs@param@paper\@nnil
+\if@tempswa\else
+ \def\bxjs@tmpa{\@nil,\@nil}
+ \def\bxjs@tmpdo#1,#2,#3\@nnil{%
+ \def\bxjs@tmpb{#3}\ifx\bxjs@tmpa\bxjs@tmpb
+ \@tempswatrue\edef\bxjs@param@paper{papersize={#1,#2}}\fi}
+ \expandafter\bxjs@tmpdo\bxjs@param@paper,\@nil,\@nil\@nnil
+\fi
+\if@tempswa\else
+ \def\bxjs@tmpa{\@nil*\@nil}
+ \def\bxjs@tmpdo#1*#2*#3\@nnil{%
+ \def\bxjs@tmpb{#3}\ifx\bxjs@tmpa\bxjs@tmpb
+ \@tempswatrue\edef\bxjs@param@paper{papersize={#1,#2}}\fi}
+ \expandafter\bxjs@tmpdo\bxjs@param@paper*\@nil*\@nil\@nnil
+\fi
\edef\bxjs@layout@paper{%
\ifjsc@mag truedimen,\fi
\if@landscape landscape,\fi
@@ -1193,7 +1193,7 @@
\def\bxjs@apply@bd@pre@geometry@hook{%
\AddToHook{begindocument}[\bxjs@geometry@name]}
\fi
-\ifx\bxjs@geometry\bxjs@geometry@class
+\ifx\bxjs@geometry\bxjs@geometry@@class
\ifbxjs@papersize
\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx
\PassOptionsToPackage{dvipdfm}{geometry}
@@ -1241,7 +1241,7 @@
\noexpand\geometry{\bxjs@next}%
}\bxjs@next
\bxjs@postproc@layout}
-\else\ifx\bxjs@geometry\bxjs@geometry@user
+\else\ifx\bxjs@geometry\bxjs@geometry@@user
\g@addto@macro\bxjs@begin@document@hook{%
\ifdim\textwidth=.5\maxdimen
\ClassError\bxjs@clsname
@@ -1496,11 +1496,11 @@
\else \csname label#1\endcsname
\fi}
\def\@seccntformat#1{\bxjs@label@sect{#1}\quad}
-\ifnum\bxjs@label@section=\bxjs@label@section@compat\else
+\ifnum\bxjs@label@section=\bxjs@label@section@@compat\else
\def\@secapp{\presectionname}
\def\@secpos{\postsectionname}
\fi
-\ifnum\bxjs@label@section=\bxjs@label@section@modern
+\ifnum\bxjs@label@section=\bxjs@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@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\let\bxjs@if@ceph\@firstofone
\else \let\bxjs@if@ceph\@gobble
\fi
@@ -2271,7 +2271,7 @@
\llap{\@makefnmark\hskip0.3\jsZw}#1}
\let\jsInhibitGlueAtParTop\@empty
\def\everyparhook{\jsInhibitGlueAtParTop}
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\g@addto@macro\bxjs@begin@document@hook{\everypar{\everyparhook}}
\fi
\ifx j\jsEngine
@@ -2303,7 +2303,7 @@
\fi
\fi}
\fi
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\def\@doendpe{%
\@endpetrue
\def\par{%
@@ -2390,7 +2390,7 @@
\everypar{\everyparhook}%
\fi\everyparhook}}
\fi
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none\else
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@none\else
\AtEndOfPackage{%
\def\@gnewline #1{%
\ifvmode
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty b/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty
index e67f6d7de59..0b28bb59520 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty
@@ -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@pkgname{bxjscjkcat}
\newcount\bxjx@cnta
\@onlypreamble\bxjx@tmpdo
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty b/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty
index e6a9d4b80df..97668c38da6 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty
@@ -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@pkgname{bxjscompat}
\let\bxac@engine=n
\def\bxac@do#1#2{%
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def
index c9c0eb883c1..7ae20c8ba21 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def
@@ -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@everyparhook=\bxjs@everyparhook@modern
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@modern
\let\bxjs@everypar\everypar
\newtoks\everypar
\everypar\bxjs@everypar
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def
index 4b84d2e6eac..063306f5106 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def
@@ -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}%
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def
index fe9b67dd698..72ec49d667f 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def
@@ -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@endpreamble@hook
@@ -46,6 +46,25 @@
\def\bxjs@kv@strong@boldsans{\chardef\bxjs@jp@strong=2 }
\define@key{bxjsPan}{strong}{%
\bxjs@set@keyval{strong}{#1}{}}
+\newif\ifbxjs@jp@or@indent \bxjs@jp@or@indenttrue
+\newif\ifbxjs@jp@or@secnumdepth \bxjs@jp@or@secnumdepthtrue
+\newif\ifbxjs@jp@or@block@heading \bxjs@jp@or@block@headingtrue
+\define@key{bxjsPan}{_plus}[]{%
+ \bxjs@jp@or@indentfalse
+ \bxjs@jp@or@secnumdepthfalse
+ \bxjs@jp@or@block@headingfalse}
+\let\bxjs@kv@orindent@true\bxjs@jp@or@indenttrue
+\let\bxjs@kv@orindent@false\bxjs@jp@or@indentfalse
+\define@key{bxjsPan}{or-indent}[true]{%
+ \bxjs@set@keyval{orindent}{#1}{}}
+\let\bxjs@kv@orsecnumdepth@true\bxjs@jp@or@secnumdepthtrue
+\let\bxjs@kv@orsecnumdepth@false\bxjs@jp@or@secnumdepthfalse
+\define@key{bxjsPan}{or-secnumdepth}[true]{%
+ \bxjs@set@keyval{orsecnumdepth}{#1}{}}
+\let\bxjs@kv@orblockheading@true\bxjs@jp@or@block@headingtrue
+\let\bxjs@kv@orblockheading@false\bxjs@jp@or@block@headingfalse
+\define@key{bxjsPan}{or-block-heading}[true]{%
+ \bxjs@set@keyval{blockheading}{#1}{}}
\def\bxjs@next#1{\bxjs@safe@setkeys{bxjsPan}{#1}}
\expandafter\bxjs@next\expandafter{\jsJaParam}
\@onlypreamble\bxjs@set@dupload@proc
@@ -172,6 +191,35 @@
\expandafter\g@addto@macro\csname opt@xeCJK.sty\endcsname{%
,space}
\fi
+\ifjsWitheTeX
+\@onlypreamble\bxjs@info@or@ban
+\def\bxjs@info@or@ban#1{%
+ \PackageInfo\bxjs@clsname
+ {Freeze layout on '#1',\MessageBreak detected}}
+\unless\ifbxjs@jp@or@indent
+ \bxjs@info@or@ban{indent}
+ \IfFileExists{parskip.sty}{%
+ \pandocSkipLoadPackage{parskip}%
+ }{%else
+ \eappto\bxjs@endpreamble@hook{%
+ \parindent=\the\parindent\relax
+ \parskip=\the\parskip\relax}}
+\fi
+\ifbxjs@jp@or@secnumdepth\else
+ \bxjs@info@or@ban{secnumdepth}
+ \eappto\bxjs@endpreamble@hook{%
+ \c@secnumdepth=\the\c@secnumdepth\relax}
+\fi
+\ifbxjs@jp@or@block@heading\else
+ \let\bxjs@frozen@paragraph\paragraph
+ \let\bxjs@frozen@subparagraph\subparagraph
+ \bxjs@info@or@ban{block-heading}
+ \appto\bxjs@endpreamble@hook{%
+ \let\oldparagraph\@undefined
+ \let\paragraph\bxjs@frozen@paragraph
+ \let\subparagraph\bxjs@frozen@subparagraph}
+\fi
+\fi
\g@addto@macro\bxjs@begin@document@hook{%
\@tempswafalse
\ifx\oldparagraph\@undefined\else
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def
index b29d28819f1..d6bbb76bd6d 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def
@@ -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@simplejasetupfalse
@@ -198,16 +198,16 @@
\@onlypreamble\bxjs@get@kanjiEmbed
\def\bxjs@get@kanjiEmbed{%
\begingroup\setbox\z@=\hbox{%
- \global\let\bxjs@do\@empty
+ \global\let\bxjs@tmpdo\@empty
\def\bxjs@next##1##2##3{%
\def##1####1##3 ####2\@nil####3\@nnil{%
\ifx$####1$\gdef##2{####2}\fi}%
- \g@addto@macro\bxjs@do{%
+ \g@addto@macro\bxjs@tmpdo{%
\expandafter##1\bxjs@tmpa\@nil##3 \@nil\@nnil}}%
- \bxjs@next\bxjs@do@a\bxjs@g@tmpa{kanjiEmbed}%
- \bxjs@next\bxjs@do@b\bxjs@g@tmpa{jaEmbed}%
- \bxjs@next\bxjs@do@c\bxjs@g@tmpb{kanjiVariant}%
- \bxjs@next\bxjs@do@d\bxjs@g@tmpb{jaVariant}%
+ \bxjs@next\bxjs@tmpdo@a\bxjs@g@tmpa{kanjiEmbed}%
+ \bxjs@next\bxjs@tmpdo@b\bxjs@g@tmpa{jaEmbed}%
+ \bxjs@next\bxjs@tmpdo@c\bxjs@g@tmpb{kanjiVariant}%
+ \bxjs@next\bxjs@tmpdo@d\bxjs@g@tmpb{jaVariant}%
\global\let\bxjs@g@tmpa\relax
\global\let\bxjs@g@tmpb\relax
\endlinechar\m@ne
@@ -224,7 +224,7 @@
\@tempswatrue
\loop\if@tempswa
\read\@inputcheck to\bxjs@tmpa
- \bxjs@do
+ \bxjs@tmpdo
\ifeof\@inputcheck \@tempswafalse \fi
\repeat
\fi
@@ -655,11 +655,11 @@
luatexja.jfmglue.create_beginpar_node()}}
\fi}
\fi
-\unless\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none
+\unless\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@none
\begingroup
\let\%\@percentchar \def\@#1{[[\detokenize{#1}]]}
\@gobble\if\def\bxjs@tmpa{\@{\everypar{}\fi}}
- \ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat
+ \ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\@gobble\if\def\bxjs@tmpa{\@{\everypar{\everyparhook}\fi}}\fi
\directlua{
local function patchcmd(cs, code, from, to)
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty b/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty
index f295571f9da..29346bf1bca 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty
@@ -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@pkgname{bxjscjkcat}
\let\bxjsp@engine=n
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls
index c12704d5459..d5222dbe4ef 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls
@@ -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@clsname{bxjsreport}
\newif\ifjsc@needsp@tch
@@ -186,13 +186,18 @@
\newif\if@enablejfam \@enablejfamfalse
\@onlypreamble\bxjs@setpaper
\def\bxjs@setpaper#1{\def\bxjs@param@paper{#1}}
+\newif\ifbxjs@iso@bsize
+\DeclareOption{iso-bsize}{\bxjs@iso@bsizetrue}
+\@onlypreamble\bxjs@setpaper@bsize
+\def\bxjs@setpaper@bsize#1{\edef\bxjs@param@paper{%
+ b#1\ifbxjs@iso@bsize paper\else j\fi}}
\DeclareOption{a3paper}{\bxjs@setpaper{a3paper}}
\DeclareOption{a4paper}{\bxjs@setpaper{a4paper}}
\DeclareOption{a5paper}{\bxjs@setpaper{a5paper}}
\DeclareOption{a6paper}{\bxjs@setpaper{a6paper}}
-\DeclareOption{b4paper}{\bxjs@setpaper{b4j}}
-\DeclareOption{b5paper}{\bxjs@setpaper{b5j}}
-\DeclareOption{b6paper}{\bxjs@setpaper{b6j}}
+\DeclareOption{b4paper}{\bxjs@setpaper@bsize{4}}
+\DeclareOption{b5paper}{\bxjs@setpaper@bsize{5}}
+\DeclareOption{b6paper}{\bxjs@setpaper@bsize{6}}
\DeclareOption{a4j}{\bxjs@setpaper{a4paper}}
\DeclareOption{a5j}{\bxjs@setpaper{a5paper}}
\DeclareOption{b4j}{\bxjs@setpaper{b4j}}
@@ -202,19 +207,16 @@
\DeclareOption{letterpaper}{\bxjs@setpaper{letterpaper}}
\DeclareOption{legalpaper}{\bxjs@setpaper{legalpaper}}
\DeclareOption{executivepaper}{\bxjs@setpaper{executivepaper}}
-\def\bxjs@tmpb#1#2{\DeclareOption{#1}{\bxjs@setpaper{#2}}}
\@for\bxjs@tmpa:={%
a0,a1,a2,c0,c1,c2,c3,c4,c5,c6,ansia,ansib,ansic,ansid,ansie%
}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{\bxjs@tmpa paper}{\bxjs@tmpa paper}%
+ \noexpand\DeclareOption{\bxjs@tmpa paper}%
+ {\noexpand\bxjs@setpaper{\bxjs@tmpa paper}}%
}\bxjs@next}
-\bxjs@tmpb{screen}{screen}
+\DeclareOption{screen}{\bxjs@setpaper{screen}}
\@for\bxjs@tmpa:={0,1,2,3}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{b\bxjs@tmpa paper}{b\bxjs@tmpa j}%
-}\bxjs@next}
-\@for\bxjs@tmpa:={0,1,2,3,4,5,6}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{A\bxjs@tmpa paper}{a\bxjs@tmpa paper}%
- \noexpand\bxjs@tmpb{B\bxjs@tmpa paper}{b\bxjs@tmpa paper}%
+ \noexpand\DeclareOption{b\bxjs@tmpa paper}%
+ {\noexpand\bxjs@setpaper@bsize{\bxjs@tmpa}}%
}\bxjs@next}
\DeclareOption{a4varpaper}{\bxjs@setpaper{{210truemm}{283truemm}}}
\DeclareOption{b5varpaper}{\bxjs@setpaper{{182truemm}{230truemm}}}
@@ -258,9 +260,9 @@
\DeclareOption{10.5ptj}{\bxjs@setjbasefontsize{10.5pt}}
\DeclareOption{11ptj}{\bxjs@setjbasefontsize{11pt}}
\DeclareOption{12ptj}{\bxjs@setjbasefontsize{12pt}}
-\DeclareOption{usemag}{\let\bxjs@magstyle\bxjs@magstyle@usemag}
-\DeclareOption{nomag}{\let\bxjs@magstyle\bxjs@magstyle@nomag}
-\DeclareOption{nomag*}{\let\bxjs@magstyle\bxjs@magstyle@xreal}
+\DeclareOption{usemag}{\let\bxjs@magstyle\bxjs@magstyle@@usemag}
+\DeclareOption{nomag}{\let\bxjs@magstyle\bxjs@magstyle@@nomag}
+\DeclareOption{nomag*}{\let\bxjs@magstyle\bxjs@magstyle@@xreal}
\if j\jsEngine
\hour\time \divide\hour by 60\relax
\@tempcnta\hour \multiply\@tempcnta 60\relax
@@ -379,12 +381,22 @@
\xdef\bxjs@gtmpa{\the\@tempdimb}%
\endgroup #1=\bxjs@gtmpa\relax}
\DeclareOption{pandoc}{%
+ \bxjs@apply@pandoc@opt}
+\@onlypreamble\bxjs@apply@pandoc@opt
+\def\bxjs@apply@pandoc@opt{%
\g@addto@macro\bxjs@post@option@hook{%
\bxjs@oldfontcommandstrue
\setkeys{bxjs}{ja=pandoc}%
\let\bxjs@engine@given=*}%
- \def\bxjs@driver@opt{dvipdfmx}%
- \bxjs@dvi@opttrue}
+ \ifx\bxjs@driver@opt\@undefined
+ \def\bxjs@driver@opt{dvipdfmx}%
+ \bxjs@dvi@opttrue
+ \fi
+ \global\let\bxjs@apply@pandoc@opt\relax}
+\DeclareOption{pandoc+}{%
+ \g@addto@macro\bxjs@post@option@hook{%
+ \edef\jsJaParam{\bxjs@catopt{_plus}\jsJaParam}}%
+ \ExecuteOptions{pandoc}}
\DeclareOption{autodetect-engine}{%
\let\bxjs@engine@given=*}
\DeclareOption{latex}{%
@@ -442,13 +454,18 @@
\DeclareOption{xetex}{%
\def\bxjs@driver@opt{xetex}%
\let\bxjs@driver@given\bxjs@driver@@xetex}
-\DeclareOption{dvipdfmx-if-dvi}{%
+\DeclareOption{dvipdfmx-if-dvi}{\bxjs@depre@opt@do{dvipdfmx-if-dvi}{dvi=dvipdfmx}}
+\@onlypreamble\bxjs@depre@opt
+\def\bxjs@depre@opt#1#2{%
\ClassWarningNoLine\bxjs@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@depre@opt@do
+\def\bxjs@depre@opt@do#1#2{%
+ \bxjs@depre@opt{#1}{#2}%
+ \setkeys{bxjs}{#2}}
\newif\ifbxjs@bigcode \bxjs@bigcodetrue
\DeclareOption{nobigcode}{%
\bxjs@bigcodefalse}
@@ -479,21 +496,24 @@
\setkeys{#1}{#2}%
\let\KV@errx\bxjs@save@KV@errx}
\@onlypreamble\bxjs@declare@enum@option
-\def\bxjs@declare@enum@option#1#2{%
+\def\bxjs@declare@enum@option#1#2#3{%
+ \bxjs@csletcs{bxjs@#2}{bxjs@#2@@#3}%
\define@key{bxjs}{#1}{%
\expandafter\ifx\csname bxjs@#2@@##1\endcsname\relax
\bxjs@error@keyval{#1}{##1}%
\else \bxjs@csletcs{bxjs@#2}{bxjs@#2@@##1}%
\fi}}
\@onlypreamble\bxjs@declare@bool@option
-\def\bxjs@declare@bool@option#1#2{%
+\def\bxjs@declare@bool@option#1#2#3{%
+ \csname newif\expandafter\endcsname\csname ifbxjs@#2\endcsname
+ \@nameuse{bxjs@#2#3}%
\define@key{bxjs}{#1}[true]{%
\expandafter\ifx\csname bxjs@#2##1\endcsname\relax
\bxjs@error@keyval{#1}{##1}%
\else \@nameuse{bxjs@#2##1}%
\fi}}
\def\bxjs@set@keyval#1#2#3{%
- \expandafter\let\expandafter\bxjs@next\csname bxjs@kv@#1@#2\endcsname
+ \bxjs@csletcs{bxjs@next}{bxjs@kv@#1@#2}%
\ifx\bxjs@next\relax
\bxjs@error@keyval{#1}{#2}%
#3%
@@ -514,56 +534,50 @@
\edef\bxjs@scale@opt{#1}%
\let\jsScale\bxjs@scale@opt}
\define@key{bxjs}{jafontscale}{\setkeys{bxjs}{scale=#1}}
-\DeclareOption{noscale}{\setkeys{bxjs}{scale=1}}
+\DeclareOption{noscale}{\bxjs@depre@opt@do{noscale}{scale=1}}
\let\bxjs@param@mag\relax
\define@key{bxjs}{mag}{\edef\bxjs@param@mag{#1}}
\define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}}
\let\bxjs@jadriver\relax
-\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver@opt{#1}}
+\define@key{bxjs}{jadriver}{%
+ \bxjs@depre@opt{jadriver}{ja=#1}\edef\bxjs@jadriver@opt{#1}}
\define@key{bxjs}{ja}[\relax]{%
\ifx\relax#1\else\edef\bxjs@jadriver@opt{#1}\fi}
\let\jsJaFont\@empty
\define@key{bxjs}{jafont}{\edef\jsJaFont{#1}}
\let\jsJaParam\@empty
-\define@key{bxjs}{japaram}{\edef\jsJaParam{#1}}
-\let\bxjs@magstyle@mag=m
-\let\bxjs@magstyle@real=r
-\let\bxjs@magstyle@xreal=x
-\let\bxjs@magstyle@usemag\bxjs@magstyle@mag
-\let\bxjs@magstyle@nomag\bxjs@magstyle@real
-\expandafter\let\csname bxjs@magstyle@nomag*\endcsname\bxjs@magstyle@xreal
-\let\bxjs@magstyle@default\bxjs@magstyle@usemag
+\define@key{bxjs}{japaram}{%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+\define@key{bxjs}{pandoc}[]{%
+ \ExecuteOptions{pandoc}%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+\define@key{bxjs}{pandoc+}[]{%
+ \ExecuteOptions{pandoc+}%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+\let\bxjs@magstyle@@mag=m
+\let\bxjs@magstyle@@real=r
+\let\bxjs@magstyle@@xreal=x
+\let\bxjs@magstyle@@usemag\bxjs@magstyle@@mag
+\let\bxjs@magstyle@@nomag\bxjs@magstyle@@real
+\bxjs@cslet{bxjs@magstyle@@nomag*}\bxjs@magstyle@@xreal
+\let\bxjs@magstyle@@default\bxjs@magstyle@@usemag
\ifx l\jsEngine \ifnum\luatexversion>86
- \let\bxjs@magstyle@default\bxjs@magstyle@xreal
+ \let\bxjs@magstyle@@default\bxjs@magstyle@@xreal
\fi\fi
\ifjsWithpTeXng
- \let\bxjs@magstyle@default\bxjs@magstyle@xreal
+ \let\bxjs@magstyle@@default\bxjs@magstyle@@xreal
\fi
-\let\bxjs@magstyle\bxjs@magstyle@default
+\let\bxjs@magstyle\bxjs@magstyle@@default
\define@key{bxjs}{magstyle}{%
- \expandafter\let\expandafter\bxjs@magstyle\csname
- bxjs@magstyle@#1\endcsname
+ \bxjs@csletcs{bxjs@magstyle}{bxjs@magstyle@@#1}%
\ifx\bxjs@magstyle\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option magstyle}\@ehc
- \let\bxjs@magstyle\bxjs@magstyle@default
- \fi}
-\let\bxjs@geometry@class=c
-\let\bxjs@geometry@user=u
-\let\bxjs@geometry\bxjs@geometry@class
-\define@key{bxjs}{geometry}{%
- \expandafter\let\expandafter\bxjs@geometry\csname
- bxjs@geometry@#1\endcsname
- \ifx\bxjs@geometry\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option geometry}\@ehc
- \let\bxjs@geometry\bxjs@geometry@class
+ \bxjs@error@keyval{magstyle}{#1}%
+ \let\bxjs@magstyle\bxjs@magstyle@@default
\fi}
-\newif\ifbxjs@fancyhdr \bxjs@fancyhdrtrue
-\let\bxjs@kv@fancyhdr@true\bxjs@fancyhdrtrue
-\let\bxjs@kv@fancyhdr@false\bxjs@fancyhdrfalse
-\define@key{bxjs}{fancyhdr}[true]{%
- \bxjs@set@keyval{fancyhdr}{#1}{}}
+\let\bxjs@geometry@@class=c
+\let\bxjs@geometry@@user=u
+\bxjs@declare@enum@option{geometry}{geometry}{class}
+\bxjs@declare@bool@option{fancyhdr}{fancyhdr}{true}
\newif\ifbxjs@dvi@opt
\let\bxjs@dvidriver@@dvipdfmx=\bxjs@driver@@dvipdfmx
\let\bxjs@dvidriver@@dvips=\bxjs@driver@@dvips
@@ -571,11 +585,9 @@
\let\bxjs@dvidriver@@xdvi=\bxjs@driver@@dvimode
\let\bxjs@dvidriver@@nodvidriver=\bxjs@driver@@none
\define@key{bxjs}{dvi}{%
- \expandafter\let\expandafter\bxjs@tmpa\csname
- bxjs@dvidriver@@#1\endcsname
+ \bxjs@csletcs{bxjs@tmpa}{bxjs@dvidriver@@#1}%
\ifx\bxjs@tmpa\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option dvi}\@ehc
+ \bxjs@error@keyval{dvi}{#1}%
\else
\def\bxjs@driver@opt{#1}%
\let\bxjs@driver@given\@undefined
@@ -592,6 +604,7 @@
\define@key{bxjs}{layout}{%
\bxjs@set@keyval{layout}{#1}{}}
\define@key{bxjs}{textwidth-limit}{%
+ \bxjs@depre@opt{textwidth-limit}{textwidth=#1zw}%
\edef\bxjs@textwidth@limit@opt{#1}}
\define@key{bxjs}{textwidth}{\edef\bxjs@textwidth@opt{#1}}
\define@key{bxjs}{line_length}{\setkeys{bxjs}{textwidth=#1}}
@@ -599,59 +612,32 @@
\define@key{bxjs}{number_of_lines}{\setkeys{bxjs}{number-of-lines=#1}}
\define@key{bxjs}{paragraph-mark}{%
\edef\bxjs@paragraph@mark{#1}}
-\newif\ifbxjs@whole@zw@lines \bxjs@whole@zw@linestrue
-\let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue
-\let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse
-\define@key{bxjs}{whole-zw-lines}[true]{\bxjs@set@keyval{wholezwlines}{#1}{}}
-\newif\ifbxjs@jaspace@cmd \bxjs@jaspace@cmdtrue
-\let\bxjs@kv@jaspacecmd@true\bxjs@jaspace@cmdtrue
-\let\bxjs@kv@jaspacecmd@false\bxjs@jaspace@cmdfalse
-\define@key{bxjs}{jaspace-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}}
-\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}}
-\newif\ifbxjs@fix@at@cmd \bxjs@fix@at@cmdtrue
-\let\bxjs@kv@fixatcmd@true\bxjs@fix@at@cmdtrue
-\let\bxjs@kv@fixatcmd@false\bxjs@fix@at@cmdfalse
-\define@key{bxjs}{fix-at-cmd}[true]{\bxjs@set@keyval{fixatcmd}{#1}{}}
-\newif\ifbxjs@hyperref@enc \bxjs@hyperref@enctrue
-\let\bxjs@kv@hyperrefenc@true\bxjs@hyperref@enctrue
-\let\bxjs@kv@hyperrefenc@false\bxjs@hyperref@encfalse
-\define@key{bxjs}{hyperref-enc}[true]{\bxjs@set@keyval{hyperrefenc}{#1}{}}
-\chardef\bxjs@everyparhook@none=0
-\chardef\bxjs@everyparhook@compat=1
-\chardef\bxjs@everyparhook@modern=2
-\if j\jsEngine
- \let\bxjs@everyparhook\bxjs@everyparhook@compat
-\else
- \let\bxjs@everyparhook\bxjs@everyparhook@modern
-\fi
-\def\bxjs@kv@everyparhook@none{\let\bxjs@everyparhook\bxjs@everyparhook@none}
-\def\bxjs@kv@everyparhook@compat{\let\bxjs@everyparhook\bxjs@everyparhook@compat}
-\def\bxjs@kv@everyparhook@modern{\let\bxjs@everyparhook\bxjs@everyparhook@modern}
-\define@key{bxjs}{everyparhook}{\bxjs@set@keyval{everyparhook}{#1}{}}
-\chardef\bxjs@label@section@none=0
-\chardef\bxjs@label@section@compat=1
-\chardef\bxjs@label@section@modern=2
-\let\bxjs@label@section\bxjs@label@section@compat
-\def\bxjs@kv@labelsection@none{\let\bxjs@label@section\bxjs@label@section@none}
-\def\bxjs@kv@labelsection@compat{\let\bxjs@label@section\bxjs@label@section@compat}
-\def\bxjs@kv@labelsection@modern{\let\bxjs@label@section\bxjs@label@section@modern}
-\define@key{bxjs}{label-section}{\bxjs@set@keyval{labelsection}{#1}{}}
-\newif\ifbxjs@usezw \bxjs@usezwtrue
-\bxjs@declare@bool@option{use-zw}{usezw}
-\DeclareOption{nozw}{\setkeys{bxjs}{use-zw=false}}
-\DeclareOption{zw}{\setkeys{bxjs}{use-zw=true}}
-\newif\ifbxjs@disguise@js \bxjs@disguise@jstrue
-\bxjs@declare@bool@option{disguise-js}{disguise@js}
-\DeclareOption{nojs}{\setkeys{bxjs}{disguise-js=false}}
-\DeclareOption{js}{\setkeys{bxjs}{disguise-js=true}}
-\newif\ifbxjs@precisetext
-\bxjs@declare@bool@option{precise-text}{precisetext}
-\DeclareOption{noprecisetext}{\setkeys{bxjs}{precise-text=false}}
-\DeclareOption{precisetext}{\setkeys{bxjs}{precise-text=true}}
-\newif\ifbxjs@simplejasetup \bxjs@simplejasetuptrue
-\bxjs@declare@bool@option{simple-ja-setup}{simplejasetup}
-\DeclareOption{nosimplejasetup}{\setkeys{bxjs}{simple-ja-setup=false}}
-\DeclareOption{simplejasetup}{\setkeys{bxjs}{simple-ja-setup=true}}
+\bxjs@declare@bool@option{whole-zw-lines}{whole@zw@lines}{true}
+\bxjs@declare@bool@option{jaspace-cmd}{jaspace@cmd}{true}
+\define@key{bxjs}{xkanjiskip-cmd}[true]{\setkeys{bxjs}{jaspace-cmd=#1}}
+\bxjs@declare@bool@option{fix-at-cmd}{fix@at@cmd}{true}
+\bxjs@declare@bool@option{hyperref-enc}{hyperref@enc}{true}
+\chardef\bxjs@everyparhook@@none=0
+\chardef\bxjs@everyparhook@@compat=1
+\chardef\bxjs@everyparhook@@modern=2
+\bxjs@declare@enum@option{everyparhook}{everyparhook}{%
+ \if j\jsEngine compat\else modern\fi}
+\chardef\bxjs@label@section@@none=0
+\chardef\bxjs@label@section@@compat=1
+\chardef\bxjs@label@section@@modern=2
+\bxjs@declare@enum@option{label-section}{label@section}{compat}
+\bxjs@declare@bool@option{use-zw}{usezw}{true}
+\DeclareOption{nozw}{\bxjs@depre@opt@do{nozw}{use-zw=false}}
+\DeclareOption{zw}{\bxjs@depre@opt@do{zw}{use-zw=true}}
+\bxjs@declare@bool@option{disguise-js}{disguise@js}{true}
+\DeclareOption{nojs}{\bxjs@depre@opt@do{nojs}{disguise-js=false}}
+\DeclareOption{js}{\bxjs@depre@opt@do{js}{disguise-js=true}}
+\bxjs@declare@bool@option{precise-text}{precisetext}{false}
+\DeclareOption{noprecisetext}{\bxjs@depre@opt@do{noprecisetext}{precise-text=false}}
+\DeclareOption{precisetext}{\bxjs@depre@opt@do{precisetext}{precise-text=true}}
+\bxjs@declare@bool@option{simple-ja-setup}{simplejasetup}{true}
+\DeclareOption{nosimplejasetup}{\bxjs@depre@opt@do{nosimplejasetup}{simple-ja-setup=false}}
+\DeclareOption{simplejasetup}{\bxjs@depre@opt@do{simplejasetup}{simple-ja-setup=true}}
\let\bxjs@org@removeelement\@removeelement
\def\@removeelement#1#2#3{%
\def\reserved@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@magstyle@default\bxjs@magstyle@mag\else
- \ifx\bxjs@magstyle\bxjs@magstyle@mag
- \let\bxjs@magstyle\bxjs@magstyle@default
+\ifx\bxjs@magstyle@@default\bxjs@magstyle@@mag\else
+ \ifx\bxjs@magstyle\bxjs@magstyle@@mag
+ \let\bxjs@magstyle\bxjs@magstyle@@default
\ClassError\bxjs@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@param@basefontsize<10pt \def\n@baseline{15}%
\else \def\n@baseline{16}\fi
-\ifx\bxjs@magstyle\bxjs@magstyle@mag
+\ifx\bxjs@magstyle\bxjs@magstyle@@mag
\jsc@magtrue
-\else\ifx\bxjs@magstyle\bxjs@magstyle@xreal
+\else\ifx\bxjs@magstyle\bxjs@magstyle@@xreal
\jsc@mag@xrealtrue
\fi\fi
\ifx\bxjs@param@mag\relax
@@ -1090,15 +1076,29 @@
\setlength{\topskip}{10\p@?}
\def\bxjs@unit@trueQ{0.25truemm}\let\bxjs@unit@trueH\bxjs@unit@trueQ
\def\bxjs@unit@zw{\jsZw}\let\bxjs@unit@zh\bxjs@unit@zw
-\def\bxjs@tmpdo{\futurelet\bxjs@tmpa\bxjs@tmpdo@a}
-\def\bxjs@tmpdo@a{%
- \ifx\bxjs@tmpa\bgroup \expandafter\bxjs@tmpdo@b
- \else \expandafter\bxjs@tmpdo@c \fi}
-\def\bxjs@tmpdo@b#1#2#3\@nil{\edef\bxjs@param@paper{papersize={#1,#2}}}
-\def\bxjs@tmpdo@c#1\@nil{\bxjs@tmpdo@d#1,,\@nil}
-\def\bxjs@tmpdo@d#1,#2,#3\@nil{%
- \ifx\@nil#3\@nil\else \edef\bxjs@param@paper{papersize={#1,#2}}\fi}
-\expandafter\bxjs@tmpdo\bxjs@param@paper\@empty\@empty\@nil
+\@tempswafalse
+\def\bxjs@tmpdo{\@ifnextchar\bgroup\bxjs@tmpdo@a\remove@to@nnil}
+\def\bxjs@tmpdo@a#1{\edef\bxjs@tmpa{#1}%
+ \@ifnextchar\bgroup\bxjs@tmpdo@b\remove@to@nnil}
+\def\bxjs@tmpdo@b#1{\edef\bxjs@tmpa{\bxjs@tmpa,#1}%
+ \@ifnextchar\@nnil\bxjs@tmpdo@c\remove@to@nnil}
+\def\bxjs@tmpdo@c\@nnil{\@tempswatrue
+ \edef\bxjs@param@paper{papersize={\bxjs@tmpa}}}
+\expandafter\bxjs@tmpdo\bxjs@param@paper\@nnil
+\if@tempswa\else
+ \def\bxjs@tmpa{\@nil,\@nil}
+ \def\bxjs@tmpdo#1,#2,#3\@nnil{%
+ \def\bxjs@tmpb{#3}\ifx\bxjs@tmpa\bxjs@tmpb
+ \@tempswatrue\edef\bxjs@param@paper{papersize={#1,#2}}\fi}
+ \expandafter\bxjs@tmpdo\bxjs@param@paper,\@nil,\@nil\@nnil
+\fi
+\if@tempswa\else
+ \def\bxjs@tmpa{\@nil*\@nil}
+ \def\bxjs@tmpdo#1*#2*#3\@nnil{%
+ \def\bxjs@tmpb{#3}\ifx\bxjs@tmpa\bxjs@tmpb
+ \@tempswatrue\edef\bxjs@param@paper{papersize={#1,#2}}\fi}
+ \expandafter\bxjs@tmpdo\bxjs@param@paper*\@nil*\@nil\@nnil
+\fi
\edef\bxjs@layout@paper{%
\ifjsc@mag truedimen,\fi
\if@landscape landscape,\fi
@@ -1167,7 +1167,7 @@
\def\bxjs@apply@bd@pre@geometry@hook{%
\AddToHook{begindocument}[\bxjs@geometry@name]}
\fi
-\ifx\bxjs@geometry\bxjs@geometry@class
+\ifx\bxjs@geometry\bxjs@geometry@@class
\ifbxjs@papersize
\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx
\PassOptionsToPackage{dvipdfm}{geometry}
@@ -1215,7 +1215,7 @@
\noexpand\geometry{\bxjs@next}%
}\bxjs@next
\bxjs@postproc@layout}
-\else\ifx\bxjs@geometry\bxjs@geometry@user
+\else\ifx\bxjs@geometry\bxjs@geometry@@user
\g@addto@macro\bxjs@begin@document@hook{%
\ifdim\textwidth=.5\maxdimen
\ClassError\bxjs@clsname
@@ -1470,11 +1470,11 @@
\else \csname label#1\endcsname
\fi}
\def\@seccntformat#1{\bxjs@label@sect{#1}\quad}
-\ifnum\bxjs@label@section=\bxjs@label@section@compat\else
+\ifnum\bxjs@label@section=\bxjs@label@section@@compat\else
\def\@secapp{\presectionname}
\def\@secpos{\postsectionname}
\fi
-\ifnum\bxjs@label@section=\bxjs@label@section@modern
+\ifnum\bxjs@label@section=\bxjs@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@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\let\bxjs@if@ceph\@firstofone
\else \let\bxjs@if@ceph\@gobble
\fi
@@ -2293,7 +2293,7 @@
\llap{\@makefnmark\hskip0.3\jsZw}#1}
\let\jsInhibitGlueAtParTop\@empty
\def\everyparhook{\jsInhibitGlueAtParTop}
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\g@addto@macro\bxjs@begin@document@hook{\everypar{\everyparhook}}
\fi
\ifx j\jsEngine
@@ -2325,7 +2325,7 @@
\fi
\fi}
\fi
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\def\@doendpe{%
\@endpetrue
\def\par{%
@@ -2412,7 +2412,7 @@
\everypar{\everyparhook}%
\fi\everyparhook}}
\fi
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none\else
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@none\else
\AtEndOfPackage{%
\def\@gnewline #1{%
\ifvmode
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls
index 164e6cd1e3c..d5361792440 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls
@@ -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@clsname{bxjsslide}
\newif\ifjsc@needsp@tch
@@ -183,13 +183,18 @@
\newif\if@enablejfam \@enablejfamfalse
\@onlypreamble\bxjs@setpaper
\def\bxjs@setpaper#1{\def\bxjs@param@paper{#1}}
+\newif\ifbxjs@iso@bsize
+\DeclareOption{iso-bsize}{\bxjs@iso@bsizetrue}
+\@onlypreamble\bxjs@setpaper@bsize
+\def\bxjs@setpaper@bsize#1{\edef\bxjs@param@paper{%
+ b#1\ifbxjs@iso@bsize paper\else j\fi}}
\DeclareOption{a3paper}{\bxjs@setpaper{a3paper}}
\DeclareOption{a4paper}{\bxjs@setpaper{a4paper}}
\DeclareOption{a5paper}{\bxjs@setpaper{a5paper}}
\DeclareOption{a6paper}{\bxjs@setpaper{a6paper}}
-\DeclareOption{b4paper}{\bxjs@setpaper{b4j}}
-\DeclareOption{b5paper}{\bxjs@setpaper{b5j}}
-\DeclareOption{b6paper}{\bxjs@setpaper{b6j}}
+\DeclareOption{b4paper}{\bxjs@setpaper@bsize{4}}
+\DeclareOption{b5paper}{\bxjs@setpaper@bsize{5}}
+\DeclareOption{b6paper}{\bxjs@setpaper@bsize{6}}
\DeclareOption{a4j}{\bxjs@setpaper{a4paper}}
\DeclareOption{a5j}{\bxjs@setpaper{a5paper}}
\DeclareOption{b4j}{\bxjs@setpaper{b4j}}
@@ -199,19 +204,16 @@
\DeclareOption{letterpaper}{\bxjs@setpaper{letterpaper}}
\DeclareOption{legalpaper}{\bxjs@setpaper{legalpaper}}
\DeclareOption{executivepaper}{\bxjs@setpaper{executivepaper}}
-\def\bxjs@tmpb#1#2{\DeclareOption{#1}{\bxjs@setpaper{#2}}}
\@for\bxjs@tmpa:={%
a0,a1,a2,c0,c1,c2,c3,c4,c5,c6,ansia,ansib,ansic,ansid,ansie%
}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{\bxjs@tmpa paper}{\bxjs@tmpa paper}%
+ \noexpand\DeclareOption{\bxjs@tmpa paper}%
+ {\noexpand\bxjs@setpaper{\bxjs@tmpa paper}}%
}\bxjs@next}
-\bxjs@tmpb{screen}{screen}
+\DeclareOption{screen}{\bxjs@setpaper{screen}}
\@for\bxjs@tmpa:={0,1,2,3}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{b\bxjs@tmpa paper}{b\bxjs@tmpa j}%
-}\bxjs@next}
-\@for\bxjs@tmpa:={0,1,2,3,4,5,6}\do{\edef\bxjs@next{%
- \noexpand\bxjs@tmpb{A\bxjs@tmpa paper}{a\bxjs@tmpa paper}%
- \noexpand\bxjs@tmpb{B\bxjs@tmpa paper}{b\bxjs@tmpa paper}%
+ \noexpand\DeclareOption{b\bxjs@tmpa paper}%
+ {\noexpand\bxjs@setpaper@bsize{\bxjs@tmpa}}%
}\bxjs@next}
\DeclareOption{a4varpaper}{\bxjs@setpaper{{210truemm}{283truemm}}}
\DeclareOption{b5varpaper}{\bxjs@setpaper{{182truemm}{230truemm}}}
@@ -255,9 +257,9 @@
\DeclareOption{10.5ptj}{\bxjs@setjbasefontsize{10.5pt}}
\DeclareOption{11ptj}{\bxjs@setjbasefontsize{11pt}}
\DeclareOption{12ptj}{\bxjs@setjbasefontsize{12pt}}
-\DeclareOption{usemag}{\let\bxjs@magstyle\bxjs@magstyle@usemag}
-\DeclareOption{nomag}{\let\bxjs@magstyle\bxjs@magstyle@nomag}
-\DeclareOption{nomag*}{\let\bxjs@magstyle\bxjs@magstyle@xreal}
+\DeclareOption{usemag}{\let\bxjs@magstyle\bxjs@magstyle@@usemag}
+\DeclareOption{nomag}{\let\bxjs@magstyle\bxjs@magstyle@@nomag}
+\DeclareOption{nomag*}{\let\bxjs@magstyle\bxjs@magstyle@@xreal}
\if j\jsEngine
\hour\time \divide\hour by 60\relax
\@tempcnta\hour \multiply\@tempcnta 60\relax
@@ -373,12 +375,22 @@
\xdef\bxjs@gtmpa{\the\@tempdimb}%
\endgroup #1=\bxjs@gtmpa\relax}
\DeclareOption{pandoc}{%
+ \bxjs@apply@pandoc@opt}
+\@onlypreamble\bxjs@apply@pandoc@opt
+\def\bxjs@apply@pandoc@opt{%
\g@addto@macro\bxjs@post@option@hook{%
\bxjs@oldfontcommandstrue
\setkeys{bxjs}{ja=pandoc}%
\let\bxjs@engine@given=*}%
- \def\bxjs@driver@opt{dvipdfmx}%
- \bxjs@dvi@opttrue}
+ \ifx\bxjs@driver@opt\@undefined
+ \def\bxjs@driver@opt{dvipdfmx}%
+ \bxjs@dvi@opttrue
+ \fi
+ \global\let\bxjs@apply@pandoc@opt\relax}
+\DeclareOption{pandoc+}{%
+ \g@addto@macro\bxjs@post@option@hook{%
+ \edef\jsJaParam{\bxjs@catopt{_plus}\jsJaParam}}%
+ \ExecuteOptions{pandoc}}
\DeclareOption{autodetect-engine}{%
\let\bxjs@engine@given=*}
\DeclareOption{latex}{%
@@ -436,13 +448,18 @@
\DeclareOption{xetex}{%
\def\bxjs@driver@opt{xetex}%
\let\bxjs@driver@given\bxjs@driver@@xetex}
-\DeclareOption{dvipdfmx-if-dvi}{%
+\DeclareOption{dvipdfmx-if-dvi}{\bxjs@depre@opt@do{dvipdfmx-if-dvi}{dvi=dvipdfmx}}
+\@onlypreamble\bxjs@depre@opt
+\def\bxjs@depre@opt#1#2{%
\ClassWarningNoLine\bxjs@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@depre@opt@do
+\def\bxjs@depre@opt@do#1#2{%
+ \bxjs@depre@opt{#1}{#2}%
+ \setkeys{bxjs}{#2}}
\newif\ifbxjs@bigcode \bxjs@bigcodetrue
\DeclareOption{nobigcode}{%
\bxjs@bigcodefalse}
@@ -473,21 +490,24 @@
\setkeys{#1}{#2}%
\let\KV@errx\bxjs@save@KV@errx}
\@onlypreamble\bxjs@declare@enum@option
-\def\bxjs@declare@enum@option#1#2{%
+\def\bxjs@declare@enum@option#1#2#3{%
+ \bxjs@csletcs{bxjs@#2}{bxjs@#2@@#3}%
\define@key{bxjs}{#1}{%
\expandafter\ifx\csname bxjs@#2@@##1\endcsname\relax
\bxjs@error@keyval{#1}{##1}%
\else \bxjs@csletcs{bxjs@#2}{bxjs@#2@@##1}%
\fi}}
\@onlypreamble\bxjs@declare@bool@option
-\def\bxjs@declare@bool@option#1#2{%
+\def\bxjs@declare@bool@option#1#2#3{%
+ \csname newif\expandafter\endcsname\csname ifbxjs@#2\endcsname
+ \@nameuse{bxjs@#2#3}%
\define@key{bxjs}{#1}[true]{%
\expandafter\ifx\csname bxjs@#2##1\endcsname\relax
\bxjs@error@keyval{#1}{##1}%
\else \@nameuse{bxjs@#2##1}%
\fi}}
\def\bxjs@set@keyval#1#2#3{%
- \expandafter\let\expandafter\bxjs@next\csname bxjs@kv@#1@#2\endcsname
+ \bxjs@csletcs{bxjs@next}{bxjs@kv@#1@#2}%
\ifx\bxjs@next\relax
\bxjs@error@keyval{#1}{#2}%
#3%
@@ -508,56 +528,50 @@
\edef\bxjs@scale@opt{#1}%
\let\jsScale\bxjs@scale@opt}
\define@key{bxjs}{jafontscale}{\setkeys{bxjs}{scale=#1}}
-\DeclareOption{noscale}{\setkeys{bxjs}{scale=1}}
+\DeclareOption{noscale}{\bxjs@depre@opt@do{noscale}{scale=1}}
\let\bxjs@param@mag\relax
\define@key{bxjs}{mag}{\edef\bxjs@param@mag{#1}}
\define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}}
\let\bxjs@jadriver\relax
-\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver@opt{#1}}
+\define@key{bxjs}{jadriver}{%
+ \bxjs@depre@opt{jadriver}{ja=#1}\edef\bxjs@jadriver@opt{#1}}
\define@key{bxjs}{ja}[\relax]{%
\ifx\relax#1\else\edef\bxjs@jadriver@opt{#1}\fi}
\let\jsJaFont\@empty
\define@key{bxjs}{jafont}{\edef\jsJaFont{#1}}
\let\jsJaParam\@empty
-\define@key{bxjs}{japaram}{\edef\jsJaParam{#1}}
-\let\bxjs@magstyle@mag=m
-\let\bxjs@magstyle@real=r
-\let\bxjs@magstyle@xreal=x
-\let\bxjs@magstyle@usemag\bxjs@magstyle@mag
-\let\bxjs@magstyle@nomag\bxjs@magstyle@real
-\expandafter\let\csname bxjs@magstyle@nomag*\endcsname\bxjs@magstyle@xreal
-\let\bxjs@magstyle@default\bxjs@magstyle@usemag
+\define@key{bxjs}{japaram}{%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+\define@key{bxjs}{pandoc}[]{%
+ \ExecuteOptions{pandoc}%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+\define@key{bxjs}{pandoc+}[]{%
+ \ExecuteOptions{pandoc+}%
+ \edef\jsJaParam{\bxjs@catopt\jsJaParam{#1}}}
+\let\bxjs@magstyle@@mag=m
+\let\bxjs@magstyle@@real=r
+\let\bxjs@magstyle@@xreal=x
+\let\bxjs@magstyle@@usemag\bxjs@magstyle@@mag
+\let\bxjs@magstyle@@nomag\bxjs@magstyle@@real
+\bxjs@cslet{bxjs@magstyle@@nomag*}\bxjs@magstyle@@xreal
+\let\bxjs@magstyle@@default\bxjs@magstyle@@usemag
\ifx l\jsEngine \ifnum\luatexversion>86
- \let\bxjs@magstyle@default\bxjs@magstyle@xreal
+ \let\bxjs@magstyle@@default\bxjs@magstyle@@xreal
\fi\fi
\ifjsWithpTeXng
- \let\bxjs@magstyle@default\bxjs@magstyle@xreal
+ \let\bxjs@magstyle@@default\bxjs@magstyle@@xreal
\fi
-\let\bxjs@magstyle\bxjs@magstyle@default
+\let\bxjs@magstyle\bxjs@magstyle@@default
\define@key{bxjs}{magstyle}{%
- \expandafter\let\expandafter\bxjs@magstyle\csname
- bxjs@magstyle@#1\endcsname
+ \bxjs@csletcs{bxjs@magstyle}{bxjs@magstyle@@#1}%
\ifx\bxjs@magstyle\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option magstyle}\@ehc
- \let\bxjs@magstyle\bxjs@magstyle@default
- \fi}
-\let\bxjs@geometry@class=c
-\let\bxjs@geometry@user=u
-\let\bxjs@geometry\bxjs@geometry@class
-\define@key{bxjs}{geometry}{%
- \expandafter\let\expandafter\bxjs@geometry\csname
- bxjs@geometry@#1\endcsname
- \ifx\bxjs@geometry\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option geometry}\@ehc
- \let\bxjs@geometry\bxjs@geometry@class
+ \bxjs@error@keyval{magstyle}{#1}%
+ \let\bxjs@magstyle\bxjs@magstyle@@default
\fi}
-\newif\ifbxjs@fancyhdr \bxjs@fancyhdrtrue
-\let\bxjs@kv@fancyhdr@true\bxjs@fancyhdrtrue
-\let\bxjs@kv@fancyhdr@false\bxjs@fancyhdrfalse
-\define@key{bxjs}{fancyhdr}[true]{%
- \bxjs@set@keyval{fancyhdr}{#1}{}}
+\let\bxjs@geometry@@class=c
+\let\bxjs@geometry@@user=u
+\bxjs@declare@enum@option{geometry}{geometry}{class}
+\bxjs@declare@bool@option{fancyhdr}{fancyhdr}{true}
\newif\ifbxjs@dvi@opt
\let\bxjs@dvidriver@@dvipdfmx=\bxjs@driver@@dvipdfmx
\let\bxjs@dvidriver@@dvips=\bxjs@driver@@dvips
@@ -565,11 +579,9 @@
\let\bxjs@dvidriver@@xdvi=\bxjs@driver@@dvimode
\let\bxjs@dvidriver@@nodvidriver=\bxjs@driver@@none
\define@key{bxjs}{dvi}{%
- \expandafter\let\expandafter\bxjs@tmpa\csname
- bxjs@dvidriver@@#1\endcsname
+ \bxjs@csletcs{bxjs@tmpa}{bxjs@dvidriver@@#1}%
\ifx\bxjs@tmpa\relax
- \ClassError\bxjs@clsname
- {Invalid value '#1' for option dvi}\@ehc
+ \bxjs@error@keyval{dvi}{#1}%
\else
\def\bxjs@driver@opt{#1}%
\let\bxjs@driver@given\@undefined
@@ -584,6 +596,7 @@
\define@key{bxjs}{layout}{%
\bxjs@set@keyval{layout}{#1}{}}
\define@key{bxjs}{textwidth-limit}{%
+ \bxjs@depre@opt{textwidth-limit}{textwidth=#1zw}%
\edef\bxjs@textwidth@limit@opt{#1}}
\define@key{bxjs}{textwidth}{\edef\bxjs@textwidth@opt{#1}}
\define@key{bxjs}{line_length}{\setkeys{bxjs}{textwidth=#1}}
@@ -591,59 +604,32 @@
\define@key{bxjs}{number_of_lines}{\setkeys{bxjs}{number-of-lines=#1}}
\define@key{bxjs}{paragraph-mark}{%
\edef\bxjs@paragraph@mark{#1}}
-\newif\ifbxjs@whole@zw@lines \bxjs@whole@zw@linestrue
-\let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue
-\let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse
-\define@key{bxjs}{whole-zw-lines}[true]{\bxjs@set@keyval{wholezwlines}{#1}{}}
-\newif\ifbxjs@jaspace@cmd \bxjs@jaspace@cmdtrue
-\let\bxjs@kv@jaspacecmd@true\bxjs@jaspace@cmdtrue
-\let\bxjs@kv@jaspacecmd@false\bxjs@jaspace@cmdfalse
-\define@key{bxjs}{jaspace-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}}
-\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}}
-\newif\ifbxjs@fix@at@cmd \bxjs@fix@at@cmdtrue
-\let\bxjs@kv@fixatcmd@true\bxjs@fix@at@cmdtrue
-\let\bxjs@kv@fixatcmd@false\bxjs@fix@at@cmdfalse
-\define@key{bxjs}{fix-at-cmd}[true]{\bxjs@set@keyval{fixatcmd}{#1}{}}
-\newif\ifbxjs@hyperref@enc \bxjs@hyperref@enctrue
-\let\bxjs@kv@hyperrefenc@true\bxjs@hyperref@enctrue
-\let\bxjs@kv@hyperrefenc@false\bxjs@hyperref@encfalse
-\define@key{bxjs}{hyperref-enc}[true]{\bxjs@set@keyval{hyperrefenc}{#1}{}}
-\chardef\bxjs@everyparhook@none=0
-\chardef\bxjs@everyparhook@compat=1
-\chardef\bxjs@everyparhook@modern=2
-\if j\jsEngine
- \let\bxjs@everyparhook\bxjs@everyparhook@compat
-\else
- \let\bxjs@everyparhook\bxjs@everyparhook@modern
-\fi
-\def\bxjs@kv@everyparhook@none{\let\bxjs@everyparhook\bxjs@everyparhook@none}
-\def\bxjs@kv@everyparhook@compat{\let\bxjs@everyparhook\bxjs@everyparhook@compat}
-\def\bxjs@kv@everyparhook@modern{\let\bxjs@everyparhook\bxjs@everyparhook@modern}
-\define@key{bxjs}{everyparhook}{\bxjs@set@keyval{everyparhook}{#1}{}}
-\chardef\bxjs@label@section@none=0
-\chardef\bxjs@label@section@compat=1
-\chardef\bxjs@label@section@modern=2
-\let\bxjs@label@section\bxjs@label@section@compat
-\def\bxjs@kv@labelsection@none{\let\bxjs@label@section\bxjs@label@section@none}
-\def\bxjs@kv@labelsection@compat{\let\bxjs@label@section\bxjs@label@section@compat}
-\def\bxjs@kv@labelsection@modern{\let\bxjs@label@section\bxjs@label@section@modern}
-\define@key{bxjs}{label-section}{\bxjs@set@keyval{labelsection}{#1}{}}
-\newif\ifbxjs@usezw \bxjs@usezwtrue
-\bxjs@declare@bool@option{use-zw}{usezw}
-\DeclareOption{nozw}{\setkeys{bxjs}{use-zw=false}}
-\DeclareOption{zw}{\setkeys{bxjs}{use-zw=true}}
-\newif\ifbxjs@disguise@js \bxjs@disguise@jstrue
-\bxjs@declare@bool@option{disguise-js}{disguise@js}
-\DeclareOption{nojs}{\setkeys{bxjs}{disguise-js=false}}
-\DeclareOption{js}{\setkeys{bxjs}{disguise-js=true}}
-\newif\ifbxjs@precisetext
-\bxjs@declare@bool@option{precise-text}{precisetext}
-\DeclareOption{noprecisetext}{\setkeys{bxjs}{precise-text=false}}
-\DeclareOption{precisetext}{\setkeys{bxjs}{precise-text=true}}
-\newif\ifbxjs@simplejasetup \bxjs@simplejasetuptrue
-\bxjs@declare@bool@option{simple-ja-setup}{simplejasetup}
-\DeclareOption{nosimplejasetup}{\setkeys{bxjs}{simple-ja-setup=false}}
-\DeclareOption{simplejasetup}{\setkeys{bxjs}{simple-ja-setup=true}}
+\bxjs@declare@bool@option{whole-zw-lines}{whole@zw@lines}{true}
+\bxjs@declare@bool@option{jaspace-cmd}{jaspace@cmd}{true}
+\define@key{bxjs}{xkanjiskip-cmd}[true]{\setkeys{bxjs}{jaspace-cmd=#1}}
+\bxjs@declare@bool@option{fix-at-cmd}{fix@at@cmd}{true}
+\bxjs@declare@bool@option{hyperref-enc}{hyperref@enc}{true}
+\chardef\bxjs@everyparhook@@none=0
+\chardef\bxjs@everyparhook@@compat=1
+\chardef\bxjs@everyparhook@@modern=2
+\bxjs@declare@enum@option{everyparhook}{everyparhook}{%
+ \if j\jsEngine compat\else modern\fi}
+\chardef\bxjs@label@section@@none=0
+\chardef\bxjs@label@section@@compat=1
+\chardef\bxjs@label@section@@modern=2
+\bxjs@declare@enum@option{label-section}{label@section}{compat}
+\bxjs@declare@bool@option{use-zw}{usezw}{true}
+\DeclareOption{nozw}{\bxjs@depre@opt@do{nozw}{use-zw=false}}
+\DeclareOption{zw}{\bxjs@depre@opt@do{zw}{use-zw=true}}
+\bxjs@declare@bool@option{disguise-js}{disguise@js}{true}
+\DeclareOption{nojs}{\bxjs@depre@opt@do{nojs}{disguise-js=false}}
+\DeclareOption{js}{\bxjs@depre@opt@do{js}{disguise-js=true}}
+\bxjs@declare@bool@option{precise-text}{precisetext}{false}
+\DeclareOption{noprecisetext}{\bxjs@depre@opt@do{noprecisetext}{precise-text=false}}
+\DeclareOption{precisetext}{\bxjs@depre@opt@do{precisetext}{precise-text=true}}
+\bxjs@declare@bool@option{simple-ja-setup}{simplejasetup}{true}
+\DeclareOption{nosimplejasetup}{\bxjs@depre@opt@do{nosimplejasetup}{simple-ja-setup=false}}
+\DeclareOption{simplejasetup}{\bxjs@depre@opt@do{simplejasetup}{simple-ja-setup=true}}
\let\bxjs@org@removeelement\@removeelement
\def\@removeelement#1#2#3{%
\def\reserved@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@magstyle@default\bxjs@magstyle@mag\else
- \ifx\bxjs@magstyle\bxjs@magstyle@mag
- \let\bxjs@magstyle\bxjs@magstyle@default
+\ifx\bxjs@magstyle@@default\bxjs@magstyle@@mag\else
+ \ifx\bxjs@magstyle\bxjs@magstyle@@mag
+ \let\bxjs@magstyle\bxjs@magstyle@@default
\ClassError\bxjs@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@baseline{13}%
-\ifx\bxjs@magstyle\bxjs@magstyle@mag
+\ifx\bxjs@magstyle\bxjs@magstyle@@mag
\jsc@magtrue
-\else\ifx\bxjs@magstyle\bxjs@magstyle@xreal
+\else\ifx\bxjs@magstyle\bxjs@magstyle@@xreal
\jsc@mag@xrealtrue
\fi\fi
\ifx\bxjs@param@mag\relax
@@ -1081,15 +1067,29 @@
\setlength{\topskip}{10\p@?}
\def\bxjs@unit@trueQ{0.25truemm}\let\bxjs@unit@trueH\bxjs@unit@trueQ
\def\bxjs@unit@zw{\jsZw}\let\bxjs@unit@zh\bxjs@unit@zw
-\def\bxjs@tmpdo{\futurelet\bxjs@tmpa\bxjs@tmpdo@a}
-\def\bxjs@tmpdo@a{%
- \ifx\bxjs@tmpa\bgroup \expandafter\bxjs@tmpdo@b
- \else \expandafter\bxjs@tmpdo@c \fi}
-\def\bxjs@tmpdo@b#1#2#3\@nil{\edef\bxjs@param@paper{papersize={#1,#2}}}
-\def\bxjs@tmpdo@c#1\@nil{\bxjs@tmpdo@d#1,,\@nil}
-\def\bxjs@tmpdo@d#1,#2,#3\@nil{%
- \ifx\@nil#3\@nil\else \edef\bxjs@param@paper{papersize={#1,#2}}\fi}
-\expandafter\bxjs@tmpdo\bxjs@param@paper\@empty\@empty\@nil
+\@tempswafalse
+\def\bxjs@tmpdo{\@ifnextchar\bgroup\bxjs@tmpdo@a\remove@to@nnil}
+\def\bxjs@tmpdo@a#1{\edef\bxjs@tmpa{#1}%
+ \@ifnextchar\bgroup\bxjs@tmpdo@b\remove@to@nnil}
+\def\bxjs@tmpdo@b#1{\edef\bxjs@tmpa{\bxjs@tmpa,#1}%
+ \@ifnextchar\@nnil\bxjs@tmpdo@c\remove@to@nnil}
+\def\bxjs@tmpdo@c\@nnil{\@tempswatrue
+ \edef\bxjs@param@paper{papersize={\bxjs@tmpa}}}
+\expandafter\bxjs@tmpdo\bxjs@param@paper\@nnil
+\if@tempswa\else
+ \def\bxjs@tmpa{\@nil,\@nil}
+ \def\bxjs@tmpdo#1,#2,#3\@nnil{%
+ \def\bxjs@tmpb{#3}\ifx\bxjs@tmpa\bxjs@tmpb
+ \@tempswatrue\edef\bxjs@param@paper{papersize={#1,#2}}\fi}
+ \expandafter\bxjs@tmpdo\bxjs@param@paper,\@nil,\@nil\@nnil
+\fi
+\if@tempswa\else
+ \def\bxjs@tmpa{\@nil*\@nil}
+ \def\bxjs@tmpdo#1*#2*#3\@nnil{%
+ \def\bxjs@tmpb{#3}\ifx\bxjs@tmpa\bxjs@tmpb
+ \@tempswatrue\edef\bxjs@param@paper{papersize={#1,#2}}\fi}
+ \expandafter\bxjs@tmpdo\bxjs@param@paper*\@nil*\@nil\@nnil
+\fi
\edef\bxjs@layout@paper{%
\ifjsc@mag truedimen,\fi
\if@landscape landscape,\fi
@@ -1157,7 +1157,7 @@
\def\bxjs@apply@bd@pre@geometry@hook{%
\AddToHook{begindocument}[\bxjs@geometry@name]}
\fi
-\ifx\bxjs@geometry\bxjs@geometry@class
+\ifx\bxjs@geometry\bxjs@geometry@@class
\ifbxjs@papersize
\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx
\PassOptionsToPackage{dvipdfm}{geometry}
@@ -1205,7 +1205,7 @@
\noexpand\geometry{\bxjs@next}%
}\bxjs@next
\bxjs@postproc@layout}
-\else\ifx\bxjs@geometry\bxjs@geometry@user
+\else\ifx\bxjs@geometry\bxjs@geometry@@user
\g@addto@macro\bxjs@begin@document@hook{%
\ifdim\textwidth=.5\maxdimen
\ClassError\bxjs@clsname
@@ -1459,11 +1459,11 @@
\else \csname label#1\endcsname
\fi}
\def\@seccntformat#1{\bxjs@label@sect{#1}\quad}
-\ifnum\bxjs@label@section=\bxjs@label@section@compat\else
+\ifnum\bxjs@label@section=\bxjs@label@section@@compat\else
\def\@secapp{\presectionname}
\def\@secpos{\postsectionname}
\fi
-\ifnum\bxjs@label@section=\bxjs@label@section@modern
+\ifnum\bxjs@label@section=\bxjs@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@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\let\bxjs@if@ceph\@firstofone
\else \let\bxjs@if@ceph\@gobble
\fi
@@ -1578,7 +1578,7 @@
\newcounter{paragraph}[subsubsection]
\newcounter{subparagraph}[paragraph]
\renewcommand{\thepart}{\@Roman\c@part}
-\ifnum\bxjs@label@section=\bxjs@label@section@compat
+\ifnum\bxjs@label@section=\bxjs@label@section@@compat
\renewcommand{\thesection}{\presectionname\@arabic\c@section\postsectionname}
\renewcommand{\thesubsection}{\@arabic\c@section.\@arabic\c@subsection}
\else
@@ -1852,7 +1852,7 @@
\newcommand{\appendix}{\par
\setcounter{section}{0}%
\setcounter{subsection}{0}%
- \ifnum\bxjs@label@section=\bxjs@label@section@compat
+ \ifnum\bxjs@label@section=\bxjs@label@section@@compat
\gdef\presectionname{\appendixname}%
\gdef\postsectionname{}%
\gdef\thesection{\presectionname\@Alph\c@section\postsectionname}%
@@ -2164,7 +2164,7 @@
\llap{\@makefnmark\hskip0.3\jsZw}#1}
\let\jsInhibitGlueAtParTop\@empty
\def\everyparhook{\jsInhibitGlueAtParTop}
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\g@addto@macro\bxjs@begin@document@hook{\everypar{\everyparhook}}
\fi
\ifx j\jsEngine
@@ -2196,7 +2196,7 @@
\fi
\fi}
\fi
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@compat
\def\@doendpe{%
\@endpetrue
\def\par{%
@@ -2283,7 +2283,7 @@
\everypar{\everyparhook}%
\fi\everyparhook}}
\fi
-\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none\else
+\ifnum\bxjs@everyparhook=\bxjs@everyparhook@@none\else
\AtEndOfPackage{%
\def\@gnewline #1{%
\ifvmode