diff options
author | Karl Berry <karl@freefriends.org> | 2020-10-17 21:02:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-10-17 21:02:14 +0000 |
commit | 707f629e14e56b9e7b47522033f588c210c34cbb (patch) | |
tree | 8980cf90122d9ee89a81bd04044ca7cc41827a43 /Master | |
parent | 0e5e2f0d8a0472c17785e552e27fa41b0930c74c (diff) |
bxjscls (17oct20)
git-svn-id: svn://tug.org/texlive/trunk@56686 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
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 Binary files differindex 250272dadb1..4b188a5a493 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf +++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf 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 Binary files differindex dceb12a49fa..7700df43b61 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf +++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf 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 |