summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-03-20 21:08:20 +0000
committerKarl Berry <karl@freefriends.org>2022-03-20 21:08:20 +0000
commit29e8e79e67fce28014aba462e80fe387cdd724f8 (patch)
treed2450be5b99d06935ef92d18ad8223caa72e04cb
parent8d133cf0c41d9f82c8ac5cda8f5ede55bf9650f7 (diff)
bxjscls (20mar22)
git-svn-id: svn://tug.org/texlive/trunk@62825 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/LICENSE2
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/README-ja.md4
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdfbin382333 -> 396121 bytes
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex169
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdfbin1178317 -> 1186301 bytes
-rw-r--r--Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx267
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls39
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls39
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty2
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty2
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def2
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def2
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def77
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def20
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty27
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls39
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls39
18 files changed, 575 insertions, 157 deletions
diff --git a/Master/texmf-dist/doc/latex/bxjscls/LICENSE b/Master/texmf-dist/doc/latex/bxjscls/LICENSE
index 9f9db67d1e7..0ab060e9e95 100644
--- a/Master/texmf-dist/doc/latex/bxjscls/LICENSE
+++ b/Master/texmf-dist/doc/latex/bxjscls/LICENSE
@@ -3,7 +3,7 @@ The BSD 2-Clause License
Copyright 1995-1999 ASCII Corporation.
Copyright 1999-2016 Haruhiko Okumura
Copyright 2016-2020 Japanese TeX Development Community
-Copyright 2013-2021 Takayuki YATO (aka. "ZR")
+Copyright 2013-2022 Takayuki YATO (aka. "ZR")
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md
index e584fdfbaaa..5867d076017 100644
--- a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md
+++ b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md
@@ -99,6 +99,10 @@ XeLaTeX / LuaLaTeX の上でも日本語処理パッケージと連携して使
更新履歴
--------
+ * Version 2.6 〈2022/03/20〉
+ - LaTeX カーネル 2021/11/15 版への対応。
+ - 新版の Pandoc テンプレートへの対策。
+ - `\strongfontdeclare` 環境の補填。
* Version 2.5a 〈2021/05/18〉
- 新版の Pandoc テンプレートへの対策。
* Version 2.5 〈2021/02/02〉
diff --git a/Master/texmf-dist/doc/latex/bxjscls/README.md b/Master/texmf-dist/doc/latex/bxjscls/README.md
index f54f4f6c56a..b5d1716a192 100644
--- a/Master/texmf-dist/doc/latex/bxjscls/README.md
+++ b/Master/texmf-dist/doc/latex/bxjscls/README.md
@@ -89,6 +89,8 @@ This package is distributed under the BSD 2-Clause License.
Revision History
----------------
+ * Version 2.6 〈2022/03/20〉
+ - Support LaTeX kernel 2021/11/15.
* Version 2.5a 〈2021/05/18〉
* Version 2.5 〈2021/02/02〉
* Version 2.4a 〈2021/01/27〉
diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf
index 3b42fbe3194..5da7dc08b95 100644
--- a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf
+++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex
index c13b35f031f..c53fb7e9dc6 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.5a}
-\newcommand{\PkgDate}{2021/05/18}
+\newcommand{\PkgVersion}{2.6}
+\newcommand{\PkgDate}{2022/03/20}
\newcommand{\Pkg}[1]{\textsf{#1}}
\newcommand{\Meta}[1]{$\langle$\mbox{}\nobr#1\nobr\mbox{}$\rangle$}
\newcommand{\Note}{\par\noindent ※}
@@ -32,6 +32,17 @@
\author{八登崇之\ (Takayuki YATO; aka.~``ZR'')}
\date{v\PkgVersion\quad[\PkgDate]}
\maketitle
+
+\begin{abstract}
+本パッケージに含まれる文書クラス集は、
+奥村晴彦氏および“日本語{\TeX}開発コミュニティ”により作製された
+\Pkg{jsclasses}パッケージの文書クラス集
+の拡張版に相当する。
+元の\Pkg{jsclasses}のクラスが{\pLaTeX}と{\upLaTeX}のみを
+サポートするのに対して、
+本パッケージのクラスは主要エンジンの全てをサポートする。
+\end{abstract}
+
\tableofcontents
%===========================================================
@@ -42,7 +53,7 @@ BXJS文書クラスについては、サイト“{\TeX} Wiki”中の記事、
およびそこからたどれる情報も併せて参照してほしい。
%===========================================================
-\section{概要}
+\section{本パッケージの目的}
\label{sec:Ovewview}
本パッケージに含まれる文書クラス集
@@ -70,6 +81,8 @@ JSクラスのレイアウトデザインと機能をほぼ踏襲しているが
同様の機能が提供されている。
\item 用紙サイズや基底フォントサイズについて、任意の値を指定する
ことができる。
+\item 文書形式変換ツールPandocを用いた日本語{\LaTeX}文書生成の
+ ために調整された設定である「Pandocモード」が利用できる。
\end{itemize}
%===========================================================
@@ -197,7 +210,7 @@ JSクラスのレイアウトデザインと機能をほぼ踏襲しているが
次の設定と大体同じであるが、ただし文書レイアウトは
\Pkg{article}でなく\Pkg{jsarticle}とほぼ同じになっている:
\begin{quote}\small\begin{verbatim}
-\documentclass[a4paper]{article}
+\documentclass[a4paper]{article}%ただしレイアウトはjsarticle相当
\usepackage[whole,autotilde]{bxcjkjatype}
\end{verbatim}\end{quote}
@@ -256,7 +269,7 @@ JSクラスのレイアウトデザインと機能をほぼ踏襲しているが
次の設定と大体同じであるが、ただし文書レイアウトは
\Pkg{jsarticle}とほぼ同じになっている:
\begin{quote}\small\begin{verbatim}
-\documentclass[a4paper,twocolumn]{article}
+\documentclass[a4paper,twocolumn]{article}%ただしレイアウトはjsarticle相当
\usepackage{zxjatype}
\setCJKmainfont[BoldFont=HaranoAjiGothic-Medium.otf]{HaranoAjiMincho-Regular.otf}
\setCJKsansfont[BoldFont=HaranoAjiGothic-Medium.otf]{HaranoAjiGothic-Medium.otf}
@@ -289,8 +302,7 @@ JSクラスのレイアウトデザインと機能をほぼ踏襲しているが
(ただし\Pkg{luatexja-preset}は実際には読み込まれない):
\begin{quote}\small\begin{verbatim}
\documentclass[b5paper,9pt]{ltjsarticle}
-\usepackage{luatexja-fontspec}
-\usepackage[haranoaji]{luatexja-preset}
+\usepackage[haranoaji]{luatexja-preset}%実際にはパッケージは読み込まれない
\end{verbatim}\end{quote}
\Note 2.0版より、既定の和文フォントが「IPAexフォント」から
@@ -303,8 +315,7 @@ JSクラスのレイアウトデザインと機能をほぼ踏襲しているが
次の設定とほぼ等価になる:
\begin{quote}\small\begin{verbatim}
\documentclass[b5paper]{ltjsarticle}
-\usepackage{luatexja-fontspec}
-\usepackage[ms]{luatexja-preset}
+\usepackage[ms]{luatexja-preset}%実際にパッケージが読み込まれる
\end{verbatim}\end{quote}
\Note 補足:
@@ -379,13 +390,47 @@ JSクラスのレイアウトデザインと機能をほぼ踏襲しているが
\end{itemize}
%===========================================================
-\section{Pandocモードの使い方}
+\section{Pandocモード}
\label{sec:Pandoc-mode}
「Pandocモード」は文書形式変換ツールである
Pandoc\footnote{\url{http://pandoc.org/}}%
を用いた日本語{\LaTeX}文書生成(および{\LaTeX}経由のPDF生成)
のために調整された設定である。
+特に
+「Pandoc(2.0版以降)の既定の{\LaTeX}出力用テンプレートをそのまま
+用いても日本語文書として適切な出力が得られる」
+ことを主要な目的としている。
+
+現状のPandocモードでは以下の調整が行われる。
+\Note これらの一部についてはユーザによる設定変更が可能である。
+詳細は\ref{ssec:pandoc-param}節、\ref{ssec:ja-settings}節を参照。
+
+\begin{itemize}
+\item PandocのStrong(重要)要素の出力を |\strong| 命令に合わせるため、
+ |\textbf| 命令を |\strong| 命令に移譲させる。
+\item |\texttt| 命令・|\verb| 命令と和文との間に入る和欧文間空白を
+ 調節している。
+\item Pandocは入力文書中の三点リーダ“…”を |\ldots| 命令に変換するが、
+ このせいで欧文扱いになるのを回避するため、
+ |\ldots| を一定の条件下において和文で出力させる。
+\item 全角空白文字の入力を(文字ではなく)空きの挿入と解釈する。
+\item Pandocの一部の設定は |\paragraph| の見出しの体裁を変更するが、
+ この場合に連動して |paragraph-mark| の既定値を空に変更する。
+\item Pandocの一部の設定はプレアンブルでの\Pkg{geometry}の読込を
+ 発生させるが、この場合に重複読込のエラーになるのを回避するため、
+ \Pkg{geometry}の読込を |\setpagelayout*| の呼出に振り替える。
+\item 入力文書が言語指定を含む場合にはBabelパッケージが読み込まれるが、
+ この際に発生する可能性がある不整合を回避する。
+\item \Pkg{hyperref}パッケージの |unicode| オプションの有無について
+ 適切な選択(エンジンにより決まる)を強制する。
+ ((u){\pLaTeX}をサポートするための措置。)
+\end{itemize}
+
+%-------------------
+\subsection{Pandocモードの使い方}
+
+Pandocモードを使う場合はクラスオプションを以下のように指定する。
\begin{quote}
|\documentclass[pandoc,|\Meta{ドライバ}%
@@ -407,20 +452,25 @@ Pandoc\footnote{\url{http://pandoc.org/}}%
従来通り使用できる。
\end{itemize}
-以下でPandocでBXJSクラスを用いる例を示す。
+%-------------------
+\subsection{Pandocの設定の例}
+
+BXJSクラスを用いる場合のPandocの設定について、以下で例を示す。
\Note なお、以下の記述はPandoc 2.x版に従う。
-(オプション体系が1.x版とかなり異なるので注意。)
+Pandocのオプション体系は2.x版と1.x版とでかなり異なることに
+注意されたい。
-\begin{itemize}
-\item \Pkg{bxjsarticle}クラスを使用する一例。
+\paragraph{bxjsarticleの例}
+
+以下の設定で\Pkg{bxjsarticle}クラスを使用したい。
\begin{itemize}
\item {\XeLaTeX}経由
\item 用紙サイズはA4判
\item 和文フォント設定は |ipaex|
\end{itemize}
- コマンド行は次のようになる。
+ この場合のコマンド行は次のようになる:
\footnote{もちろん、実際には改行を含めず1行で書く。
なお、日本語文書の場合、変換先書式(|-t|)は |latex|
でなく |lates-smart|(|smart| 機能を無効化)とすべきである。}
@@ -441,7 +491,10 @@ Pandoc\footnote{\url{http://pandoc.org/}}%
|\documentclass[a4paper,jafont=ipaex,pandoc]{bxjsarticle}|
\end{quote}
-\item \Pkg{bxjsbook}クラスを用いる場合の一例。
+\paragraph{bxjsbookの例}
+
+以下の設定で\Pkg{bxjsbook}クラスを使用したい。
+
\begin{itemize}
\item 節番号を出力する
\item Lua{\LaTeX}経由
@@ -451,7 +504,7 @@ Pandoc\footnote{\url{http://pandoc.org/}}%
\item 欧文フォントをPandocの機能で設定
\end{itemize}
- コマンド行は次のようになる:
+ この場合のコマンド行は次のようになる:
\begin{quote}
|pandoc| \Meta{入力ファイル名}\
|-o| \Meta{出力ファイル名}|.pdf|
@@ -468,30 +521,30 @@ Pandoc\footnote{\url{http://pandoc.org/}}%
|-V sansfont="TeX Gyre Heros"|
\end{quote}
- 注意事項:
+\Note 注意事項:
\begin{itemize}
\item \Pkg{bxjsbook}クラスは「章(|\chapter|)」をもつクラスなので、
Pandocで |--top-level-division=|\linebreak[0]|chapter| の指定
が必要。
\end{itemize}
-\item Pandocで{\LaTeX}経由でPDFを出力する場合、
- エンジン指定(|--pdf-engine|)は
- |pdflatex|、|xelatex|、|lualatex|のみがサポートされる。
- しかし、Pandocの出力を「単体の{\LaTeX}文書」(|-s|指定)とすることで、
- {\LaTeX}エンジンに(u){\pLaTeX}を使用することができる。
- 出力された{\LaTeX}文書は通常の方法でPDFやPostScript形式に
- 変換できる。
-
- \begin{quote}\small
-\begin{verbatim}
-pandoc mydoc.md -o mydoc.tex -s -V documentclass=bxjsarticle -V classoption=pandoc
+\paragraph{(u)\pLaTeX の使用}
+
+Pandocで{\LaTeX}経由でPDFを出力する場合、
+エンジン指定(|--pdf-engine|)は
+|pdflatex|、|xelatex|、|lualatex|のみがサポートされる。
+これに対して、Pandocの出力を「単体の{\LaTeX}文書」(|-s|指定)と
+するとPandocが{\LaTeX}を実行しなくなり、
+この場合は{\LaTeX}エンジンに(u){\pLaTeX}を使用することができる。
+出力された{\LaTeX}文書は通常の方法でPDFやPostScript形式に
+変換できる。
+
+\begin{quote}\small\begin{verbatim}
+pandoc mydoc.md -o mydoc.tex -s -V documentclass=bxjsreport -V classoption=pandoc ...
uplatex mydoc
uplatex mydoc
dvipdfmx mydoc
-\end{verbatim}
- \end{quote}
-\end{itemize}
+\end{verbatim}\end{quote}
%===========================================================
\section{クラスオプション}
@@ -791,6 +844,8 @@ JSクラスには無くBXJSクラスで追加されたクラスオプション
パラメタを自分で設定しても構わない。
ただし\Pkg{geometry}の読込が強く推奨される。
(\Pkg{geometry}非読込時の動作テストはほとんど行っていない。)}
+ \Note 「自動読込の際に指定するはずのオプション列」
+ が |\jsGeometryOptions| に保存されている。
\end{itemize}
\Note 「どうしても\Pkg{geometry}パッケージを自分で読み込みたい」
という人のための設定。
@@ -1339,6 +1394,7 @@ minimal和文ドライバには有効な和文ドライバパラメタは存在
%-------------------
\subsection{pandoc和文ドライバの場合}
+\label{ssec:pandoc-param}
standard用のものに加えて、以下の和文ドライバパラメタが存在する。
@@ -1533,11 +1589,16 @@ vscale=0.944, vmarginratio=1:1
\begin{itemize}
\item |\strong{|\Meta{テキスト}|}|\Means
- 引数のテキストに、重要性を表す装飾を施す。
- 具体的には\,|\bfseries|(太字)が適用される。
+ 引数のテキストに、重要性を表す書体変更を適用する。
\item |strongenv|環境\Means
|\strong|の環境版。
- \Note 以上の2つの機能は\Pkg{fontspec}パッケージとの互換を
+\item |\strongfontdeclare{|\Meta{書体変更命令列}|,...}|\Means
+ |\strong| で実際に適用される書体変更(宣言型命令の列)を指定する。
+ コンマ区切りで複数の値が指定可能で、
+ $n$重の |\strong| が適用されたテキストに対して
+ $n$番目の書体変更命令列が実行される。
+ \Note 既定値は“|\bfseries|”であり、|\strong| は太字で出力される。
+ \Note 以上の3つの機能は\Pkg{fontspec}パッケージとの互換を
目的としたものである。
|strong-cmd=false| 指定時はこれらの機能は無効になる。
ただし、\Pkg{fontspec}が読み込まれている場合は、
@@ -1692,6 +1753,40 @@ standard和文ドライバ(およびそれを継承するドライバ)では
\makebox[#1\zw][s]{#2}}}
\end{verbatim}\end{quote}
+\subsubsection{pandoc和文ドライバで追加される命令}
+
+Pandocモードにおける出力の調整の対象となる要素について、
+以下の命令を再定義することで
+調整方法をカスタマイズできる。
+例えば
+\begin{quote}\small
+|\renewcommand{\pandocZWSpace}{\jachar{|\JSS|}}|
+\end{quote}
+(ここで {\JSS} は全角空白文字)と再定義することで、
+「全角空白文字の入力を空きに変換する」
+調整を実質的に無効化できる。
+
+\begin{itemize}
+\item |\pandocZWSpace|\Means
+ 全角空白文字が入力されたときに実際に実行される命令。
+ \Note |\pandocZWSpace| を再定義する際に、その定義内容の中で
+ 全角空白文字を直接使うと無限ループになってしまうため、
+ 代わりに |\jachar{|\JSS|}| と書く必要がある。
+
+\item |\pandocLdots|\Means
+ 非数式で |\ldots| を実行したときに実際に実行される命令。
+ \Note 一般にPandocの{\LaTeX}出力においては
+ 入力文書中の“…”が |\ldots| 命令に変換される。
+ \Note |\pandocLdots| を再定義する際に、その定義内容の中で |\ldots| を
+ 使うと無限ループになってしまうため、
+ 代わりに |\textellipsis| 等を適宜使う必要がある。
+ ただし特別な規約として
+ \begin{quote}\small
+ |\renewcommand{\pandocLdots}{\ldots}|
+ \end{quote}
+ と再定義した場合は、|\ldots| に対する調整自体が無効になる。
+\end{itemize}
+
%===========================================================
\section{数式中の和文出力について}
\label{sec:Ja-math-fonts}
@@ -1828,7 +1923,7 @@ Class bxjsarticle Warning: Some old font commands were used in text:
\end{itemize}
%-------------------
-\subsection{将来的な二文字フォント命令の扱い}
+\subsection{将来の二文字フォント命令の扱い}
\jemph{現在の版で存在する}和文ドライバを使用する場合には、
将来にわたって以下の方針が維持される。
@@ -1837,7 +1932,7 @@ Class bxjsarticle Warning: Some old font commands were used in text:
\item 二文字フォント命令に対する警告の様式は、
今後変更される可能性がある。
\item しかし、将来に二文字フォント命令のサポートが廃止されることはない。
-\item |oldfontcommands| オプションよおび |\allowoldfontcommands| 命令
+\item |oldfontcommands| オプションおよび |\allowoldfontcommands| 命令
は継続して提供され、
これらの機能を用いた場合は、二文字フォント命令に関する警告が
端末に表示されることは一切無い。
diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf
index 1c6cc80fba2..a85d94c64d6 100644
--- a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf
+++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
index 92ea5eaa127..233746e4501 100644
--- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
+++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
@@ -33,7 +33,7 @@
% Copyright 1999-2016 Haruhiko Okumura
% Copyright 2016-2020 Japanese TeX Development Community
%
-% Copyright 2013-2021 Takayuki YATO (aka. "ZR")
+% Copyright 2013-2022 Takayuki YATO (aka. "ZR")
%
% \fi
% \CheckSum{0}
@@ -56,7 +56,8 @@
%<*driver>
\ProvidesFile{bxjscls.dtx}
%</driver>
- [2021/05/18 v2.5a 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]
% [2020/10/16 v2.4 BXJS document classes]
@@ -481,6 +482,15 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\ifbxjs@explIII}
+% 〔スイッチ〕
+% expl3がカーネルに組み込まれているか。
+% \begin{macrocode}
+\newif\ifbxjs@explIII
+\@ifl@t@r\fmtversion{2020/02/02}{\bxjs@explIIItrue}{}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\ifbxjs@TUenc}
% 〔スイッチ〕
% {\LaTeX}の既定のフォントエンコーディングがTUであるか。
@@ -509,6 +519,20 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\bxjs@CGHN}
+% カーネルの2021/11/15版の改修で“要素の順が変わった”フック名について、
+% 新仕様の名前を“使用中の{\LaTeX}において正しい名前”に変換する。
+% \Note 例えば、“|package/after/PKG|”は新仕様で
+% “|package/PKG/after|”に変更された。
+% \begin{macrocode}
+\@ifl@t@r\fmtversion{2021/11/15}{%
+ \def\bxjs@CGHN#1{#1}%
+}{%else
+ \def\bxjs@CGHN#1{\bxjs@CGHN@a#1//}%
+ \def\bxjs@CGHN@a#1/#2/#3//{#1/#3/#2}}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\bxjs@cond}
% |\bxjs@cond\ifXXX|……|\fi{|\Meta{真}|}{|\Meta{偽}|}|\par
% {\TeX}のif-文(|\ifXXX|……\Meta{真}|\else|\Meta{偽}|\fi|)を
@@ -555,6 +579,37 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\bxjs@trim}
+% |\bxjs@trim\CS| で、|\CS| の内容のトークン列を先頭と末尾の
+% 空白トークン群を除去したものに置き換える。
+% \begin{macrocode}
+\def\bxjs@trim#1{\expandafter\bxjs@trim@a#1\@nil#1}
+\def\bxjs@trim@a{\futurelet\bxjs@tmpb\bxjs@trim@b}
+\def\bxjs@trim@b{\bxjs@cond\ifx\bxjs@tmpb\@sptoken\fi
+ {\bxjs@trim@c\bxjs@trim@a}{\bxjs@trim@d}}
+\def\bxjs@trim@c#1 {#1}
+\def\bxjs@trim@d#1\@nil{\bxjs@trim@e#1\@nil: \@nil\@nnil}
+\def\bxjs@trim@e#1 \@nil#2\@nnil{\bxjs@cond\ifx\@nnil#2\@nnil\fi
+ {\bxjs@trim@f#1\@nnil}{\bxjs@trim@e#1\@nil: \@nil\@nnil}}
+\def\bxjs@trim@f#1\@nil#2\@nnil#3{\def#3{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bxjs@set@array@from@clist}
+% |\bxjs@set@array@from@clist{|\Meta{配列名接頭辞}|}{|%
+% \Meta{コンマ区切りリスト}|}|\Means
+% コンマ区切りの値のリストから擬似配列を生成する。
+% \Note 各要素について、先頭・末尾の空白トークン群は除去される。
+% \begin{macrocode}
+\def\bxjs@set@array@from@clist#1#2{%
+ \@tempcnta\z@
+ \@for\bxjs@tmpa:=\@empty#2\do{%
+ \bxjs@trim\bxjs@tmpa \bxjs@cslet{#1/\the\@tempcnta}\bxjs@tmpa
+ \advance\@tempcnta\@ne}
+ \bxjs@cslet{#1/\the\@tempcnta}\relax}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\bxjs@gset@tempcnta}
% |calc| の整数式を用いて |\@tempcnta| の値を設定する。
% \begin{macrocode}
@@ -2243,10 +2298,17 @@
% \Note ただし |ja| 非指定の場合はスキップする
% (0.3 版との互換性のため)。
% \begin{macrocode}
- \ifx\bxjs@driver@opt\@undefined \ifx\bxjs@jadriver@opt\@undefined\else
- \ClassWarningNoLine\bxjs@clsname
- {No driver option is given}
- \fi\fi
+ \ifx\bxjs@driver@opt\@undefined
+ \if \ifbxjs@explIII T\else\ifx\bxjs@jadriver@opt\@undefined F\else T\fi\fi T%
+ \ClassWarningNoLine\bxjs@clsname
+ {A driver option is MISSING!!\MessageBreak
+ You should properly specify one of the valid\MessageBreak
+ driver options according to the DVI driver\MessageBreak
+ that is in use:\MessageBreak
+ \@spaces dvips, dvipdfmx, dviout, xdvi,\MessageBreak
+ \@spaces nodvidriver}
+ \fi
+ \fi
% \end{macrocode}
% |dvi=XXX| が指定されていた場合は、
% |XXX| が指定された時と同じ動作にする。
@@ -9221,10 +9283,18 @@
% 既定の設定は |\bfseries|(太字)である。
% \Note |\strongfontdeclare| は試験的機能とする。
% \begin{macrocode}
- \@ifdefinable{\strongfontdeclare}{\bxjs@protected\def\strongfontdeclare#1{%
- \bxjs@strong@font@declare@a#1,\@nil}}%
- \def\bxjs@strong@font@declare@a#1,#2\@nil{\def\bxjs@strong@font{#1}}%
- \def\bxjs@strong@font{\bfseries}%
+ \newcommand*{\strongfontdeclare}{\bxjs@strongfontdeclare}%
+ \newcount\bxjs@strong@level
+ \bxjs@protected\def\bxjs@strongfontdeclare#1{%
+ \bxjs@set@array@from@clist{bxjs@strong}{#1}%
+ \bxjs@strong@level\z@}%
+ \bxjs@strongfontdeclare{\bfseries}%
+ \def\bxjs@strong@font{%
+ \bxjs@csletcs{bxjs@tmpa}{bxjs@strong/\the\bxjs@strong@level}%
+ \ifx\bxjs@tmpa\relax
+ \advance\bxjs@strong@level\m@ne \bxjs@strong@font
+ \else \advance\bxjs@strong@level\@ne \bxjs@tmpa
+ \fi}%
\fi\fi
}\fi
% \end{macrocode}
@@ -9822,7 +9892,7 @@
% \begin{macrocode}
\ifjsWithupTeX\ifbxjs@old@hook@system\else
\IfFileExists{pxjahyper-uni.def}{%
- \AddToHook{package/after/hyperref}{\input{pxjahyper-uni.def}}
+ \AddToHook{\bxjs@CGHN{package/hyperref/after}}{\input{pxjahyper-uni.def}}
}{}
\fi\fi
\fi
@@ -10557,6 +10627,24 @@
\fi
% \end{macrocode}
%
+% \begin{macro}{\ifbxjs@bxghost@available}
+% 〔スイッチ〕|bxghost| パッケージが利用できるか。
+% \begin{macrocode}
+\newif\ifbxjs@bxghost@available
+\ifjsWitheTeX
+ \RequirePackage{pdftexcmds}[2009/09/22]% v0.5
+ \IfFileExists{bxghost.sty}{%
+ \bxjs@bxghost@availabletrue
+ \@namedef{bxjs@bgbv/79E70A0991967E27981832C84DB5DF99}{1}%v0.2.0
+ \ifx\pdf@filemdfivesum\@undefined\else
+ \expandafter\ifx\csname bxjs@bgbv/\pdf@filemdfivesum{bxghost.sty}%
+ \endcsname\relax\else \bxjs@bxghost@availablefalse \fi
+ \fi
+ }{}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\bxjs@endpreamble@hook}
% |etoolbox| の |\AtEndPreamble| で実行されるBXJSクラス用のフック。
% \Note {\eTeX}以外では無効になる。
@@ -10685,8 +10773,9 @@
% この時に何らかのコードを実行させることができる。
%
% \begin{macro}{\bxjs@set@dupload@proc}
-% |\bxjs@set@dupload@proc{|\Meta{ファイル名}|}{|\Meta{定義本体}|}|
-% 特定のファイルの読込が |\@filewithoptions| で指示されて、しかも
+% |\bxjs@set@dupload@proc{|\Meta{ファイル名}|}{|\Meta{定義本体}|}|\Means
+% 指定の名前の特定のファイルの読込が |\@filewithoptions| で
+% 指示されて、しかも
% そのファイルが読込済である場合に、オプション重複検査をスキップして、
% 代わりに\Meta{定義本体}のコードを実行する。
% このコード中で |#1| は渡されたオプション列のテキストに置換される。
@@ -10698,7 +10787,7 @@
\def\bxjs@set@dupload@proc@a#1{%
\@onlypreamble#1\def#1##1}
\def\bxjs@unset@dupload@proc#1{%
- \expandafter\let\csname bxjs@dlp/#1\endcsname\@undefined}
+ \bxjs@cslet{bxjs@dlp/#1}\@undefined}
% \end{macrocode}
% \end{macro}
%
@@ -10739,6 +10828,9 @@
% Pandocはこれに対応していないため
% 不完全なBabelやPolyglossiaの設定を出力してしまう。
% これを防ぐための対策を行う。
+% \Note Pandoc 2.12版で |lang=ja| 指定に対応し、
+% 正しく{\LaTeX}側の言語名 |japanese| に変換されるようになった。
+% しかし、日本語指定の場合は相変わらず調整処理が必要である。
%
% \begin{macro}{\bxjs@polyglossia@options}
% Polyglossiaのオプション列のテキスト。
@@ -10757,7 +10849,7 @@
% \end{macro}
%
% \paragraph{Polyglossiaについて}
-% つまり{\XeTeX}・{Lua\TeX}の場合。
+% つまり{\XeTeX}および{Lua\TeX}(古いPandocで)の場合。
% \Note この場合 |etoolbox| が使用可能になっている。
% \begin{macrocode}
\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi>0
@@ -10770,7 +10862,7 @@
\bxjs@set@dupload@proc{polyglossia.sty}{%
\bxjs@unset@dupload@proc{polyglossia.sty}%
\ClassWarning\bxjs@clsname
- {Package polyglossia is required}%
+ {Package polyglossia is requested}%
\def\bxjs@polyglossia@options{#1}%
% \end{macrocode}
%
@@ -10783,33 +10875,27 @@
% \end{macrocode}
% もし、言語名が空の |\setmainlanguage{}| が実行された場合は、
% |lang=ja| が指定されたと見なす。
-% \begin{macrocode}
- \ifblank{##2}{%
- \ClassWarning\bxjs@clsname
- {Main language is invalid, thus the fallback\MessageBreak
- definitions will be employed}%
- \bxjs@pandoc@polyglossia@ja
-% \end{macrocode}
% 言語名が |japanese| だった場合も同様。
% \begin{macrocode}
- }{\ifstrequal{##2}{japanese}{%
+ \ifboolexpr{test{\ifblank{##2}}or test{\ifstrequal{##2}{japanese}}}{%
\ClassWarning\bxjs@clsname
- {Main language is japanese, thus the fallback\MessageBreak
+ {Main language is 'japanese', thus fallback\MessageBreak
definitions will be employed}%
\bxjs@pandoc@polyglossia@ja
% \end{macrocode}
-% 言語名が非空ならば、本来の |polyglossia| の処理を実行する。
+% それ以外は、改めて |polyglossia| を読み込んで、
+% 本来の処理を実行する。
% \begin{macrocode}
}{%else
\ClassWarning\bxjs@clsname
- {Main language is valid (##2),\MessageBreak
+ {Main language is '##2',\MessageBreak
thus polyglossia will be loaded}%
\csundef{ver@polyglossia.sty}%
\edef\bxjs@next{%
\noexpand\RequirePackage[\bxjs@polyglossia@options]{polyglossia}[]%
}\bxjs@next
\setmainlanguage[##1]{##2}%
- }}}}
+ }}}
% \end{macrocode}
%
% プレアンブルで |polyglossia| の読込が指示されなかった場合、
@@ -10866,7 +10952,7 @@
\bxjs@set@dupload@proc{babel.sty}{%
\bxjs@unset@dupload@proc{babel.sty}%
\ClassWarning\bxjs@clsname
- {Package babel is required}%
+ {Package babel is requested}%
% \end{macrocode}
% パッケージオプションに言語名が空の |main=| があるかを調べる。
% ある場合は |lang=ja| 対策を実行する。
@@ -10875,23 +10961,25 @@
% \begin{macrocode}
\@tempswafalse \let\bxjs@babel@options\@empty
\def\bxjs@tmpb{main=}%
+ \def\bxjs@next{main=japanese}%
\@for\bxjs@tmpa:=#1\do{%
\ifx\bxjs@tmpa\bxjs@tmpb \@tempswatrue
+ \else\ifx\bxjs@tmpa\bxjs@next \@tempswatrue
\else \edef\bxjs@babel@options{\bxjs@babel@options,\bxjs@tmpa}%
- \fi}%
+ \fi\fi}%
\if@tempswa
\ClassWarning\bxjs@clsname
- {Main language is invalid, so fallback\MessageBreak
+ {Main language is 'japanese', thus fallback\MessageBreak
definitions will be employed}%
- \bxjs@pandoc@polyglossia@ja
+ \bxjs@pandoc@babel@ja
% \end{macrocode}
% ない場合は、本来の |babel| の処理を実行する。
% \begin{macrocode}
\else
\ClassWarning\bxjs@clsname
- {Main language is valid,\MessageBreak
+ {Main language is not 'japanese',\MessageBreak
thus babel will be loaded}%
- \expandafter\let\csname ver@babel.sty\endcsname\@undefined
+ \bxjs@cslet{ver@babel.sty}\@undefined
\RequirePackage[#1]{babel}[]%
\fi}
% \end{macrocode}
@@ -10901,7 +10989,7 @@
% \begin{macrocode}
\g@addto@macro\bxjs@endpreamble@hook{%
\ifx\bxjs@babel@options\relax
- \expandafter\let\csname ver@babel.sty\endcsname\@undefined
+ \bxjs@cslet{ver@babel.sty}\@undefined
\fi}
% \end{macrocode}
%
@@ -10910,7 +10998,7 @@
% \begin{macrocode}
\@onlypreamble\bxjs@pandoc@babel@ja
\def\bxjs@pandoc@babel@ja{%
- \expandafter\let\csname ver@babel.sty\endcsname\@undefined
+ \bxjs@cslet{ver@babel.sty}\@undefined
\edef\bxjs@next{%
\noexpand\RequirePackage[\bxjs@babel@options,english]{babel}[]%
}\bxjs@next
@@ -10996,6 +11084,7 @@
\parindent=\the\parindent\relax
\parskip=\the\parskip\relax}}
\fi
+% \end{macrocode}
%
% \paragraph{secnumdepthについて}
% |secnumdepth| の値を決めるのはnumbersections変数
@@ -11003,13 +11092,18 @@
% やsecnumdepth変数であるが、何れにしても |secnumdepth|
% の値は書き換えられる。
% そのため、|secnumdepth| を復帰させる。
+% \begin{macrocode}
\ifbxjs@jp@or@secnumdepth\else
\bxjs@info@or@ban{secnumdepth}
\eappto\bxjs@endpreamble@hook{%
\c@secnumdepth=\the\c@secnumdepth\relax}
\fi
+% \end{macrocode}
%
% \paragraph{block-headingについて}
+% |\paragraph|、|\subparagraph| を別行見出しに変える処理を抑止する。
+% \Note 2.7.1版以前では別行見出し変更が既定で有効であった。
+% \begin{macrocode}
\ifbxjs@jp@or@block@heading\else
\let\bxjs@frozen@paragraph\paragraph
\let\bxjs@frozen@subparagraph\subparagraph
@@ -11019,6 +11113,10 @@
\let\paragraph\bxjs@frozen@paragraph
\let\subparagraph\bxjs@frozen@subparagraph}
\fi
+% \end{macrocode}
+%
+% 以上。
+% \begin{macrocode}
\fi
% \end{macrocode}
%
@@ -11065,15 +11163,27 @@
%^^A----------------
% \subsection{全角空白文字}
%
+% {\LaTeX}でない入力では、全角空きを入れるために全角空白文字
+% (U+3000)が使われる可能性があるので、
+% 全角空白文字を和文文字でなく空きとして扱うようにしておく。
+% \Note {(u)\pLaTeX}では対応できないので対象外。
+%
+% \begin{macro}{\pandocZWSpace}
+% 全角空白文字の入力で実行されるコード。
+% \begin{macrocode}
+\def\pandocZWSpace{\zwspace}
+% \end{macrocode}
+% \end{macro}
+% 全角空白文字の入力で |\pandocZWSpace| が実行されるようにする。
% \begin{macrocode}
\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi>\z@
\catcode"3000=\active
\begingroup \catcode`\!=7
- \protected\gdef!!!!3000{\zwspace}
+ \protected\gdef!!!!3000{\pandocZWSpace}
\endgroup
\else\ifx\DeclareUnicodeCharacter\@undefined\else
\DeclareUnicodeCharacter{3000}{\bxjs@zsp@char}
- \bxjs@protected\def\bxjs@zsp@char{\zwspace}
+ \bxjs@protected\def\bxjs@zsp@char{\pandocZWSpace}
\fi\fi
% \end{macrocode}
%
@@ -11099,13 +11209,13 @@
% \begin{macrocode}
\ifbxjs@jp@fix@strong\ifbxjs@jp@strong@cmd
\let\orgtextbf\textbf
- \DeclareRobustCommand\bxjstextbf[1]{%
+ \DeclareRobustCommand\pandocTextbf[1]{%
\begingroup
\let\textbf\orgtextbf
\strong{#1}%
\endgroup}%
\g@addto@macro\bxjs@begin@document@hook{%
- \let\textbf\bxjstextbf}
+ \let\textbf\pandocTextbf}
\fi\fi
% \end{macrocode}
%
@@ -11124,8 +11234,18 @@
%
% インラインコード(Code)要素に対する{\LaTeX}出力は |\texttt| となる。
% |\texttt| の両端に欧文ゴーストが入るようにする。
+% さらに |\verb| の外側にも欧文ゴーストが入るようにする。
+%
% \begin{macrocode}
\ifbxjs@jp@fix@code
+% \end{macrocode}
+% |bxghost| パッケージが利用できる場合はその機能を利用する。
+% 使えない場合は自前実装を用いる。
+% \begin{macrocode}
+ \ifbxjs@bxghost@available
+ \RequirePackage[verb]{bxghost}[2020/01/31]% v0.3.0
+ \let\bxjs@eghostguarded\eghostguarded
+ \else
\chardef\bxjs@eghost@c=23
\ifx j\jsEngine \xspcode\bxjs@eghost@c=3
\else\ifx l\jsEngine \ltjsetparameter{alxspmode={\bxjs@eghost@c,3}}
@@ -11135,24 +11255,29 @@
\ifx\bxjs@eghost@c\@undefined\else
\font\bxjs@eghost@f=ec-lmr10 at 1.23456pt
\def\bxjs@pan@eghost{\bgroup\bxjs@eghost@f\bxjs@eghost@c\egroup}
+ \def\bxjs@eghostguarded#1{%
+ \bxjs@pan@eghost\null#1\null\bxjs@pan@eghost}
+ \fi
+ \fi
+ \ifx\bxjs@eghostguarded\@undefined\else
\let\orgtexttt\texttt
- \DeclareRobustCommand\bxjstexttt[1]{%
+ \DeclareRobustCommand\pandocTexttt[1]{%
\ifmmode \nfss@text{\ttfamily #1}%
\else
\ifvmode \leavevmode \fi
- \bxjs@pan@eghost\null
- \begingroup \ttfamily #1\endgroup
- \null\bxjs@pan@eghost
+ \bxjs@eghostguarded{\begingroup\ttfamily#1\endgroup}%
\fi}
\g@addto@macro\bxjs@begin@document@hook{%
- \let\texttt\bxjstexttt}
+ \let\texttt\pandocTexttt}
% \end{macrocode}
-% さらに |\verb| の外側にも欧文ゴーストが入るようにする。
-% \Note |bxjaghost| の実装を参考にした。
+% |bxghost| を使わない場合の |\verb| の処理。
+% \Note |bxghost| の実装を参考にした。
% \begin{macrocode}
+ \ifbxjs@bxghost@available\else
\expandafter\def\expandafter\verb\expandafter{%
\expandafter\bxjs@pan@eghost\verb}
\g@addto@macro\verb@egroup{\bxjs@pan@eghost}
+ \fi
\fi
\fi
% \end{macrocode}
@@ -12024,6 +12149,24 @@ FE70,FFF0,%
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\bxjsp@begin@document@hook}
+% 文書本体開始時フック。
+% \begin{macrocode}
+\@onlypreamble\bxjsp@begin@document@hook
+\let\bxjsp@begin@document@hook\@empty
+\AtBeginDocument{\bxjsp@begin@document@hook}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifbxjsp@babel@used}
+% 〔スイッチ〕Babelが読み込まれたか。
+% \begin{macrocode}
+\newif\ifbxjsp@babel@used
+\g@addto@macro\bxjsp@begin@document@hook{%
+ \@ifpackageloaded{babel}{\bxjsp@babel@usedtrue}{}}
+% \end{macrocode}
+% \end{macro}
+%
%^^A----------------
%\subsection{パッケージオプション}
%
@@ -12151,20 +12294,36 @@ FE70,FFF0,%
% 1.9f版で非数式の |\ldots| を全て |…| に戻す動作に変更した。
% \begin{macrocode}
\DeclareRobustCommand{\pandocLdots}{%
- \relax\ifmmode \expandafter\bxjsp@org@ldots
- \else \expandafter\bxjsp@ja@ellipsis
- \fi}
+ \let\bxjsp@do\bxjsp@ja@ellipsis
+ \ifmmode \let\bxjsp@do\bxjsp@org@ldots
+ \else\ifbxjsp@babel@used
+ \expandafter\ifx\csname bxjsp@ld/\languagename\endcsname\relax
+ \let\bxjsp@do\bxjsp@org@ldots \fi
+ \fi\fi \bxjsp@do}
+\@namedef{bxjsp@ld/japanese}{1}
\def\bxjsp@ja@ellipsis{…}
\let\bxjsp@org@ldots\ldots
% \end{macrocode}
% \end{macro}
%
-% |\ldots| の実装を置き換える。
-% \Note B|english| オプション指定時は置き換えない。
+% |\ldots| の実装を |\pandocLdots| に置き換える。
% \begin{macrocode}
-\AtBeginDocument{%
+\g@addto@macro\bxjsp@begin@document@hook{%
\let\bxjsp@org@ldots\ldots
- \ifbxjsp@english\else \let\ldots\pandocLdots \fi}
+% \end{macrocode}
+% もしここで |\newcommand\pandocLdots{\ldots}| という定義である場合は
+% 置き換えない。
+% \begin{macrocode}
+ \long\def\bxjsp@tmpa{\ldots}%
+ \ifx\pandocLdots\bxjsp@tmpa\else
+% \end{macrocode}
+% |english| オプションが指定されていてかつBabelが読み込まれていない場合も
+% 置き換えない。
+% \begin{macrocode}
+ \ifnum0\ifbxjsp@english\ifbxjsp@babel@used\else1\fi\fi=0
+ \let\ldots\pandocLdots
+ \fi
+ \fi}
% \end{macrocode}
%
% |\ldots| の直後の文字が非英字の場合、Pandocは「|\ldots。|」の
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls
index 7032930c8fd..bfc345c0b3c 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}
- [2021/05/18 v2.5a BXJS document classes]
+ [2022/03/20 v2.6 BXJS document classes]
%% このファイルは日本語文字を含みます.
\def\bxjs@clsname{bxjsarticle}
\newif\ifjsc@needsp@tch
@@ -87,6 +87,8 @@
\let\PackageWarningNoLine\bxjs@tmpa
\@nameuse{RevokeOldLuaTeXBehavior}
\let\ifjsInPdfMode\ifpdf
+\newif\ifbxjs@explIII
+\@ifl@t@r\fmtversion{2020/02/02}{\bxjs@explIIItrue}{}
\newif\ifbxjs@TUenc
\def\bxjs@tmpa{TU}\edef\bxjs@tmpb{\f@encoding}
\ifx\bxjs@tmpa\bxjs@tmpb
@@ -94,6 +96,11 @@
\fi
\newif\ifbxjs@old@hook@system
\@ifl@t@r\fmtversion{2020/10/01}{}{\bxjs@old@hook@systemtrue}
+\@ifl@t@r\fmtversion{2021/11/15}{%
+ \def\bxjs@CGHN#1{#1}%
+}{%else
+ \def\bxjs@CGHN#1{\bxjs@CGHN@a#1//}%
+ \def\bxjs@CGHN@a#1/#2/#3//{#1/#3/#2}}
\@gobbletwo\if\if \def\bxjs@cond#1\fi{%
#1\expandafter\@firstoftwo
\else\expandafter\@secondoftwo
@@ -105,6 +112,21 @@
\def\bxjs@catopt#1#2{%
#1\if\relax#1\relax\else\if\relax#2\relax\else,\fi\fi#2}
\def\bxjs@ifplus#1{\@ifnextchar+{\@firstoftwo{#1}}}
+\def\bxjs@trim#1{\expandafter\bxjs@trim@a#1\@nil#1}
+\def\bxjs@trim@a{\futurelet\bxjs@tmpb\bxjs@trim@b}
+\def\bxjs@trim@b{\bxjs@cond\ifx\bxjs@tmpb\@sptoken\fi
+ {\bxjs@trim@c\bxjs@trim@a}{\bxjs@trim@d}}
+\def\bxjs@trim@c#1 {#1}
+\def\bxjs@trim@d#1\@nil{\bxjs@trim@e#1\@nil: \@nil\@nnil}
+\def\bxjs@trim@e#1 \@nil#2\@nnil{\bxjs@cond\ifx\@nnil#2\@nnil\fi
+ {\bxjs@trim@f#1\@nnil}{\bxjs@trim@e#1\@nil: \@nil\@nnil}}
+\def\bxjs@trim@f#1\@nil#2\@nnil#3{\def#3{#1}}
+\def\bxjs@set@array@from@clist#1#2{%
+ \@tempcnta\z@
+ \@for\bxjs@tmpa:=\@empty#2\do{%
+ \bxjs@trim\bxjs@tmpa \bxjs@cslet{#1/\the\@tempcnta}\bxjs@tmpa
+ \advance\@tempcnta\@ne}
+ \bxjs@cslet{#1/\the\@tempcnta}\relax}
\let\c@bxjs@tempcnta\@tempcnta
\def\bxjs@gset@tempcnta{\setcounter{bxjs@tempcnta}}
\def\jsSetQHLength#1#2{%
@@ -730,10 +752,17 @@
\else \@tempswatrue
\fi\fi\fi
\if@tempswa
- \ifx\bxjs@driver@opt\@undefined \ifx\bxjs@jadriver@opt\@undefined\else
- \ClassWarningNoLine\bxjs@clsname
- {No driver option is given}
- \fi\fi
+ \ifx\bxjs@driver@opt\@undefined
+ \if \ifbxjs@explIII T\else\ifx\bxjs@jadriver@opt\@undefined F\else T\fi\fi T%
+ \ClassWarningNoLine\bxjs@clsname
+ {A driver option is MISSING!!\MessageBreak
+ You should properly specify one of the valid\MessageBreak
+ driver options according to the DVI driver\MessageBreak
+ that is in use:\MessageBreak
+ \@spaces dvips, dvipdfmx, dviout, xdvi,\MessageBreak
+ \@spaces nodvidriver}
+ \fi
+ \fi
\ifbxjs@dvi@opt
\edef\bxjs@next{%
\let\noexpand\bxjs@driver@given
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls
index 62d6aec7f98..f320f016390 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}
- [2021/05/18 v2.5a BXJS document classes]
+ [2022/03/20 v2.6 BXJS document classes]
%% このファイルは日本語文字を含みます.
\def\bxjs@clsname{bxjsbook}
\newif\ifjsc@needsp@tch
@@ -87,6 +87,8 @@
\let\PackageWarningNoLine\bxjs@tmpa
\@nameuse{RevokeOldLuaTeXBehavior}
\let\ifjsInPdfMode\ifpdf
+\newif\ifbxjs@explIII
+\@ifl@t@r\fmtversion{2020/02/02}{\bxjs@explIIItrue}{}
\newif\ifbxjs@TUenc
\def\bxjs@tmpa{TU}\edef\bxjs@tmpb{\f@encoding}
\ifx\bxjs@tmpa\bxjs@tmpb
@@ -94,6 +96,11 @@
\fi
\newif\ifbxjs@old@hook@system
\@ifl@t@r\fmtversion{2020/10/01}{}{\bxjs@old@hook@systemtrue}
+\@ifl@t@r\fmtversion{2021/11/15}{%
+ \def\bxjs@CGHN#1{#1}%
+}{%else
+ \def\bxjs@CGHN#1{\bxjs@CGHN@a#1//}%
+ \def\bxjs@CGHN@a#1/#2/#3//{#1/#3/#2}}
\@gobbletwo\if\if \def\bxjs@cond#1\fi{%
#1\expandafter\@firstoftwo
\else\expandafter\@secondoftwo
@@ -105,6 +112,21 @@
\def\bxjs@catopt#1#2{%
#1\if\relax#1\relax\else\if\relax#2\relax\else,\fi\fi#2}
\def\bxjs@ifplus#1{\@ifnextchar+{\@firstoftwo{#1}}}
+\def\bxjs@trim#1{\expandafter\bxjs@trim@a#1\@nil#1}
+\def\bxjs@trim@a{\futurelet\bxjs@tmpb\bxjs@trim@b}
+\def\bxjs@trim@b{\bxjs@cond\ifx\bxjs@tmpb\@sptoken\fi
+ {\bxjs@trim@c\bxjs@trim@a}{\bxjs@trim@d}}
+\def\bxjs@trim@c#1 {#1}
+\def\bxjs@trim@d#1\@nil{\bxjs@trim@e#1\@nil: \@nil\@nnil}
+\def\bxjs@trim@e#1 \@nil#2\@nnil{\bxjs@cond\ifx\@nnil#2\@nnil\fi
+ {\bxjs@trim@f#1\@nnil}{\bxjs@trim@e#1\@nil: \@nil\@nnil}}
+\def\bxjs@trim@f#1\@nil#2\@nnil#3{\def#3{#1}}
+\def\bxjs@set@array@from@clist#1#2{%
+ \@tempcnta\z@
+ \@for\bxjs@tmpa:=\@empty#2\do{%
+ \bxjs@trim\bxjs@tmpa \bxjs@cslet{#1/\the\@tempcnta}\bxjs@tmpa
+ \advance\@tempcnta\@ne}
+ \bxjs@cslet{#1/\the\@tempcnta}\relax}
\let\c@bxjs@tempcnta\@tempcnta
\def\bxjs@gset@tempcnta{\setcounter{bxjs@tempcnta}}
\def\jsSetQHLength#1#2{%
@@ -739,10 +761,17 @@
\else \@tempswatrue
\fi\fi\fi
\if@tempswa
- \ifx\bxjs@driver@opt\@undefined \ifx\bxjs@jadriver@opt\@undefined\else
- \ClassWarningNoLine\bxjs@clsname
- {No driver option is given}
- \fi\fi
+ \ifx\bxjs@driver@opt\@undefined
+ \if \ifbxjs@explIII T\else\ifx\bxjs@jadriver@opt\@undefined F\else T\fi\fi T%
+ \ClassWarningNoLine\bxjs@clsname
+ {A driver option is MISSING!!\MessageBreak
+ You should properly specify one of the valid\MessageBreak
+ driver options according to the DVI driver\MessageBreak
+ that is in use:\MessageBreak
+ \@spaces dvips, dvipdfmx, dviout, xdvi,\MessageBreak
+ \@spaces nodvidriver}
+ \fi
+ \fi
\ifbxjs@dvi@opt
\edef\bxjs@next{%
\let\noexpand\bxjs@driver@given
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty b/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty
index 5cf64e98d23..caf8065cae0 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}
- [2021/05/18 v2.5a BXJS document classes]
+ [2022/03/20 v2.6 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 a89c3a72729..d43fab9e3b9 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}
- [2021/05/18 v2.5a BXJS document classes]
+ [2022/03/20 v2.6 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 1017aa84960..23b42ec2510 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}
- [2021/05/18 v2.5a BXJS document classes]
+ [2022/03/20 v2.6 BXJS document classes]
%% このファイルは日本語文字を含みます
\def\DeclareJaTextFontCommand#1#2{%
\DeclareRobustCommand#1[1]{%
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def
index a6c4f15f4e8..af5d120f4ea 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}
- [2021/05/18 v2.5a BXJS document classes]
+ [2022/03/20 v2.6 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 8853a2d2eb7..551dfc43768 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}
- [2021/05/18 v2.5a BXJS document classes]
+ [2022/03/20 v2.6 BXJS document classes]
\input{bxjsja-standard.def}
\RequirePackage{bxjspandoc}
\ifjsWitheTeX\else
@@ -30,6 +30,18 @@
This engine does not support e-TeX extension!\MessageBreak
Some feature might not work properly}
\fi
+\newif\ifbxjs@bxghost@available
+\ifjsWitheTeX
+ \RequirePackage{pdftexcmds}[2009/09/22]% v0.5
+ \IfFileExists{bxghost.sty}{%
+ \bxjs@bxghost@availabletrue
+ \@namedef{bxjs@bgbv/79E70A0991967E27981832C84DB5DF99}{1}%v0.2.0
+ \ifx\pdf@filemdfivesum\@undefined\else
+ \expandafter\ifx\csname bxjs@bgbv/\pdf@filemdfivesum{bxghost.sty}%
+ \endcsname\relax\else \bxjs@bxghost@availablefalse \fi
+ \fi
+ }{}
+\fi
\@onlypreamble\bxjs@endpreamble@hook
\let\bxjs@endpreamble@hook\@empty
\RequirePackage{iftex}[2013/04/04]% v0.2
@@ -82,7 +94,7 @@
\def\bxjs@set@dupload@proc@a#1{%
\@onlypreamble#1\def#1##1}
\def\bxjs@unset@dupload@proc#1{%
- \expandafter\let\csname bxjs@dlp/#1\endcsname\@undefined}
+ \bxjs@cslet{bxjs@dlp/#1}\@undefined}
\@onlypreamble\bxjs@org@if@ptions
\let\bxjs@org@if@ptions\@if@ptions
\@onlypreamble\bxjs@org@reset@ptions
@@ -115,29 +127,24 @@
\bxjs@set@dupload@proc{polyglossia.sty}{%
\bxjs@unset@dupload@proc{polyglossia.sty}%
\ClassWarning\bxjs@clsname
- {Package polyglossia is required}%
+ {Package polyglossia is requested}%
\def\bxjs@polyglossia@options{#1}%
\newcommand*\setmainlanguage[2][]{%
- \ifblank{##2}{%
- \ClassWarning\bxjs@clsname
- {Main language is invalid, thus the fallback\MessageBreak
- definitions will be employed}%
- \bxjs@pandoc@polyglossia@ja
- }{\ifstrequal{##2}{japanese}{%
+ \ifboolexpr{test{\ifblank{##2}}or test{\ifstrequal{##2}{japanese}}}{%
\ClassWarning\bxjs@clsname
- {Main language is japanese, thus the fallback\MessageBreak
+ {Main language is 'japanese', thus fallback\MessageBreak
definitions will be employed}%
\bxjs@pandoc@polyglossia@ja
}{%else
\ClassWarning\bxjs@clsname
- {Main language is valid (##2),\MessageBreak
+ {Main language is '##2',\MessageBreak
thus polyglossia will be loaded}%
\csundef{ver@polyglossia.sty}%
\edef\bxjs@next{%
\noexpand\RequirePackage[\bxjs@polyglossia@options]{polyglossia}[]%
}\bxjs@next
\setmainlanguage[##1]{##2}%
- }}}}
+ }}}
\g@addto@macro\bxjs@endpreamble@hook{%
\ifx\bxjs@polyglossia@options\relax
\csundef{ver@polyglossia.sty}%
@@ -159,32 +166,34 @@
\bxjs@set@dupload@proc{babel.sty}{%
\bxjs@unset@dupload@proc{babel.sty}%
\ClassWarning\bxjs@clsname
- {Package babel is required}%
+ {Package babel is requested}%
\@tempswafalse \let\bxjs@babel@options\@empty
\def\bxjs@tmpb{main=}%
+ \def\bxjs@next{main=japanese}%
\@for\bxjs@tmpa:=#1\do{%
\ifx\bxjs@tmpa\bxjs@tmpb \@tempswatrue
+ \else\ifx\bxjs@tmpa\bxjs@next \@tempswatrue
\else \edef\bxjs@babel@options{\bxjs@babel@options,\bxjs@tmpa}%
- \fi}%
+ \fi\fi}%
\if@tempswa
\ClassWarning\bxjs@clsname
- {Main language is invalid, so fallback\MessageBreak
+ {Main language is 'japanese', thus fallback\MessageBreak
definitions will be employed}%
- \bxjs@pandoc@polyglossia@ja
+ \bxjs@pandoc@babel@ja
\else
\ClassWarning\bxjs@clsname
- {Main language is valid,\MessageBreak
+ {Main language is not 'japanese',\MessageBreak
thus babel will be loaded}%
- \expandafter\let\csname ver@babel.sty\endcsname\@undefined
+ \bxjs@cslet{ver@babel.sty}\@undefined
\RequirePackage[#1]{babel}[]%
\fi}
\g@addto@macro\bxjs@endpreamble@hook{%
\ifx\bxjs@babel@options\relax
- \expandafter\let\csname ver@babel.sty\endcsname\@undefined
+ \bxjs@cslet{ver@babel.sty}\@undefined
\fi}
\@onlypreamble\bxjs@pandoc@babel@ja
\def\bxjs@pandoc@babel@ja{%
- \expandafter\let\csname ver@babel.sty\endcsname\@undefined
+ \bxjs@cslet{ver@babel.sty}\@undefined
\edef\bxjs@next{%
\noexpand\RequirePackage[\bxjs@babel@options,english]{babel}[]%
}\bxjs@next
@@ -244,14 +253,15 @@
\if@tempswa\ifx\jsParagraphMark\bxjs@org@paragraph@mark
\let\jsParagraphMark\@empty
\fi\fi}
+\def\pandocZWSpace{\zwspace}
\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi>\z@
\catcode"3000=\active
\begingroup \catcode`\!=7
- \protected\gdef!!!!3000{\zwspace}
+ \protected\gdef!!!!3000{\pandocZWSpace}
\endgroup
\else\ifx\DeclareUnicodeCharacter\@undefined\else
\DeclareUnicodeCharacter{3000}{\bxjs@zsp@char}
- \bxjs@protected\def\bxjs@zsp@char{\zwspace}
+ \bxjs@protected\def\bxjs@zsp@char{\pandocZWSpace}
\fi\fi
\if j\jsEngine
\bxjs@fix@hyperref@unicode{false}
@@ -260,13 +270,13 @@
\fi
\ifbxjs@jp@fix@strong\ifbxjs@jp@strong@cmd
\let\orgtextbf\textbf
- \DeclareRobustCommand\bxjstextbf[1]{%
+ \DeclareRobustCommand\pandocTextbf[1]{%
\begingroup
\let\textbf\orgtextbf
\strong{#1}%
\endgroup}%
\g@addto@macro\bxjs@begin@document@hook{%
- \let\textbf\bxjstextbf}
+ \let\textbf\pandocTextbf}
\fi\fi
\jsAtEndOfClass{%
\ifx\strongfontdeclare\@undefined\else
@@ -276,6 +286,10 @@
\fi
\fi}
\ifbxjs@jp@fix@code
+ \ifbxjs@bxghost@available
+ \RequirePackage[verb]{bxghost}[2020/01/31]% v0.3.0
+ \let\bxjs@eghostguarded\eghostguarded
+ \else
\chardef\bxjs@eghost@c=23
\ifx j\jsEngine \xspcode\bxjs@eghost@c=3
\else\ifx l\jsEngine \ltjsetparameter{alxspmode={\bxjs@eghost@c,3}}
@@ -285,20 +299,25 @@
\ifx\bxjs@eghost@c\@undefined\else
\font\bxjs@eghost@f=ec-lmr10 at 1.23456pt
\def\bxjs@pan@eghost{\bgroup\bxjs@eghost@f\bxjs@eghost@c\egroup}
+ \def\bxjs@eghostguarded#1{%
+ \bxjs@pan@eghost\null#1\null\bxjs@pan@eghost}
+ \fi
+ \fi
+ \ifx\bxjs@eghostguarded\@undefined\else
\let\orgtexttt\texttt
- \DeclareRobustCommand\bxjstexttt[1]{%
+ \DeclareRobustCommand\pandocTexttt[1]{%
\ifmmode \nfss@text{\ttfamily #1}%
\else
\ifvmode \leavevmode \fi
- \bxjs@pan@eghost\null
- \begingroup \ttfamily #1\endgroup
- \null\bxjs@pan@eghost
+ \bxjs@eghostguarded{\begingroup\ttfamily#1\endgroup}%
\fi}
\g@addto@macro\bxjs@begin@document@hook{%
- \let\texttt\bxjstexttt}
+ \let\texttt\pandocTexttt}
+ \ifbxjs@bxghost@available\else
\expandafter\def\expandafter\verb\expandafter{%
\expandafter\bxjs@pan@eghost\verb}
\g@addto@macro\verb@egroup{\bxjs@pan@eghost}
+ \fi
\fi
\fi
\if j\jsEngine
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def
index 29b7472c0fb..3b28255c80f 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}
- [2021/05/18 v2.5a BXJS document classes]
+ [2022/03/20 v2.6 BXJS document classes]
%% このファイルは日本語文字を含みます
\input{bxjsja-minimal.def}
\bxjs@simplejasetupfalse
@@ -86,10 +86,18 @@
\ifx\strong\@undefined\ifx\strongenv\@undefined
\DeclareRobustCommand{\strongenv}{\bxjs@strong@font}%
\DeclareTextFontCommand{\strong}{\strongenv}%
- \@ifdefinable{\strongfontdeclare}{\bxjs@protected\def\strongfontdeclare#1{%
- \bxjs@strong@font@declare@a#1,\@nil}}%
- \def\bxjs@strong@font@declare@a#1,#2\@nil{\def\bxjs@strong@font{#1}}%
- \def\bxjs@strong@font{\bfseries}%
+ \newcommand*{\strongfontdeclare}{\bxjs@strongfontdeclare}%
+ \newcount\bxjs@strong@level
+ \bxjs@protected\def\bxjs@strongfontdeclare#1{%
+ \bxjs@set@array@from@clist{bxjs@strong}{#1}%
+ \bxjs@strong@level\z@}%
+ \bxjs@strongfontdeclare{\bfseries}%
+ \def\bxjs@strong@font{%
+ \bxjs@csletcs{bxjs@tmpa}{bxjs@strong/\the\bxjs@strong@level}%
+ \ifx\bxjs@tmpa\relax
+ \advance\bxjs@strong@level\m@ne \bxjs@strong@font
+ \else \advance\bxjs@strong@level\@ne \bxjs@tmpa
+ \fi}%
\fi\fi
}\fi
\ifjsWitheTeX
@@ -399,7 +407,7 @@
\bxjs@check@hyperref@unicode{false}
\ifjsWithupTeX\ifbxjs@old@hook@system\else
\IfFileExists{pxjahyper-uni.def}{%
- \AddToHook{package/after/hyperref}{\input{pxjahyper-uni.def}}
+ \AddToHook{\bxjs@CGHN{package/hyperref/after}}{\input{pxjahyper-uni.def}}
}{}
\fi\fi
\fi
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty b/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty
index d3d6d416bf2..cec84841e02 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}
- [2021/05/18 v2.5a BXJS document classes]
+ [2022/03/20 v2.6 BXJS document classes]
%% このファイルは日本語文字を含みます.
\def\bxjsp@pkgname{bxjscjkcat}
\let\bxjsp@engine=n
@@ -35,6 +35,12 @@
\bxjsp@do\XeTeXversion{\let\bxjsp@engine=x}
\bxjsp@do\pdftexversion{\let\bxjsp@engine=p}
\bxjsp@do\luatexversion{\let\bxjsp@engine=l}
+\@onlypreamble\bxjsp@begin@document@hook
+\let\bxjsp@begin@document@hook\@empty
+\AtBeginDocument{\bxjsp@begin@document@hook}
+\newif\ifbxjsp@babel@used
+\g@addto@macro\bxjsp@begin@document@hook{%
+ \@ifpackageloaded{babel}{\bxjsp@babel@usedtrue}{}}
\newif\ifbxjsp@english
\DeclareOption{english}{\bxjsp@englishtrue}
\ProcessOptions*
@@ -64,14 +70,23 @@
\newcommand*\UseMicrotypeSet[2][]{}
\fi
\DeclareRobustCommand{\pandocLdots}{%
- \relax\ifmmode \expandafter\bxjsp@org@ldots
- \else \expandafter\bxjsp@ja@ellipsis
- \fi}
+ \let\bxjsp@do\bxjsp@ja@ellipsis
+ \ifmmode \let\bxjsp@do\bxjsp@org@ldots
+ \else\ifbxjsp@babel@used
+ \expandafter\ifx\csname bxjsp@ld/\languagename\endcsname\relax
+ \let\bxjsp@do\bxjsp@org@ldots \fi
+ \fi\fi \bxjsp@do}
+\@namedef{bxjsp@ld/japanese}{1}
\def\bxjsp@ja@ellipsis{…}
\let\bxjsp@org@ldots\ldots
-\AtBeginDocument{%
+\g@addto@macro\bxjsp@begin@document@hook{%
\let\bxjsp@org@ldots\ldots
- \ifbxjsp@english\else \let\ldots\pandocLdots \fi}
+ \long\def\bxjsp@tmpa{\ldots}%
+ \ifx\pandocLdots\bxjsp@tmpa\else
+ \ifnum0\ifbxjsp@english\ifbxjsp@babel@used\else1\fi\fi=0
+ \let\ldots\pandocLdots
+ \fi
+ \fi}
\chardef\bxjsp@cc@other=12
\@onlypreamble\bxjsp@makeother@range
\def\bxjsp@makeother@range#1#2{%
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls
index 4d49391eb16..7ed66aab6c2 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}
- [2021/05/18 v2.5a BXJS document classes]
+ [2022/03/20 v2.6 BXJS document classes]
%% このファイルは日本語文字を含みます.
\def\bxjs@clsname{bxjsreport}
\newif\ifjsc@needsp@tch
@@ -87,6 +87,8 @@
\let\PackageWarningNoLine\bxjs@tmpa
\@nameuse{RevokeOldLuaTeXBehavior}
\let\ifjsInPdfMode\ifpdf
+\newif\ifbxjs@explIII
+\@ifl@t@r\fmtversion{2020/02/02}{\bxjs@explIIItrue}{}
\newif\ifbxjs@TUenc
\def\bxjs@tmpa{TU}\edef\bxjs@tmpb{\f@encoding}
\ifx\bxjs@tmpa\bxjs@tmpb
@@ -94,6 +96,11 @@
\fi
\newif\ifbxjs@old@hook@system
\@ifl@t@r\fmtversion{2020/10/01}{}{\bxjs@old@hook@systemtrue}
+\@ifl@t@r\fmtversion{2021/11/15}{%
+ \def\bxjs@CGHN#1{#1}%
+}{%else
+ \def\bxjs@CGHN#1{\bxjs@CGHN@a#1//}%
+ \def\bxjs@CGHN@a#1/#2/#3//{#1/#3/#2}}
\@gobbletwo\if\if \def\bxjs@cond#1\fi{%
#1\expandafter\@firstoftwo
\else\expandafter\@secondoftwo
@@ -105,6 +112,21 @@
\def\bxjs@catopt#1#2{%
#1\if\relax#1\relax\else\if\relax#2\relax\else,\fi\fi#2}
\def\bxjs@ifplus#1{\@ifnextchar+{\@firstoftwo{#1}}}
+\def\bxjs@trim#1{\expandafter\bxjs@trim@a#1\@nil#1}
+\def\bxjs@trim@a{\futurelet\bxjs@tmpb\bxjs@trim@b}
+\def\bxjs@trim@b{\bxjs@cond\ifx\bxjs@tmpb\@sptoken\fi
+ {\bxjs@trim@c\bxjs@trim@a}{\bxjs@trim@d}}
+\def\bxjs@trim@c#1 {#1}
+\def\bxjs@trim@d#1\@nil{\bxjs@trim@e#1\@nil: \@nil\@nnil}
+\def\bxjs@trim@e#1 \@nil#2\@nnil{\bxjs@cond\ifx\@nnil#2\@nnil\fi
+ {\bxjs@trim@f#1\@nnil}{\bxjs@trim@e#1\@nil: \@nil\@nnil}}
+\def\bxjs@trim@f#1\@nil#2\@nnil#3{\def#3{#1}}
+\def\bxjs@set@array@from@clist#1#2{%
+ \@tempcnta\z@
+ \@for\bxjs@tmpa:=\@empty#2\do{%
+ \bxjs@trim\bxjs@tmpa \bxjs@cslet{#1/\the\@tempcnta}\bxjs@tmpa
+ \advance\@tempcnta\@ne}
+ \bxjs@cslet{#1/\the\@tempcnta}\relax}
\let\c@bxjs@tempcnta\@tempcnta
\def\bxjs@gset@tempcnta{\setcounter{bxjs@tempcnta}}
\def\jsSetQHLength#1#2{%
@@ -738,10 +760,17 @@
\else \@tempswatrue
\fi\fi\fi
\if@tempswa
- \ifx\bxjs@driver@opt\@undefined \ifx\bxjs@jadriver@opt\@undefined\else
- \ClassWarningNoLine\bxjs@clsname
- {No driver option is given}
- \fi\fi
+ \ifx\bxjs@driver@opt\@undefined
+ \if \ifbxjs@explIII T\else\ifx\bxjs@jadriver@opt\@undefined F\else T\fi\fi T%
+ \ClassWarningNoLine\bxjs@clsname
+ {A driver option is MISSING!!\MessageBreak
+ You should properly specify one of the valid\MessageBreak
+ driver options according to the DVI driver\MessageBreak
+ that is in use:\MessageBreak
+ \@spaces dvips, dvipdfmx, dviout, xdvi,\MessageBreak
+ \@spaces nodvidriver}
+ \fi
+ \fi
\ifbxjs@dvi@opt
\edef\bxjs@next{%
\let\noexpand\bxjs@driver@given
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls
index 19ad80f2e48..f29e623436b 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}
- [2021/05/18 v2.5a BXJS document classes]
+ [2022/03/20 v2.6 BXJS document classes]
%% このファイルは日本語文字を含みます.
\def\bxjs@clsname{bxjsslide}
\newif\ifjsc@needsp@tch
@@ -87,6 +87,8 @@
\let\PackageWarningNoLine\bxjs@tmpa
\@nameuse{RevokeOldLuaTeXBehavior}
\let\ifjsInPdfMode\ifpdf
+\newif\ifbxjs@explIII
+\@ifl@t@r\fmtversion{2020/02/02}{\bxjs@explIIItrue}{}
\newif\ifbxjs@TUenc
\def\bxjs@tmpa{TU}\edef\bxjs@tmpb{\f@encoding}
\ifx\bxjs@tmpa\bxjs@tmpb
@@ -94,6 +96,11 @@
\fi
\newif\ifbxjs@old@hook@system
\@ifl@t@r\fmtversion{2020/10/01}{}{\bxjs@old@hook@systemtrue}
+\@ifl@t@r\fmtversion{2021/11/15}{%
+ \def\bxjs@CGHN#1{#1}%
+}{%else
+ \def\bxjs@CGHN#1{\bxjs@CGHN@a#1//}%
+ \def\bxjs@CGHN@a#1/#2/#3//{#1/#3/#2}}
\@gobbletwo\if\if \def\bxjs@cond#1\fi{%
#1\expandafter\@firstoftwo
\else\expandafter\@secondoftwo
@@ -105,6 +112,21 @@
\def\bxjs@catopt#1#2{%
#1\if\relax#1\relax\else\if\relax#2\relax\else,\fi\fi#2}
\def\bxjs@ifplus#1{\@ifnextchar+{\@firstoftwo{#1}}}
+\def\bxjs@trim#1{\expandafter\bxjs@trim@a#1\@nil#1}
+\def\bxjs@trim@a{\futurelet\bxjs@tmpb\bxjs@trim@b}
+\def\bxjs@trim@b{\bxjs@cond\ifx\bxjs@tmpb\@sptoken\fi
+ {\bxjs@trim@c\bxjs@trim@a}{\bxjs@trim@d}}
+\def\bxjs@trim@c#1 {#1}
+\def\bxjs@trim@d#1\@nil{\bxjs@trim@e#1\@nil: \@nil\@nnil}
+\def\bxjs@trim@e#1 \@nil#2\@nnil{\bxjs@cond\ifx\@nnil#2\@nnil\fi
+ {\bxjs@trim@f#1\@nnil}{\bxjs@trim@e#1\@nil: \@nil\@nnil}}
+\def\bxjs@trim@f#1\@nil#2\@nnil#3{\def#3{#1}}
+\def\bxjs@set@array@from@clist#1#2{%
+ \@tempcnta\z@
+ \@for\bxjs@tmpa:=\@empty#2\do{%
+ \bxjs@trim\bxjs@tmpa \bxjs@cslet{#1/\the\@tempcnta}\bxjs@tmpa
+ \advance\@tempcnta\@ne}
+ \bxjs@cslet{#1/\the\@tempcnta}\relax}
\let\c@bxjs@tempcnta\@tempcnta
\def\bxjs@gset@tempcnta{\setcounter{bxjs@tempcnta}}
\def\jsSetQHLength#1#2{%
@@ -730,10 +752,17 @@
\else \@tempswatrue
\fi\fi\fi
\if@tempswa
- \ifx\bxjs@driver@opt\@undefined \ifx\bxjs@jadriver@opt\@undefined\else
- \ClassWarningNoLine\bxjs@clsname
- {No driver option is given}
- \fi\fi
+ \ifx\bxjs@driver@opt\@undefined
+ \if \ifbxjs@explIII T\else\ifx\bxjs@jadriver@opt\@undefined F\else T\fi\fi T%
+ \ClassWarningNoLine\bxjs@clsname
+ {A driver option is MISSING!!\MessageBreak
+ You should properly specify one of the valid\MessageBreak
+ driver options according to the DVI driver\MessageBreak
+ that is in use:\MessageBreak
+ \@spaces dvips, dvipdfmx, dviout, xdvi,\MessageBreak
+ \@spaces nodvidriver}
+ \fi
+ \fi
\ifbxjs@dvi@opt
\edef\bxjs@next{%
\let\noexpand\bxjs@driver@given