texlive[63011] Master: bxjscls (12apr22)

commits+karl at tug.org commits+karl at tug.org
Tue Apr 12 22:39:38 CEST 2022


Revision: 63011
          http://tug.org/svn/texlive?view=revision&revision=63011
Author:   karl
Date:     2022-04-12 22:39:37 +0200 (Tue, 12 Apr 2022)
Log Message:
-----------
bxjscls (12apr22)

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

Modified: trunk/Master/texmf-dist/doc/latex/bxjscls/README-ja.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/bxjscls/README-ja.md	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/doc/latex/bxjscls/README-ja.md	2022-04-12 20:39:37 UTC (rev 63011)
@@ -19,21 +19,33 @@
   * フォーマット: LaTeX
   * DVI ウェア: 不問
   * 必須パッケージ:
+      - calc
+      - geometry v5.0以降
+      - ifpdf
       - keyval
-      - calc
-      - geometry(v5.0以降)
-  * standard 和文ドライバで連携するパッケージ:
-      - (pdf)LaTeX の場合: 
-        CJK / bxcjkjatype(v0.2c以降)
-      - XeLaTeX の場合: 
-        xeCJK(v3.0以降) / zxjatype(v0.6以降)
-      - LuaLaTeX の場合: 
-        LuaTeX-ja
-  * その他、場合により必須となるパッケージ:
-      - type1cm : `magstyle` が `real`/`xreal` である場合
-      - pxchfon(v0.5以降): pLaTeX で `jafont` を指定した場合
-      - zxjafont(v0.2a以降): XeLaTeX で `jafont` を指定した場合
-      - bxwareki : 日付の和暦表示機能を使う場合
+  * 場合により必須となるパッケージ:
+      - bxwareki: 日付の和暦表示機能を使う場合
+      - jslogo: `jslogo` 指定時
+      - plautopatch v0.3以降: (u)pLaTeX かつ `plautopatch` 指定時
+      - type1cm: `magstyle=nomag*` 指定時
+      - standard 和文ドライバ使用時:
+          + bxcalc v1.0以降: 和文パラメタ `units` 指定時
+          + bxcjkjatype v0.2c以降: (pdf)LaTeX 使用時
+          + CJK: (pdf)LaTeX 使用時
+          + LuaTeX-ja: LuaLaTeX 使用時
+          + pxchfon v0.5以降: (u)pLaTeX かつ `jafont` 指定時
+          + pxjahyper-enc: インストール済なら使用する
+          + xeCJK v3.0以降: XeLaTeX 使用時
+          + zxjafont v0.2a以降: XeLaTeX かつ `jafont` 指定時
+          + zxjatype: XeLaTeX 使用時
+      - Pandoc モード使用時: ※standard のものに追加して
+          + bxghost v0.3.0以降: インストール済なら使用する
+          + bxorigcapt: Babel 使用時
+          + etoolbox v2.0以降: e-TeX なら
+          + filehook v0.5d以降: e-TeX なら
+          + iftex
+          + pdftexcmds v0.5以降
+          + pxbabel: (u)pLaTeX かつ Babel 使用時
   * エンジンが (u)pTeX 以外で、かつ和文ドライバが standard 以外の場合、
     そのエンジンに対応する日本語処理パッケージが必要となる。
 
@@ -99,10 +111,15 @@
 更新履歴
 --------
 
+  * Version 2.7a 〈2022/04/10〉
+      - (試験的) `nodvidriver*` オプションを追加。
+  * Version 2.7  〈2022/03/30〉
+      - 新版の Pandoc テンプレートへの対策。
+      - バグ修正。
   * Version 2.6  〈2022/03/20〉
       - LaTeX カーネル 2021/11/15 版への対応。
       - 新版の Pandoc テンプレートへの対策。
-      - `\strongfontdeclare` 環境の補填。
+      - `\strongfontdeclare` 命令の補填。
   * Version 2.5a 〈2021/05/18〉
       - 新版の Pandoc テンプレートへの対策。
   * Version 2.5  〈2021/02/02〉

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

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

Modified: trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex	2022-04-12 20:39:37 UTC (rev 63011)
@@ -1,6 +1,7 @@
 % 文字コードは UTF-8
 % lualatex で組版する
 \documentclass[a4paper]{ltjsarticle}
+\renewcommand{\headfont}{\romanseries{sbc}\sffamily}
 \usepackage{color}
 \definecolor{myblue}{rgb}{0,0,0.75}
 \definecolor{mygreen}{rgb}{0,0.45,0}
@@ -11,8 +12,8 @@
 \bxtexlogoimport{*}
 \usepackage{shortvrb}
 \MakeShortVerb{\|}
-\newcommand{\PkgVersion}{2.6}
-\newcommand{\PkgDate}{2022/03/20}
+\newcommand{\PkgVersion}{2.7a}
+\newcommand{\PkgDate}{2022/04/10}
 \newcommand{\Pkg}[1]{\textsf{#1}}
 \newcommand{\Meta}[1]{$\langle$\mbox{}\nobr#1\nobr\mbox{}$\rangle$}
 \newcommand{\Note}{\par\noindent ※}
@@ -949,6 +950,8 @@
 \paragraph{旧版との互換用のオプション}\mbox{}
 
 2.0版以降では、これらのオプションの使用は\jemph{非推奨}である。
+\Note (|no|)|zw|、(|no|)|js|、|jadriver|、|noscale| については、
+3.0版で\jemph{廃止}する予定。
 
 \begin{itemize}
 \item |zw|\Means

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

Modified: trunk/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx	2022-04-12 20:39:37 UTC (rev 63011)
@@ -56,7 +56,9 @@
 %<*driver>
 \ProvidesFile{bxjscls.dtx}
 %</driver>
-  [2022/03/20 v2.6  BXJS document classes]
+  [2022/04/10 v2.7a BXJS document classes]
+% [2022/03/30 v2.7  BXJS document classes]
+% [2022/03/20 v2.6  BXJS document classes]
 % [2021/05/18 v2.5a BXJS document classes]
 % [2021/02/02 v2.5  BXJS document classes]
 % [2021/01/27 v2.4a BXJS document classes]
@@ -129,16 +131,18 @@
 % based on jsclasses [2013/05/14]
 %<*driver>
 \documentclass[a4paper]{ltjsarticle}
-\usepackage[ipaex]{luatexja-preset}
-\usepackage{metalogo}
+%\usepackage[ipaex]{luatexja-preset}
+\renewcommand{\headfont}{\romanseries{sbc}\sffamily}
+\usepackage{bxtexlogo}
+\bxtexlogoimport{*}
 \usepackage{doc}
 \usepackage{color}
 \newcommand{\Pkg}[1]{\textsf{#1}}
 \newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
 \newcommand{\Note}{\par\noindent ※}
+\newcommand{\Means}{:\quad}
 \newcommand{\TODO}{\par\noindent
   {\usefont{OT1}{cmss}{sbc}{n}\color{red}TODO:}\ }
-\newcommand{\Means}{~:\quad}
 \newcommand{\OR}{$\;|\;$}
 \newcommand{\ZRX}{☃}
 \newenvironment{ZRnote}
@@ -148,9 +152,6 @@
   \makebox{\hspace{.05\linewidth}\rule[#1ex]{.9\linewidth}{.2pt}}\par}
 \newcommand*{\StartZRnote}{\ZRnoteline{.1}}
 \newcommand*{\EndZRnote}{\ZRnoteline{.9}}
-\providecommand*{\eTeX}{$\varepsilon$-\TeX}
-\providecommand*{\upTeX}{u\pTeX}
-\providecommand*{\XeTeX}{XeTeX}
 \newcommand*{\zrWDash}{\symbol{"301C}}% WAVE DASH
 \newcommand*{\zrNote}[1]{[#1]}
 \makeatletter
@@ -336,13 +337,27 @@
 %    \begin{macrocode}
 \RequirePackage{keyval}
 %    \end{macrocode}
-% クラスの本体ではこの他に |geometry| パッケージが読み込まれる。
-% \TODO 依存パッケージの情報。
+% クラスの本体ではこの他に以下のパッケージが読み込まれる。
+% \begin{quote}
+%   |geometry|、|ifpdf|
+% \end{quote}
+% また状況によっては以下のパッケージが読み込まれる可能性がある。
+% \begin{quote}
+%   |bxwareki|、|jslogo|、|plautopatch|、|type1cm|
+% \end{quote}
 %
+% \begin{macro}{\jsAtEndOfClass}
+% このクラスの読込終了時に対するフック。
+% (補助パッケージ中で用いられる。)
+%    \begin{macrocode}
+\def\jsAtEndOfClass{%
+  \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
+%    \end{macrocode}
+% \end{macro}
+%
 % 互換性のための補助パッケージを読み込む。
 %    \begin{macrocode}
 \IfFileExists{bxjscompat.sty}{%
-  \let\jsAtEndOfClass\@gobble
   \RequirePackage{bxjscompat}%
 }{}
 %    \end{macrocode}
@@ -372,8 +387,8 @@
 % エンジン({\TeX}の種類)の種別:
 % |j|={\pTeX}系、
 % |x|={\XeTeX}、
-% |p|=pdf{\TeX}(含DVIモード)、
-% |l|=Lua{\TeX}、
+% |p|={\pdfTeX}(含DVIモード)、
+% |l|={\LuaTeX}、
 % |J|=NTT j{\TeX}、
 % |O|=Omega系、
 % |n|=以上の何れでもない。
@@ -438,7 +453,7 @@
 \fi{\endinput\@@end}
 %    \end{macrocode}
 %
-% Lua{\TeX}の場合、本クラス用のLuaモジュールを用意する。
+% {\LuaTeX}の場合、本クラス用のLuaモジュールを用意する。
 %    \begin{macrocode}
 \ifx l\jsEngine
   \directlua{ bxjs = {} }
@@ -468,8 +483,9 @@
 %
 % \begin{macro}{\ifjsInPdfMode}
 % 〔スイッチ〕
-% pdf{\TeX}/Lua{\TeX}がPDFモードで動作しているか。
-% \Note Lua{\TeX} 0.8x版でのプリミティブ名変更に対応。
+% {\pdfTeX}/{\LuaTeX}がPDFモードで動作しているか。
+% \Note {\LuaTeX} 0.8x版でのプリミティブ名変更に対応。
+% \TODO |iftex| パッケージ(+自前実装)に置き換える。
 %    \begin{macrocode}
 \newif\ifjsInPdfMode
 \@nameuse{ImposeOldLuaTeXBehavior}
@@ -497,7 +513,7 @@
 % \Note 2017年1月以降の{\LaTeX}カーネルにおいて
 % 「Unicodeを表す{\LaTeX}公式のフォントエンコーディング」
 % である“TU”が導入され、
-% これ以降の{\LaTeX}を{\XeTeX}またはLua{\TeX}で動かしている場合は、
+% これ以降の{\LaTeX}を{\XeTeX}または{\LuaTeX}で動かしている場合は、
 % 既定のエンコーディングがTUになる。
 % それ以外の場合は、既定のエンコーディングはOT1である。
 %    \begin{macrocode}
@@ -520,10 +536,11 @@
 % \end{macro}
 %
 % \begin{macro}{\bxjs at CGHN}
-% カーネルの2021/11/15版の改修で“要素の順が変わった”フック名について、
-% 新仕様の名前を“使用中の{\LaTeX}において正しい名前”に変換する。
-% \Note 例えば、“|package/after/PKG|”は新仕様で
-% “|package/PKG/after|”に変更された。
+% {\LaTeX}カーネルの2021/11/15版の改修で「要素の順が変わった」
+% フック名について、“新仕様において正しい名前”を
+% “使用中の{\LaTeX}において正しい名前”に変換する。
+% 例えば、|\bxjs at CGHN{package/PKG/after}| は旧仕様の{\LaTeX}では
+% “|package/after/PKG|”に展開される。
 %    \begin{macrocode}
 \@ifl at t@r\fmtversion{2021/11/15}{%
   \def\bxjs at CGHN#1{#1}%
@@ -678,11 +695,19 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\ifbxjs at after@preamble}
+% 〔スイッチ〕
+% 文書本体が開始しているか。
+%    \begin{macrocode}
+\newif\ifbxjs at after@preamble
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{\bxjs at begin@document at hook}
 % BXJSクラス用の文書本体開始時フック。
 %    \begin{macrocode}
 \@onlypreamble\bxjs at begin@document at hook
-\let\bxjs at begin@document at hook\@empty
+\def\bxjs at begin@document at hook{\bxjs at after@preambletrue}
 \AtBeginDocument{\bxjs at begin@document at hook}
 %    \end{macrocode}
 % \end{macro}
@@ -703,15 +728,6 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\jsAtEndOfClass}
-% このクラスの読込終了時に対するフック。
-% (補助パッケージ中で用いられる。)
-%    \begin{macrocode}
-\def\jsAtEndOfClass{%
-  \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
-%    \end{macrocode}
-% \end{macro}
-%
 % 一時的な手続き用の制御綴。
 %    \begin{macrocode}
 \@onlypreamble\bxjs at tmpdo
@@ -721,26 +737,6 @@
 \@onlypreamble\bxjs at tmpdo@d
 %    \end{macrocode}
 %
-% Lua\TeX の場合、原版のコード中のコントロールワード中に現れる
-% 日本語文字のカテゴリコードを一時的に11に変更する。
-% クラス読込終了時点で元に戻される。
-% \Note 現在の{Lua\LaTeX}では、漢字のカテゴリコードは最初から11に
-% なっているので、この処理は特段の意味を持たない。
-% しかし、昔は12になっていて、この場合、日本語文字の
-% コントロールワードの命令を使用するには、カテゴリコードを11に
-% 変更する必要がある。
-%    \begin{macrocode}
-\if l\jsEngine
-\def\bxjs at tmpdo#1{%
-  \xdef\bxjs at pre@jadriver at hook{%
-    \bxjs at pre@jadriver at hook
-    \catcode`#1=\the\catcode`#1\relax}%
-  \catcode`#1=11\relax}
-\@tfor\bxjs at tmpa:=和西暦\do
-  {\expandafter\bxjs at tmpdo\bxjs at tmpa}
-\fi
-%    \end{macrocode}
-%
 % |\jsInhibitGlue| は |\inhibitglue| が定義されていればそれを
 % 実行し、未定義ならば何もしない。
 %    \begin{macrocode}
@@ -748,6 +744,32 @@
   \ifx\inhibitglue\@undefined\else \inhibitglue \fi}
 %    \end{macrocode}
 %
+% \paragraph{環境検査 \ZRX}
+% 
+% {\TeX}処理系のバージョンがサポート対象であるかを検査する。
+% \Note 現状での処理系バージョン要件は
+% 「{\XeTeX}は0.997版(2007年頃)以上」
+% という現実離れしたものになっている。
+% \TODO 3.0版において、もっと現実的なバージョン要件を定める予定。
+% 多分「本体」と「標準和文ドライバ」で条件を分けることになる。
+%    \begin{macrocode}
+\@tempswatrue
+\if x\jsEngine
+  \ifdim\the\XeTeXversion\XeTeXrevision\p@<0.997\p@
+    \@tempswafalse \fi
+\fi
+%    \end{macrocode}
+% 非サポートのバージョン場合は強制終了させる。
+%    \begin{macrocode}
+\if at tempswa \expandafter\@gobble
+\else
+  \ClassError\bxjs at clsname
+   {The engine in use is all too old}
+   {It's a fatal error. I'll quit right now.}
+  \expandafter\@firstofone
+\fi{\endinput\@@end}
+%    \end{macrocode}
+%
 % 万が一「2.09互換モード」になっていた場合は、
 % これ以上進むと危険なので強制終了させる。
 %    \begin{macrocode}
@@ -1522,6 +1544,8 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \Note |nodvidriver*| はBXJSクラスの仕様上は |nodvidriver| と完全に
+% 等価であるが、「グローバルオプションに何があるか」の点で異なる。
 %    \begin{macrocode}
 \DeclareOption{dvips}{%
   \def\bxjs at driver@opt{dvips}%
@@ -1538,6 +1562,9 @@
 \DeclareOption{nodvidriver}{%
   \def\bxjs at driver@opt{nodvidriver}%
   \let\bxjs at driver@given\bxjs at driver@@none}
+\DeclareOption{nodvidriver*}{%
+  \def\bxjs at driver@opt{nodvidriver*}%
+  \let\bxjs at driver@given\bxjs at driver@@none}
 \DeclareOption{pdftex}{%
   \def\bxjs at driver@opt{pdftex}%
   \let\bxjs at driver@given\bxjs at driver@@pdfmode}
@@ -1766,6 +1793,7 @@
 %    \end{macrocode}
 %
 % |noscale| オプションの処理。
+% \TODO |noscale| は3.0版で廃止の予定。
 %    \begin{macrocode}
 \DeclareOption{noscale}{\bxjs at depre@opt at do{noscale}{scale=1}}
 %    \end{macrocode}
@@ -1797,6 +1825,7 @@
 %
 % |ja| オプションの処理。
 % \Note |jadriver| は0.9版で用いられた旧称。
+% \TODO |jadriver| は3.0版で廃止の予定。
 % \Note 単なる |ja| という指定は無視される(Pandoc 対策)。
 %    \begin{macrocode}
 \define at key{bxjs}{jadriver}{%
@@ -1910,6 +1939,7 @@
 \let\bxjs at dvidriver@@dviout=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@xdvi=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@nodvidriver=\bxjs at driver@@none
+\bxjs at cslet{bxjs at dvidriver@@nodvidriver*}\bxjs at driver@@none
 %    \end{macrocode}
 %
 % |dvi| オプションの処理。
@@ -2052,6 +2082,7 @@
 %
 % \begin{macro}{\ifbxjs at usezw}
 % 〔スイッチ〕 |use-zw| の指定値。
+% \TODO |zw|/|nozw| は3.0版で廃止の予定。
 %    \begin{macrocode}
 \bxjs at declare@bool at option{use-zw}{usezw}{true}
 \DeclareOption{nozw}{\bxjs at depre@opt at do{nozw}{use-zw=false}}
@@ -2061,6 +2092,7 @@
 %
 % \begin{macro}{\ifbxjs at disguise@js}
 % 〔スイッチ〕 |disguise-js| の指定値。
+% \TODO |js|/|nojs| は3.0版で廃止の予定。
 %    \begin{macrocode}
 \bxjs at declare@bool at option{disguise-js}{disguise at js}{true}
 \DeclareOption{nojs}{\bxjs at depre@opt at do{nojs}{disguise-js=false}}
@@ -2349,6 +2381,14 @@
 %
 % \paragraph{その他のBXJS特有の後処理 \ZRX}
 %
+% 標準の和文ドライバの名前の定数。
+%    \begin{macrocode}
+\def\bxjs@@minimal{minimal}
+\def\bxjs@@standard{standard}
+\def\bxjs@@pandoc{pandoc}
+\def\bxjs@@modern{modern}
+%    \end{macrocode}
+%
 % |\bxjs at jadriver| の正規化。
 % 値が未指定の場合は |minimal| に変える。
 % ただしエンジンが{(u)\pTeX}である場合は |standard|
@@ -2355,10 +2395,9 @@
 % に変える。
 % \Note {(u)\pTeX}以外で |ja| を省略するのは2.0版より非推奨となった。
 %    \begin{macrocode}
-\def\bxjs@@minimal{minimal}
 \ifx\bxjs at jadriver\relax
   \ifx j\jsEngine
-    \def\bxjs at jadriver{standard}
+    \let\bxjs at jadriver\bxjs@@standard
   \else
     \ClassWarningNoLine\bxjs at clsname
      {The option 'ja' is MISSING!!\MessageBreak
@@ -2376,7 +2415,6 @@
 % |calc|、|keyval|、|ifpdf|。
 % \Note Pandocモードでは |plautopatch| の既定値を真とする。
 %    \begin{macrocode}
-\def\bxjs@@pandoc{pandoc}
 \ifx\bxjs at jadriver\bxjs@@pandoc \ifx\bxjs at plautopatch@given\@undefined
     \ifjsWitheTeX
   \bxjs at plautopatchtrue
@@ -2398,7 +2436,7 @@
 \fi\fi
 %    \end{macrocode}
 %
-% 新しいLua{\TeX}(0.87版以降)ではmagがアレなので、
+% 新しい{\LuaTeX}(0.87版以降)ではmagがアレなので、
 % |magstyle=usemag| が指定されていた場合はエラーを出す。
 % (この場合の既定値は |nomag*| であり、
 % エラーの場合は既定値に置き換えられる。)
@@ -2644,7 +2682,7 @@
 % ここで{p\TeX}のzwに相当する単位として用いる長さ変数 |\jsZw| を作成する。
 % 約束により、これは |\jsScale| $\times$ (指定フォントサイズ) に等しい。
 %
-% |nozw| 非指定時は |\zw| を |\jsZw| と同義にする。
+% |use-zw| が真の時は |\zw| を |\jsZw| と同義にする。
 %    \begin{macrocode}
 \newdimen\jsZw
 \jsZw=10\jsc at mpt \jsZw=\jsScale\jsZw
@@ -3370,7 +3408,8 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% 現状ではここで |\mag| を設定している。\par
+% 現状ではここで |\mag| を設定している。
+%
 % |\topskip| も指定する。
 %    \begin{macrocode}
 \ifjsc at mag
@@ -3663,10 +3702,9 @@
 %    \end{macrocode}
 %
 % ここで |geometry| を読み込む。
-% \Note |geometry| のbegin-documentフックにおいて、Lua{\TeX}の
+% \Note |geometry| のbegin-documentフックにおいて、{\LuaTeX}の
 % 旧版互換を有効にする。
 %    \begin{macrocode}
-\bxjs at apply@bd at pre@geometry at hook
 \bxjs at apply@bd at pre@geometry at hook{\bxjs at bd@pre at geometry@hook}
 \bxjs at apply@bd at pre@geometry at hook{\ImposeOldLuaTeXBehavior}
 \bxjs at preproc@layout
@@ -3690,7 +3728,7 @@
 %    \begin{macrocode}
 \g at addto@macro\bxjs at bd@pre at geometry@hook{%
 %    \end{macrocode}
-% BXJS2.0版より、|geometry| の4.x版のサポートは廃止された。
+% BXJSの2.0版より、|geometry| の4.x版のサポートは廃止された。
 %    \begin{macrocode}
     \@ifpackagelater{geometry}{2010/02/12}{}{%else
       \PackageError\bxjs at clsname
@@ -4431,6 +4469,16 @@
 \let\pltx at cleartorightpage\pltx at cleartooddpage
 \let\pltx at cleartoleftpage\pltx at cleartoevenpage
 %    \end{macrocode}
+%
+% |\vsize| の値がアレな場合は本体開始まで |\clearpage| を無効にする。
+%    \begin{macrocode}
+\ifdim\vsize=\z@
+\begingroup
+\toks@\expandafter{\clearpage}
+\xdef\clearpage{\noexpand\ifbxjs at after@preamble\the\toks@\noexpand\fi}
+\endgroup
+\fi
+%    \end{macrocode}
 % \end{ZRnote}
 %
 % \end{macro}
@@ -8128,7 +8176,7 @@
     \global\let\bxjs at wareki@used\@empty
     \ClassWarning\bxjs at clsname
      {Wareki mode is not supported, since\MessageBreak
-      'bxwareki' is unavailable, found}}
+      'bxwareki' is unavailable, reported}}
   \g at addto@macro\bxjs at begin@document at hook{%
     \let\bxjs at wareki@used\@empty}
 \fi
@@ -8270,8 +8318,8 @@
 %   使用されているエンジンの種別。
 %   (|\if| で判定可能)。
 %   \begin{quote}\begin{tabular}{l@{\qquad}l}
-%   |p|   & pdf{\TeX}(DVIモードも含む)\\
-%   |l|   & Lua{\TeX}(〃)\\
+%   |p|   & {\pdfTeX}(DVIモードも含む)\\
+%   |l|   & {\LuaTeX}(〃)\\
 %   |x|   & {\XeTeX}\\
 %   |j|   & {\pTeX}または{\upTeX}\\
 %   |n|   & 以上の何れでもない
@@ -8281,7 +8329,7 @@
 % \item |\ifjsWitheTeX| \zrNote{スイッチ}\quad
 %   使用されているエンジンが{\eTeX}拡張であるか。
 % \item |\ifjsInPdfMode| \zrNote{スイッチ}\quad
-%   使用されているエンジンが(pdf{\TeX}・Lua{\TeX}の)
+%   使用されているエンジンが({\pdfTeX}・{\LuaTeX}の)
 %   PDFモードであるか。
 % \item |\jsUnusualPtSize| \zrNote{整数定数を表す文字列のマクロ}\quad
 %   基底フォントサイズが |10pt|、|11pt|、|12pt| のいずれでもない
@@ -8323,7 +8371,7 @@
 %   ほとんどの場合、和文フォントをNFSSで規定する際に |\jsScale|
 %   の値をスケール値として与えれば上手くいく。
 % \item |\jsFontSizeChanged| \zrNote{マクロ}\quad
-%   フォントサイズが変更された時に必ず呼び出されるマクロ。
+%   フォントサイズが変更された時に必ず呼び出される(呼び出すべき)マクロ。
 % \item |\jsResetDimen| \zrNote{マクロ}★\quad
 %   上記 |\jsFontSizeChanged| の中で呼び出される、
 %   ユーザ(和文モジュール)用のフック。
@@ -8339,13 +8387,13 @@
 %^^A========================================================
 % \section{和文ドライバ:minimal \ZRX}
 %
-% |jadriver| の指定が無い場合に適用されるドライバ。
+% |ja| オプションの指定が無い場合に適用されるドライバ。
 % また、standard ドライバはまずこのドライバファイルを
 % 読み込んでいる。
 %
 % このドライバでは、各エンジンについての必要最低限の処理だけを
 % 行っている。
-% 日本語処理のためのパッケージ(xeCJK や Lua{\TeX}-ja 等)
+% 日本語処理のためのパッケージ(xeCJK や {\LuaTeX}-ja 等)
 % を自分で読み込んで適切な設定を行うという使用状況を想定している。
 %
 % ただし、(u){\pTeX}エンジンについては例外で、和文処理機構の
@@ -8352,6 +8400,9 @@
 % 選択の余地がないため、このドライバにおいて、
 % 「JSクラスと同等の指定」を完成させるためのコードを記述する。
 %
+% \TODO 本来は「minimalにすら依存しない」はずのものがminimalの
+% コード中に書かれているような気がする……。
+%
 %^^A----------------
 % \subsection{補助マクロ}
 %
@@ -8507,7 +8558,7 @@
 %
 % \paragraph{補助マクロ}
 %
-% |\jsLetHeadChar| を和文文字トークンに対応させる。
+% |\jsLetHeadChar| をUTF-8バイト列と和文文字トークンに対応させる。
 %    \begin{macrocode}
 \def\bxjs at let@hchar at chr@pp#1#2{%
   \expandafter\bxjs at let@hchar at chr@pp at a\meaning#2\relax#1#2}
@@ -8712,6 +8763,7 @@
 \selectfont
 %    \end{macrocode}
 %
+% これ以降では、
 % |\bxjs at parse@qh| の処理は{\pTeX}系では不要になるので無効化する
 % (つまり |\jsSetQHLength| は |\setlength| と等価になる)。
 %    \begin{macrocode}
@@ -8795,16 +8847,18 @@
 %    \end{macrocode}
 %
 %^^A----------------
-% \subsection{pdf{\TeX}用の処理}
+% \subsection{{\pdfTeX}用の処理}
 %
 %    \begin{macrocode}
-\else\ifx p\jsEngine
+\else\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T
 %    \end{macrocode}
 %
+% |\jsLetHeadChar| をUTF-8バイト列に対応させる。
 %    \begin{macrocode}
 \let\bxjs at let@hchar at chr\bxjs at let@hchar at chr@ue
 %    \end{macrocode}
 %
+% ムニャムニャ。
 %    \begin{macrocode}
 \@onlypreamble\bxjs at cjk@loaded
 \def\bxjs at cjk@loaded{%
@@ -8852,7 +8906,7 @@
 %    \end{macrocode}
 %
 % \begin{macro}{\bxjs at do@precisetext}
-% |precisetext| オプションの処理。
+% |precisetext| オプションの実際の処理内容。
 %    \begin{macrocode}
 \@onlypreamble\bxjs at do@precisetext
 \ifx\XeTeXgenerateactualtext\@undefined\else
@@ -8863,12 +8917,14 @@
 % \end{macro}
 %
 % \begin{macro}{\bxjs at do@simplejasetup}
-% |simplejasetup| オプションの処理。
+% |simplejasetup| オプションの実際の処理内容。
+% \TODO バージョン要件を見直して暫定措置を解除する。
 %    \begin{macrocode}
 \@onlypreamble\bxjs at do@simplejasetup
 \def\bxjs at do@simplejasetup{%
+  \@namedef{bxjs at zeroglue/0.0pt}{T}%
   \ifnum\XeTeXinterchartokenstate>\z@
-  \else\ifnum\strcmp{\the\XeTeXlinebreakskip}{\the\z@}=\z@
+  \else\expandafter\ifx\csname bxjs at zeroglue/\the\XeTeXlinebreakskip\endcsname\relax\else
     \jsSimpleJaSetup
     \ClassInfo\bxjs at clsname
      {'\string\jsSimpleJaSetup' is applied\@gobble}%
@@ -8952,7 +9008,7 @@
 % かつ |fancyhdr| が使用された場合に以下の対策を行う。
 % \begin{itemize}
 % \item デフォルトの書式設定に含まれる“二文字フォント命令”を除去する。
-% \item bxjsbookにおいて、ヘッダ・フッタの横幅を |\fullwidth| に変える。
+% \item |bxjsbook| においてヘッダ・フッタの横幅を |\fullwidth| に変える。
 % \end{itemize}
 %
 %    \begin{macrocode}
@@ -9026,6 +9082,11 @@
   \global\let\bxjs at pagestyle@hook\relax}
 %    \end{macrocode}
 %
+% 終わり。
+%    \begin{macrocode}
+\fi
+%    \end{macrocode}
+%
 % \paragraph{和文空白命令}
 %    \begin{macrocode}
 \ifbxjs at jaspace@cmd
@@ -9070,10 +9131,6 @@
 %    \end{macrocode}
 % \end{macro}
 %
-%    \begin{macrocode}
-\fi
-%    \end{macrocode}
-%
 % 終わり。
 %    \begin{macrocode}
 \fi
@@ -9270,7 +9327,7 @@
 % \begin{environment}{strongenv}
 % |fontspec| で提供される |\strong| 命令と |strongenv| 環境を
 % 全てのエンジンで使えるようにする。
-% \Note 
+% \Note 既に利用可能である場合は何もしない。
 %    \begin{macrocode}
 \ifbxjs at jp@strong at cmd\jsAtEndOfClass{%
   \ifx\strong\@undefined\ifx\strongenv\@undefined
@@ -9278,8 +9335,6 @@
     \DeclareTextFontCommand{\strong}{\strongenv}%
 %    \end{macrocode}
 % |fontspec| と互換の |\strongfontdeclare| 命令も提供する。
-% ただし、BXJSでの |\strong| は多段階には対応しないので、
-% 引数のコンマ区切りリストのうちの先頭の項目だけが意味をもつ。
 % 既定の設定は |\bfseries|(太字)である。
 % \Note |\strongfontdeclare| は試験的機能とする。
 %    \begin{macrocode}
@@ -9491,7 +9546,7 @@
 %
 % \paragraph{和文フォント指定の扱い}
 %
-% |standard| 和文ドライバでは |\jsJaFont| の値を和文フォントの
+% standard和文ドライバでは |\jsJaFont| の値を和文フォントの
 % “プリセット”の指定として用いる。
 % プリセットの値は、{\TeX} Liveの |kanji-config-updmap| コマンドで
 % 使う“ファミリ”と同じにすることを想定する。
@@ -9953,10 +10008,10 @@
 %    \end{macrocode}
 %
 %^^A----------------
-% \subsection{pdf{\TeX}用設定: CJK + bxcjkjatype}
+% \subsection{{\pdfTeX}用設定: CJK + bxcjkjatype}
 %
 %    \begin{macrocode}
-\else\if p\jsEngine
+\else\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T
 %    \end{macrocode}
 %
 % \paragraph{bxcjkjatypeパッケージの読込}
@@ -9963,7 +10018,7 @@
 %
 % |\jsJaFont| が指定されている場合は、その値を |bxcjkjatype| の
 % オプション(プリセット指定)に渡す。
-% (|auto| ならば |\bxjs at get@kanjiEmbed| を実行する。)
+% ここで値が |auto| である場合は |\bxjs at get@kanjiEmbed| を実行する。
 % スケール値(|\jsScale|)の反映は bxcjkjatype の側で行われる。
 % \Note Pandocモードでは |autotilde| を指定しない。
 %    \begin{macrocode}
@@ -9972,7 +10027,7 @@
 \bxjs at resolve@jafont at paren\bxjs at tmpa
 \edef\bxjs at tmpa{\bxjs at catopt\bxjs at tmpa\bxjs at jp@font}
 \edef\bxjs at tmpa{\bxjs at catopt\bxjs at tmpa{whole}}
-\def\bxjs at tmpb{pandoc}\ifx\bxjs at tmpb\bxjs at jadriver\else
+\ifx\bxjs at jadriver\bxjs@@pandoc\else
   \edef\bxjs at tmpa{\bxjs at catopt\bxjs at tmpa{autotilde}}
 \fi
 \edef\bxjs at next{%
@@ -9984,7 +10039,6 @@
 % \paragraph{hyperref対策}
 %
 % |bxcjkjatype| 使用時は |unicode| にするべき。
-% \Note 取りあえず固定はしない。
 %    \begin{macrocode}
 \ifbxjs at hyperref@enc
   \PassOptionsToPackage{unicode}{hyperref}
@@ -10134,13 +10188,20 @@
 % 「{\XeTeX}のバージョンが0.99992以上の場合に |unicode| を既定で
 % 有効にする」
 % ことにする。
-% \Note 取りあえず固定はしない。
+% \Note {\TeX}の小数の精度は十進で4桁までしか保証されないので、
+% |\strcmp| を利用して文字列で比較している。
+% (整数部が多桁になっても大丈夫。)
+% しかし実は、|\strcmp| プリミティブが追加されたのは
+% 0.9994版(2009年6月)かららしい。
+% \TODO バージョン要件を見直して暫定措置を解除する。
 %    \begin{macrocode}
+\ifx\strcmp\@undefined\else %未定義なら条件を満たさない
 \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99992}>\m at ne
   \ifbxjs at hyperref@enc
     \PassOptionsToPackage{unicode}{hyperref}
   \fi
 \fi
+\fi
 %    \end{macrocode}
 %
 % \paragraph{段落頭でのグルー挿入禁止}
@@ -10231,13 +10292,13 @@
 %    \end{macrocode}
 %
 %^^A----------------
-% \subsection{Lua{\TeX}用設定: Lua{\TeX}-ja}
+% \subsection{{\LuaTeX}用設定: {\LuaTeX}-ja}
 %
 %    \begin{macrocode}
 \else\if l\jsEngine
 %    \end{macrocode}
 %
-% \paragraph{Lua{\TeX}-jaパッケージの読込}
+% \paragraph{{\LuaTeX}-jaパッケージの読込}
 %
 % |luatexja| とともに |luatexja-fontspec| パッケージを読み込む。
 %
@@ -10442,7 +10503,7 @@
 %
 % \paragraph{和文数式ファミリ}
 %
-% Lua{\TeX}-jaでは和文数式ファミリは常に有効で、既にこの時点で必要な
+% {\LuaTeX}-jaでは和文数式ファミリは常に有効で、既にこの時点で必要な
 % 設定は済んでいる。
 % 従って |@enablejfam| は常に真になる。
 %    \begin{macrocode}
@@ -10849,7 +10910,7 @@
 % \end{macro}
 %
 % \paragraph{Polyglossiaについて}
-% つまり{\XeTeX}および{Lua\TeX}(古いPandocで)の場合。
+% つまり{\XeTeX}および{\LuaTeX}(古いPandocで)の場合。
 % \Note この場合 |etoolbox| が使用可能になっている。
 %    \begin{macrocode}
 \ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi>0
@@ -10939,11 +11000,9 @@
 %
 % \paragraph{Babelについて}
 % {\XeTeX}以外の場合。
-% \Note Pandoc 2.6版において、Lua{\TeX}で用いられる多言語パッケージが
-% PolyglossiaからBabelに変更された。
-%    \begin{macrocode}
-\if x\jsEngine\else
-%    \end{macrocode}
+% \Note Pandoc 2.15版から、テンプレートで用いられる多言語パッケージが
+% Babelに統一された。
+% ({\LuaTeX}は2.6版でPolyglossiaからBabelに変更されている。)
 %
 % パッケージの読込を検知するため読込済のマークを付けて
 % duploadの処理を仕込む。
@@ -11011,9 +11070,6 @@
 % \end{macro}
 %
 % lang対策はこれで終わり。
-%    \begin{macrocode}
-\fi
-%    \end{macrocode}
 %
 %^^A----------------
 % \subsection{geometry変数}
@@ -11027,7 +11083,7 @@
 %
 %^^A----------------
 % \subsection{CJKmainfont変数}
-% Lua{\TeX}(+ Lua{TeX}-ja)の場合に CJKmainfont 変数が
+% {\LuaTeX}(+ Lua{TeX}-ja)の場合に CJKmainfont 変数が
 % 指定された場合は |\setmainjfont| の指定にまわす。
 %    \begin{macrocode}
 \if l\jsEngine
@@ -11059,7 +11115,7 @@
 \@onlypreamble\bxjs at info@or at ban
 \def\bxjs at info@or at ban#1{%
   \PackageInfo\bxjs at clsname
-   {Freeze layout on '#1',\MessageBreak detected}}
+   {Freeze layout on '#1',\MessageBreak reported}}
 %    \end{macrocode}
 %
 % \paragraph{indentについて}
@@ -11289,13 +11345,13 @@
 % 対応させることを目的にしている。
 %
 % 旧版のテンプレートでは|ifxetex|と|ifluatex|パッケージを読み込んだ
-% 上で「{\XeTeX}でも{\LuaTeX}でもないものは{pdf\TeX}」という前提の
+% 上で「{\XeTeX}でも{\LuaTeX}でもないものは{\pdfTeX}」という前提の
 % 動作をしていた。
-% よって、{(u)\pTeX}に対応させる際には「{pdf\TeX}用の処理が実行される」
+% よって、{(u)\pTeX}に対応させる際には「{\pdfTeX}用の処理が実行される」
 % ことを前提にすればよかった。
 %
 % ところが、Pandocの2.12版では|iftex|パッケージが導入されて
-% 「{pdf\TeX}の判定を直接 |\ifPDFTeX| で行う」ように改修された。
+% 「{\pdfTeX}の判定を直接 |\ifPDFTeX| で行う」ように改修された。
 % このため、{(u)\pTeX}での実行でどのコードが実行されるかを予期する
 % ことが困難になってしまった。
 %
@@ -11302,7 +11358,7 @@
 % これに対処するため、
 % 「文書ファイルのプレアンブル実行中に限って |\ifPDFTeX| が
 % (実際とは異なり)真になるようにする」
-% という細工を施すことで、従来通り「{pdf\TeX}用の処理が実行される」
+% という細工を施すことで、従来通り「{\pdfTeX}用の処理が実行される」
 % 前提が維持されるようにする。
 %
 %    \begin{macrocode}
@@ -11386,7 +11442,7 @@
 %^^A========================================================
 % \section{補助パッケージ:bxjscompat \ZRX}
 %
-% ムニャムニャムニャ……。
+% 古いやつをどうにかするためのムニャムニャ。
 %
 %^^A----------------
 % \subsection{準備}
@@ -11422,7 +11478,10 @@
 %
 % \begin{macro}{\ImposeOldLuaTeXBehavior}
 % \begin{macro}{\RevokeOldLuaTeXBehavior}
-% ムニャムニャ。
+% |\ImposeOldLuaTeXBehavior| は0.85版以降の{\LuaTeX}を
+% \textbf{一時的に}{\pdfTeX}と互換であるように見せかける。
+% |\RevokeOldLuaTeXBehavior| で元に戻すことができる。
+% \Note エンジンが{\LuaTeX}以外の場合は何もしない。
 %    \begin{macrocode}
 \newif\ifbxac at in@old at behavior
 \let\ImposeOldLuaTeXBehavior\relax
@@ -11437,11 +11496,25 @@
 \ifx x\bxac at engine
 %    \end{macrocode}
 %
-% {\XeTeX}文字クラスのムニャムニャ。
+% \paragraph{文字クラスの設定}
+% {\XeTeX}の文字クラス(|\XeTeXcharclass|)のUnicode規定に基づく
+% 設定は、初期の版ではフォーマットに組み込まれていたが、
+% 2016/02/01以降の{\LaTeX}カーネルでは
+% 「必要に応じて後から設定用のファイルを読み込む」
+% 方式に変更された。
+% ここでは「設定されている状態」を担保する。
+% \Note ちなみに、{\XeTeX}に「文字間トークン挿入」の機能が導入された
+% のは0.997版(2007年頃)からのようだ。
+%
+% ただし |xeCJK| が読込済ならば
+% (そちらが適切に設定しているはずなので)何もしない。
 %    \begin{macrocode}
-\@onlypreamble\bxac at adjust@charclass
+\ifx\XeTeXcharclass\@undefined\else
 \bxac at delayed@if at bxjs{%
   \@ifpackageloaded{xeCJK}{}{%else
+%    \end{macrocode}
+% 設定が未実行の状態ならば、設定用のファイルを読む。
+%    \begin{macrocode}
     \ifx\xe at alloc@intercharclass\@undefined\else
         \ifnum\xe at alloc@intercharclass=\z@
       \PackageInfo\bxac at pkgname
@@ -11454,20 +11527,40 @@
            \@gobble}%
       }%
     \fi\fi
+%    \end{macrocode}
+% フォーマット組込だった時代の設定は不完全なところがあるので
+% 補正する。
+%    \begin{macrocode}
     \ifnum\XeTeXcharclass"3041=\z@
       \PackageInfo\bxac at pkgname
         {Adjusting interchar class for CJK...\@gobble}%
-      \@for\bxac at x:={%
+      \@for\bxac at tmpb:={%
         3041,3043,3045,3047,3049,3063,3083,3085,3087,308E,%
         3095,3096,30A1,30A3,30A5,30A7,30A9,30C3,30E3,30E5,%
         30E7,30EE,30F5,30F6,30FC,31F0,31F1,31F2,31F3,31F4,%
         31F5,31F6,31F7,31F8,31F9,31FA,31FB,31FC,31FD,31FE,%
         31FF%
-      }\do{\XeTeXcharclass"\bxac at x=\@ne}%
+      }\do{\XeTeXcharclass"\bxac at tmpb=\@ne}%
     \fi
   }%
 }
+\fi
 %    \end{macrocode}
+%
+% 漢字および完成形ハングルのカテゴリコードが確実に11に
+% なっているようにする。
+%    \begin{macrocode}
+\chardef\bxac at tmpb=11
+\def\bxac at do#1#2{%
+  \@tempcnta=#1\relax
+  \unless\ifnum\catcode\@tempcnta=\bxac at tmpb
+    \chardef\bxac at tmpa=#2\relax
+    \@whilenum{\@tempcnta<\bxac at tmpa}\do{%
+      \catcode\@tempcnta\bxac at tmpb \advance\@tempcnta\@ne}%
+  \fi}
+\bxac at do{"4E00}{"9FCD}
+%    \end{macrocode}
+%
 % 以上。
 %    \begin{macrocode}
 \fi
@@ -11474,26 +11567,32 @@
 %    \end{macrocode}
 %
 %^^A----------------
-% \subsection{Lua{\TeX}部分}
+% \subsection{{\LuaTeX}部分}
 %    \begin{macrocode}
 \ifx l\bxac at engine
 %    \end{macrocode}
 %
-% ムニャムニャ。
+% 0.82~0.84版の{\LuaTeX}を(0.81版以前と同様に)
+% 「{\pdfTeX}の拡張である」ように見せかける処理。
+% \Note 恐らく必要な場面はなかったと思われるので、外しておく。
 %    \begin{macrocode}
-\unless\ifnum\luatexversion<80 \ifnum\luatexversion<85
-  \chardef\pdftexversion=200
-  \def\pdftexrevision{0}
-  \let\pdftexbanner\luatexbanner
-\fi\fi
+%\unless\ifnum\luatexversion<80 \ifnum\luatexversion<85
+%  \chardef\pdftexversion=200
+%  \def\pdftexrevision{0}
+%  \let\pdftexbanner\luatexbanner
+%\fi\fi
 %    \end{macrocode}
 %
 % \begin{macro}{\ImposeOldLuaTeXBehavior}
 % \begin{macro}{\RevokeOldLuaTeXBehavior}
-% ムニャムニャ。
+% 0.85版以降であるかを検査する。
 %    \begin{macrocode}
 \begingroup\expandafter\expandafter\expandafter\endgroup
 \expandafter\ifx\csname outputmode\endcsname\relax\else
+%    \end{macrocode}
+% 該当する場合、以下の5つの{\pdfTeX}拡張プリミティブを
+% 復帰させることになる。
+%    \begin{macrocode}
 \def\bxac at ob@list{%
   \do{\let}\pdfoutput{\outputmode}%
   \do{\let}\pdfpagewidth{\pagewidth}%
@@ -11521,9 +11620,10 @@
 % \end{macro}
 % \end{macro}
 %
-% 漢字および完成形ハングルのカテゴリコードのムニャムニャ。
+% 漢字および完成形ハングルのカテゴリコードが確実に11に
+% なっているようにする。
 %    \begin{macrocode}
-  \ifnum\luatexversion>64 \directlua{
+  \directlua{
     local function range(cs, ce, cc, ff)
       if ff or not tex.getcatcode(cs) == cc then
         local setcc = tex.setcatcode
@@ -11531,6 +11631,7 @@
       end
     end
     range(0x3400, 0x4DB5, 11, false)
+    \ifnum\luatexversion>64
     range(0x4DB5, 0x4DBF, 11, true)
     range(0x4E00, 0x9FCC, 11, false)
     range(0x9FCD, 0x9FFF, 11, true)
@@ -11543,7 +11644,8 @@
     range(0x2B81E, 0x2B81F, 11, true)
     range(0x2B820, 0x2CEA1, 11, false)
     range(0x2CEA2, 0x2FFFD, 11, true)
-  }\fi
+    \fi
+  }
 %    \end{macrocode}
 %
 % 以上。
@@ -11619,9 +11721,9 @@
 % \subsection{和文カテゴリコードの設定}
 %
 % up{\LaTeX}の場合、和文カテゴリコードの設定を
-% Lua{\TeX}-jaと(ほぼ)等価なものに変更する。
+% {\LuaTeX}-jaと(ほぼ)等価なものに変更する。
 %
-% \Note Lua{\TeX}-jaとの相違点:
+% \Note {\LuaTeX}-jaとの相違点:
 % |A830|、|A960|、|1B000|。
 %    \begin{macrocode}
 \if u\bxjx at engine
@@ -11668,7 +11770,7 @@
 % \begin{itemize}
 % \item UnicodeとJIS X~0213に共通して含まれるギリシャ文字・キリル文字。
 % \item Latin-1の上位部分とJIS X~0208に共通して含まれる文字
-%  (Lua{\TeX}-jaの定める“範囲8”)。
+%  ({\LuaTeX}-jaの定める“範囲8”)。
 % \end{itemize}
 %
 % \begin{macro}{\bxjx at grkcyr@list}
@@ -11863,7 +11965,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \paragraph{pdf{\TeX}・{\upTeX}の場合}
+% \paragraph{{\pdfTeX}・{\upTeX}の場合}
 %    \begin{macrocode}
 \ifnum0\if p\bxjx at engine1\fi\if u\bxjx at engine1\fi>0
 %    \end{macrocode}
@@ -11948,7 +12050,7 @@
   \DeclareTextCommandDefault{#4}{\bxjx at ja@or at not{#1}{#3}{#4}}%
   \DeclareUnicodeCharacter{#2}{\TextOrMath{#4}{#5}}}
 %    \end{macrocode}
-% {pdf\TeX}の場合も処理はほとんど同じ。
+% {\pdfTeX}の場合も処理はほとんど同じ。
 % ただし、和文用の定義として |\UTF{|\Meta{符号値}|}| を使う
 % (|\UTF| は |bxcjkjatype| の命令)。
 % |\|[|bxjx at KC/...|] は使わないが定義済にする必要がある。
@@ -12025,7 +12127,7 @@
 %
 % 以上。
 %
-% \paragraph{{\XeTeX}・Lua{\TeX}の場合}
+% \paragraph{{\XeTeX}・{\LuaTeX}の場合}
 %    \begin{macrocode}
 \else\ifnum0\if x\bxjx at engine1\fi\if l\bxjx at engine1\fi>0
 %    \end{macrocode}
@@ -12064,7 +12166,7 @@
 % 次に、テキストにおいて「特定CJK曖昧文字」の扱いが |\|[|no|]|greekasCJK|
 % で切り替わるようにする。
 % 
-% Lua{\TeX}の場合は、Lua{\TeX}-jaの |jacharrange| の設定を変更する。
+% {\LuaTeX}の場合は、{\LuaTeX}-jaの |jacharrange| の設定を変更する。
 % \Note “範囲2”がギリシャ・キリル文字、“範囲8”がLatin-1の記号。
 %    \begin{macrocode}
 \if l\bxjx at engine
@@ -12328,7 +12430,7 @@
 %
 % |\ldots| の直後の文字が非英字の場合、Pandocは「|\ldots。|」の
 % ように空白を入れずに並べて出力する。
-% 「Pandocは非英字と見なすが{\XeTeX}・{Lua\TeX}は英字と見なす
+% 「Pandocは非英字と見なすが{\XeTeX}・{\LuaTeX}は英字と見なす
 % (または将来その可能性がある)」文字で、特に日本語文書に現れる
 % ものについて、非英字扱いにしておく。
 % \Note Pandocは「Unicode 7.0でGCがLetter」な文字を英字と判定している。

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls	2022-04-12 20:39:37 UTC (rev 63011)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsarticle}
-  [2022/03/20 v2.6  BXJS document classes]
+  [2022/04/10 v2.7a BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \def\bxjs at clsname{bxjsarticle}
 \newif\ifjsc at needsp@tch
@@ -29,8 +29,9 @@
 \jsc at needsp@tchfalse
 \RequirePackage{calc}
 \RequirePackage{keyval}
+\def\jsAtEndOfClass{%
+  \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
 \IfFileExists{bxjscompat.sty}{%
-  \let\jsAtEndOfClass\@gobble
   \RequirePackage{bxjscompat}%
 }{}
 \let\jsArticle=a
@@ -165,31 +166,33 @@
     \fi
   \fi}
   \def\bxjs at unit@Q{0.25mm}\let\bxjs at unit@H\bxjs at unit@Q
+\newif\ifbxjs at after@preamble
 \@onlypreamble\bxjs at begin@document at hook
-\let\bxjs at begin@document at hook\@empty
+\def\bxjs at begin@document at hook{\bxjs at after@preambletrue}
 \AtBeginDocument{\bxjs at begin@document at hook}
 \@onlypreamble\bxjs at post@option at hook
 \let\bxjs at post@option at hook\@empty
 \@onlypreamble\bxjs at pre@jadriver at hook
 \let\bxjs at pre@jadriver at hook\@empty
-\def\jsAtEndOfClass{%
-  \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
 \@onlypreamble\bxjs at tmpdo
 \@onlypreamble\bxjs at tmpdo@a
 \@onlypreamble\bxjs at tmpdo@b
 \@onlypreamble\bxjs at tmpdo@c
 \@onlypreamble\bxjs at tmpdo@d
-\if l\jsEngine
-\def\bxjs at tmpdo#1{%
-  \xdef\bxjs at pre@jadriver at hook{%
-    \bxjs at pre@jadriver at hook
-    \catcode`#1=\the\catcode`#1\relax}%
-  \catcode`#1=11\relax}
-\@tfor\bxjs at tmpa:=和西暦\do
-  {\expandafter\bxjs at tmpdo\bxjs at tmpa}
-\fi
 \bxjs at robust@def\jsInhibitGlue{%
   \ifx\inhibitglue\@undefined\else \inhibitglue \fi}
+\@tempswatrue
+\if x\jsEngine
+  \ifdim\the\XeTeXversion\XeTeXrevision\p@<0.997\p@
+    \@tempswafalse \fi
+\fi
+\if at tempswa \expandafter\@gobble
+\else
+  \ClassError\bxjs at clsname
+   {The engine in use is all too old}
+   {It's a fatal error. I'll quit right now.}
+  \expandafter\@firstofone
+\fi{\endinput\@@end}
 \if at compatibility
   \ClassError\bxjs at clsname
    {Something went chaotic!\MessageBreak
@@ -461,6 +464,9 @@
 \DeclareOption{nodvidriver}{%
   \def\bxjs at driver@opt{nodvidriver}%
   \let\bxjs at driver@given\bxjs at driver@@none}
+\DeclareOption{nodvidriver*}{%
+  \def\bxjs at driver@opt{nodvidriver*}%
+  \let\bxjs at driver@given\bxjs at driver@@none}
 \DeclareOption{pdftex}{%
   \def\bxjs at driver@opt{pdftex}%
   \let\bxjs at driver@given\bxjs at driver@@pdfmode}
@@ -600,6 +606,7 @@
 \let\bxjs at dvidriver@@dviout=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@xdvi=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@nodvidriver=\bxjs at driver@@none
+\bxjs at cslet{bxjs at dvidriver@@nodvidriver*}\bxjs at driver@@none
 \define at key{bxjs}{dvi}{%
   \bxjs at csletcs{bxjs at tmpa}{bxjs at dvidriver@@#1}%
   \ifx\bxjs at tmpa\relax
@@ -783,9 +790,12 @@
   \bxjs at papersizefalse
 \fi
 \def\bxjs@@minimal{minimal}
+\def\bxjs@@standard{standard}
+\def\bxjs@@pandoc{pandoc}
+\def\bxjs@@modern{modern}
 \ifx\bxjs at jadriver\relax
   \ifx j\jsEngine
-    \def\bxjs at jadriver{standard}
+    \let\bxjs at jadriver\bxjs@@standard
   \else
     \ClassWarningNoLine\bxjs at clsname
      {The option 'ja' is MISSING!!\MessageBreak
@@ -796,7 +806,6 @@
     \let\bxjs at jadriver\bxjs@@minimal
   \fi
 \fi
-\def\bxjs@@pandoc{pandoc}
 \ifx\bxjs at jadriver\bxjs@@pandoc \ifx\bxjs at plautopatch@given\@undefined
     \ifjsWitheTeX
   \bxjs at plautopatchtrue
@@ -1209,7 +1218,6 @@
 \else
   \PassOptionsToPackage{driver=none}{geometry}
 \fi
-\bxjs at apply@bd at pre@geometry at hook
 \bxjs at apply@bd at pre@geometry at hook{\bxjs at bd@pre at geometry@hook}
 \bxjs at apply@bd at pre@geometry at hook{\ImposeOldLuaTeXBehavior}
 \bxjs at preproc@layout
@@ -1300,6 +1308,12 @@
   \fi\fi}
 \let\pltx at cleartorightpage\pltx at cleartooddpage
 \let\pltx at cleartoleftpage\pltx at cleartoevenpage
+\ifdim\vsize=\z@
+\begingroup
+\toks@\expandafter{\clearpage}
+\xdef\clearpage{\noexpand\ifbxjs at after@preamble\the\toks@\noexpand\fi}
+\endgroup
+\fi
 \def\ps at plainfoot{%
   \let\@mkboth\@gobbletwo
   \let\@oddhead\@empty
@@ -2396,7 +2410,7 @@
     \global\let\bxjs at wareki@used\@empty
     \ClassWarning\bxjs at clsname
      {Wareki mode is not supported, since\MessageBreak
-      'bxwareki' is unavailable, found}}
+      'bxwareki' is unavailable, reported}}
   \g at addto@macro\bxjs at begin@document at hook{%
     \let\bxjs at wareki@used\@empty}
 \fi

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls	2022-04-12 20:39:37 UTC (rev 63011)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsbook}
-  [2022/03/20 v2.6  BXJS document classes]
+  [2022/04/10 v2.7a BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \def\bxjs at clsname{bxjsbook}
 \newif\ifjsc at needsp@tch
@@ -29,8 +29,9 @@
 \jsc at needsp@tchfalse
 \RequirePackage{calc}
 \RequirePackage{keyval}
+\def\jsAtEndOfClass{%
+  \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
 \IfFileExists{bxjscompat.sty}{%
-  \let\jsAtEndOfClass\@gobble
   \RequirePackage{bxjscompat}%
 }{}
 \let\jsArticle=a
@@ -165,31 +166,33 @@
     \fi
   \fi}
   \def\bxjs at unit@Q{0.25mm}\let\bxjs at unit@H\bxjs at unit@Q
+\newif\ifbxjs at after@preamble
 \@onlypreamble\bxjs at begin@document at hook
-\let\bxjs at begin@document at hook\@empty
+\def\bxjs at begin@document at hook{\bxjs at after@preambletrue}
 \AtBeginDocument{\bxjs at begin@document at hook}
 \@onlypreamble\bxjs at post@option at hook
 \let\bxjs at post@option at hook\@empty
 \@onlypreamble\bxjs at pre@jadriver at hook
 \let\bxjs at pre@jadriver at hook\@empty
-\def\jsAtEndOfClass{%
-  \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
 \@onlypreamble\bxjs at tmpdo
 \@onlypreamble\bxjs at tmpdo@a
 \@onlypreamble\bxjs at tmpdo@b
 \@onlypreamble\bxjs at tmpdo@c
 \@onlypreamble\bxjs at tmpdo@d
-\if l\jsEngine
-\def\bxjs at tmpdo#1{%
-  \xdef\bxjs at pre@jadriver at hook{%
-    \bxjs at pre@jadriver at hook
-    \catcode`#1=\the\catcode`#1\relax}%
-  \catcode`#1=11\relax}
-\@tfor\bxjs at tmpa:=和西暦\do
-  {\expandafter\bxjs at tmpdo\bxjs at tmpa}
-\fi
 \bxjs at robust@def\jsInhibitGlue{%
   \ifx\inhibitglue\@undefined\else \inhibitglue \fi}
+\@tempswatrue
+\if x\jsEngine
+  \ifdim\the\XeTeXversion\XeTeXrevision\p@<0.997\p@
+    \@tempswafalse \fi
+\fi
+\if at tempswa \expandafter\@gobble
+\else
+  \ClassError\bxjs at clsname
+   {The engine in use is all too old}
+   {It's a fatal error. I'll quit right now.}
+  \expandafter\@firstofone
+\fi{\endinput\@@end}
 \if at compatibility
   \ClassError\bxjs at clsname
    {Something went chaotic!\MessageBreak
@@ -467,6 +470,9 @@
 \DeclareOption{nodvidriver}{%
   \def\bxjs at driver@opt{nodvidriver}%
   \let\bxjs at driver@given\bxjs at driver@@none}
+\DeclareOption{nodvidriver*}{%
+  \def\bxjs at driver@opt{nodvidriver*}%
+  \let\bxjs at driver@given\bxjs at driver@@none}
 \DeclareOption{pdftex}{%
   \def\bxjs at driver@opt{pdftex}%
   \let\bxjs at driver@given\bxjs at driver@@pdfmode}
@@ -606,6 +612,7 @@
 \let\bxjs at dvidriver@@dviout=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@xdvi=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@nodvidriver=\bxjs at driver@@none
+\bxjs at cslet{bxjs at dvidriver@@nodvidriver*}\bxjs at driver@@none
 \define at key{bxjs}{dvi}{%
   \bxjs at csletcs{bxjs at tmpa}{bxjs at dvidriver@@#1}%
   \ifx\bxjs at tmpa\relax
@@ -792,9 +799,12 @@
   \bxjs at papersizefalse
 \fi
 \def\bxjs@@minimal{minimal}
+\def\bxjs@@standard{standard}
+\def\bxjs@@pandoc{pandoc}
+\def\bxjs@@modern{modern}
 \ifx\bxjs at jadriver\relax
   \ifx j\jsEngine
-    \def\bxjs at jadriver{standard}
+    \let\bxjs at jadriver\bxjs@@standard
   \else
     \ClassWarningNoLine\bxjs at clsname
      {The option 'ja' is MISSING!!\MessageBreak
@@ -805,7 +815,6 @@
     \let\bxjs at jadriver\bxjs@@minimal
   \fi
 \fi
-\def\bxjs@@pandoc{pandoc}
 \ifx\bxjs at jadriver\bxjs@@pandoc \ifx\bxjs at plautopatch@given\@undefined
     \ifjsWitheTeX
   \bxjs at plautopatchtrue
@@ -1243,7 +1252,6 @@
 \else
   \PassOptionsToPackage{driver=none}{geometry}
 \fi
-\bxjs at apply@bd at pre@geometry at hook
 \bxjs at apply@bd at pre@geometry at hook{\bxjs at bd@pre at geometry@hook}
 \bxjs at apply@bd at pre@geometry at hook{\ImposeOldLuaTeXBehavior}
 \bxjs at preproc@layout
@@ -1334,6 +1342,12 @@
   \fi\fi}
 \let\pltx at cleartorightpage\pltx at cleartooddpage
 \let\pltx at cleartoleftpage\pltx at cleartoevenpage
+\ifdim\vsize=\z@
+\begingroup
+\toks@\expandafter{\clearpage}
+\xdef\clearpage{\noexpand\ifbxjs at after@preamble\the\toks@\noexpand\fi}
+\endgroup
+\fi
 \if at openleft
   \let\cleardoublepage\pltx at cleartoleftpage
 \else\if at openright
@@ -2502,7 +2516,7 @@
     \global\let\bxjs at wareki@used\@empty
     \ClassWarning\bxjs at clsname
      {Wareki mode is not supported, since\MessageBreak
-      'bxwareki' is unavailable, found}}
+      'bxwareki' is unavailable, reported}}
   \g at addto@macro\bxjs at begin@document at hook{%
     \let\bxjs at wareki@used\@empty}
 \fi

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty	2022-04-12 20:39:37 UTC (rev 63011)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{bxjscjkcat}
-  [2022/03/20 v2.6  BXJS document classes]
+  [2022/04/10 v2.7a BXJS document classes]
 \def\bxjx at pkgname{bxjscjkcat}
 \newcount\bxjx at cnta
 \@onlypreamble\bxjx at tmpdo

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty	2022-04-12 20:39:37 UTC (rev 63011)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{bxjscompat}
-  [2022/03/20 v2.6  BXJS document classes]
+  [2022/04/10 v2.7a BXJS document classes]
 \def\bxac at pkgname{bxjscompat}
 \let\bxac at engine=n
 \def\bxac at do#1#2{%
@@ -39,7 +39,7 @@
 \let\ImposeOldLuaTeXBehavior\relax
 \let\RevokeOldLuaTeXBehavior\relax
 \ifx x\bxac at engine
-\@onlypreamble\bxac at adjust@charclass
+\ifx\XeTeXcharclass\@undefined\else
 \bxac at delayed@if at bxjs{%
   \@ifpackageloaded{xeCJK}{}{%else
     \ifx\xe at alloc@intercharclass\@undefined\else
@@ -57,23 +57,28 @@
     \ifnum\XeTeXcharclass"3041=\z@
       \PackageInfo\bxac at pkgname
         {Adjusting interchar class for CJK...\@gobble}%
-      \@for\bxac at x:={%
+      \@for\bxac at tmpb:={%
         3041,3043,3045,3047,3049,3063,3083,3085,3087,308E,%
         3095,3096,30A1,30A3,30A5,30A7,30A9,30C3,30E3,30E5,%
         30E7,30EE,30F5,30F6,30FC,31F0,31F1,31F2,31F3,31F4,%
         31F5,31F6,31F7,31F8,31F9,31FA,31FB,31FC,31FD,31FE,%
         31FF%
-      }\do{\XeTeXcharclass"\bxac at x=\@ne}%
+      }\do{\XeTeXcharclass"\bxac at tmpb=\@ne}%
     \fi
   }%
 }
 \fi
+\chardef\bxac at tmpb=11
+\def\bxac at do#1#2{%
+  \@tempcnta=#1\relax
+  \unless\ifnum\catcode\@tempcnta=\bxac at tmpb
+    \chardef\bxac at tmpa=#2\relax
+    \@whilenum{\@tempcnta<\bxac at tmpa}\do{%
+      \catcode\@tempcnta\bxac at tmpb \advance\@tempcnta\@ne}%
+  \fi}
+\bxac at do{"4E00}{"9FCD}
+\fi
 \ifx l\bxac at engine
-\unless\ifnum\luatexversion<80 \ifnum\luatexversion<85
-  \chardef\pdftexversion=200
-  \def\pdftexrevision{0}
-  \let\pdftexbanner\luatexbanner
-\fi\fi
 \begingroup\expandafter\expandafter\expandafter\endgroup
 \expandafter\ifx\csname outputmode\endcsname\relax\else
 \def\bxac at ob@list{%
@@ -99,7 +104,7 @@
     \let\do\bxac at ob@do \bxac at ob@list
   \fi}
 \fi
-  \ifnum\luatexversion>64 \directlua{
+  \directlua{
     local function range(cs, ce, cc, ff)
       if ff or not tex.getcatcode(cs) == cc then
         local setcc = tex.setcatcode
@@ -107,6 +112,7 @@
       end
     end
     range(0x3400, 0x4DB5, 11, false)
+    \ifnum\luatexversion>64
     range(0x4DB5, 0x4DBF, 11, true)
     range(0x4E00, 0x9FCC, 11, false)
     range(0x9FCD, 0x9FFF, 11, true)
@@ -119,7 +125,8 @@
     range(0x2B81E, 0x2B81F, 11, true)
     range(0x2B820, 0x2CEA1, 11, false)
     range(0x2CEA2, 0x2FFFD, 11, true)
-  }\fi
+    \fi
+  }
 \fi
 \endinput
 %%

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def	2022-04-12 20:39:37 UTC (rev 63011)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesFile{bxjsja-minimal.def}
-  [2022/03/20 v2.6  BXJS document classes]
+  [2022/04/10 v2.7a BXJS document classes]
 %% このファイルは日本語文字を含みます
 \def\DeclareJaTextFontCommand#1#2{%
   \DeclareRobustCommand#1[1]{%
@@ -272,7 +272,7 @@
 \fi
 \endgroup
 \@namedef{ver at minijs.sty}{}
-\else\ifx p\jsEngine
+\else\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T
 \let\bxjs at let@hchar at chr\bxjs at let@hchar at chr@ue
 \@onlypreamble\bxjs at cjk@loaded
 \def\bxjs at cjk@loaded{%
@@ -312,8 +312,9 @@
 \fi
 \@onlypreamble\bxjs at do@simplejasetup
 \def\bxjs at do@simplejasetup{%
+  \@namedef{bxjs at zeroglue/0.0pt}{T}%
   \ifnum\XeTeXinterchartokenstate>\z@
-  \else\ifnum\strcmp{\the\XeTeXlinebreakskip}{\the\z@}=\z@
+  \else\expandafter\ifx\csname bxjs at zeroglue/\the\XeTeXlinebreakskip\endcsname\relax\else
     \jsSimpleJaSetup
     \ClassInfo\bxjs at clsname
      {'\string\jsSimpleJaSetup' is applied\@gobble}%
@@ -388,6 +389,7 @@
 \g at addto@macro\bxjs at begin@document at hook{%
   \bxjs at pagestyle@hook
   \global\let\bxjs at pagestyle@hook\relax}
+\fi
 \ifbxjs at jaspace@cmd
   \def\jaenspace{\hskip.5\jsZw\relax}
   \def\jathinspace{\hskip\z at skip}
@@ -403,7 +405,6 @@
   \def\bxjs at jaspace@@nibu{\hskip .5\jsZw\relax}
   \def\bxjs at jaspace@@shibu{\hskip .25\jsZw\relax}
 \fi
-\fi
 \endinput
 %%
 %% End of file `bxjsja-minimal.def'.

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def	2022-04-12 20:39:37 UTC (rev 63011)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesFile{bxjsja-modern.def}
-  [2022/03/20 v2.6  BXJS document classes]
+  [2022/04/10 v2.7a BXJS document classes]
 \input{bxjsja-standard.def}
 \ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi=\z@
 \def\encodingdefault{T1}%

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def	2022-04-12 20:39:37 UTC (rev 63011)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesFile{bxjsja-pandoc.def}
-  [2022/03/20 v2.6  BXJS document classes]
+  [2022/04/10 v2.7a BXJS document classes]
 \input{bxjsja-standard.def}
 \RequirePackage{bxjspandoc}
 \ifjsWitheTeX\else
@@ -161,7 +161,6 @@
       \setotherlangauge{\bxjs at tmpa}}}%
   \let\bxjs at polyglossia@options\relax}%
 \fi
-\if x\jsEngine\else
 \pandocSkipLoadPackage{babel}
 \bxjs at set@dupload at proc{babel.sty}{%
   \bxjs at unset@dupload at proc{babel.sty}%
@@ -202,7 +201,6 @@
   \else
     \RequirePackage{bxorigcapt}[]%
   \fi}
-\fi
 \bxjs at set@dupload at proc{geometry.sty}{%
   \setpagelayout*{#1}}
 \if l\jsEngine
@@ -217,7 +215,7 @@
 \@onlypreamble\bxjs at info@or at ban
 \def\bxjs at info@or at ban#1{%
   \PackageInfo\bxjs at clsname
-   {Freeze layout on '#1',\MessageBreak detected}}
+   {Freeze layout on '#1',\MessageBreak reported}}
 \unless\ifbxjs at jp@or at indent
   \bxjs at info@or at ban{indent}
   \IfFileExists{parskip.sty}{%

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def	2022-04-12 20:39:37 UTC (rev 63011)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesFile{bxjsja-standard.def}
-  [2022/03/20 v2.6  BXJS document classes]
+  [2022/04/10 v2.7a BXJS document classes]
 %% このファイルは日本語文字を含みます
 \input{bxjsja-minimal.def}
 \bxjs at simplejasetupfalse
@@ -450,13 +450,13 @@
       \reDeclareMathAlphabet{\mathsf}{\@mathsf}{\@mathgt}%
     \fi}
 \fi
-\else\if p\jsEngine
+\else\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T
 \bxjs at adjust@jafont{f}
 \let\bxjs at jafont@paren\@firstofone
 \bxjs at resolve@jafont at paren\bxjs at tmpa
 \edef\bxjs at tmpa{\bxjs at catopt\bxjs at tmpa\bxjs at jp@font}
 \edef\bxjs at tmpa{\bxjs at catopt\bxjs at tmpa{whole}}
-\def\bxjs at tmpb{pandoc}\ifx\bxjs at tmpb\bxjs at jadriver\else
+\ifx\bxjs at jadriver\bxjs@@pandoc\else
   \edef\bxjs at tmpa{\bxjs at catopt\bxjs at tmpa{autotilde}}
 \fi
 \edef\bxjs at next{%
@@ -537,11 +537,13 @@
     \noexpand\RequirePackage[\bxjs at tmpa]{zxjafont}[2013/01/28]% v0.2a
   }\bxjs at next
 \fi
+\ifx\strcmp\@undefined\else %未定義なら条件を満たさない
 \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99992}>\m at ne
   \ifbxjs at hyperref@enc
     \PassOptionsToPackage{unicode}{hyperref}
   \fi
 \fi
+\fi
 \AtEndOfPackage{%
 \def\@gnewline #1{%
   \ifvmode \@nolnerr

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty	2022-04-12 20:39:37 UTC (rev 63011)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{bxjspandoc}
-  [2022/03/20 v2.6  BXJS document classes]
+  [2022/04/10 v2.7a BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \def\bxjsp at pkgname{bxjscjkcat}
 \let\bxjsp at engine=n

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls	2022-04-12 20:39:37 UTC (rev 63011)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsreport}
-  [2022/03/20 v2.6  BXJS document classes]
+  [2022/04/10 v2.7a BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \def\bxjs at clsname{bxjsreport}
 \newif\ifjsc at needsp@tch
@@ -29,8 +29,9 @@
 \jsc at needsp@tchfalse
 \RequirePackage{calc}
 \RequirePackage{keyval}
+\def\jsAtEndOfClass{%
+  \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
 \IfFileExists{bxjscompat.sty}{%
-  \let\jsAtEndOfClass\@gobble
   \RequirePackage{bxjscompat}%
 }{}
 \let\jsArticle=a
@@ -165,31 +166,33 @@
     \fi
   \fi}
   \def\bxjs at unit@Q{0.25mm}\let\bxjs at unit@H\bxjs at unit@Q
+\newif\ifbxjs at after@preamble
 \@onlypreamble\bxjs at begin@document at hook
-\let\bxjs at begin@document at hook\@empty
+\def\bxjs at begin@document at hook{\bxjs at after@preambletrue}
 \AtBeginDocument{\bxjs at begin@document at hook}
 \@onlypreamble\bxjs at post@option at hook
 \let\bxjs at post@option at hook\@empty
 \@onlypreamble\bxjs at pre@jadriver at hook
 \let\bxjs at pre@jadriver at hook\@empty
-\def\jsAtEndOfClass{%
-  \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
 \@onlypreamble\bxjs at tmpdo
 \@onlypreamble\bxjs at tmpdo@a
 \@onlypreamble\bxjs at tmpdo@b
 \@onlypreamble\bxjs at tmpdo@c
 \@onlypreamble\bxjs at tmpdo@d
-\if l\jsEngine
-\def\bxjs at tmpdo#1{%
-  \xdef\bxjs at pre@jadriver at hook{%
-    \bxjs at pre@jadriver at hook
-    \catcode`#1=\the\catcode`#1\relax}%
-  \catcode`#1=11\relax}
-\@tfor\bxjs at tmpa:=和西暦\do
-  {\expandafter\bxjs at tmpdo\bxjs at tmpa}
-\fi
 \bxjs at robust@def\jsInhibitGlue{%
   \ifx\inhibitglue\@undefined\else \inhibitglue \fi}
+\@tempswatrue
+\if x\jsEngine
+  \ifdim\the\XeTeXversion\XeTeXrevision\p@<0.997\p@
+    \@tempswafalse \fi
+\fi
+\if at tempswa \expandafter\@gobble
+\else
+  \ClassError\bxjs at clsname
+   {The engine in use is all too old}
+   {It's a fatal error. I'll quit right now.}
+  \expandafter\@firstofone
+\fi{\endinput\@@end}
 \if at compatibility
   \ClassError\bxjs at clsname
    {Something went chaotic!\MessageBreak
@@ -467,6 +470,9 @@
 \DeclareOption{nodvidriver}{%
   \def\bxjs at driver@opt{nodvidriver}%
   \let\bxjs at driver@given\bxjs at driver@@none}
+\DeclareOption{nodvidriver*}{%
+  \def\bxjs at driver@opt{nodvidriver*}%
+  \let\bxjs at driver@given\bxjs at driver@@none}
 \DeclareOption{pdftex}{%
   \def\bxjs at driver@opt{pdftex}%
   \let\bxjs at driver@given\bxjs at driver@@pdfmode}
@@ -606,6 +612,7 @@
 \let\bxjs at dvidriver@@dviout=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@xdvi=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@nodvidriver=\bxjs at driver@@none
+\bxjs at cslet{bxjs at dvidriver@@nodvidriver*}\bxjs at driver@@none
 \define at key{bxjs}{dvi}{%
   \bxjs at csletcs{bxjs at tmpa}{bxjs at dvidriver@@#1}%
   \ifx\bxjs at tmpa\relax
@@ -791,9 +798,12 @@
   \bxjs at papersizefalse
 \fi
 \def\bxjs@@minimal{minimal}
+\def\bxjs@@standard{standard}
+\def\bxjs@@pandoc{pandoc}
+\def\bxjs@@modern{modern}
 \ifx\bxjs at jadriver\relax
   \ifx j\jsEngine
-    \def\bxjs at jadriver{standard}
+    \let\bxjs at jadriver\bxjs@@standard
   \else
     \ClassWarningNoLine\bxjs at clsname
      {The option 'ja' is MISSING!!\MessageBreak
@@ -804,7 +814,6 @@
     \let\bxjs at jadriver\bxjs@@minimal
   \fi
 \fi
-\def\bxjs@@pandoc{pandoc}
 \ifx\bxjs at jadriver\bxjs@@pandoc \ifx\bxjs at plautopatch@given\@undefined
     \ifjsWitheTeX
   \bxjs at plautopatchtrue
@@ -1217,7 +1226,6 @@
 \else
   \PassOptionsToPackage{driver=none}{geometry}
 \fi
-\bxjs at apply@bd at pre@geometry at hook
 \bxjs at apply@bd at pre@geometry at hook{\bxjs at bd@pre at geometry@hook}
 \bxjs at apply@bd at pre@geometry at hook{\ImposeOldLuaTeXBehavior}
 \bxjs at preproc@layout
@@ -1308,6 +1316,12 @@
   \fi\fi}
 \let\pltx at cleartorightpage\pltx at cleartooddpage
 \let\pltx at cleartoleftpage\pltx at cleartoevenpage
+\ifdim\vsize=\z@
+\begingroup
+\toks@\expandafter{\clearpage}
+\xdef\clearpage{\noexpand\ifbxjs at after@preamble\the\toks@\noexpand\fi}
+\endgroup
+\fi
 \if at openleft
   \let\cleardoublepage\pltx at cleartoleftpage
 \else\if at openright
@@ -2525,7 +2539,7 @@
     \global\let\bxjs at wareki@used\@empty
     \ClassWarning\bxjs at clsname
      {Wareki mode is not supported, since\MessageBreak
-      'bxwareki' is unavailable, found}}
+      'bxwareki' is unavailable, reported}}
   \g at addto@macro\bxjs at begin@document at hook{%
     \let\bxjs at wareki@used\@empty}
 \fi

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls	2022-04-12 20:39:37 UTC (rev 63011)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsslide}
-  [2022/03/20 v2.6  BXJS document classes]
+  [2022/04/10 v2.7a BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \def\bxjs at clsname{bxjsslide}
 \newif\ifjsc at needsp@tch
@@ -29,8 +29,9 @@
 \jsc at needsp@tchfalse
 \RequirePackage{calc}
 \RequirePackage{keyval}
+\def\jsAtEndOfClass{%
+  \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
 \IfFileExists{bxjscompat.sty}{%
-  \let\jsAtEndOfClass\@gobble
   \RequirePackage{bxjscompat}%
 }{}
 \let\jsArticle=a
@@ -165,31 +166,33 @@
     \fi
   \fi}
   \def\bxjs at unit@Q{0.25mm}\let\bxjs at unit@H\bxjs at unit@Q
+\newif\ifbxjs at after@preamble
 \@onlypreamble\bxjs at begin@document at hook
-\let\bxjs at begin@document at hook\@empty
+\def\bxjs at begin@document at hook{\bxjs at after@preambletrue}
 \AtBeginDocument{\bxjs at begin@document at hook}
 \@onlypreamble\bxjs at post@option at hook
 \let\bxjs at post@option at hook\@empty
 \@onlypreamble\bxjs at pre@jadriver at hook
 \let\bxjs at pre@jadriver at hook\@empty
-\def\jsAtEndOfClass{%
-  \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
 \@onlypreamble\bxjs at tmpdo
 \@onlypreamble\bxjs at tmpdo@a
 \@onlypreamble\bxjs at tmpdo@b
 \@onlypreamble\bxjs at tmpdo@c
 \@onlypreamble\bxjs at tmpdo@d
-\if l\jsEngine
-\def\bxjs at tmpdo#1{%
-  \xdef\bxjs at pre@jadriver at hook{%
-    \bxjs at pre@jadriver at hook
-    \catcode`#1=\the\catcode`#1\relax}%
-  \catcode`#1=11\relax}
-\@tfor\bxjs at tmpa:=和西暦\do
-  {\expandafter\bxjs at tmpdo\bxjs at tmpa}
-\fi
 \bxjs at robust@def\jsInhibitGlue{%
   \ifx\inhibitglue\@undefined\else \inhibitglue \fi}
+\@tempswatrue
+\if x\jsEngine
+  \ifdim\the\XeTeXversion\XeTeXrevision\p@<0.997\p@
+    \@tempswafalse \fi
+\fi
+\if at tempswa \expandafter\@gobble
+\else
+  \ClassError\bxjs at clsname
+   {The engine in use is all too old}
+   {It's a fatal error. I'll quit right now.}
+  \expandafter\@firstofone
+\fi{\endinput\@@end}
 \if at compatibility
   \ClassError\bxjs at clsname
    {Something went chaotic!\MessageBreak
@@ -461,6 +464,9 @@
 \DeclareOption{nodvidriver}{%
   \def\bxjs at driver@opt{nodvidriver}%
   \let\bxjs at driver@given\bxjs at driver@@none}
+\DeclareOption{nodvidriver*}{%
+  \def\bxjs at driver@opt{nodvidriver*}%
+  \let\bxjs at driver@given\bxjs at driver@@none}
 \DeclareOption{pdftex}{%
   \def\bxjs at driver@opt{pdftex}%
   \let\bxjs at driver@given\bxjs at driver@@pdfmode}
@@ -600,6 +606,7 @@
 \let\bxjs at dvidriver@@dviout=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@xdvi=\bxjs at driver@@dvimode
 \let\bxjs at dvidriver@@nodvidriver=\bxjs at driver@@none
+\bxjs at cslet{bxjs at dvidriver@@nodvidriver*}\bxjs at driver@@none
 \define at key{bxjs}{dvi}{%
   \bxjs at csletcs{bxjs at tmpa}{bxjs at dvidriver@@#1}%
   \ifx\bxjs at tmpa\relax
@@ -783,9 +790,12 @@
   \bxjs at papersizefalse
 \fi
 \def\bxjs@@minimal{minimal}
+\def\bxjs@@standard{standard}
+\def\bxjs@@pandoc{pandoc}
+\def\bxjs@@modern{modern}
 \ifx\bxjs at jadriver\relax
   \ifx j\jsEngine
-    \def\bxjs at jadriver{standard}
+    \let\bxjs at jadriver\bxjs@@standard
   \else
     \ClassWarningNoLine\bxjs at clsname
      {The option 'ja' is MISSING!!\MessageBreak
@@ -796,7 +806,6 @@
     \let\bxjs at jadriver\bxjs@@minimal
   \fi
 \fi
-\def\bxjs@@pandoc{pandoc}
 \ifx\bxjs at jadriver\bxjs@@pandoc \ifx\bxjs at plautopatch@given\@undefined
     \ifjsWitheTeX
   \bxjs at plautopatchtrue
@@ -1207,7 +1216,6 @@
 \else
   \PassOptionsToPackage{driver=none}{geometry}
 \fi
-\bxjs at apply@bd at pre@geometry at hook
 \bxjs at apply@bd at pre@geometry at hook{\bxjs at bd@pre at geometry@hook}
 \bxjs at apply@bd at pre@geometry at hook{\ImposeOldLuaTeXBehavior}
 \bxjs at preproc@layout
@@ -1298,6 +1306,12 @@
   \fi\fi}
 \let\pltx at cleartorightpage\pltx at cleartooddpage
 \let\pltx at cleartoleftpage\pltx at cleartoevenpage
+\ifdim\vsize=\z@
+\begingroup
+\toks@\expandafter{\clearpage}
+\xdef\clearpage{\noexpand\ifbxjs at after@preamble\the\toks@\noexpand\fi}
+\endgroup
+\fi
 \def\ps at plainfoot{%
   \let\@mkboth\@gobbletwo
   \let\@oddhead\@empty
@@ -2394,7 +2408,7 @@
     \global\let\bxjs at wareki@used\@empty
     \ClassWarning\bxjs at clsname
      {Wareki mode is not supported, since\MessageBreak
-      'bxwareki' is unavailable, found}}
+      'bxwareki' is unavailable, reported}}
   \g at addto@macro\bxjs at begin@document at hook{%
     \let\bxjs at wareki@used\@empty}
 \fi

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2022-04-11 23:49:29 UTC (rev 63010)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2022-04-12 20:39:37 UTC (rev 63011)
@@ -2387,7 +2387,8 @@
  'xesearch',    't-.*|' . $standardtex,
  'xetexfontinfo','\.tex',
  'xetexko',     '\.tab$|' . $standardtex,
- 'xintsession'	,'\.tex',
+ 'xduts',	'xidian-.*pdf$|' . $standardtex,
+ 'xintsession',	'\.tex',
  'xkeyval',	'(pst-xkey|xkeyval|xkvltxp|xkvview)\.sty$',
  'xskak',	'^xskak.*sty',		# not UF-.*.sty
  'xwatermark',  '\.sty',                # no .cfg



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