summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-02-20 23:41:00 +0000
committerKarl Berry <karl@freefriends.org>2016-02-20 23:41:00 +0000
commitf45d217850b57c09b11267b604eff0eac551aa0d (patch)
tree22709909a2a602aab1674f5eca05163cf2516f90 /Master/texmf-dist
parentbb5bac178d0c714675e7c8b9bc0da3d2fbc5f706 (diff)
bxjscls (20feb16)
git-svn-id: svn://tug.org/texlive/trunk@39800 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/README-ja.md14
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/README.md8
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdfbin716485 -> 727484 bytes
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex153
-rw-r--r--Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdfbin879130 -> 950655 bytes
-rw-r--r--Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx1133
-rw-r--r--Master/texmf-dist/source/latex/bxjscls/bxjscls.ins16
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls49
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls49
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty347
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty140
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def4
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def62
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def115
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def10
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls49
-rw-r--r--Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls49
17 files changed, 2113 insertions, 85 deletions
diff --git a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md
index 782ccdcfb36..e65366067f7 100644
--- a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md
+++ b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md
@@ -64,11 +64,15 @@ XeLaTeX / LuaLaTeX の上でも日本語処理パッケージと連携して使
* `bxjsslide.cls`: BXJS版 slide クラスファイル
* `bxjsja-minimal.def`: minimal 和文ドライバファイル
* `bxjsja-standard.def`: standard 和文ドライバファイル
+ * `bxjsja-pandoc.def`: pandoc 和文ドライバファイル
+ * `bxjsja-modern.def`: modern 和文ドライバファイル
+ * `bxjscompat.sty`: bxjscompat パッケージファイル
+ * `bxjscjkcat.sty`: bxjscjkcat パッケージファイル
その後、各ファイルを次の場所に移動する。
(TDS 1.1 に従ったシステムの場合。)
- - `*.cls`/`*.def` → $TEXMF/tex/latex/bxjscls/
+ - `*.cls`/`*.def`/`*.sty` → $TEXMF/tex/latex/bxjscls/
- `*.dtx`/`*.ins` → $TEXMF/source/latex/bxjscls/
- `*.pdf`/`*.tex` → $TEXMF/doc/latex/bxjscls/
@@ -93,6 +97,14 @@ XeLaTeX / LuaLaTeX の上でも日本語処理パッケージと連携して使
更新履歴
--------
+ * Version 1.1a [2016/02/20]
+ - `\jachar` 命令を追加。
+ - バグ修正。
+ * Version 1.1 [2016/02/14]
+ - “Pandoc モード”おとび pandoc 和文ドライバを追加。
+ - サブタイトル命令 `\subtitle` を追加。
+ - 〈試験的〉modern 和文ドライバを追加。
+ - 〈試験的〉補助パッケージ bxjscompat と bxjscjkcat を追加。
* Version 1.0d [2015/11/21]
- バグ修正。
* Version 1.0c [2015/10/18]
diff --git a/Master/texmf-dist/doc/latex/bxjscls/README.md b/Master/texmf-dist/doc/latex/bxjscls/README.md
index 6d47eabe22d..900e60202d1 100644
--- a/Master/texmf-dist/doc/latex/bxjscls/README.md
+++ b/Master/texmf-dist/doc/latex/bxjscls/README.md
@@ -61,11 +61,15 @@ This command will generate the following files:
* `bxjsslide.cls`: the BXJS-flavored slide class file
* `bxjsja-minimal.def`: the `minimal` ja-driver file
* `bxjsja-standard.def`: the `standard` ja-driver file
+ * `bxjsja-pandoc.def`: the `pandoc` ja-driver file
+ * `bxjsja-modern.def`: the `modern` ja-driver file
+ * `bxjscompat.sty`: the `bxjscompat` package file
+ * `bxjscjkcat.sty`: the `bxjscjkcat` package file
After that, move the files as follows (in a system compliant to
TDS 1.1):
- - `*.cls`/`*.def` → $TEXMF/tex/latex/bxjscls/
+ - `*.cls`/`*.def`/`*.sty` → $TEXMF/tex/latex/bxjscls/
- `*.dtx`/`*.ins` → $TEXMF/source/latex/bxjscls/
- `*.pdf`/`*.tex` → $TEXMF/doc/latex/bxjscls/
@@ -83,6 +87,8 @@ This package is distributed under the BSD 2-Clause License.
Revision History
----------------
+ * Version 1.1a [2016/02/20]
+ * Version 1.1 [2016/02/14]
* Version 1.0d [2015/11/21]
* Version 1.0c [2015/10/18]
* Version 1.0b [2015/09/07]
diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf
index 63fc55d0462..d37d5861b83 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 55fb1d31715..5d308b00188 100644
--- a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex
+++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex
@@ -5,8 +5,8 @@
\usepackage{metalogo}
\usepackage{shortvrb}
\MakeShortVerb{\|}
-\newcommand{\PkgVersion}{1.0d}
-\newcommand{\PkgDate}{2015/11/21}
+\newcommand{\PkgVersion}{1.1a}
+\newcommand{\PkgDate}{2016/02/20}
\newcommand{\Pkg}[1]{\textsf{#1}}
\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
\newcommand{\Note}{\par\noindent ※}
@@ -34,7 +34,7 @@
このマニュアルは\textgt{暫定版}であり、内容に不完全な点がある。
BXJS文書クラスについては、“{\TeX} Wiki”中の記事、
-\footnote{\url{http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?BXjscls}}%
+\footnote{\url{https://texwiki.texjp.org/?BXjscls}}%
およびそこからたどれるサイトにある情報も参照してほしい。
%===========================================================
@@ -388,6 +388,120 @@ JSクラスのレイアウトデザインと機能をほぼ踏襲しているが
\end{itemize}
%===========================================================
+\section{Pandocモードの使い方}
+\label{sec:Pandoc-mode}
+
+「Pandocモード」は文書形式変換ツールである
+Pandoc\footnote{\url{http://pandoc.org/}}%
+での日本語{\LaTeX}文書生成(および{\LaTeX}経由のPDF生成)
+のために調整された設定である。
+
+\begin{quote}
+|\documentclass[pandoc,|\Meta{ドライバ}%
+|,jafont=|\Meta{フォント指定}|,|\Meta{他オプション}|]|%
+|{|\Meta{クラス名}|}|
+\end{quote}
+
+\begin{itemize}
+\item クラスオプションに |pandoc| を指定し、代わりに
+ 「エンジン」と「和文ドライバ(|ja|)」のオプションを省く。
+ \footnote{|pandoc| が指定された場合は、エンジンオプションの
+ 値は |autodetect-engine|、和文ドライバの値は |pandoc| に
+ 固定される。}
+\item エンジンがDVI出力である場合のドライバの
+ 既定値が |dvipdfmx| になる。
+ ただし明示的にドライバオプションを与えることで |dvips| などに
+ 変更できる。
+\item 「和文フォント(|jafont|)」および他のクラスオプションは
+ 従来通り使用できる。
+\end{itemize}
+
+以下でPandocでBXJSクラスを用いる例を示す。
+
+\begin{itemize}
+\item \Pkg{bxjsarticle}クラスを使用する一例。
+ \begin{itemize}
+ \item {\XeLaTeX}経由
+ \item 用紙サイズはA4判
+ \item 和文フォント設定は |ipaex|
+ \end{itemize}
+
+ コマンド行は次のようになる
+ \footnote{もちろん、実際には改行を含めず1行で書く。}%
+ (Pandoc 1.16版の場合
+ \footnote{少し古い版の場合、変数 |papersize| の値は |a4|
+ ではなく |a4paper| と書くことになる。}%
+ ):
+ \begin{quote}
+ |pandoc| \Meta{入力ファイル名}
+ |-o| \Meta{出力ファイル名}|.pdf|
+ |--latex-engine=xelatex|\\\quad
+ |-V papersize=a4|
+ |-V documentclass=bxjsarticle|
+ |-V classoption=pandoc|\\\quad
+ |-V classoption=jafont=ipaex|
+ \end{quote}
+
+ なおこの場合、途中で生成される{\LaTeX}文書のクラス指定は
+ 以下のようになる:
+ \begin{quote}
+ |\documentclass[a4paper,jafont=ipaex,pandoc]{bxjsarticle}|
+ \end{quote}
+
+\item \Pkg{bxjsbook}クラスを用いる場合の一例。
+ \begin{itemize}
+ \item 節番号を出力する
+ \item Lua{\LaTeX}経由
+ \item 用紙サイズはB5判
+ \item 和文の基底フォントサイズは11Q
+ \item 和文フォント設定は |ipaex|
+ \item 欧文フォントをPandocの機能で設定
+ \end{itemize}
+
+ コマンド行は次のようになる:
+ \begin{quote}
+ |pandoc| \Meta{入力ファイル名}
+ |-o| \Meta{出力ファイル名}|.pdf|
+ |--chapters|
+ |-N|\\\quad
+ |--latex-engine=lualatex|
+ |-V papersize=b5|
+ |-V documentclass=bxjsbook|\\\quad
+ |-V classoption=pandoc|
+ |-V classoption=jbase=11Q|\\\quad
+ |-V classoption=magstyle=real|
+ |-V classoption=jafont=ipaex|\\\quad
+ |-V mainfont="TeX Gyre Termes"|
+ |-V sansfont="TeX Gyre Heros"|
+ \end{quote}
+
+ 注意事項:
+ \begin{itemize}
+ \item \Pkg{bxjsbook}クラスは「章(|\chapter|)」をもつクラスなので、
+ Pandocで |--chapters| の指定が必要。
+ \item 基底フォントサイズを指定する場合、
+ |magstyle| は |mag| 以外にした方がよいだろう。
+ \end{itemize}
+
+\item Pandocで({\LaTeX}経由で)PDFを出力する場合、
+ エンジン指定(|--latex-engine|)は
+ |pdflatex|、|xelatex|、|lualatex|のみがサポートされる。
+ しかし、Pandocの出力を「単体の{\LaTeX}文書」とすることで、
+ {\LaTeX}エンジンに(u){\pLaTeX}を使用することができる。
+ 出力された{\LaTeX}文書は通常の方法でPDFやPostScript形式に
+ 変換できる。
+
+ \begin{quote}\small
+\begin{verbatim}
+pandoc mydoc.md -o mydoc.tex -s -V documentclass=bxjsarticle -V classoption=pandoc
+uplatex mydoc
+uplatex mydoc
+dvipdfmx mydoc
+\end{verbatim}
+ \end{quote}
+\end{itemize}
+
+%===========================================================
\section{クラスオプション}
\label{sec:Class-Option}
@@ -428,6 +542,15 @@ JSクラスには無くBXJSクラスで追加されたクラスオプション
\footnote{「実際に |dvipdfmx| が指定された」場合は、
|dvipdfmx| がグローバルオプションとしても働く。}%
ドライバオプションの指定は必須である。
+\item |pandoc|\Means
+ 「Pandocモード」(\ref{sec:Pandoc-mode}節)を指定する。
+ 以下の設定が行われる:
+ \begin{itemize}
+ \item エンジンオプションが |autodetect-engine| に固定される。
+ \item 和文ドライバが |pandoc| に固定される。
+ \item ドライバオプションについて |dvipdfmx-if-dvi| が既定になる
+ (明示指定で上書可能)。
+ \end{itemize}
\item |nopapersize|\Means
“papersize special出力”を抑止する。
(JSクラスとは異なり、special出力のオプション |papersize|
@@ -451,7 +574,8 @@ JSクラスには無くBXJSクラスで追加されたクラスオプション
\item |ja=|\Meta{名前}\Means
使用する和文ドライバの名前を指定する。
(詳細は\ref{sec:Ja-Driver}節を参照。)
- 標準で提供されている和文ドライバには |minimal| と |standard| がある。
+ 標準で提供されている和文ドライバには |minimal|、
+ |standard|、|pandoc| がある。
既定値は、エンジンが |platex| か |uplatex| の時は |standard|、
それ以外は |minimal|。
\item |jadriver=|\Meta{名前}\Means
@@ -702,6 +826,11 @@ BXJSクラスでは様々なエンジンについて、そのエンジンおよ
アドホックな連携コードを書いて、
好きな“日本語処理機能”との連携を実現するために
用いることを想定している。
+\item pandoc和文ドライバ\Means
+「Pandocモード」で仕様される和文ドライバ。
+基本的にstandardと同じ設定を用いるが、
+「Pandocの既定のlatexテンプレート」が使われることを前提として、
+それとBXJSの設定を整合させるための措置を加えている。
\end{itemize}
和文ドライバは自分で作製することも可能である。
@@ -794,6 +923,16 @@ vscale=0.944, vmarginratio=1:1
当然この場合は\Ord{3}の後処理は行われない。
%-------------------
+\subsection{構造マークアップ関連}
+
+\begin{itemize}
+\item |\subtitle{|\Meta{テキスト}|}|\Means
+ サブタイトルを設定する。
+ \Note |\maketitle| の出力にサブタイトルが含まれるようになる。
+\end{itemize}
+
+
+%-------------------
\subsection{和文用設定関連}
\begin{itemize}
@@ -813,10 +952,12 @@ vscale=0.944, vmarginratio=1:1
\subsubsection{standard和文ドライバの場合}
-|standard| 和文ドライバ使用時を指定した時)は和文に関連する
+standard和文ドライバでは和文に関連する
文書ソース記述をエンジンに依らずに共通になることを目指している。
従って、和文関連の組版パラメタの設定*1についても
「共通の命令」が提供される。
+\footnote{pandoc和文ドライバはstandard和文ドライバの設定を
+引き継ぐため、pandocモードでもこれらの命令を使用できる。}
\begin{itemize}
\item 和文ファミリ変更命令\Means
@@ -860,6 +1001,8 @@ vscale=0.944, vmarginratio=1:1
\item |\autospacing|/|\noautospacing|\Means
和文間空白の挿入を有効/無効にする。
{\pLaTeX}の同名の命令と同等。
+\item |\jachar{|\Meta{文字1つ}|]|\Means
+ 指定の文字を和文文字として(現在の和文フォントで)出力する。
\end{itemize}
例えば、{\pLaTeX}において、次のように「和文間空白」を
diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf
index 0243847a015..74bfab7c3a9 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 3c96c020807..434438075a2 100644
--- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
+++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
@@ -53,12 +53,18 @@
%<report>\ProvidesClass{bxjsreport}
%<book>\ProvidesClass{bxjsbook}
%<slide>\ProvidesClass{bxjsslide}
-%<drvminimal>\ProvidesFile{bxjsja-minimal.def}
-%<drvstandard>\ProvidesFile{bxjsja-standard.def}
+%<minimal>\ProvidesFile{bxjsja-minimal.def}
+%<standard>\ProvidesFile{bxjsja-standard.def}
+%<modern>\ProvidesFile{bxjsja-modern.def}
+%<pandoc>\ProvidesFile{bxjsja-pandoc.def}
+%<compat>\ProvidesPackage{bxjscompat}
+%<cjkcat>\ProvidesPackage{bxjscjkcat}
%<*driver>
\ProvidesFile{bxjscls.dtx}
%</driver>
- [2015/11/21 v1.0d BXJS document classes]
+ [2016/02/20 v1.1a BXJS document classes]
+% [2016/02/14 v1.1 BXJS document classes]
+% [2015/11/21 v1.0d BXJS document classes]
% [2015/10/18 v1.0c BXJS document classes]
% [2015/09/07 v1.0b BXJS document classes]
% [2015/08/23 v1.0a BXJS document classes]
@@ -117,6 +123,12 @@
%
% \MakeShortVerb{\|}
%
+% \begin{ZRnote}
+% この文書はソースコード説明書です。
+% 一般の文書作成者向けの解説については、
+% ユーザマニュアル |bxjscls-manual.pdf| を参照してください。
+% \end{ZRnote}
+%
% \section{はじめに}
%
% \begin{ZRnote}
@@ -194,7 +206,8 @@
% \mbox{}
% \begin{ZRnote}
% \begin{macrocode}
-%<*!drvminimal&!drvstandard>
+%<*cls>
+%% このファイルは日本語文字を含みます
% \end{macrocode}
% 長さ値の指定で式を利用可能にするため |calc| を読み込む。
% \begin{macrocode}
@@ -206,6 +219,14 @@
% \end{macrocode}
% クラスの本体ではこの他に |geometry| パッケージが読み込まれる。
%
+% 互換性のための補助パッケージを読み込む。
+% \begin{macrocode}
+\IfFileExists{bxjscompat.sty}{%
+ \let\jsAtEndOfClass\@gobble
+ \RequirePackage{bxjscompat}%
+}{}
+% \end{macrocode}
+%
% \begin{macro}{\jsEngine}
% 〔暗黙文字トークン〕
% エンジン({\TeX}の種類)の種別:
@@ -275,11 +296,13 @@
% \begin{macro}{\ifjsInPdfMode}
% 〔スイッチ〕
% pdf{\TeX}/Lua{\TeX}がPDFモードで動作しているか。
+% \Note Lua{\TeX} 0.8x版でのプリミティブ名変更に対応。
% \begin{macrocode}
\newif\ifjsInPdfMode
-\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@
- \jsInPdfModetrue
-\fi\fi
+\@nameuse{ImposeOldLuaTeXBehavior}
+\RequirePackage{ifpdf}
+\@nameuse{RevokeOldLuaTeXBehavior}
+\let\ifjsInPdfMode\ifpdf
% \end{macrocode}
% \end{macro}
%
@@ -319,6 +342,15 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\jsAtEndOfClass}
+% このクラスの読込終了時に対するフック。
+% (補助パッケージ中で用いられる。)
+% \begin{macrocode}
+\def\jsAtEndOfClass{%
+ \expandafter\g@addto@macro\csname\bxjs@clsname.cls-h@@k\endcsname}
+% \end{macrocode}
+% \end{macro}
+%
% Lua\TeX の場合、原版のコード中のコントロールワード中に現れる
% 日本語文字のカテゴリコードを11に変更する。
% (元は12。)
@@ -428,7 +460,6 @@
% \begin{ZRnote}
% BXJSクラスではページレイアウト設定に |geometry| パッケージを用いる。
% 用紙サイズ設定は |geometry| に渡すオプションの指定と扱われる。
-% \end{ZRnote}
% \begin{macrocode}
\def\bxjs@setpaper#1{\def\bxjs@param@paper{#1}}
\DeclareOption{a3paper}{\bxjs@setpaper{a3paper}}
@@ -448,6 +479,7 @@
\DeclareOption{legalpaper}{\bxjs@setpaper{legalpaper}}
\DeclareOption{executivepaper}{\bxjs@setpaper{executivepaper}}
% \end{macrocode}
+% \end{ZRnote}
%
% \paragraph{横置き}
%
@@ -483,13 +515,13 @@
% \begin{ZRnote}
% |\@ptsize| は |10pt|, |11pt|, |12pt| が指定された時のみ従来と同じ値とし、
% それ以外は |\jsUnusualPtSize|(= $-20$)にする。
-% \end{ZRnote}
+%
% \begin{macrocode}
\newcommand{\@ptsize}{0}
\def\bxjs@param@basefontsize{10pt}
\def\jsUnusualPtSize{-20}
% \end{macrocode}
-% \begin{ZRnote}
+%
% \begin{macro}{\bxjs@setbasefontsize}
% 基底フォントサイズを実際に変更する。
% \begin{macrocode}
@@ -540,7 +572,7 @@
\fi}
% \end{macrocode}
% \end{macro}
-% \end{ZRnote}
+%
% \begin{macrocode}
\DeclareOption{8pt}{\bxjs@setbasefontsize{8pt}}
\DeclareOption{9pt}{\bxjs@setbasefontsize{9pt}}
@@ -562,6 +594,7 @@
\DeclareOption{11ptj}{\bxjs@setjbasefontsize{11pt}}
\DeclareOption{12ptj}{\bxjs@setjbasefontsize{12pt}}
% \end{macrocode}
+% \end{ZRnote}
%
% \paragraph{トンボオプション}
% \mbox{}
@@ -697,7 +730,7 @@
% \paragraph{数式フォントとして和文フォントを登録しないオプション}
% \mbox{}
% \begin{ZRnote}
-% ここは和文処理コンポーネントの管轄。
+% ここは和文ドライバの管轄。
% \end{ZRnote}
%
% \paragraph{ドラフト}
@@ -709,7 +742,6 @@
% これは |ifdraft| パッケージと衝突するので、代わりに |\ifjsDraft|
% の名前を用い、本文開始時に |\ifdraft| が未定義の場合に限り、
% |\ifjsDraft| を |\ifdraft| にコピーする処理にする。
-%
% \end{ZRnote}
% \begin{macrocode}
\let\ifjsDraft\iffalse
@@ -728,7 +760,7 @@
% \paragraph{和文フォントメトリックの選択}
% \mbox{}
% \begin{ZRnote}
-% ここは和文処理コンポーネントの管轄。
+% ここは和文ドライバの管轄。
% \end{ZRnote}
%
% \paragraph{papersizeスペシャルの利用}
@@ -764,12 +796,13 @@
% BXJS では `|report|' 相当のものは別に |bxjsreport| クラスとして用意する。
% \end{ZRnote}
%
-% \paragraph{BXJS特有のオプション ☆}
+% \paragraph{BXJS特有のオプションの一覧 ☆}
% \mbox{}
% \begin{ZRnote}
% \begin{itemize}
% \item エンジンオプション: |xelatex| 等。
% \item ドライバオプション: |dvipdfmx| 等。
+% \item 複合設定オプション: |pandoc| 等。
% \item |nopapersize| : |papersize|(既定で有効)の否定。
% \item |zw|/|nozw| : |\jsZw| と等価な命令として |\zw| を
% 定義する/しない。
@@ -815,6 +848,49 @@
% \end{macrocode}
% \end{macro}
%
+% \end{ZRnote}
+%
+% \paragraph{複合設定オプション ☆}
+% \mbox{}
+% \begin{ZRnote}
+% 複合設定オプションとは、
+% 「エンジンやドライバや和文ドライバの設定を含む、
+% 複数の設定を一度に行うオプション」
+% のことである。
+% ある特定の設定を短く書く必要性が高いと判断される場合に
+% 用意される。
+%
+% \begin{macro}{\bxjs@composite@proc}
+% 複合設定オプションのための遅延処理マクロ。
+\let\bxjs@composite@proc\relax
+% \end{macro}
+%
+% |pandoc| オプションは、Pandocで{\LaTeX}用の既定テンプレートを
+% 用いて他形式から{\LaTeX}(およびPDF)形式に変換する用途に
+% 最適化した設定を与える。
+% \begin{macrocode}
+\DeclareOption{pandoc}{%
+% \end{macrocode}
+% 和文ドライバを |pandoc| に、エンジン指定を |autodetect-engine| に
+% 変更する。
+% \begin{macrocode}
+% \Note 実際の和文ドライバ・エンジン設定より優先される。
+ \def\bxjs@composite@proc{%
+ \setkeys{bxjs}{ja=pandoc}%
+ \let\bxjs@engine@given=*}%
+% \end{macrocode}
+% ドライバオプションを |dvipdfmx-if-dvi| に変更する。
+% \Note これは実際のドライバ設定で上書きできる
+% (オプション宣言順に注意)。
+% \begin{macrocode}
+ \def\bxjs@driver@opt{dvipdfmx-if-dvi}}
+% \end{macrocode}
+%
+% \end{ZRnote}
+%
+% \paragraph{エンジン・ドライバオプション ☆}
+% \mbox{}
+% \begin{ZRnote}
% \begin{macro}{\bxjs@engine@given}
% オプションで明示されたエンジンの種別。
% \begin{macrocode}
@@ -908,6 +984,11 @@
\let\bxjs@driver@given\@undefined}
% \end{macrocode}
%
+% \end{ZRnote}
+%
+% \paragraph{その他のBXJS独自オプション ☆}
+% \mbox{}
+% \begin{ZRnote}
% \begin{macro}{\ifbxjs@usezw}
% |\jsZw| の同義語として |\zw| を使えるようにするか。
% 既定は真。
@@ -1042,7 +1123,8 @@
% |ja| オプション(|jadriver| オプション)の処理。
% \begin{macrocode}
\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}}
-\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}}
+\define@key{bxjs}{ja}[\relax]{%
+ \ifx\relax#1\else\edef\bxjs@jadriver{#1}\fi}
% \end{macrocode}
%
% \begin{macro}{\jsJaFont}
@@ -1102,7 +1184,6 @@
% (仕様は変わらない)。
% \Note クラスに |\DeclareOption*| がある場合は |\@unusedoptions|
% は常に空のままであることを利用している。
-% \end{ZRnote}
% \begin{macrocode}
\let\bxjs@ltx@removeelement\@removeelement
\def\@removeelement#1#2#3{%
@@ -1112,6 +1193,8 @@
\fi}
% \end{macrocode}
%
+% \end{ZRnote}
+%
% デフォルトのオプションを実行し,|dvi| ファイルの先頭にdvipsのpapersize
% specialを書き込みます。このspecialはdvipsや最近のdvioutが対応しています。
% |multicols| や |url| を |\RequirePackage| するのはやめました。
@@ -1122,6 +1205,7 @@
%<book>\ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final}
%<slide>\ExecuteOptions{36pt,a4paper,landscape,oneside,onecolumn,titlepage,final}
\ProcessOptions\relax
+\bxjs@composite@proc
% \end{macrocode}
%
% \begin{ZRnote}
@@ -1179,8 +1263,22 @@
\ifx p\bxjs@tmpb\ifjsInPdfMode\else
\let\bxjs@tmpb=n
\fi\fi
+% \end{macrocode}
+% (この時点で |\bxjs@tmpb| は |\bxjs@engine@given| と
+% 同じ規則で分類したコードをもっている。)
+% \begin{macrocode}
\ifx *\bxjs@engine@given
\let\bxjs@engine@given\bxjs@tmpb
+% \end{macrocode}
+% エンジン指定が |autodetec-engine| であり、かつ実際のエンジンが
+% {(u)\pLaTeX}だった場合は、本来のエンジンオプションを
+% グローバルオプションに加える。
+% \begin{macrocode}
+ \ifx j\bxjs@engine@given
+ \g@addto@macro\@classoptionslist{,platex}
+ \else\ifx u\bxjs@engine@given
+ \g@addto@macro\@classoptionslist{,uplatex}
+ \fi\fi
\fi
\ifx\bxjs@engine@given\@undefined\else
\ifx\bxjs@engine@given\bxjs@tmpb\else
@@ -1218,7 +1316,8 @@
% \end{macrocode}
%
% DVI出力のエンジンでドライバオプションがない場合は警告を出す。
-% \Note ただし |ja| 非指定の場合はスキップする。
+% \Note ただし |ja| 非指定の場合はスキップする
+% (0.3 版との互換性のため)。
% \begin{macrocode}
\ifjsInPdfMode \@tempswafalse
\else\ifx x\jsEngine \@tempswafalse
@@ -1293,7 +1392,6 @@
% \begin{ZRnote}
% 8bit欧文{\TeX}の場合は、高位バイトをアクティブ化しておく。
% (和文を含むマクロ定義を通用させるため。)
-% \end{ZRnote}
% \begin{macrocode}
\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T
\@tempcnta="80 \loop \ifnum\@tempcnta<"100
@@ -1303,12 +1401,10 @@
\fi
% \end{macrocode}
%
-% \begin{ZRnote}
% |js| オプション指定時は、jsarticle(または jsbook)クラスを
% 読込済のように振舞う。
% \Note 「2つのクラスを読み込んだ状態」は |\LoadClass| を使用した
% 場合に出現するので、別に異常ではない。
-% \end{ZRnote}
% \begin{macrocode}
\ifbxjs@disguise@js
%<book|report>\def\bxjs@js@clsname{jsbook}
@@ -1316,6 +1412,7 @@
\@namedef{ver@\bxjs@js@clsname.cls}{2001/01/01 (bxjs)}
\fi
% \end{macrocode}
+% \end{ZRnote}
%
% \paragraph{papersizeスペシャルの出力}
% \mbox{}
@@ -1429,14 +1526,11 @@
\fi
\chardef\bxjs@qmcc=\catcode`\?\relax
% \end{macrocode}
-% \end{ZRnote}
%
-% \begin{ZRnote}
% ここで{p\TeX}のzwに相当する単位として用いる長さ変数 |\jsZw| を作成する。
% 約束により、これは |\jsScale| $\times$ (指定フォントサイズ) に等しい。
%
% |nozw| 非指定時は |\zw| を |\jsZw| と同義にする。
-% \end{ZRnote}
% \begin{macrocode}
\newdimen\jsZw
\jsZw=10\bxjs@mpt \jsZw=\jsScale\jsZw
@@ -1444,11 +1538,12 @@
\providecommand*\zw{\jsZw}
\fi
% \end{macrocode}
+% \end{ZRnote}
%
% \paragraph{NFSSパッチ ☆}
%
-% ムニャムニャムニャ……。
% \begin{ZRnote}
+% ムニャムニャムニャ……。
% \begin{macrocode}
\ifbxjs@nfss@patch
\RequirePackage{type1cm}
@@ -1502,7 +1597,7 @@
% \section{和文フォントの変更}
%
% \begin{ZRnote}
-% 和文フォントの設定は和文処理モジュールの管轄。
+% 和文フォントの設定は和文ドライバの管轄。
% \end{ZRnote}
%
% \begin{macro}{\@}
@@ -1685,7 +1780,6 @@
% 不可解なエラーが発生する。
% これは |microtype| が邪悪なトリックを使用しているせいなのだが、
% 一応こちら側で対策をとることにする。
-% \end{ZRnote}
% \begin{macrocode}
\def\bxjs@if@narrowbaselines{%
\ifnarrowbaselines\expandafter\@firstoftwo
@@ -1693,6 +1787,7 @@
\fi
}
% \end{macrocode}
+% \end{ZRnote}
%
% \begin{macro}{\normalsize}
%
@@ -2235,7 +2330,9 @@
% \begin{macrocode}
\edef\bxjs@nxt{%
\noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}}
+\AtBeginDocument{\ImposeOldLuaTeXBehavior}
\bxjs@nxt \bxjs@revert
+\AtBeginDocument{\RevokeOldLuaTeXBehavior}
\bxjs@postproc@layout
% \end{macrocode}
%
@@ -2711,6 +2808,16 @@
% \end{macro}
% \end{macro}
%
+% \begin{ZRnote}
+% \begin{macro}{\subtitle}
+% 副題を設定する。
+% \begin{macrocode}
+\newcommand*{\subtitle}[1]{\gdef\bxjs@subtitle{#1}}
+%\let\bxjs@subtitle\@undefined
+% \end{macrocode}
+% \end{macro}
+% \end{ZRnote}
+%
% \begin{macro}{\etitle}
% \begin{macro}{\eauthor}
% \begin{macro}{\keywords}
@@ -2778,6 +2885,10 @@
{\maybeblue\hrule height0\p@? depth2\p@?\relax}\par
\smallskip
\@title
+ \ifx\bxjs@subtitle\@undefined\else
+ \par\vskip\z@
+ {\small \bxjs@subtitle\par}
+ \fi
\smallskip
{\maybeblue\hrule height0\p@? depth2\p@?\relax}\par
\vfill
@@ -2787,6 +2898,10 @@
\vskip 60\p@?
\begin{center}%
{\LARGE \@title \par}%
+ \ifx\bxjs@subtitle\@undefined\else
+ \vskip5\p@?
+ {\normalsize \bxjs@subtitle\par}
+ \fi
\vskip 3em%
{\large
\lineskip .75em
@@ -2860,6 +2975,10 @@
\begin{center}%
\let\footnote\thanks
{\LARGE \@title \par}%
+ \ifx\bxjs@subtitle\@undefined\else
+ \vskip3\p@?
+ {\normalsize \bxjs@subtitle\par}
+ \fi
\vskip 1.5em
{\large
\lineskip .5em
@@ -3656,10 +3775,13 @@
% 段落のマーク(■)が必ず和文フォントで出力されるようにする。
% さらに、このマークを変更可能にするため |\jsParagraphMark| と
% いうマクロに切り出した。
-% \end{ZRnote}
%
+% |\jsJaChar| はstandard和文ドライバが読み込まれた場合は\
+% |\jachar| と同義になるが、それ以外は何もしない。
+% \end{ZRnote}
% \begin{macrocode}
\newcommand\jsParagraphMark{\jsJaChar{■}}
+\let\jsJaChar\@empty
\if@twocolumn
\newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
{\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ
@@ -5723,7 +5845,7 @@
% 最後に日本語文字のカテゴリコードを元に戻す。
% \begin{macrocode}
\bxjs@restore@jltrcc
-%</!drvminimal&!drvstandard>
+%</cls>
% \end{macrocode}
%
% \end{ZRnote}
@@ -5734,9 +5856,9 @@
% \clearpage
% \appendix
%^^A========================================================
-% \section{連携モジュールの仕様 ☆}
+% \section{和文ドライバの仕様 ☆}
%
-% 次の命令がBXJSクラス本体と和文モジュールの連携のために
+% 次の命令がBXJSクラス本体と和文ドライバの連携のために
% 用意されている。
% このうち、★印を付けたものは“書込”が許されるものである。
%
@@ -5815,6 +5937,11 @@
% 既定の定義は空。
% \end{itemize}
%
+% 以下で標準で用意されている和文ドライバの実装を示す。
+% \begin{macrocode}
+%<*drv>
+% \end{macrocode}
+%
%^^A========================================================
% \section{和文ドライバ:minimal ☆}
%
@@ -5835,7 +5962,7 @@
% \subsection{補助マクロ}
%
% \begin{macrocode}
-%<*drvminimal>
+%<*minimal>
%% このファイルは日本語文字を含みます
% \end{macrocode}
%
@@ -6203,7 +6330,7 @@
% 以上で終わり。
% \begin{macrocode}
\fi\fi\fi
-%</drvminimal>
+%</minimal>
% \end{macrocode}
%
%^^A========================================================
@@ -6239,7 +6366,8 @@
%
% まず minimal ドライバを読み込む。
% \begin{macrocode}
-%<*drvstandard>
+%<*standard>
+%% このファイルは日本語文字を含みます
\input{bxjsja-minimal.def}
% \end{macrocode}
%
@@ -6478,11 +6606,11 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\jsJaChar}
-% |\jsJaChar{|\meta{文字}|}|\Means
+% \begin{macro}{\jachar}
+% |\jachar{|\meta{文字}|}|\Means
% 和文文字として出力する。
% \begin{macrocode}
-\def\jsJaChar#1{%
+\newcommand*\jachar[1]{%
\begingroup
% \end{macrocode}
% |\jsLetHeadChar| で先頭の“文字”を拾って
@@ -6491,12 +6619,16 @@
\jsLetHeadChar\bxjs@tmpa{#1}%
\ifx\bxjs@tmpa\relax
\ClassWarningNoLine\bxjs@clsname
- {Illegal argument given to \string\jsJaChar}%
+ {Illegal argument given to \string\jachar}%
\else
\expandafter\bxjs@jachar\expandafter{\bxjs@tmpa}%
\fi
\endgroup}
% \end{macrocode}
+% |\jsJaChar| を |\jachar| と等価にする。
+% \begin{macrocode}
+\let\jsJaChar\jachar
+% \end{macrocode}
% 下請けの |\bxjs@jachar| の実装はエンジンにより異なる。
% \begin{macrocode}
\let\bxjs@jachar\@firstofone
@@ -6783,7 +6915,7 @@
\let\CJKecglue\bxjs@CJKecglue}
% \end{macrocode}
%
-% |\jsJaChar| のサブマクロの実装。
+% |\jachar| のサブマクロの実装。
% \begin{macrocode}
\def\bxjs@jachar#1{%
\CJKforced{#1}}
@@ -6874,7 +7006,7 @@
\fi
% \end{macrocode}
%
-% |\jsJaChar| のサブマクロの実装。
+% |\jachar| のサブマクロの実装。
% \begin{macrocode}
\def\bxjs@jachar#1{%
\xeCJKDeclareCharClass{CJK}{`#1}\relax
@@ -7003,7 +7135,7 @@
\ltjsetparameter{xkanjiskip={\@tempskipa}}}
% \end{macrocode}
%
-% |\jsJaChar| のサブマクロの実装。
+% |\jachar| のサブマクロの実装。
% \begin{macrocode}
\def\bxjs@jachar#1{%
\ltjjachar`#1\relax}
@@ -7040,7 +7172,924 @@
% 以上で終わり。
%
% \begin{macrocode}
-%</drvstandard>
+%</standard>
+% \end{macrocode}
+%
+%^^A========================================================
+% \section{和文ドライバ:modern ☆}
+%
+% モダーンな設定。
+%
+% standardドライバの設定を引き継ぐ。
+% \begin{macrocode}
+%<*modern>
+\input{bxjsja-standard.def}
+% \end{macrocode}
+%
+%^^A----------------
+%\subsection{フォント設定}
+%
+% T1エンコーディングに変更する。
+% \Note 以下のコードは |\usepackage[T1]{fontenc}| と同等。
+% \begin{macrocode}
+\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi=\z@
+\def\encodingdefault{T1}%
+\input{t1enc.def}%
+\fontencoding\encodingdefault\selectfont
+\fi
+% \end{macrocode}
+%
+% 基本フォントをLatin Modernフォントファミリに変更する。
+% \Note 以下は |\usepackage[noamth]{lmodern}| と同じ。
+% ユーザは後で |lmodern| を好きなオプションを付けて読み込む
+% ことができる。
+% \begin{macrocode}
+\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi=\z@
+\renewcommand{\rmdefault}{lmr}
+\renewcommand{\sfdefault}{lmss}
+\renewcommand{\ttdefault}{lmtt}
+\fi
+% \end{macrocode}
+%
+% 大型演算子用の数式フォントの設定。
+% \Note |amsfonts| パッケージと同等にする。
+% \begin{macrocode}
+\DeclareFontShape{OMX}{cmex}{m}{n}{%
+ <-7.5>cmex7<7.5-8.5>cmex8%
+ <8.5-9.5>cmex9<9.5->cmex10}{}%
+\expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax
+% \end{macrocode}
+% |amsmath| 読込時に上書きされるのを防ぐ。
+% \begin{macrocode}
+\def\cmex@opt{10}
+% \end{macrocode}
+%
+%^^A----------------
+% \subsection{fixltx2e読込}
+%
+% \Note |fixltx2e| 廃止前の{\LaTeX}カーネルの場合。
+% \begin{macrocode}
+\ifx\@IncludeInRelease\@undefined
+\RequirePackage{fixltx2e}
+\fi
+% \end{macrocode}
+%
+%^^A----------------
+% \subsection{和文カテゴリコード}
+%
+% 和文カテゴリコード設定のための補助パッケージを読みこむ。
+% \begin{macrocode}
+\RequirePackage{bxjscjkcat}
+% \end{macrocode}
+%
+%^^A----------------
+% \subsection{完了}
+% おしまい。
+% \begin{macrocode}
+%</modern>
+% \end{macrocode}
+%
+%^^A========================================================
+% \section{和文ドライバ:pandoc ☆}
+%
+% Pandoc用の何か。
+%
+% standardドライバの設定を引き継ぐ。
+% \begin{macrocode}
+%<*pandoc>
+\input{bxjsja-standard.def}
+% \end{macrocode}
+%
+%^^A----------------
+%\subsection{duploadシステム}
+%
+% パッケージが重複して読み込まれたときに“option clash”の
+% 検査をスキップする。
+% この時に何らかのコードを実行させることができる。
+%
+% \begin{macro}{\bxjs@set@dupload@proc}
+% |\bxjs@set@dupload@proc{|\Meta{ファイル名}|}{|\Meta{定義本体}|}|
+% 特定のファイルの読込が |\@filewithoptions| で指示されて、しかも
+% そのファイルが読込済である場合に、オプション重複検査をスキップして、
+% 代わりに\Meta{定義本体}のコードを実行する。
+% このコード中で |#1| は渡されたオプション列のテキストに置換される。
+% \begin{macrocode}
+\@onlypreamble\bxjs@set@dupload@proc
+\def\bxjs@set@dupload@proc#1{%
+ \expandafter\bxjs@set@dupload@proc@a\csname bxjs@dlp/#1\endcsname}
+\@onlypreamble\bxjs@set@dupload@proc@a
+\def\bxjs@set@dupload@proc@a#1{%
+ \@onlypreamble#1\def#1##1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@if@ptions}
+% |\@if@ptions| の再定義。
+% \begin{macrocode}
+\@onlypreamble\bxjs@org@if@ptions
+\let\bxjs@org@if@ptions\@if@ptions
+\newif\ifbxjs@dlp
+\def\@if@ptions#1#2#3{%
+ \bxjs@dlpfalse
+ \def\bxjs@tmpa{#1}\def\bxjs@tmpb{\@currext}%
+ \ifx\bxjs@tmpa\bxjs@tmpb
+ \expandafter\ifx\csname bxjs@dlp/#2.#1\endcsname\relax\else
+ \bxjs@dlptrue \fi
+ \fi
+ \ifbxjs@dlp \expandafter\bxjs@do@dupload@proc
+ \else \expandafter\bxjs@org@if@ptions
+ \fi {#1}{#2}{#3}}
+\AtBeginDocument{%
+ \let\@if@ptions\bxjs@org@if@ptions}
+\@onlypreamble\bxjs@do@dupload@proc
+\def\bxjs@do@dupload@proc#1#2#3{%
+ \csname bxjs@dlp/#2.#1\endcsname{#3}%
+ \@firstoftwo}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bxjs@mark@as@loaded}
+% |\bxjs@mark@as@loaded{|\Meta{ファイル名}|}|\Means
+% 特定のファイルに対して、(|\@filewithoptions| の処理に関して)
+% 読込済であるとマークする。
+% \begin{macrocode}
+\def\bxjs@mark@as@loaded#1{%
+ \expandafter\bxjs@mal@a\csname ver@#1\endcsname{#1}}
+\def\bxjs@mal@a#1#2{%
+ \ifx#1\relax
+ \def#1{2001/01/01}%
+ \ClassInfo\bxjs@clsname
+ {File '#2' marked as loaded\@gobble}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+%^^A----------------
+%\subsection{lang変数}
+% |lang=ja| という言語指定が行われると、
+% Pandocはこれに対応していないため
+% 不完全なBabelやPolyglossiaの設定を出力してしまう。
+% これを防ぐため、とりあえず両パッケージを無効化しておく。
+%
+% \begin{macrocode}
+\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi>0
+% \end{macrocode}
+% Polyglossiaについて。
+% \begin{macrocode}
+\bxjs@mark@as@loaded{polyglossia.sty}
+\bxjs@set@dupload@proc{polyglossia.sty}{%
+ \ClassWarning\bxjs@clsname
+ {Loading of polyglossia is blocked}}
+\ifx\setmainlanguage\@undefined
+\newcommand*\setmainlanguage[2][]{}
+\newcommand*\setotherlanguage[2][]{%
+ \ifcat_#2_\else
+ \expandafter\let\csname #2\endcsname\@empty
+ \expandafter\let\csname end#2\endcsname\@empty
+ \expandafter\let\csname text#2\endcsname\@firstofone
+ \fi}
+\newcommand*\setotherlanguages[2][]{%
+ \@for\bxjs@tmpa:={#2}\do{%
+ \setotherlangauge{\bxjs@tmpa}}}
+\fi
+\else
+% \end{macrocode}
+% Babelについて。
+% \begin{macrocode}
+\bxjs@mark@as@loaded{babel.sty}
+\bxjs@set@dupload@proc{babel.sty}{%
+ \ClassWarning\bxjs@clsname
+ {Loading of babel is blocked}}
+\let\foreignlanguage\@secondoftwo
+\let\otherlanguage\@gobble
+\let\endotherlanguage\@empty
+\fi
+% \end{macrocode}
+%
+%^^A----------------
+%\subsection{geometry変数}
+% |geometry| を“再度読み込んだ”場合に、
+% そのパラメタで |\setpagelayout*| が呼ばれるようにする。
+%
+% \begin{macrocode}
+\bxjs@set@dupload@proc{geometry.sty}{%
+ \setpagelayout*{#1}}
+% \end{macrocode}
+%
+%^^A----------------
+%\subsection{CJKmainfont変数}
+% Lua{\TeX}(+ Lua{{TeX}-ja)の場合に CJKmainfont 変数が
+% 指定された場合は |\setmainjfont| の指定にまわす。
+% \begin{macrocode}
+\if l\jsEngine
+ \bxjs@mark@as@loaded{xeCJK.sty}
+ \providecommand*{\setCJKmainfont}{\setmainjfont}
+\fi
+% \end{macrocode}
+%
+%^^A----------------
+%\subsection{fixltx2eパッケージ}
+% テンプレートでは |fixltx2e| パッケージを読み込むが、
+% 最近(2015年版以降)の{\LaTeX}ではこれで警告が出る。
+% これを抑止する。
+%
+% {\LaTeX}カーネルが新しい場合は |fixltx2e| を
+% 読込済にする。
+% \begin{macrocode}
+\ifx\@IncludeInRelease\@undefined\else
+ \bxjs@mark@as@loaded{fixltx2e.sty}
+\fi
+% \end{macrocode}
+%
+%^^A----------------
+%\subsection{cmapパッケージ}
+% エンジンが{(u)\pLaTeX}のときに |cmap| パッケージが
+% 読み込まれるのを阻止する。
+% (実際は警告が出るだけで無害であるが。)
+%
+% \begin{macrocode}
+\if j\jsEngine
+ \bxjs@mark@as@loaded{cmap.sty}
+\fi
+% \end{macrocode}
+%
+%^^A----------------
+%\subsection{microtypeパッケージ}
+% 警告が多すぎなので消す。
+%
+% \begin{macrocode}
+\PassOptionsToPackage{verbose=silent}{microtype}
+% \end{macrocode}
+%
+%^^A----------------
+% \subsection{完了}
+% おしまい。
+% \begin{macrocode}
+%</pandoc>
+% \end{macrocode}
+%
+% 和文ドライバ実装はここまで。
+% \begin{macrocode}
+%</drv>
+% \end{macrocode}
+%
+%^^A========================================================
+% \section{補助パッケージ一覧 ☆}
+%
+% BXJSクラスの機能を実現するために用意されたものだが、
+% 他のクラスの文書で読み込んで利用することもできる。
+%
+% \begin{itemize}
+% \item bxjscjkcat: modernドライバ用の和文カテゴリを適用する。
+% \end{itemize}
+%
+% \begin{macrocode}
+%<*anc>
+% \end{macrocode}
+%
+%^^A========================================================
+% \section{補助パッケージ:bxjscompat ☆}
+%
+% ムニャムニャムニャ……。
+%
+%^^A----------------
+% \subsection{準備}
+%
+% \begin{macrocode}
+%<*compat>
+\def\bxac@pkgname{bxjscompat}
+% \end{macrocode}
+%
+% \begin{macro}{\bxjx@engine}
+% エンジンの種別。
+% \begin{macrocode}
+\let\bxac@engine=n
+\def\bxac@do#1#2{%
+ \edef\bxac@tmpa{\string#1}%
+ \edef\bxac@tmpb{\meaning#1}%
+ \ifx\bxac@tmpa\bxac@tmpb #2\fi}
+\bxac@do\XeTeXversion{\let\bxac@engine=x}
+\bxac@do\luatexversion{\let\bxac@engine=l}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bxac@delayed@if@bxjs}
+% もしBXJSクラスの読込中でこのパッケージが読み込まれているならば、
+% BXJSのクラスの終わりまで実行を遅延する。
+% \begin{macrocode}
+\ifx\jsAtEndOfClass\@undefined
+ \let\bxac@delayed@if@bxjs\@firstofone
+\else \let\bxac@delayed@if@bxjs\jsAtEndOfClass
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ImposeOldLuaTeXBehavior}
+% \begin{macro}{\RevokeOldLuaTeXBehavior}
+% ムニャムニャ。
+% \begin{macrocode}
+\newif\ifbxac@in@old@behavior
+\let\ImposeOldLuaTeXBehavior\relax
+\let\RevokeOldLuaTeXBehavior\relax
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%^^A----------------
+% \subsection{{\XeTeX}部分}
+% \begin{macrocode}
+\ifx x\bxac@engine
+% \end{macrocode}
+%
+% {\XeTeX}文字クラスのムニャムニャ。
+% \begin{macrocode}
+\@onlypreamble\bxac@adjust@charclass
+\bxac@delayed@if@bxjs{%
+ \@ifpackageloaded{xeCJK}{}{%else
+ \ifx\xe@alloc@intercharclass\@undefined\else
+ \ifnum\xe@alloc@intercharclass=\z@
+ \PackageInfo\bxac@pkgname
+ {Setting up interchar class for CJK...\@gobble}%
+ \InputIfFileExists{load-unicode-xetex-classes.tex}{%
+ \xe@alloc@intercharclass=3
+ }{%else
+ \PackageWarning\bxac@pkgname
+ {Cannot find file 'load-unicode-xetex-classes.tex'%
+ \@gobble}%
+ }%
+ \fi\fi
+ \ifnum\XeTeXcharclass"3041=\z@
+ \PackageInfo\bxac@pkgname
+ {Adjusting interchar class for CJK...\@gobble}%
+ \@for\bxac@x:={%
+ 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@x=\@ne}%
+ \fi
+ }%
+}
+% \end{macrocode}
+% 以上。
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+%^^A----------------
+% \subsection{Lua{\TeX}部分}
+% \begin{macrocode}
+\ifx l\bxac@engine
+% \end{macrocode}
+%
+% ムニャムニャ。
+% \begin{macrocode}
+\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}
+% ムニャムニャ。
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname outputmode\endcsname\relax\else
+\def\bxac@ob@list{%
+ \do{\let}\pdfoutput{\outputmode}%
+ \do{\let}\pdfpagewidth{\pagewidth}%
+ \do{\let}\pdfpageheight{\pageheight}%
+ \do{\protected\edef}\pdfhorigin{{\pdfvariable horigin}}%
+ \do{\protected\edef}\pdfvorigin{{\pdfvariable vorigin}}}
+\def\bxac@ob@do#1#2{\begingroup
+ \expandafter\bxac@ob@do@a\csname bxac@\string#2\endcsname{#1}#2}
+\def\bxac@ob@do@a#1#2#3#4{\endgroup
+ \ifbxac@in@old@behavior \let#1#3\relax #2#3#4\relax
+ \else \let#3#1\relax \let#1\@undefined
+ \fi}
+\protected\def\ImposeOldLuaTeXBehavior{%
+ \unless\ifbxac@in@old@behavior
+ \bxac@in@old@behaviortrue
+ \let\do\bxac@ob@do \bxac@ob@list
+ \fi}
+\protected\def\RevokeOldLuaTeXBehavior{%
+ \ifbxac@in@old@behavior
+ \bxac@in@old@behaviorfalse
+ \let\do\bxac@ob@do \bxac@ob@list
+ \fi}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% 漢字および完成形ハングルのカテゴリコードのムニャムニャ。
+% \begin{macrocode}
+ \ifnum\luatexversion>64 \directlua{
+ local function range(cs, ce, cc, ff)
+ if ff or not tex.getcatcode(cs) == cc then
+ local setcc = tex.setcatcode
+ for c = cs, ce do setcc(c, cc) end
+ end
+ end
+ range(0x3400, 0x4DB5, 11, false)
+ range(0x4DB5, 0x4DBF, 11, true)
+ range(0x4E00, 0x9FCC, 11, false)
+ range(0x9FCD, 0x9FFF, 11, true)
+ range(0xAC00, 0xD7A3, 11, false)
+ range(0x20000, 0x2A6D6, 11, false)
+ range(0x2A6D7, 0x2A6FF, 11, true)
+ range(0x2A700, 0x2B734, 11, false)
+ range(0x2B735, 0x2B73F, 11, true)
+ range(0x2B740, 0x2B81D, 11, false)
+ range(0x2B81E, 0x2B81F, 11, true)
+ range(0x2B820, 0x2CEA1, 11, false)
+ range(0x2CEA2, 0x2FFFD, 11, true)
+ }\fi
+% \end{macrocode}
+% 以上。
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+%^^A----------------
+% \subsection{完了}
+% おしまい。
+% \begin{macrocode}
+%</compat>
+% \end{macrocode}
+%
+%^^A========================================================
+% \section{補助パッケージ:bxjscjkcat ☆}
+%
+% modernドライバ用の和文カテゴリを適用する。
+%
+%^^A----------------
+% \subsection{準備}
+%
+% \begin{macrocode}
+%<*cjkcat>
+\def\bxjx@pkgname{bxjscjkcat}
+\newcount\bxjx@cnta
+% \end{macrocode}
+%
+% \begin{macro}{\bxjx@engine}
+% エンジンの種別。
+% \begin{macrocode}
+\let\bxjx@engine=n
+\def\bxjx@do#1#2{%
+ \edef\bxjx@tmpa{\string#1}%
+ \edef\bxjx@tmpb{\meaning#1}%
+ \ifx\bxjx@tmpa\bxjx@tmpb #2\fi}
+\bxjx@do\kanjiskip{\let\bxjx@engine=j}
+\bxjx@do\enablecjktoken{\let\bxjx@engine=u}
+\bxjx@do\XeTeXversion{\let\bxjx@engine=x}
+\bxjx@do\pdftexversion{\let\bxjx@engine=p}
+\bxjx@do\luatexversion{\let\bxjx@engine=l}
+% \end{macrocode}
+% \end{macro}
+%
+% それぞれのエンジンで、前提となる日本語処理パッケージが実際に
+% 読み込まれているかを検査する。
+% \begin{macrocode}
+\def\bxjx@do#1#2{%
+ \if#1\bxjx@engine
+ \@ifpackageloaded{#2}{}{%else
+ \PackageError\bxjx@pkgname
+ {Package '#2' must be loaded}%
+ {Package loading is aborted.\MessageBreak\@ehc}%
+ \endinput}
+ \fi}
+\bxjx@do{p}{bxcjkjatype}
+\bxjx@do{x}{xeCJK}
+\bxjx@do{l}{luatexja}
+% \end{macrocode}
+%
+% 古い{\LaTeX}の場合、|\TextOrMath| は |fixltx2e| パッケージで
+% 提供される。
+% \begin{macrocode}
+\ifx\TextOrMath\@undefined
+ \RequirePackage{fixltx2e}
+\fi
+% \end{macrocode}
+%
+%^^A----------------
+% \subsection{和文カテゴリコードの設定}
+%
+% up{\LaTeX}の場合、和文カテゴリコードの設定を
+% Lua{\TeX}-jaと(ほぼ)等価なものに変更する。
+%
+% \Note Lua{\TeX}-jaとの相違点:
+% |A830|、|A960|、|1B000|。
+% \begin{macrocode}
+\if u\bxjx@engine
+\@for\bxjx@x:={%
+0080,0100,0180,0250,02B0,0300,0500,0530,0590,0600,%
+0700,0750,0780,07C0,0800,0840,08A0,0900,0980,0A00,%
+0A80,0B00,0B80,0C00,0C80,0D00,0D80,0E00,0E80,0F00,%
+1000,10A0,1200,1380,13A0,1400,1680,16A0,1700,1720,%
+1740,1760,1780,1800,18B0,1900,1950,1980,19E0,1A00,%
+1A20,1AB0,1B00,1B80,1BC0,1C00,1C50,1CC0,1CD0,1D00,%
+1D80,1DC0,1E00,2440,27C0,27F0,2800,2A00,2C00,2C60,%
+2C80,2D00,2D30,2D80,2DE0,2E00,4DC0,A4D0,A500,A640,%
+A6A0,A700,A720,A800,A830,A840,A880,A8E0,A900,A930,%
+A980,A9E0,AA00,AA60,AA80,AAE0,AB00,AB30,AB70,ABC0,%
+D800,DB80,DC00,E000,FB00,FB50,FE00,FE70,%
+10000,10080,10100,10140,10190,101D0,10280,102A0,%
+102E0,10300,10330,10350,10380,103A0,10400,10450,%
+10480,10500,10530,10600,10800,10840,10860,10880,%
+108E0,10900,10920,10980,109A0,10A00,10A60,10A80,%
+10AC0,10B00,10B40,10B60,10B80,10C00,10C80,10E60,%
+11000,11080,110D0,11100,11150,11180,111E0,11200,%
+11280,112B0,11300,11480,11580,11600,11680,11700,%
+118A0,11AC0,12000,12400,12480,13000,14400,16800,%
+16A40,16AD0,16B00,16F00,1BC00,1BCA0,1D000,1D100,%
+1D200,1D300,1D360,1D400,1D800,1E800,1EE00,1F000,%
+1F030,1F0A0,1F100,1F200,1F300,1F600,1F650,1F680,%
+1F700,1F780,1F800,1F900,E0000,F0000,100000%
+}\do{\kcatcode"\bxjx@x=15 }
+\fi
+% \end{macrocode}
+%
+%^^A----------------
+% \subsection{ギリシャ・キリル文字の扱い}
+%
+% \Note ここで「ギリシャ・キリル文字」はUnicodeとJIS X 0213に
+% 共通して含まれるもののみを指すことにする。
+%
+% \begin{macro}{\bxjx@grkcyr@list}
+% 対象のギリシャ・キリル文字に関するデータ。
+% \begin{macrocode}
+\def\bxjx@grkcyr@list{%
+\do{0391}{LGR}{\textAlpha}{A}% % GR. C. L. ALPHA
+\do{0392}{LGR}{\textBeta}{B}% % GR. C. L. BETA
+\do{0393}{LGR}{\textGamma}{\Gamma}% % GR. C. L. GAMMA
+\do{0394}{LGR}{\textDelta}{\Delta}% % GR. C. L. DELTA
+\do{0395}{LGR}{\textEpsilon}{E}% % GR. C. L. EPSILON
+\do{0396}{LGR}{\textZeta}{Z}% % GR. C. L. ZETA
+\do{0397}{LGR}{\textEta}{H}% % GR. C. L. ETA
+\do{0398}{LGR}{\textTheta}{\Theta}% % GR. C. L. THETA
+\do{0399}{LGR}{\textIota}{I}% % GR. C. L. IOTA
+\do{039A}{LGR}{\textKappa}{K}% % GR. C. L. KAPPA
+\do{039B}{LGR}{\textLambda}{\Lambda}% % GR. C. L. LAMDA
+\do{039C}{LGR}{\textMu}{M}% % GR. C. L. MU
+\do{039D}{LGR}{\textNu}{N}% % GR. C. L. NU
+\do{039E}{LGR}{\textXi}{\Xi}% % GR. C. L. XI
+\do{039F}{LGR}{\textOmicron}{O}% % GR. C. L. OMICRON
+\do{03A0}{LGR}{\textPi}{\Pi}% % GR. C. L. PI
+\do{03A1}{LGR}{\textRho}{P}% % GR. C. L. RHO
+\do{03A3}{LGR}{\textSigma}{\Sigma}% % GR. C. L. SIGMA
+\do{03A4}{LGR}{\textTau}{T}% % GR. C. L. TAU
+\do{03A5}{LGR}{\textUpsilon}{\Upsilon}% % GR. C. L. UPSILON
+\do{03A6}{LGR}{\textPhi}{\Phi}% % GR. C. L. PHI
+\do{03A7}{LGR}{\textChi}{X}% % GR. C. L. CHI
+\do{03A8}{LGR}{\textPsi}{\Psi}% % GR. C. L. PSI
+\do{03A9}{LGR}{\textOmega}{\Omega}% % GR. C. L. OMEGA
+\do{03B1}{LGR}{\textalpha}{\alpha}% % GR. S. L. ALPHA
+\do{03B2}{LGR}{\textbeta}{\beta}% % GR. S. L. BETA
+\do{03B3}{LGR}{\textgamma}{\gamma}% % GR. S. L. GAMMA
+\do{03B4}{LGR}{\textdelta}{\delta}% % GR. S. L. DELTA
+\do{03B5}{LGR}{\textepsilon}{\epsilon}% % GR. S. L. EPSILON
+\do{03B6}{LGR}{\textzeta}{\zeta}% % GR. S. L. ZETA
+\do{03B7}{LGR}{\texteta}{\eta}% % GR. S. L. ETA
+\do{03B8}{LGR}{\texttheta}{\theta}% % GR. S. L. THETA
+\do{03B9}{LGR}{\textiota}{\iota}% % GR. S. L. IOTA
+\do{03BA}{LGR}{\textkappa}{\kappa}% % GR. S. L. KAPPA
+\do{03BB}{LGR}{\textlambda}{\lambda}% % GR. S. L. LAMDA
+\do{03BC}{LGR}{\textmu}{\mu}% % GR. S. L. MU
+\do{03BD}{LGR}{\textnu}{\nu}% % GR. S. L. NU
+\do{03BE}{LGR}{\textxi}{\xi}% % GR. S. L. XI
+\do{03BF}{LGR}{\textomicron}{o}% % GR. S. L. OMICRON
+\do{03C0}{LGR}{\textpi}{\pi}% % GR. S. L. PI
+\do{03C1}{LGR}{\textrho}{\rho}% % GR. S. L. RHO
+\do{03C2}{LGR}{\textvarsigma}{\varsigma}% % GR. S. L. FINAL SIGMA
+\do{03C3}{LGR}{\textsigma}{\sigma}% % GR. S. L. SIGMA
+\do{03C4}{LGR}{\texttau}{\tau}% % GR. S. L. TAU
+\do{03C5}{LGR}{\textupsilon}{\upsilon}% % GR. S. L. UPSILON
+\do{03C6}{LGR}{\textphi}{\phi}% % GR. S. L. PHI
+\do{03C7}{LGR}{\textchi}{\chi}% % GR. S. L. CHI
+\do{03C8}{LGR}{\textpsi}{\psi}% % GR. S. L. PSI
+\do{03C9}{LGR}{\textomega}{\omega}% % GR. S. L. OMEGA
+\do{0401}{T2A}{\CYRYO}{}% % CY. C. L. IO
+\do{0410}{T2A}{\CYRA}{}% % CY. C. L. A
+\do{0411}{T2A}{\CYRB}{}% % CY. C. L. BE
+\do{0412}{T2A}{\CYRV}{}% % CY. C. L. VE
+\do{0413}{T2A}{\CYRG}{}% % CY. C. L. GHE
+\do{0414}{T2A}{\CYRD}{}% % CY. C. L. DE
+\do{0415}{T2A}{\CYRE}{}% % CY. C. L. IE
+\do{0416}{T2A}{\CYRZH}{}% % CY. C. L. ZHE
+\do{0417}{T2A}{\CYRZ}{}% % CY. C. L. ZE
+\do{0418}{T2A}{\CYRI}{}% % CY. C. L. I
+\do{0419}{T2A}{\CYRISHRT}{}% % CY. C. L. SHORT I
+\do{041A}{T2A}{\CYRK}{}% % CY. C. L. KA
+\do{041B}{T2A}{\CYRL}{}% % CY. C. L. EL
+\do{041C}{T2A}{\CYRM}{}% % CY. C. L. EM
+\do{041D}{T2A}{\CYRN}{}% % CY. C. L. EN
+\do{041E}{T2A}{\CYRO}{}% % CY. C. L. O
+\do{041F}{T2A}{\CYRP}{}% % CY. C. L. PE
+\do{0420}{T2A}{\CYRR}{}% % CY. C. L. ER
+\do{0421}{T2A}{\CYRS}{}% % CY. C. L. ES
+\do{0422}{T2A}{\CYRT}{}% % CY. C. L. TE
+\do{0423}{T2A}{\CYRU}{}% % CY. C. L. U
+\do{0424}{T2A}{\CYRF}{}% % CY. C. L. EF
+\do{0425}{T2A}{\CYRH}{}% % CY. C. L. HA
+\do{0426}{T2A}{\CYRC}{}% % CY. C. L. TSE
+\do{0427}{T2A}{\CYRCH}{}% % CY. C. L. CHE
+\do{0428}{T2A}{\CYRSH}{}% % CY. C. L. SHA
+\do{0429}{T2A}{\CYRSHCH}{}% % CY. C. L. SHCHA
+\do{042A}{T2A}{\CYRHRDSN}{}% % CY. C. L. HARD SIGN
+\do{042B}{T2A}{\CYRERY}{}% % CY. C. L. YERU
+\do{042C}{T2A}{\CYRSFTSN}{}% % CY. C. L. SOFT SIGN
+\do{042D}{T2A}{\CYREREV}{}% % CY. C. L. E
+\do{042E}{T2A}{\CYRYU}{}% % CY. C. L. YU
+\do{042F}{T2A}{\CYRYA}{}% % CY. C. L. YA
+\do{0430}{T2A}{\cyra}{}% % CY. S. L. A
+\do{0431}{T2A}{\cyrb}{}% % CY. S. L. BE
+\do{0432}{T2A}{\cyrv}{}% % CY. S. L. VE
+\do{0433}{T2A}{\cyrg}{}% % CY. S. L. GHE
+\do{0434}{T2A}{\cyrd}{}% % CY. S. L. DE
+\do{0435}{T2A}{\cyre}{}% % CY. S. L. IE
+\do{0436}{T2A}{\cyrzh}{}% % CY. S. L. ZHE
+\do{0437}{T2A}{\cyrz}{}% % CY. S. L. ZE
+\do{0438}{T2A}{\cyri}{}% % CY. S. L. I
+\do{0439}{T2A}{\cyrishrt}{}% % CY. S. L. SHORT I
+\do{043A}{T2A}{\cyrk}{}% % CY. S. L. KA
+\do{043B}{T2A}{\cyrl}{}% % CY. S. L. EL
+\do{043C}{T2A}{\cyrm}{}% % CY. S. L. EM
+\do{043D}{T2A}{\cyrn}{}% % CY. S. L. EN
+\do{043E}{T2A}{\cyro}{}% % CY. S. L. O
+\do{043F}{T2A}{\cyrp}{}% % CY. S. L. PE
+\do{0440}{T2A}{\cyrr}{}% % CY. S. L. ER
+\do{0441}{T2A}{\cyrs}{}% % CY. S. L. ES
+\do{0442}{T2A}{\cyrt}{}% % CY. S. L. TE
+\do{0443}{T2A}{\cyru}{}% % CY. S. L. U
+\do{0444}{T2A}{\cyrf}{}% % CY. S. L. EF
+\do{0445}{T2A}{\cyrh}{}% % CY. S. L. HA
+\do{0446}{T2A}{\cyrc}{}% % CY. S. L. TSE
+\do{0447}{T2A}{\cyrch}{}% % CY. S. L. CHE
+\do{0448}{T2A}{\cyrsh}{}% % CY. S. L. SHA
+\do{0449}{T2A}{\cyrshch}{}% % CY. S. L. SHCHA
+\do{044A}{T2A}{\cyrhrdsn}{}% % CY. S. L. HARD SIGN
+\do{044B}{T2A}{\cyrery}{}% % CY. S. L. YERU
+\do{044C}{T2A}{\cyrsftsn}{}% % CY. S. L. SOFT SIGN
+\do{044D}{T2A}{\cyrerev}{}% % CY. S. L. E
+\do{044E}{T2A}{\cyryu}{}% % CY. S. L. YU
+\do{044F}{T2A}{\cyrya}{}% % CY. S. L. YA
+\do{0451}{T2A}{\cyryo}{}% % CY. S. L. IO
+\do{00A7}{TS1}{\textsection}{\mathsection}% SECTION SYMBOL
+\do{00A8}{TS1}{\textasciidieresis}{}% % DIAERESIS
+\do{00B0}{TS1}{\textdegree}{\mathdegree}% % DEGREE SIGN
+\do{00B1}{TS1}{\textpm}{\pm}% % PLUS-MINUS SIGN
+\do{00B4}{TS1}{\textasciiacute}{}% % ACUTE ACCENT
+\do{00B6}{TS1}{\textparagraph}{\mathparagraph}% PILCROW SIGN
+\do{00D7}{TS1}{\texttimes}{\times}% % MULTIPLICATION SIGN
+\do{00F7}{TS1}{\textdiv}{\div}% % DIVISION SIGN
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\providecommand*{\mathdegree}{{}^{\circ}}
+% \end{macrocode}
+%
+% \begin{macro}{\ifbxjx@gcc@cjk}
+% 〔スイッチ〕
+% ギリシャ・キリル文字を和文扱いにするか。
+% \begin{macrocode}
+\newif\ifbxjx@gcc@cjk
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\greekasCJK}
+% ギリシャ・キリル文字を和文扱いにする。
+% \begin{macro}{\nogreekasCJK}
+% ギリシャ・キリル文字を欧文扱いにする。
+% \begin{macrocode}
+\newcommand*\greekasCJK{%
+ \bxjx@gcc@cjktrue}
+\newcommand*\nogreekasCJK{%
+ \bxjx@gcc@cjkfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\bx@fake@grk}
+% |\bx@fake@grk{|\Meta{出力文字}|}{|\Meta{基準文字}|}|\Means
+% \begin{macrocode}
+\def\bxjx@do#1\relax{%
+ \def\bxjx@fake@grk##1##2{%
+ \expandafter\bxjx@fake@grk@a\meaning##2#1\@nil{##1}{##2}}%
+ \def\bxjx@fake@grk@a##1#1##2\@nil##3##4{%
+ \ifx\\##1\\%
+ \bxjx@cnta##4\divide\bxjx@cnta\@cclvi
+ \multiply\bxjx@cnta\@cclvi \advance\bxjx@cnta`##3\relax
+ \mathchar\bxjx@cnta
+ \else ##3\fi}
+}\expandafter\bxjx@do\string\mathchar\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \paragraph{pdfLaTeX・upLaTeXの場合}
+% \begin{macrocode}
+\ifnum0\if p\bxjx@engine1\fi\if u\bxjx@engine1\fi>0
+% \end{macrocode}
+% まず |inputenc| を読み込んで入力エンコーディングを |utf8|
+% に変更する。
+% \begin{macrocode}
+\@ifpackageloaded{inputenc}{}{%else
+ \RequirePackage[utf8]{inputenc}}
+\def\bxjx@tmpa{utf8}
+\ifx\bxjx@tmpa\inputencdoingname
+ \PackageWarningNoLine\bxjx@pkgname
+ {Input encoding changed to utf8}%
+ \inputencoding{utf8}%
+\fi
+% \end{macrocode}
+%
+% up{\LaTeX}の場合は当該の文字を含むブロックをの和文カテゴリコード
+% を変更する。
+% \begin{macrocode}
+\if u\bxjx@engine
+\kcatcode"0370=15
+\kcatcode"0400=15
+\kcatcode"0500=15
+\fi
+% \end{macrocode}
+% 各文字について |\DeclareUnicodeCharacter| を実行する。
+% \begin{macrocode}
+\def\do#1{%
+ \@tempcnta="#1\relax
+ \@tempcntb=\@tempcnta \divide\@tempcntb256
+ \expandafter\let\csname bxjx@KCR/\the\@tempcntb\endcsname=t%
+ \expandafter\bxjx@do@a\csname bxjx@KC/\the\@tempcnta\endcsname{#1}}
+\def\bxjx@do@a#1#2#3#4#5{%
+ \ifx\\#5\\%
+ \def\bxjx@tmpa{\@inmathwarn#4}%
+ \else\ifcat A\noexpand#5%
+ \edef\bxjx@tmpa{\noexpand\bxjx@fake@grk{#5}%
+ {\ifnum\uccode`#5=`#5\noexpand\Pi\else\noexpand\pi\fi}}%
+ \else \def\bxjx@tmpa{#5}%
+ \fi\fi
+ \def\bxjx@tmpb{\bxjx@do@b{#1}{#2}{#3}{#4}}%
+ \expandafter\bxjx@tmpb\expandafter{\bxjx@tmpa}}
+\if u\bxjx@engine
+% {\bxjx@KC/NN}{XXXX}{ENC}{\textCS}{\mathCS}
+\def\bxjx@do@b#1#2#3#4#5{%
+ \kchardef#1=\@tempcnta
+ \DeclareTextCommandDefault{#4}{\bxjx@ja@or@not{#1}{#3}{#4}}%
+ \DeclareUnicodeCharacter{#2}{\TextOrMath{#4}{#5}}}
+\else\if p\bxjx@engine
+\def\bxjx@do@b#1#2#3#4#5{%
+ \mathchardef#1=\@tempcnta
+ \DeclareTextCommandDefault{#4}{\bxjx@ja@or@not{\UTF{#2}}{#3}{#4}}%
+ \DeclareUnicodeCharacter{#2}{\TextOrMath{#4}{#5}}}
+\fi\fi
+\bxjx@grkcyr@list
+\let\bxjx@do@a\undefined
+\let\bxjx@do@b\undefined
+% \end{macrocode}
+%
+% \begin{macro}{\bxjx@DeclareUnicodeCharacter}
+% |\bxjx@DeclareUnicodeCharacter| を改変して、
+% ギリシャ・キリル文字の場合に再定義を抑止したもの。
+% \begin{macrocode}
+\@onlypreamble\bxjx@org@DeclareUnicodeCharacter
+\let\bxjx@org@DeclareUnicodeCharacter\DeclareUnicodeCharacter
+\@onlypreamble\bxjx@DeclareUnicodeCharacter
+\def\bxjx@DeclareUnicodeCharacter#1#2{%
+ \count@="#1\relax \bxjx@cnta\count@ \divide\bxjx@cnta256
+ \expandafter\ifx\csname bxjx@KCR/\the\bxjx@cnta\endcsname\relax
+ \bxjx@org@DeclareUnicodeCharacter{#1}{#2}%
+ \else\expandafter\ifx\csname bxjx@KC/\the\count@\endcsname\relax
+ \bxjx@org@DeclareUnicodeCharacter{#1}{#2}%
+ \else
+ \wlog{ \space\space skipped defining Unicode char U+#1}%
+ \fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bxjx@ja@or@not}
+% |\bxjx@ja@or@not|
+% \begin{macrocode}
+\def\bxjx@ja@or@not#1#2#3{%
+% \end{macrocode}
+% |\greekasCJK| の場合は、無条件に和文用コードを実行する。
+% \begin{macrocode}
+ \ifbxjx@gcc@cjk #1%
+% \end{macrocode}
+% |\nogreekasCJK| の場合は、エンコーディングを固定して欧文用の
+% コードを実行するが、そのエンコーディングが未定義の場合は
+% (フォールバックとして)和文用コードを使う。
+% \begin{macrocode}
+ \else\expandafter\ifx\csname T@#2\endcsname\relax #1%
+ \else \UseTextSymbol{#2}{#3}%
+ \fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DeclareFontEncoding@}
+% |\DeclareFontEncoding@| にパッチを当てて、
+% |\DeclareFontEncoding| の実行中だけ
+% 改変後の |\DeclareUnicodeCharacter| が使われるようにする。
+% \begin{macrocode}
+\begingroup
+\toks@\expandafter{\DeclareFontEncoding@{#1}{#2}{#3}}
+\xdef\next{\def\noexpand\DeclareFontEncoding@##1##2##3{%
+ \noexpand\bxjx@swap@DUC@cmd
+ \the\toks@
+ \noexpand\bxjx@swap@DUC@cmd}}
+\endgroup\next
+\def\bxjx@swap@DUC@cmd{%
+ \let\bxjx@tmpa\DeclareUnicodeCharacter
+ \let\DeclareUnicodeCharacter\bxjx@DeclareUnicodeCharacter
+ \let\bxjx@DeclareUnicodeCharacter\bxjx@tmpa}
+% \end{macrocode}
+% \end{macro}
+%
+% 以上。
+%
+% \paragraph{{\XeLaTeX}・Lua{\LaTeX}の場合}
+% \begin{macrocode}
+\else\ifnum0\if x\bxjx@engine1\fi\if l\bxjx@engine1\fi>0
+% \end{macrocode}
+%
+% 各文字について、math activeを設定する。
+% \begin{macrocode}
+\def\do#1{%
+ \bxjx@cnta="#1\relax
+ \begingroup
+ \lccode`~=\bxjx@cnta
+ \lowercase{\endgroup
+ \bxjx@do@a{~}}{#1}}
+\def\bxjx@do@a#1#2#3#4#5{%
+ \ifx\\#5\\\let\bxjx@tmpa\relax
+ \else\ifcat A\noexpand#5%
+ \edef\bxjx@tmpa{\noexpand\bxjx@fake@grk{#5}%
+ {\ifnum\uccode`#5=`#5\noexpand\Pi\else\noexpand\pi\fi}}%
+ \else \def\bxjx@tmpa{#5}%
+ \fi\fi
+ \ifx\bxjx@tmpa\relax\else
+ \mathcode\bxjx@cnta"8000 \let#1\bxjx@tmpa
+ \fi}
+% \end{macrocode}
+% 「Unicodeな数式」の設定が行われているかを(簡易的に)検査して、
+% そうでない場合にのみ、こちらの設定を有効にする。
+% \begin{macrocode}
+\mathchardef\bxjx@tmpa="119
+\ifx\bxjx@tmpa\pi \bxjx@grkcyr@list \fi
+\let\bxjx@do@a\undefined
+% \end{macrocode}
+%
+% Lua{\TeX}における |\(no)greekasCJK| の定義。
+% |jacharrange| の設定を変更する。
+% \begin{macrocode}
+\if l\bxjx@engine
+ \protected\def\greekasCJK{%
+ \bxjx@gcc@cjktrue
+ \ltjsetparameter{jacharrange={+2, +8}}}
+ \protected\def\nogreekasCJK{%
+ \bxjx@gcc@cjkfalse
+ \ltjsetparameter{jacharrange={-2, -8}}}
+\fi
+% \end{macrocode}
+%
+% {\XeTeX}における |\(no)greekasCJK| の定義。
+% \begin{macrocode}
+\if x\bxjx@engine
+ \protected\def\greekasCJK{%
+ \bxjx@gcc@cjktrue
+ \def\do##1##2##3##4{\XeTeXcharclass"##1\@ne}%
+ \bxjx@grkcyr@list}
+ \protected\def\nogreekasCJK{%
+ \bxjx@gcc@cjkfalse
+ \def\do##1##2##3##4{\XeTeXcharclass"##1\z@}%
+ \bxjx@grkcyr@list}
+\fi
+% \end{macrocode}
+%
+% 以上。
+% \begin{macrocode}
+\fi\fi
+% \end{macrocode}
+%
+%^^A----------------
+% \subsection{初期設定}
+% ギリシャ・キリル文字を欧文扱いにする。
+% \begin{macrocode}
+\nogreekasCJK
+% \end{macrocode}
+%
+%^^A----------------
+% \subsection{完了}
+% おしまい。
+% \begin{macrocode}
+%</cjkcat>
+% \end{macrocode}
+%
+% 補助パッケージ実装はここまで。
+% \begin{macrocode}
+%</anc>
% \end{macrocode}
%
% \Finale
diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjscls.ins b/Master/texmf-dist/source/latex/bxjscls/bxjscls.ins
index b7697b1d67e..a60aed3277f 100644
--- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.ins
+++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.ins
@@ -2,10 +2,14 @@
\def\batchfile{bxjscls.ins}
\input docstrip.tex
\keepsilent
-\generateFile{bxjsarticle.cls}{f}{\from{bxjscls.dtx}{article}}
-\generateFile{bxjsreport.cls}{f}{\from{bxjscls.dtx}{report}}
-\generateFile{bxjsja-minimal.def}{f}{\from{bxjscls.dtx}{drvminimal}}
-\generateFile{bxjsja-standard.def}{f}{\from{bxjscls.dtx}{drvstandard}}
-\generateFile{bxjsbook.cls}{f}{\from{bxjscls.dtx}{book}}
-\generateFile{bxjsslide.cls}{f}{\from{bxjscls.dtx}{slide}}
+\generateFile{bxjsarticle.cls}{f}{\from{bxjscls.dtx}{cls,article}}
+\generateFile{bxjsreport.cls}{f}{\from{bxjscls.dtx}{cls,report}}
+\generateFile{bxjsbook.cls}{f}{\from{bxjscls.dtx}{cls,book}}
+\generateFile{bxjsslide.cls}{f}{\from{bxjscls.dtx}{cls,slide}}
+\generateFile{bxjsja-minimal.def}{f}{\from{bxjscls.dtx}{drv,minimal}}
+\generateFile{bxjsja-standard.def}{f}{\from{bxjscls.dtx}{drv,standard}}
+\generateFile{bxjsja-modern.def}{f}{\from{bxjscls.dtx}{drv,modern}}
+\generateFile{bxjsja-pandoc.def}{f}{\from{bxjscls.dtx}{drv,pandoc}}
+\generateFile{bxjscompat.sty}{f}{\from{bxjscls.dtx}{anc,compat}}
+\generateFile{bxjscjkcat.sty}{f}{\from{bxjscls.dtx}{anc,cjkcat}}
%% EOF
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls
index 50b036892fe..c7a506a5696 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls
@@ -4,7 +4,7 @@
%%
%% The original source files were:
%%
-%% bxjscls.dtx (with options: `article')
+%% bxjscls.dtx (with options: `cls,article')
%%
%% IMPORTANT NOTICE:
%%
@@ -37,9 +37,14 @@
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{bxjsarticle}
- [2015/11/21 v1.0d BXJS document classes]
+ [2016/02/20 v1.1a BXJS document classes]
+%% このファイルは日本語文字を含みます
\RequirePackage{calc}
\RequirePackage{keyval}
+\IfFileExists{bxjscompat.sty}{%
+ \let\jsAtEndOfClass\@gobble
+ \RequirePackage{bxjscompat}%
+}{}
\let\jsEngine=n
\def\bxjs@test@engine#1#2{%
\edef\bxjs@tmpa{\string#1}%
@@ -66,9 +71,10 @@
\def\bxjs@robust@def{\DeclareRobustCommand*}
\fi
\newif\ifjsInPdfMode
-\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@
- \jsInPdfModetrue
-\fi\fi
+\@nameuse{ImposeOldLuaTeXBehavior}
+\RequirePackage{ifpdf}
+\@nameuse{RevokeOldLuaTeXBehavior}
+\let\ifjsInPdfMode\ifpdf
\@gobbletwo\if\if \def\bxjs@cond#1\fi{%
#1\expandafter\@firstoftwo
\else\expandafter\@secondoftwo
@@ -79,6 +85,8 @@
\let\jsSlide=s
\let\jsDocClass\jsArticle
\def\bxjs@clsname{bxjsarticle}
+\def\jsAtEndOfClass{%
+ \expandafter\g@addto@macro\csname\bxjs@clsname.cls-h@@k\endcsname}
\@onlypreamble\bxjs@restore@jltrcc
\let\bxjs@restore@jltrcc\@empty
\if l\jsEngine
@@ -248,6 +256,12 @@
\else \@tempdimb=\@tempcntb\@ne \fi}%
\xdef\bxjs@gtmpa{\the\@tempdimb}%
\egroup #1=\bxjs@gtmpa\relax}
+\let\bxjs@composite@proc\relax
+\DeclareOption{pandoc}{%
+ \def\bxjs@composite@proc{%
+ \setkeys{bxjs}{ja=pandoc}%
+ \let\bxjs@engine@given=*}%
+ \def\bxjs@driver@opt{dvipdfmx-if-dvi}}
\DeclareOption{autodetect-engine}{%
\let\bxjs@engine@given=*}
\DeclareOption{latex}{%
@@ -342,7 +356,8 @@
\define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}}
\let\bxjs@jadriver\relax
\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}}
-\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}}
+\define@key{bxjs}{ja}[\relax]{%
+ \ifx\relax#1\else\edef\bxjs@jadriver{#1}\fi}
\let\jsJaFont\@empty
\define@key{bxjs}{jafont}{\edef\jsJaFont{#1}}
\let\jsJaParam\@empty
@@ -367,6 +382,7 @@
\fi}
\ExecuteOptions{a4paper,oneside,onecolumn,notitlepage,final}
\ProcessOptions\relax
+\bxjs@composite@proc
\@onlypreamble\bxjs@purge@brace@elts
\def\bxjs@purge@brace@elts{%
\def\bxjs@tmpa{\@gobble}%
@@ -401,6 +417,11 @@
\fi\fi
\ifx *\bxjs@engine@given
\let\bxjs@engine@given\bxjs@tmpb
+ \ifx j\bxjs@engine@given
+ \g@addto@macro\@classoptionslist{,platex}
+ \else\ifx u\bxjs@engine@given
+ \g@addto@macro\@classoptionslist{,uplatex}
+ \fi\fi
\fi
\ifx\bxjs@engine@given\@undefined\else
\ifx\bxjs@engine@given\bxjs@tmpb\else
@@ -769,7 +790,9 @@
\fi
\edef\bxjs@nxt{%
\noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}}
+\AtBeginDocument{\ImposeOldLuaTeXBehavior}
\bxjs@nxt \bxjs@revert
+\AtBeginDocument{\RevokeOldLuaTeXBehavior}
\bxjs@postproc@layout
\def\setpagelayout{\@ifstar
{\bxjs@reset@layout}{\bxjs@modify@layout}}
@@ -860,6 +883,7 @@
\let\sectionmark\@gobble
\let\subsectionmark\@gobble
}
+\newcommand*{\subtitle}[1]{\gdef\bxjs@subtitle{#1}}
\def\plainifnotempty{%
\ifx \@oddhead \@empty
\ifx \@oddfoot \@empty
@@ -884,6 +908,10 @@
{\maybeblue\hrule height0\p@? depth2\p@?\relax}\par
\smallskip
\@title
+ \ifx\bxjs@subtitle\@undefined\else
+ \par\vskip\z@
+ {\small \bxjs@subtitle\par}
+ \fi
\smallskip
{\maybeblue\hrule height0\p@? depth2\p@?\relax}\par
\vfill
@@ -893,6 +921,10 @@
\vskip 60\p@?
\begin{center}%
{\LARGE \@title \par}%
+ \ifx\bxjs@subtitle\@undefined\else
+ \vskip5\p@?
+ {\normalsize \bxjs@subtitle\par}
+ \fi
\vskip 3em%
{\large
\lineskip .75em
@@ -958,6 +990,10 @@
\begin{center}%
\let\footnote\thanks
{\LARGE \@title \par}%
+ \ifx\bxjs@subtitle\@undefined\else
+ \vskip3\p@?
+ {\normalsize \bxjs@subtitle\par}
+ \fi
\vskip 1.5em
{\large
\lineskip .5em
@@ -1158,6 +1194,7 @@
{\normalfont\normalsize\headfont}}
\fi
\newcommand\jsParagraphMark{\jsJaChar{■}}
+\let\jsJaChar\@empty
\if@twocolumn
\newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
{\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls
index 47ce8753aba..197e99e6fee 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls
@@ -4,7 +4,7 @@
%%
%% The original source files were:
%%
-%% bxjscls.dtx (with options: `book')
+%% bxjscls.dtx (with options: `cls,book')
%%
%% IMPORTANT NOTICE:
%%
@@ -37,9 +37,14 @@
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{bxjsbook}
- [2015/11/21 v1.0d BXJS document classes]
+ [2016/02/20 v1.1a BXJS document classes]
+%% このファイルは日本語文字を含みます
\RequirePackage{calc}
\RequirePackage{keyval}
+\IfFileExists{bxjscompat.sty}{%
+ \let\jsAtEndOfClass\@gobble
+ \RequirePackage{bxjscompat}%
+}{}
\let\jsEngine=n
\def\bxjs@test@engine#1#2{%
\edef\bxjs@tmpa{\string#1}%
@@ -66,9 +71,10 @@
\def\bxjs@robust@def{\DeclareRobustCommand*}
\fi
\newif\ifjsInPdfMode
-\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@
- \jsInPdfModetrue
-\fi\fi
+\@nameuse{ImposeOldLuaTeXBehavior}
+\RequirePackage{ifpdf}
+\@nameuse{RevokeOldLuaTeXBehavior}
+\let\ifjsInPdfMode\ifpdf
\@gobbletwo\if\if \def\bxjs@cond#1\fi{%
#1\expandafter\@firstoftwo
\else\expandafter\@secondoftwo
@@ -79,6 +85,8 @@
\let\jsSlide=s
\let\jsDocClass\jsBook
\def\bxjs@clsname{bxjsbook}
+\def\jsAtEndOfClass{%
+ \expandafter\g@addto@macro\csname\bxjs@clsname.cls-h@@k\endcsname}
\@onlypreamble\bxjs@restore@jltrcc
\let\bxjs@restore@jltrcc\@empty
\if l\jsEngine
@@ -252,6 +260,12 @@
\else \@tempdimb=\@tempcntb\@ne \fi}%
\xdef\bxjs@gtmpa{\the\@tempdimb}%
\egroup #1=\bxjs@gtmpa\relax}
+\let\bxjs@composite@proc\relax
+\DeclareOption{pandoc}{%
+ \def\bxjs@composite@proc{%
+ \setkeys{bxjs}{ja=pandoc}%
+ \let\bxjs@engine@given=*}%
+ \def\bxjs@driver@opt{dvipdfmx-if-dvi}}
\DeclareOption{autodetect-engine}{%
\let\bxjs@engine@given=*}
\DeclareOption{latex}{%
@@ -346,7 +360,8 @@
\define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}}
\let\bxjs@jadriver\relax
\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}}
-\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}}
+\define@key{bxjs}{ja}[\relax]{%
+ \ifx\relax#1\else\edef\bxjs@jadriver{#1}\fi}
\let\jsJaFont\@empty
\define@key{bxjs}{jafont}{\edef\jsJaFont{#1}}
\let\jsJaParam\@empty
@@ -371,6 +386,7 @@
\fi}
\ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final}
\ProcessOptions\relax
+\bxjs@composite@proc
\@onlypreamble\bxjs@purge@brace@elts
\def\bxjs@purge@brace@elts{%
\def\bxjs@tmpa{\@gobble}%
@@ -405,6 +421,11 @@
\fi\fi
\ifx *\bxjs@engine@given
\let\bxjs@engine@given\bxjs@tmpb
+ \ifx j\bxjs@engine@given
+ \g@addto@macro\@classoptionslist{,platex}
+ \else\ifx u\bxjs@engine@given
+ \g@addto@macro\@classoptionslist{,uplatex}
+ \fi\fi
\fi
\ifx\bxjs@engine@given\@undefined\else
\ifx\bxjs@engine@given\bxjs@tmpb\else
@@ -777,7 +798,9 @@
\fi
\edef\bxjs@nxt{%
\noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}}
+\AtBeginDocument{\ImposeOldLuaTeXBehavior}
\bxjs@nxt \bxjs@revert
+\AtBeginDocument{\RevokeOldLuaTeXBehavior}
\bxjs@postproc@layout
\def\setpagelayout{\@ifstar
{\bxjs@reset@layout}{\bxjs@modify@layout}}
@@ -863,6 +886,7 @@
\let\chaptermark\@gobble
\let\sectionmark\@gobble
}
+\newcommand*{\subtitle}[1]{\gdef\bxjs@subtitle{#1}}
\def\plainifnotempty{%
\ifx \@oddhead \@empty
\ifx \@oddfoot \@empty
@@ -887,6 +911,10 @@
{\maybeblue\hrule height0\p@? depth2\p@?\relax}\par
\smallskip
\@title
+ \ifx\bxjs@subtitle\@undefined\else
+ \par\vskip\z@
+ {\small \bxjs@subtitle\par}
+ \fi
\smallskip
{\maybeblue\hrule height0\p@? depth2\p@?\relax}\par
\vfill
@@ -896,6 +924,10 @@
\vskip 60\p@?
\begin{center}%
{\LARGE \@title \par}%
+ \ifx\bxjs@subtitle\@undefined\else
+ \vskip5\p@?
+ {\normalsize \bxjs@subtitle\par}
+ \fi
\vskip 3em%
{\large
\lineskip .75em
@@ -961,6 +993,10 @@
\begin{center}%
\let\footnote\thanks
{\LARGE \@title \par}%
+ \ifx\bxjs@subtitle\@undefined\else
+ \vskip3\p@?
+ {\normalsize \bxjs@subtitle\par}
+ \fi
\vskip 1.5em
{\large
\lineskip .5em
@@ -1251,6 +1287,7 @@
{\normalfont\normalsize\headfont}}
\fi
\newcommand\jsParagraphMark{\jsJaChar{■}}
+\let\jsJaChar\@empty
\if@twocolumn
\newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
{\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty b/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty
new file mode 100644
index 00000000000..bbbbdfc70f3
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty
@@ -0,0 +1,347 @@
+%%
+%% This is file `bxjscjkcat.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% bxjscls.dtx (with options: `anc,cjkcat')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from bxjscjkcat.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file bxjscls.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\ProvidesPackage{bxjscjkcat}
+ [2016/02/20 v1.1a BXJS document classes]
+\def\bxjx@pkgname{bxjscjkcat}
+\newcount\bxjx@cnta
+\let\bxjx@engine=n
+\def\bxjx@do#1#2{%
+ \edef\bxjx@tmpa{\string#1}%
+ \edef\bxjx@tmpb{\meaning#1}%
+ \ifx\bxjx@tmpa\bxjx@tmpb #2\fi}
+\bxjx@do\kanjiskip{\let\bxjx@engine=j}
+\bxjx@do\enablecjktoken{\let\bxjx@engine=u}
+\bxjx@do\XeTeXversion{\let\bxjx@engine=x}
+\bxjx@do\pdftexversion{\let\bxjx@engine=p}
+\bxjx@do\luatexversion{\let\bxjx@engine=l}
+\def\bxjx@do#1#2{%
+ \if#1\bxjx@engine
+ \@ifpackageloaded{#2}{}{%else
+ \PackageError\bxjx@pkgname
+ {Package '#2' must be loaded}%
+ {Package loading is aborted.\MessageBreak\@ehc}%
+ \endinput}
+ \fi}
+\bxjx@do{p}{bxcjkjatype}
+\bxjx@do{x}{xeCJK}
+\bxjx@do{l}{luatexja}
+\ifx\TextOrMath\@undefined
+ \RequirePackage{fixltx2e}
+\fi
+\if u\bxjx@engine
+\@for\bxjx@x:={%
+0080,0100,0180,0250,02B0,0300,0500,0530,0590,0600,%
+0700,0750,0780,07C0,0800,0840,08A0,0900,0980,0A00,%
+0A80,0B00,0B80,0C00,0C80,0D00,0D80,0E00,0E80,0F00,%
+1000,10A0,1200,1380,13A0,1400,1680,16A0,1700,1720,%
+1740,1760,1780,1800,18B0,1900,1950,1980,19E0,1A00,%
+1A20,1AB0,1B00,1B80,1BC0,1C00,1C50,1CC0,1CD0,1D00,%
+1D80,1DC0,1E00,2440,27C0,27F0,2800,2A00,2C00,2C60,%
+2C80,2D00,2D30,2D80,2DE0,2E00,4DC0,A4D0,A500,A640,%
+A6A0,A700,A720,A800,A830,A840,A880,A8E0,A900,A930,%
+A980,A9E0,AA00,AA60,AA80,AAE0,AB00,AB30,AB70,ABC0,%
+D800,DB80,DC00,E000,FB00,FB50,FE00,FE70,%
+10000,10080,10100,10140,10190,101D0,10280,102A0,%
+102E0,10300,10330,10350,10380,103A0,10400,10450,%
+10480,10500,10530,10600,10800,10840,10860,10880,%
+108E0,10900,10920,10980,109A0,10A00,10A60,10A80,%
+10AC0,10B00,10B40,10B60,10B80,10C00,10C80,10E60,%
+11000,11080,110D0,11100,11150,11180,111E0,11200,%
+11280,112B0,11300,11480,11580,11600,11680,11700,%
+118A0,11AC0,12000,12400,12480,13000,14400,16800,%
+16A40,16AD0,16B00,16F00,1BC00,1BCA0,1D000,1D100,%
+1D200,1D300,1D360,1D400,1D800,1E800,1EE00,1F000,%
+1F030,1F0A0,1F100,1F200,1F300,1F600,1F650,1F680,%
+1F700,1F780,1F800,1F900,E0000,F0000,100000%
+}\do{\kcatcode"\bxjx@x=15 }
+\fi
+\def\bxjx@grkcyr@list{%
+\do{0391}{LGR}{\textAlpha}{A}% % GR. C. L. ALPHA
+\do{0392}{LGR}{\textBeta}{B}% % GR. C. L. BETA
+\do{0393}{LGR}{\textGamma}{\Gamma}% % GR. C. L. GAMMA
+\do{0394}{LGR}{\textDelta}{\Delta}% % GR. C. L. DELTA
+\do{0395}{LGR}{\textEpsilon}{E}% % GR. C. L. EPSILON
+\do{0396}{LGR}{\textZeta}{Z}% % GR. C. L. ZETA
+\do{0397}{LGR}{\textEta}{H}% % GR. C. L. ETA
+\do{0398}{LGR}{\textTheta}{\Theta}% % GR. C. L. THETA
+\do{0399}{LGR}{\textIota}{I}% % GR. C. L. IOTA
+\do{039A}{LGR}{\textKappa}{K}% % GR. C. L. KAPPA
+\do{039B}{LGR}{\textLambda}{\Lambda}% % GR. C. L. LAMDA
+\do{039C}{LGR}{\textMu}{M}% % GR. C. L. MU
+\do{039D}{LGR}{\textNu}{N}% % GR. C. L. NU
+\do{039E}{LGR}{\textXi}{\Xi}% % GR. C. L. XI
+\do{039F}{LGR}{\textOmicron}{O}% % GR. C. L. OMICRON
+\do{03A0}{LGR}{\textPi}{\Pi}% % GR. C. L. PI
+\do{03A1}{LGR}{\textRho}{P}% % GR. C. L. RHO
+\do{03A3}{LGR}{\textSigma}{\Sigma}% % GR. C. L. SIGMA
+\do{03A4}{LGR}{\textTau}{T}% % GR. C. L. TAU
+\do{03A5}{LGR}{\textUpsilon}{\Upsilon}% % GR. C. L. UPSILON
+\do{03A6}{LGR}{\textPhi}{\Phi}% % GR. C. L. PHI
+\do{03A7}{LGR}{\textChi}{X}% % GR. C. L. CHI
+\do{03A8}{LGR}{\textPsi}{\Psi}% % GR. C. L. PSI
+\do{03A9}{LGR}{\textOmega}{\Omega}% % GR. C. L. OMEGA
+\do{03B1}{LGR}{\textalpha}{\alpha}% % GR. S. L. ALPHA
+\do{03B2}{LGR}{\textbeta}{\beta}% % GR. S. L. BETA
+\do{03B3}{LGR}{\textgamma}{\gamma}% % GR. S. L. GAMMA
+\do{03B4}{LGR}{\textdelta}{\delta}% % GR. S. L. DELTA
+\do{03B5}{LGR}{\textepsilon}{\epsilon}% % GR. S. L. EPSILON
+\do{03B6}{LGR}{\textzeta}{\zeta}% % GR. S. L. ZETA
+\do{03B7}{LGR}{\texteta}{\eta}% % GR. S. L. ETA
+\do{03B8}{LGR}{\texttheta}{\theta}% % GR. S. L. THETA
+\do{03B9}{LGR}{\textiota}{\iota}% % GR. S. L. IOTA
+\do{03BA}{LGR}{\textkappa}{\kappa}% % GR. S. L. KAPPA
+\do{03BB}{LGR}{\textlambda}{\lambda}% % GR. S. L. LAMDA
+\do{03BC}{LGR}{\textmu}{\mu}% % GR. S. L. MU
+\do{03BD}{LGR}{\textnu}{\nu}% % GR. S. L. NU
+\do{03BE}{LGR}{\textxi}{\xi}% % GR. S. L. XI
+\do{03BF}{LGR}{\textomicron}{o}% % GR. S. L. OMICRON
+\do{03C0}{LGR}{\textpi}{\pi}% % GR. S. L. PI
+\do{03C1}{LGR}{\textrho}{\rho}% % GR. S. L. RHO
+\do{03C2}{LGR}{\textvarsigma}{\varsigma}% % GR. S. L. FINAL SIGMA
+\do{03C3}{LGR}{\textsigma}{\sigma}% % GR. S. L. SIGMA
+\do{03C4}{LGR}{\texttau}{\tau}% % GR. S. L. TAU
+\do{03C5}{LGR}{\textupsilon}{\upsilon}% % GR. S. L. UPSILON
+\do{03C6}{LGR}{\textphi}{\phi}% % GR. S. L. PHI
+\do{03C7}{LGR}{\textchi}{\chi}% % GR. S. L. CHI
+\do{03C8}{LGR}{\textpsi}{\psi}% % GR. S. L. PSI
+\do{03C9}{LGR}{\textomega}{\omega}% % GR. S. L. OMEGA
+\do{0401}{T2A}{\CYRYO}{}% % CY. C. L. IO
+\do{0410}{T2A}{\CYRA}{}% % CY. C. L. A
+\do{0411}{T2A}{\CYRB}{}% % CY. C. L. BE
+\do{0412}{T2A}{\CYRV}{}% % CY. C. L. VE
+\do{0413}{T2A}{\CYRG}{}% % CY. C. L. GHE
+\do{0414}{T2A}{\CYRD}{}% % CY. C. L. DE
+\do{0415}{T2A}{\CYRE}{}% % CY. C. L. IE
+\do{0416}{T2A}{\CYRZH}{}% % CY. C. L. ZHE
+\do{0417}{T2A}{\CYRZ}{}% % CY. C. L. ZE
+\do{0418}{T2A}{\CYRI}{}% % CY. C. L. I
+\do{0419}{T2A}{\CYRISHRT}{}% % CY. C. L. SHORT I
+\do{041A}{T2A}{\CYRK}{}% % CY. C. L. KA
+\do{041B}{T2A}{\CYRL}{}% % CY. C. L. EL
+\do{041C}{T2A}{\CYRM}{}% % CY. C. L. EM
+\do{041D}{T2A}{\CYRN}{}% % CY. C. L. EN
+\do{041E}{T2A}{\CYRO}{}% % CY. C. L. O
+\do{041F}{T2A}{\CYRP}{}% % CY. C. L. PE
+\do{0420}{T2A}{\CYRR}{}% % CY. C. L. ER
+\do{0421}{T2A}{\CYRS}{}% % CY. C. L. ES
+\do{0422}{T2A}{\CYRT}{}% % CY. C. L. TE
+\do{0423}{T2A}{\CYRU}{}% % CY. C. L. U
+\do{0424}{T2A}{\CYRF}{}% % CY. C. L. EF
+\do{0425}{T2A}{\CYRH}{}% % CY. C. L. HA
+\do{0426}{T2A}{\CYRC}{}% % CY. C. L. TSE
+\do{0427}{T2A}{\CYRCH}{}% % CY. C. L. CHE
+\do{0428}{T2A}{\CYRSH}{}% % CY. C. L. SHA
+\do{0429}{T2A}{\CYRSHCH}{}% % CY. C. L. SHCHA
+\do{042A}{T2A}{\CYRHRDSN}{}% % CY. C. L. HARD SIGN
+\do{042B}{T2A}{\CYRERY}{}% % CY. C. L. YERU
+\do{042C}{T2A}{\CYRSFTSN}{}% % CY. C. L. SOFT SIGN
+\do{042D}{T2A}{\CYREREV}{}% % CY. C. L. E
+\do{042E}{T2A}{\CYRYU}{}% % CY. C. L. YU
+\do{042F}{T2A}{\CYRYA}{}% % CY. C. L. YA
+\do{0430}{T2A}{\cyra}{}% % CY. S. L. A
+\do{0431}{T2A}{\cyrb}{}% % CY. S. L. BE
+\do{0432}{T2A}{\cyrv}{}% % CY. S. L. VE
+\do{0433}{T2A}{\cyrg}{}% % CY. S. L. GHE
+\do{0434}{T2A}{\cyrd}{}% % CY. S. L. DE
+\do{0435}{T2A}{\cyre}{}% % CY. S. L. IE
+\do{0436}{T2A}{\cyrzh}{}% % CY. S. L. ZHE
+\do{0437}{T2A}{\cyrz}{}% % CY. S. L. ZE
+\do{0438}{T2A}{\cyri}{}% % CY. S. L. I
+\do{0439}{T2A}{\cyrishrt}{}% % CY. S. L. SHORT I
+\do{043A}{T2A}{\cyrk}{}% % CY. S. L. KA
+\do{043B}{T2A}{\cyrl}{}% % CY. S. L. EL
+\do{043C}{T2A}{\cyrm}{}% % CY. S. L. EM
+\do{043D}{T2A}{\cyrn}{}% % CY. S. L. EN
+\do{043E}{T2A}{\cyro}{}% % CY. S. L. O
+\do{043F}{T2A}{\cyrp}{}% % CY. S. L. PE
+\do{0440}{T2A}{\cyrr}{}% % CY. S. L. ER
+\do{0441}{T2A}{\cyrs}{}% % CY. S. L. ES
+\do{0442}{T2A}{\cyrt}{}% % CY. S. L. TE
+\do{0443}{T2A}{\cyru}{}% % CY. S. L. U
+\do{0444}{T2A}{\cyrf}{}% % CY. S. L. EF
+\do{0445}{T2A}{\cyrh}{}% % CY. S. L. HA
+\do{0446}{T2A}{\cyrc}{}% % CY. S. L. TSE
+\do{0447}{T2A}{\cyrch}{}% % CY. S. L. CHE
+\do{0448}{T2A}{\cyrsh}{}% % CY. S. L. SHA
+\do{0449}{T2A}{\cyrshch}{}% % CY. S. L. SHCHA
+\do{044A}{T2A}{\cyrhrdsn}{}% % CY. S. L. HARD SIGN
+\do{044B}{T2A}{\cyrery}{}% % CY. S. L. YERU
+\do{044C}{T2A}{\cyrsftsn}{}% % CY. S. L. SOFT SIGN
+\do{044D}{T2A}{\cyrerev}{}% % CY. S. L. E
+\do{044E}{T2A}{\cyryu}{}% % CY. S. L. YU
+\do{044F}{T2A}{\cyrya}{}% % CY. S. L. YA
+\do{0451}{T2A}{\cyryo}{}% % CY. S. L. IO
+\do{00A7}{TS1}{\textsection}{\mathsection}% SECTION SYMBOL
+\do{00A8}{TS1}{\textasciidieresis}{}% % DIAERESIS
+\do{00B0}{TS1}{\textdegree}{\mathdegree}% % DEGREE SIGN
+\do{00B1}{TS1}{\textpm}{\pm}% % PLUS-MINUS SIGN
+\do{00B4}{TS1}{\textasciiacute}{}% % ACUTE ACCENT
+\do{00B6}{TS1}{\textparagraph}{\mathparagraph}% PILCROW SIGN
+\do{00D7}{TS1}{\texttimes}{\times}% % MULTIPLICATION SIGN
+\do{00F7}{TS1}{\textdiv}{\div}% % DIVISION SIGN
+}
+\providecommand*{\mathdegree}{{}^{\circ}}
+\newif\ifbxjx@gcc@cjk
+\newcommand*\greekasCJK{%
+ \bxjx@gcc@cjktrue}
+\newcommand*\nogreekasCJK{%
+ \bxjx@gcc@cjkfalse}
+\def\bxjx@do#1\relax{%
+ \def\bxjx@fake@grk##1##2{%
+ \expandafter\bxjx@fake@grk@a\meaning##2#1\@nil{##1}{##2}}%
+ \def\bxjx@fake@grk@a##1#1##2\@nil##3##4{%
+ \ifx\\##1\\%
+ \bxjx@cnta##4\divide\bxjx@cnta\@cclvi
+ \multiply\bxjx@cnta\@cclvi \advance\bxjx@cnta`##3\relax
+ \mathchar\bxjx@cnta
+ \else ##3\fi}
+}\expandafter\bxjx@do\string\mathchar\relax
+\ifnum0\if p\bxjx@engine1\fi\if u\bxjx@engine1\fi>0
+\@ifpackageloaded{inputenc}{}{%else
+ \RequirePackage[utf8]{inputenc}}
+\def\bxjx@tmpa{utf8}
+\ifx\bxjx@tmpa\inputencdoingname
+ \PackageWarningNoLine\bxjx@pkgname
+ {Input encoding changed to utf8}%
+ \inputencoding{utf8}%
+\fi
+\if u\bxjx@engine
+\kcatcode"0370=15
+\kcatcode"0400=15
+\kcatcode"0500=15
+\fi
+\def\do#1{%
+ \@tempcnta="#1\relax
+ \@tempcntb=\@tempcnta \divide\@tempcntb256
+ \expandafter\let\csname bxjx@KCR/\the\@tempcntb\endcsname=t%
+ \expandafter\bxjx@do@a\csname bxjx@KC/\the\@tempcnta\endcsname{#1}}
+\def\bxjx@do@a#1#2#3#4#5{%
+ \ifx\\#5\\%
+ \def\bxjx@tmpa{\@inmathwarn#4}%
+ \else\ifcat A\noexpand#5%
+ \edef\bxjx@tmpa{\noexpand\bxjx@fake@grk{#5}%
+ {\ifnum\uccode`#5=`#5\noexpand\Pi\else\noexpand\pi\fi}}%
+ \else \def\bxjx@tmpa{#5}%
+ \fi\fi
+ \def\bxjx@tmpb{\bxjx@do@b{#1}{#2}{#3}{#4}}%
+ \expandafter\bxjx@tmpb\expandafter{\bxjx@tmpa}}
+\if u\bxjx@engine
+\def\bxjx@do@b#1#2#3#4#5{%
+ \kchardef#1=\@tempcnta
+ \DeclareTextCommandDefault{#4}{\bxjx@ja@or@not{#1}{#3}{#4}}%
+ \DeclareUnicodeCharacter{#2}{\TextOrMath{#4}{#5}}}
+\else\if p\bxjx@engine
+\def\bxjx@do@b#1#2#3#4#5{%
+ \mathchardef#1=\@tempcnta
+ \DeclareTextCommandDefault{#4}{\bxjx@ja@or@not{\UTF{#2}}{#3}{#4}}%
+ \DeclareUnicodeCharacter{#2}{\TextOrMath{#4}{#5}}}
+\fi\fi
+\bxjx@grkcyr@list
+\let\bxjx@do@a\undefined
+\let\bxjx@do@b\undefined
+\@onlypreamble\bxjx@org@DeclareUnicodeCharacter
+\let\bxjx@org@DeclareUnicodeCharacter\DeclareUnicodeCharacter
+\@onlypreamble\bxjx@DeclareUnicodeCharacter
+\def\bxjx@DeclareUnicodeCharacter#1#2{%
+ \count@="#1\relax \bxjx@cnta\count@ \divide\bxjx@cnta256
+ \expandafter\ifx\csname bxjx@KCR/\the\bxjx@cnta\endcsname\relax
+ \bxjx@org@DeclareUnicodeCharacter{#1}{#2}%
+ \else\expandafter\ifx\csname bxjx@KC/\the\count@\endcsname\relax
+ \bxjx@org@DeclareUnicodeCharacter{#1}{#2}%
+ \else
+ \wlog{ \space\space skipped defining Unicode char U+#1}%
+ \fi\fi}
+\def\bxjx@ja@or@not#1#2#3{%
+ \ifbxjx@gcc@cjk #1%
+ \else\expandafter\ifx\csname T@#2\endcsname\relax #1%
+ \else \UseTextSymbol{#2}{#3}%
+ \fi\fi}
+\begingroup
+\toks@\expandafter{\DeclareFontEncoding@{#1}{#2}{#3}}
+\xdef\next{\def\noexpand\DeclareFontEncoding@##1##2##3{%
+ \noexpand\bxjx@swap@DUC@cmd
+ \the\toks@
+ \noexpand\bxjx@swap@DUC@cmd}}
+\endgroup\next
+\def\bxjx@swap@DUC@cmd{%
+ \let\bxjx@tmpa\DeclareUnicodeCharacter
+ \let\DeclareUnicodeCharacter\bxjx@DeclareUnicodeCharacter
+ \let\bxjx@DeclareUnicodeCharacter\bxjx@tmpa}
+\else\ifnum0\if x\bxjx@engine1\fi\if l\bxjx@engine1\fi>0
+\def\do#1{%
+ \bxjx@cnta="#1\relax
+ \begingroup
+ \lccode`~=\bxjx@cnta
+ \lowercase{\endgroup
+ \bxjx@do@a{~}}{#1}}
+\def\bxjx@do@a#1#2#3#4#5{%
+ \ifx\\#5\\\let\bxjx@tmpa\relax
+ \else\ifcat A\noexpand#5%
+ \edef\bxjx@tmpa{\noexpand\bxjx@fake@grk{#5}%
+ {\ifnum\uccode`#5=`#5\noexpand\Pi\else\noexpand\pi\fi}}%
+ \else \def\bxjx@tmpa{#5}%
+ \fi\fi
+ \ifx\bxjx@tmpa\relax\else
+ \mathcode\bxjx@cnta"8000 \let#1\bxjx@tmpa
+ \fi}
+\mathchardef\bxjx@tmpa="119
+\ifx\bxjx@tmpa\pi \bxjx@grkcyr@list \fi
+\let\bxjx@do@a\undefined
+\if l\bxjx@engine
+ \protected\def\greekasCJK{%
+ \bxjx@gcc@cjktrue
+ \ltjsetparameter{jacharrange={+2, +8}}}
+ \protected\def\nogreekasCJK{%
+ \bxjx@gcc@cjkfalse
+ \ltjsetparameter{jacharrange={-2, -8}}}
+\fi
+\if x\bxjx@engine
+ \protected\def\greekasCJK{%
+ \bxjx@gcc@cjktrue
+ \def\do##1##2##3##4{\XeTeXcharclass"##1\@ne}%
+ \bxjx@grkcyr@list}
+ \protected\def\nogreekasCJK{%
+ \bxjx@gcc@cjkfalse
+ \def\do##1##2##3##4{\XeTeXcharclass"##1\z@}%
+ \bxjx@grkcyr@list}
+\fi
+\fi\fi
+\nogreekasCJK
+\endinput
+%%
+%% End of file `bxjscjkcat.sty'.
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty b/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty
new file mode 100644
index 00000000000..6673a7f9961
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty
@@ -0,0 +1,140 @@
+%%
+%% This is file `bxjscompat.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% bxjscls.dtx (with options: `anc,compat')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from bxjscompat.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file bxjscls.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\ProvidesPackage{bxjscompat}
+ [2016/02/20 v1.1a BXJS document classes]
+\def\bxac@pkgname{bxjscompat}
+\let\bxac@engine=n
+\def\bxac@do#1#2{%
+ \edef\bxac@tmpa{\string#1}%
+ \edef\bxac@tmpb{\meaning#1}%
+ \ifx\bxac@tmpa\bxac@tmpb #2\fi}
+\bxac@do\XeTeXversion{\let\bxac@engine=x}
+\bxac@do\luatexversion{\let\bxac@engine=l}
+\ifx\jsAtEndOfClass\@undefined
+ \let\bxac@delayed@if@bxjs\@firstofone
+\else \let\bxac@delayed@if@bxjs\jsAtEndOfClass
+\fi
+\newif\ifbxac@in@old@behavior
+\let\ImposeOldLuaTeXBehavior\relax
+\let\RevokeOldLuaTeXBehavior\relax
+\ifx x\bxac@engine
+\@onlypreamble\bxac@adjust@charclass
+\bxac@delayed@if@bxjs{%
+ \@ifpackageloaded{xeCJK}{}{%else
+ \ifx\xe@alloc@intercharclass\@undefined\else
+ \ifnum\xe@alloc@intercharclass=\z@
+ \PackageInfo\bxac@pkgname
+ {Setting up interchar class for CJK...\@gobble}%
+ \InputIfFileExists{load-unicode-xetex-classes.tex}{%
+ \xe@alloc@intercharclass=3
+ }{%else
+ \PackageWarning\bxac@pkgname
+ {Cannot find file 'load-unicode-xetex-classes.tex'%
+ \@gobble}%
+ }%
+ \fi\fi
+ \ifnum\XeTeXcharclass"3041=\z@
+ \PackageInfo\bxac@pkgname
+ {Adjusting interchar class for CJK...\@gobble}%
+ \@for\bxac@x:={%
+ 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@x=\@ne}%
+ \fi
+ }%
+}
+\fi
+\ifx l\bxac@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@ob@list{%
+ \do{\let}\pdfoutput{\outputmode}%
+ \do{\let}\pdfpagewidth{\pagewidth}%
+ \do{\let}\pdfpageheight{\pageheight}%
+ \do{\protected\edef}\pdfhorigin{{\pdfvariable horigin}}%
+ \do{\protected\edef}\pdfvorigin{{\pdfvariable vorigin}}}
+\def\bxac@ob@do#1#2{\begingroup
+ \expandafter\bxac@ob@do@a\csname bxac@\string#2\endcsname{#1}#2}
+\def\bxac@ob@do@a#1#2#3#4{\endgroup
+ \ifbxac@in@old@behavior \let#1#3\relax #2#3#4\relax
+ \else \let#3#1\relax \let#1\@undefined
+ \fi}
+\protected\def\ImposeOldLuaTeXBehavior{%
+ \unless\ifbxac@in@old@behavior
+ \bxac@in@old@behaviortrue
+ \let\do\bxac@ob@do \bxac@ob@list
+ \fi}
+\protected\def\RevokeOldLuaTeXBehavior{%
+ \ifbxac@in@old@behavior
+ \bxac@in@old@behaviorfalse
+ \let\do\bxac@ob@do \bxac@ob@list
+ \fi}
+\fi
+ \ifnum\luatexversion>64 \directlua{
+ local function range(cs, ce, cc, ff)
+ if ff or not tex.getcatcode(cs) == cc then
+ local setcc = tex.setcatcode
+ for c = cs, ce do setcc(c, cc) end
+ end
+ end
+ range(0x3400, 0x4DB5, 11, false)
+ range(0x4DB5, 0x4DBF, 11, true)
+ range(0x4E00, 0x9FCC, 11, false)
+ range(0x9FCD, 0x9FFF, 11, true)
+ range(0xAC00, 0xD7A3, 11, false)
+ range(0x20000, 0x2A6D6, 11, false)
+ range(0x2A6D7, 0x2A6FF, 11, true)
+ range(0x2A700, 0x2B734, 11, false)
+ range(0x2B735, 0x2B73F, 11, true)
+ range(0x2B740, 0x2B81D, 11, false)
+ range(0x2B81E, 0x2B81F, 11, true)
+ range(0x2B820, 0x2CEA1, 11, false)
+ range(0x2CEA2, 0x2FFFD, 11, true)
+ }\fi
+\fi
+\endinput
+%%
+%% End of file `bxjscompat.sty'.
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def
index 19b07e0a31c..78964424a6e 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def
@@ -4,7 +4,7 @@
%%
%% The original source files were:
%%
-%% bxjscls.dtx (with options: `drvminimal')
+%% bxjscls.dtx (with options: `drv,minimal')
%%
%% IMPORTANT NOTICE:
%%
@@ -36,7 +36,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\ProvidesFile{bxjsja-minimal.def}
- [2015/11/21 v1.0d BXJS document classes]
+ [2016/02/20 v1.1a 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
new file mode 100644
index 00000000000..1121a109c64
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def
@@ -0,0 +1,62 @@
+%%
+%% This is file `bxjsja-modern.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% bxjscls.dtx (with options: `drv,modern')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from bxjsja-modern.def.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file bxjscls.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\ProvidesFile{bxjsja-modern.def}
+ [2016/02/20 v1.1a BXJS document classes]
+\input{bxjsja-standard.def}
+\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi=\z@
+\def\encodingdefault{T1}%
+\input{t1enc.def}%
+\fontencoding\encodingdefault\selectfont
+\fi
+\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi=\z@
+\renewcommand{\rmdefault}{lmr}
+\renewcommand{\sfdefault}{lmss}
+\renewcommand{\ttdefault}{lmtt}
+\fi
+\DeclareFontShape{OMX}{cmex}{m}{n}{%
+ <-7.5>cmex7<7.5-8.5>cmex8%
+ <8.5-9.5>cmex9<9.5->cmex10}{}%
+\expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax
+\def\cmex@opt{10}
+\ifx\@IncludeInRelease\@undefined
+\RequirePackage{fixltx2e}
+\fi
+\RequirePackage{bxjscjkcat}
+\endinput
+%%
+%% End of file `bxjsja-modern.def'.
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def
new file mode 100644
index 00000000000..6177aa0b539
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def
@@ -0,0 +1,115 @@
+%%
+%% This is file `bxjsja-pandoc.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% bxjscls.dtx (with options: `drv,pandoc')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from bxjsja-pandoc.def.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file bxjscls.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\ProvidesFile{bxjsja-pandoc.def}
+ [2016/02/20 v1.1a BXJS document classes]
+\input{bxjsja-standard.def}
+\@onlypreamble\bxjs@set@dupload@proc
+\def\bxjs@set@dupload@proc#1{%
+ \expandafter\bxjs@set@dupload@proc@a\csname bxjs@dlp/#1\endcsname}
+\@onlypreamble\bxjs@set@dupload@proc@a
+\def\bxjs@set@dupload@proc@a#1{%
+ \@onlypreamble#1\def#1##1}
+\@onlypreamble\bxjs@org@if@ptions
+\let\bxjs@org@if@ptions\@if@ptions
+\newif\ifbxjs@dlp
+\def\@if@ptions#1#2#3{%
+ \bxjs@dlpfalse
+ \def\bxjs@tmpa{#1}\def\bxjs@tmpb{\@currext}%
+ \ifx\bxjs@tmpa\bxjs@tmpb
+ \expandafter\ifx\csname bxjs@dlp/#2.#1\endcsname\relax\else
+ \bxjs@dlptrue \fi
+ \fi
+ \ifbxjs@dlp \expandafter\bxjs@do@dupload@proc
+ \else \expandafter\bxjs@org@if@ptions
+ \fi {#1}{#2}{#3}}
+\AtBeginDocument{%
+ \let\@if@ptions\bxjs@org@if@ptions}
+\@onlypreamble\bxjs@do@dupload@proc
+\def\bxjs@do@dupload@proc#1#2#3{%
+ \csname bxjs@dlp/#2.#1\endcsname{#3}%
+ \@firstoftwo}
+\def\bxjs@mark@as@loaded#1{%
+ \expandafter\bxjs@mal@a\csname ver@#1\endcsname{#1}}
+\def\bxjs@mal@a#1#2{%
+ \ifx#1\relax
+ \def#1{2001/01/01}%
+ \ClassInfo\bxjs@clsname
+ {File '#2' marked as loaded\@gobble}%
+ \fi}
+\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi>0
+\bxjs@mark@as@loaded{polyglossia.sty}
+\bxjs@set@dupload@proc{polyglossia.sty}{%
+ \ClassWarning\bxjs@clsname
+ {Loading of polyglossia is blocked}}
+\ifx\setmainlanguage\@undefined
+\newcommand*\setmainlanguage[2][]{}
+\newcommand*\setotherlanguage[2][]{%
+ \ifcat_#2_\else
+ \expandafter\let\csname #2\endcsname\@empty
+ \expandafter\let\csname end#2\endcsname\@empty
+ \expandafter\let\csname text#2\endcsname\@firstofone
+ \fi}
+\newcommand*\setotherlanguages[2][]{%
+ \@for\bxjs@tmpa:={#2}\do{%
+ \setotherlangauge{\bxjs@tmpa}}}
+\fi
+\else
+\bxjs@mark@as@loaded{babel.sty}
+\bxjs@set@dupload@proc{babel.sty}{%
+ \ClassWarning\bxjs@clsname
+ {Loading of babel is blocked}}
+\let\foreignlanguage\@secondoftwo
+\let\otherlanguage\@gobble
+\let\endotherlanguage\@empty
+\fi
+\bxjs@set@dupload@proc{geometry.sty}{%
+ \setpagelayout*{#1}}
+\if l\jsEngine
+ \bxjs@mark@as@loaded{xeCJK.sty}
+ \providecommand*{\setCJKmainfont}{\setmainjfont}
+\fi
+\ifx\@IncludeInRelease\@undefined\else
+ \bxjs@mark@as@loaded{fixltx2e.sty}
+\fi
+\if j\jsEngine
+ \bxjs@mark@as@loaded{cmap.sty}
+\fi
+\PassOptionsToPackage{verbose=silent}{microtype}
+\endinput
+%%
+%% End of file `bxjsja-pandoc.def'.
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def
index b54778b84ac..e9694decee5 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def
@@ -4,7 +4,7 @@
%%
%% The original source files were:
%%
-%% bxjscls.dtx (with options: `drvstandard')
+%% bxjscls.dtx (with options: `drv,standard')
%%
%% IMPORTANT NOTICE:
%%
@@ -36,7 +36,8 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\ProvidesFile{bxjsja-standard.def}
- [2015/11/21 v1.0d BXJS document classes]
+ [2016/02/20 v1.1a BXJS document classes]
+%% このファイルは日本語文字を含みます
\input{bxjsja-minimal.def}
\ifjsWitheTeX
\@tempdima=0.25mm
@@ -153,16 +154,17 @@
\ifx$#1$\def\bxjs@tmpa{#2}%
\else \let\bxjs@tmpa\relax
\fi}
-\def\jsJaChar#1{%
+\newcommand*\jachar[1]{%
\begingroup
\jsLetHeadChar\bxjs@tmpa{#1}%
\ifx\bxjs@tmpa\relax
\ClassWarningNoLine\bxjs@clsname
- {Illegal argument given to \string\jsJaChar}%
+ {Illegal argument given to \string\jachar}%
\else
\expandafter\bxjs@jachar\expandafter{\bxjs@tmpa}%
\fi
\endgroup}
+\let\jsJaChar\jachar
\let\bxjs@jachar\@firstofone
\PassOptionsToPackage{setpagesize=false}{hyperref}
\@onlypreamble\bxjs@fix@hyperref@unicode
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls
index 6234844f826..857671ab85f 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls
@@ -4,7 +4,7 @@
%%
%% The original source files were:
%%
-%% bxjscls.dtx (with options: `report')
+%% bxjscls.dtx (with options: `cls,report')
%%
%% IMPORTANT NOTICE:
%%
@@ -37,9 +37,14 @@
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{bxjsreport}
- [2015/11/21 v1.0d BXJS document classes]
+ [2016/02/20 v1.1a BXJS document classes]
+%% このファイルは日本語文字を含みます
\RequirePackage{calc}
\RequirePackage{keyval}
+\IfFileExists{bxjscompat.sty}{%
+ \let\jsAtEndOfClass\@gobble
+ \RequirePackage{bxjscompat}%
+}{}
\let\jsEngine=n
\def\bxjs@test@engine#1#2{%
\edef\bxjs@tmpa{\string#1}%
@@ -66,9 +71,10 @@
\def\bxjs@robust@def{\DeclareRobustCommand*}
\fi
\newif\ifjsInPdfMode
-\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@
- \jsInPdfModetrue
-\fi\fi
+\@nameuse{ImposeOldLuaTeXBehavior}
+\RequirePackage{ifpdf}
+\@nameuse{RevokeOldLuaTeXBehavior}
+\let\ifjsInPdfMode\ifpdf
\@gobbletwo\if\if \def\bxjs@cond#1\fi{%
#1\expandafter\@firstoftwo
\else\expandafter\@secondoftwo
@@ -79,6 +85,8 @@
\let\jsSlide=s
\let\jsDocClass\jsReport
\def\bxjs@clsname{bxjsreport}
+\def\jsAtEndOfClass{%
+ \expandafter\g@addto@macro\csname\bxjs@clsname.cls-h@@k\endcsname}
\@onlypreamble\bxjs@restore@jltrcc
\let\bxjs@restore@jltrcc\@empty
\if l\jsEngine
@@ -252,6 +260,12 @@
\else \@tempdimb=\@tempcntb\@ne \fi}%
\xdef\bxjs@gtmpa{\the\@tempdimb}%
\egroup #1=\bxjs@gtmpa\relax}
+\let\bxjs@composite@proc\relax
+\DeclareOption{pandoc}{%
+ \def\bxjs@composite@proc{%
+ \setkeys{bxjs}{ja=pandoc}%
+ \let\bxjs@engine@given=*}%
+ \def\bxjs@driver@opt{dvipdfmx-if-dvi}}
\DeclareOption{autodetect-engine}{%
\let\bxjs@engine@given=*}
\DeclareOption{latex}{%
@@ -346,7 +360,8 @@
\define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}}
\let\bxjs@jadriver\relax
\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}}
-\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}}
+\define@key{bxjs}{ja}[\relax]{%
+ \ifx\relax#1\else\edef\bxjs@jadriver{#1}\fi}
\let\jsJaFont\@empty
\define@key{bxjs}{jafont}{\edef\jsJaFont{#1}}
\let\jsJaParam\@empty
@@ -371,6 +386,7 @@
\fi}
\ExecuteOptions{a4paper,oneside,onecolumn,titlepage,openany,final}
\ProcessOptions\relax
+\bxjs@composite@proc
\@onlypreamble\bxjs@purge@brace@elts
\def\bxjs@purge@brace@elts{%
\def\bxjs@tmpa{\@gobble}%
@@ -405,6 +421,11 @@
\fi\fi
\ifx *\bxjs@engine@given
\let\bxjs@engine@given\bxjs@tmpb
+ \ifx j\bxjs@engine@given
+ \g@addto@macro\@classoptionslist{,platex}
+ \else\ifx u\bxjs@engine@given
+ \g@addto@macro\@classoptionslist{,uplatex}
+ \fi\fi
\fi
\ifx\bxjs@engine@given\@undefined\else
\ifx\bxjs@engine@given\bxjs@tmpb\else
@@ -773,7 +794,9 @@
\fi
\edef\bxjs@nxt{%
\noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}}
+\AtBeginDocument{\ImposeOldLuaTeXBehavior}
\bxjs@nxt \bxjs@revert
+\AtBeginDocument{\RevokeOldLuaTeXBehavior}
\bxjs@postproc@layout
\def\setpagelayout{\@ifstar
{\bxjs@reset@layout}{\bxjs@modify@layout}}
@@ -859,6 +882,7 @@
\let\chaptermark\@gobble
\let\sectionmark\@gobble
}
+\newcommand*{\subtitle}[1]{\gdef\bxjs@subtitle{#1}}
\def\plainifnotempty{%
\ifx \@oddhead \@empty
\ifx \@oddfoot \@empty
@@ -883,6 +907,10 @@
{\maybeblue\hrule height0\p@? depth2\p@?\relax}\par
\smallskip
\@title
+ \ifx\bxjs@subtitle\@undefined\else
+ \par\vskip\z@
+ {\small \bxjs@subtitle\par}
+ \fi
\smallskip
{\maybeblue\hrule height0\p@? depth2\p@?\relax}\par
\vfill
@@ -892,6 +920,10 @@
\vskip 60\p@?
\begin{center}%
{\LARGE \@title \par}%
+ \ifx\bxjs@subtitle\@undefined\else
+ \vskip5\p@?
+ {\normalsize \bxjs@subtitle\par}
+ \fi
\vskip 3em%
{\large
\lineskip .75em
@@ -957,6 +989,10 @@
\begin{center}%
\let\footnote\thanks
{\LARGE \@title \par}%
+ \ifx\bxjs@subtitle\@undefined\else
+ \vskip3\p@?
+ {\normalsize \bxjs@subtitle\par}
+ \fi
\vskip 1.5em
{\large
\lineskip .5em
@@ -1247,6 +1283,7 @@
{\normalfont\normalsize\headfont}}
\fi
\newcommand\jsParagraphMark{\jsJaChar{■}}
+\let\jsJaChar\@empty
\if@twocolumn
\newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
{\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ
diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls
index 837f91222f8..696b489399c 100644
--- a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls
+++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls
@@ -4,7 +4,7 @@
%%
%% The original source files were:
%%
-%% bxjscls.dtx (with options: `slide')
+%% bxjscls.dtx (with options: `cls,slide')
%%
%% IMPORTANT NOTICE:
%%
@@ -37,9 +37,14 @@
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{bxjsslide}
- [2015/11/21 v1.0d BXJS document classes]
+ [2016/02/20 v1.1a BXJS document classes]
+%% このファイルは日本語文字を含みます
\RequirePackage{calc}
\RequirePackage{keyval}
+\IfFileExists{bxjscompat.sty}{%
+ \let\jsAtEndOfClass\@gobble
+ \RequirePackage{bxjscompat}%
+}{}
\let\jsEngine=n
\def\bxjs@test@engine#1#2{%
\edef\bxjs@tmpa{\string#1}%
@@ -66,9 +71,10 @@
\def\bxjs@robust@def{\DeclareRobustCommand*}
\fi
\newif\ifjsInPdfMode
-\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@
- \jsInPdfModetrue
-\fi\fi
+\@nameuse{ImposeOldLuaTeXBehavior}
+\RequirePackage{ifpdf}
+\@nameuse{RevokeOldLuaTeXBehavior}
+\let\ifjsInPdfMode\ifpdf
\@gobbletwo\if\if \def\bxjs@cond#1\fi{%
#1\expandafter\@firstoftwo
\else\expandafter\@secondoftwo
@@ -79,6 +85,8 @@
\let\jsSlide=s
\let\jsDocClass\jsSlide
\def\bxjs@clsname{bxjsslide}
+\def\jsAtEndOfClass{%
+ \expandafter\g@addto@macro\csname\bxjs@clsname.cls-h@@k\endcsname}
\@onlypreamble\bxjs@restore@jltrcc
\let\bxjs@restore@jltrcc\@empty
\if l\jsEngine
@@ -248,6 +256,12 @@
\else \@tempdimb=\@tempcntb\@ne \fi}%
\xdef\bxjs@gtmpa{\the\@tempdimb}%
\egroup #1=\bxjs@gtmpa\relax}
+\let\bxjs@composite@proc\relax
+\DeclareOption{pandoc}{%
+ \def\bxjs@composite@proc{%
+ \setkeys{bxjs}{ja=pandoc}%
+ \let\bxjs@engine@given=*}%
+ \def\bxjs@driver@opt{dvipdfmx-if-dvi}}
\DeclareOption{autodetect-engine}{%
\let\bxjs@engine@given=*}
\DeclareOption{latex}{%
@@ -342,7 +356,8 @@
\define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}}
\let\bxjs@jadriver\relax
\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}}
-\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}}
+\define@key{bxjs}{ja}[\relax]{%
+ \ifx\relax#1\else\edef\bxjs@jadriver{#1}\fi}
\let\jsJaFont\@empty
\define@key{bxjs}{jafont}{\edef\jsJaFont{#1}}
\let\jsJaParam\@empty
@@ -367,6 +382,7 @@
\fi}
\ExecuteOptions{36pt,a4paper,landscape,oneside,onecolumn,titlepage,final}
\ProcessOptions\relax
+\bxjs@composite@proc
\@onlypreamble\bxjs@purge@brace@elts
\def\bxjs@purge@brace@elts{%
\def\bxjs@tmpa{\@gobble}%
@@ -401,6 +417,11 @@
\fi\fi
\ifx *\bxjs@engine@given
\let\bxjs@engine@given\bxjs@tmpb
+ \ifx j\bxjs@engine@given
+ \g@addto@macro\@classoptionslist{,platex}
+ \else\ifx u\bxjs@engine@given
+ \g@addto@macro\@classoptionslist{,uplatex}
+ \fi\fi
\fi
\ifx\bxjs@engine@given\@undefined\else
\ifx\bxjs@engine@given\bxjs@tmpb\else
@@ -767,7 +788,9 @@
\fi
\edef\bxjs@nxt{%
\noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}}
+\AtBeginDocument{\ImposeOldLuaTeXBehavior}
\bxjs@nxt \bxjs@revert
+\AtBeginDocument{\RevokeOldLuaTeXBehavior}
\bxjs@postproc@layout
\def\setpagelayout{\@ifstar
{\bxjs@reset@layout}{\bxjs@modify@layout}}
@@ -858,6 +881,7 @@
\let\sectionmark\@gobble
\let\subsectionmark\@gobble
}
+\newcommand*{\subtitle}[1]{\gdef\bxjs@subtitle{#1}}
\def\plainifnotempty{%
\ifx \@oddhead \@empty
\ifx \@oddfoot \@empty
@@ -882,6 +906,10 @@
{\maybeblue\hrule height0\p@? depth2\p@?\relax}\par
\smallskip
\@title
+ \ifx\bxjs@subtitle\@undefined\else
+ \par\vskip\z@
+ {\small \bxjs@subtitle\par}
+ \fi
\smallskip
{\maybeblue\hrule height0\p@? depth2\p@?\relax}\par
\vfill
@@ -891,6 +919,10 @@
\vskip 60\p@?
\begin{center}%
{\LARGE \@title \par}%
+ \ifx\bxjs@subtitle\@undefined\else
+ \vskip5\p@?
+ {\normalsize \bxjs@subtitle\par}
+ \fi
\vskip 3em%
{\large
\lineskip .75em
@@ -956,6 +988,10 @@
\begin{center}%
\let\footnote\thanks
{\LARGE \@title \par}%
+ \ifx\bxjs@subtitle\@undefined\else
+ \vskip3\p@?
+ {\normalsize \bxjs@subtitle\par}
+ \fi
\vskip 1.5em
{\large
\lineskip .5em
@@ -1156,6 +1192,7 @@
{\normalfont\normalsize\headfont}}
\fi
\newcommand\jsParagraphMark{\jsJaChar{■}}
+\let\jsJaChar\@empty
\if@twocolumn
\newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
{\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ