summaryrefslogtreecommitdiff
path: root/language/japanese
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-10-18 03:00:36 +0000
committerNorbert Preining <norbert@preining.info>2020-10-18 03:00:36 +0000
commit94b94cfd7a578d12bd5335c40e5f43400140c3f4 (patch)
tree96ace5aa514dd861d34ca86886099227dba7a7f4 /language/japanese
parent683b627ec089f4ddb05f06b1e93ee368189f78a4 (diff)
CTAN sync 202010180300
Diffstat (limited to 'language/japanese')
-rw-r--r--language/japanese/BX/bxjscls/README-ja.md9
-rw-r--r--language/japanese/BX/bxjscls/README.md1
-rw-r--r--language/japanese/BX/bxjscls/bxjscls-manual.pdfbin374709 -> 382171 bytes
-rw-r--r--language/japanese/BX/bxjscls/bxjscls-manual.tex92
-rw-r--r--language/japanese/BX/bxjscls/bxjscls.dtx468
-rw-r--r--language/japanese/BX/bxjscls/bxjscls.pdfbin1168525 -> 1173357 bytes
6 files changed, 379 insertions, 191 deletions
diff --git a/language/japanese/BX/bxjscls/README-ja.md b/language/japanese/BX/bxjscls/README-ja.md
index a52f63f2df..431c8fe52c 100644
--- a/language/japanese/BX/bxjscls/README-ja.md
+++ b/language/japanese/BX/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/language/japanese/BX/bxjscls/README.md b/language/japanese/BX/bxjscls/README.md
index acd69b1d05..f8f8eeb303 100644
--- a/language/japanese/BX/bxjscls/README.md
+++ b/language/japanese/BX/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/language/japanese/BX/bxjscls/bxjscls-manual.pdf b/language/japanese/BX/bxjscls/bxjscls-manual.pdf
index 250272dadb..4b188a5a49 100644
--- a/language/japanese/BX/bxjscls/bxjscls-manual.pdf
+++ b/language/japanese/BX/bxjscls/bxjscls-manual.pdf
Binary files differ
diff --git a/language/japanese/BX/bxjscls/bxjscls-manual.tex b/language/japanese/BX/bxjscls/bxjscls-manual.tex
index cec1bf665d..c0d2c109f5 100644
--- a/language/japanese/BX/bxjscls/bxjscls-manual.tex
+++ b/language/japanese/BX/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/language/japanese/BX/bxjscls/bxjscls.dtx b/language/japanese/BX/bxjscls/bxjscls.dtx
index e3e7a21d00..5ca16063eb 100644
--- a/language/japanese/BX/bxjscls/bxjscls.dtx
+++ b/language/japanese/BX/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/language/japanese/BX/bxjscls/bxjscls.pdf b/language/japanese/BX/bxjscls/bxjscls.pdf
index dceb12a49f..7700df43b6 100644
--- a/language/japanese/BX/bxjscls/bxjscls.pdf
+++ b/language/japanese/BX/bxjscls/bxjscls.pdf
Binary files differ