texlive[41878] Master/texmf-dist: bxjscls (17aug16)

commits+karl at tug.org commits+karl at tug.org
Wed Aug 17 23:34:51 CEST 2016


Revision: 41878
          http://tug.org/svn/texlive?view=revision&revision=41878
Author:   karl
Date:     2016-08-17 23:34:51 +0200 (Wed, 17 Aug 2016)
Log Message:
-----------
bxjscls (17aug16)

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

Modified: trunk/Master/texmf-dist/doc/latex/bxjscls/README-ja.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/bxjscls/README-ja.md	2016-08-17 21:34:35 UTC (rev 41877)
+++ trunk/Master/texmf-dist/doc/latex/bxjscls/README-ja.md	2016-08-17 21:34:51 UTC (rev 41878)
@@ -97,6 +97,10 @@
 更新履歴
 --------
 
+  * Version 1.2a 〈2016/08/17〉
+      - fancyhdr パッケージに対する調整を入れた。
+      - `fancyhdr`、`textwidth-limit`、`paragraph-mark` オプションを新設。
+      - `\ascpt` 命令を新設した。
   * Version 1.2  〈2016/08/01〉
       - `geometry` オプションを新設した。
       - `dvi` オプションを新設した。

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

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

Modified: trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex	2016-08-17 21:34:35 UTC (rev 41877)
+++ trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex	2016-08-17 21:34:51 UTC (rev 41878)
@@ -12,15 +12,13 @@
   \renewcommand*{\XeLaTeX}{XeLaTeX}}
 \usepackage{shortvrb}
 \MakeShortVerb{\|}
-\newcommand{\PkgVersion}{1.2}
-\newcommand{\PkgDate}{2016/08/01}
+\newcommand{\PkgVersion}{1.2a}
+\newcommand{\PkgDate}{2016/08/16}
 \newcommand{\Pkg}[1]{\textsf{#1}}
 \newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
 \newcommand{\Note}{\par\noindent ※}
 \newcommand{\Means}{:\ }
 \newcommand{\jemph}{\textsf}
-\newcommand{\Ord}[1]{#1$^\circ$}
-\newcommand{\Prn}[1]{\<(#1)\<}
 \providecommand{\pTeX}{p\TeX}
 \providecommand{\pLaTeX}{p\LaTeX}
 \providecommand{\upTeX}{u\pTeX}
@@ -40,9 +38,6 @@
 %===========================================================
 \section*{注意}
 
-% 1.2で文言削除予定
-このマニュアルは\textgt{暫定版}であり、内容に不完全な点がある。
-
 BXJS文書クラスについては、“{\TeX} Wiki”中の記事、
 \footnote{\url{https://texwiki.texjp.org/?BXjscls}}%
 およびそこからたどれるサイトにある情報も併せて参照してほしい。
@@ -727,6 +722,28 @@
 \item |nooldfontcommands|(既定)\Means
   “二文字フォント命令”の使用に対して警告を出す。
   詳細については\ref{sec:Old-font-commands}節を参照されたい。
+\item |fancyhdr=|\Meta{真偽値}%
+\footnote{真偽値は |true|(真)または |false|(偽)で指定する。}\Means
+  \Pkg{fancyhdr}パッケージの機能に対する補正を行うか。
+  真の場合、以下の補正が行われる。既定値は真。
+  \begin{itemize}
+  \item ヘッダ・フッタ書式の既定値に含まれる“二文字フォント命令”
+    を除去する。
+  \item \Pkg{bxjsbook}クラスでヘッダ・フッタの横幅を(|\textwidth|
+    ではなく)|\fullwidth| に一致させる。
+  \end{itemize}
+\item |textwidth-limit=|\Meta{整数}\Means
+  \Pkg{bxjsbook}クラスにおける、|\textwidth| の上限の長さ
+  (全角単位)。%
+  \footnote{つまり、\Pkg{bxjsbook}クラスにおいては、\Pkg{geometry}で
+    指定する“width”の値は |\fullwidth| の値と見なされ、それが
+    このオプションで指定する上限値を超えている場合は、|\textwidth|
+    は上限値になる。
+    この場合の本文領域の配置の様式は\Pkg{jsbook}クラスと同様である。} %
+  既定値は40。
+\item |paragraph-mark=|\Meta{文字1つ}\Means
+  パラグラフ(|\paragraph|)の見出し先頭に付く記号。
+  既定値は“■”。
 \end{itemize}
 
 %-------------------
@@ -977,14 +994,16 @@
 用いて次の手順で行っている。 
 
 \begin{enumerate}
-\item[\Ord{1}]
+\item
   (基底フォントサイズにより決定されたmag値を実際に設定する。)
-\item[\Ord{2}]
+\item
   \Pkg{geometry}で次のパラメタを設定する。
+  \label{itm:pl-param}
   \begin{enumerate}
-  \item[\Prn{a}]
+  \item
     クラスオプションで指定された用紙サイズ、および|truedimen|。
-  \item[\Prn{ii}]
+    \label{itm:pl-parama}
+  \item
     \Pkg{bxjsarticle}/\Pkg{bxjsreport}の場合は次のパラメタ値。 
 \begin{quote}\small\begin{verbatim}
 headheight=10pt, footskip=0.03367\paperheight,
@@ -991,13 +1010,19 @@
 headsep=\footskip-\topskip, includeheadfoot,
 hscale=0.76, hmarginratio=1:1, vscale=0.83, vmarginratio=1:1
 \end{verbatim}\end{quote}
-  \item[\Prn{iii}]
-    \Pkg{bxjsbook}の場合は次のパラメタ値。
+  \item
+    \Pkg{bxjsbook}の場合は次のパラメタ値。%
+    \footnote{この設定の中の“|hmargin=36mm,| |hmarginratio=1:1|”の
+      部分は実は不適切で、\Pkg{jsbook}のレイアウトと同様にするには
+      “|hmargin=18mm|”としなければならない。
+      これは近い将来の版(多分1.3版)で修正される予定である。
+      現在の版においても、クラスオプションに |layout=v2| を指定する
+      ことで“修正後”の設定を適用できる。}
 \begin{quote}\small\begin{verbatim}
 headheight=10pt, headsep=6mm, nofoot, includeheadfoot,
 hmargin=36mm, hmarginratio=1:1, vscale=0.83, vmarginratio=1:1
 \end{verbatim}\end{quote}
-  \item[\Prn{iv}]
+  \item
     \Pkg{bxjsslide}の場合は次のパラメタ値。
 \begin{quote}\small\begin{verbatim}
 noheadfoot, hscale=0.9, hmarginratio=1:1,
@@ -1004,8 +1029,9 @@
 vscale=0.944, vmarginratio=1:1
 \end{verbatim}\end{quote}
   \end{enumerate}
-\item[\Ord{3}]
+\item
   後処理を行う。
+  \label{itm:pl-post}%
   以下の処理が含まれる。
   \begin{itemize}
   \item |textwidth| を全角幅の整数倍に、|textheight| を整数行分の
@@ -1020,15 +1046,16 @@
   現在のページレイアウトの設定の一部を修正する。
   \Meta{設定}は\Pkg{geometry}のパラメタの記述であり、
   現在の設定に追記して\Pkg{geometry}が再設定を行った後、
-  再び\Ord{3}の後処理が行われる。
+  再び\ref{itm:pl-post}の後処理が行われる。
 \item |\setpagelayout*{|\Meta{設定}|}|\Means
   用紙以外の設定をリセットして改めてページレイアウトの設定を行う。
-  具体的には、\Ord{2}の\Prn{i}と\Meta{設定}の内容を用いて
-  \Pkg{geometry}が再設定を行った後、再び\Ord{3}の後処理が行われる。
+  具体的には、\ref{itm:pl-parama}と\Meta{設定}の
+  内容を用いて\Pkg{geometry}が再設定を行った後、
+  再び\ref{itm:pl-post}の後処理が行われる。
 \end{itemize}
 
 なお、|\geometry| 命令を直接呼び出すことも可能である。
-当然この場合は\Ord{3}の後処理は行われない。
+当然この場合は\ref{itm:pl-post}の後処理は行われない。
 
 %-------------------
 \subsection{構造マークアップ関連}
@@ -1087,6 +1114,10 @@
   \footnote{命令名は“anti-scaled Q”の略。}%
   例えば、|\fontsize{10\ascQ}{16\trueH}|
   で和文のサイズが10\,Qになる。
+\item |\ascpt|\Means
+  1\,true\,ptを和文スケール値で割った長さ。
+  例えば、|\fontsize{9\ascpt}{13truept}|
+  で和文のサイズが9ポイントになる。
 \item |\setxkanjiskip{|\Meta{長さ}|}|\Means
   和欧文間空白の量を指定する。
   {\pLaTeX}での |\setlength{\xkanjiskip}{|\Meta{長さ}|}| に相当する。
@@ -1230,8 +1261,49 @@
   端末に表示されることは一切無い。
 \end{itemize}
 
+%===========================================================
+\end{document}
 
+%===========================================================
+\appendix
+\section{パッケージレベル公開命令の一覧}
 
-%===========================================================
-\end{document}
+\begin{itemize}
+% \jsAtEndOfClass はBXJSの補助パッケージ専用
+\item |\jsBaseFontSize|
+\item |\jsDocClass|
+  \begin{itemize}
+  \item |\jsArticle|
+  \item |\jsBook|
+  \item |\jsReport|
+  \item |\jsSlide|
+  \end{itemize}
+\item |\ifjsDraft|
+\item |\jsEngine|
+\item |\jsFontSizeChanged|
+\item |\jsGeometryOptions|
+\item |\jsInhibitGlue|
+\item |\jsInhibitGlueAtParTop|
+\item |\jsInJaParen|
+\item |\ifjsInPdfMode|
+\item |\jsJaChar|
+\item |\jsJaFont|
+\item |\jsJaParam|
+\item |\jsKanjiSkip|
+\item |\jsLetHeadChar|
+\item |\jsParagraphMark|
+\item |\jsResetDimen|
+\item |\jsScale|
+\item |\ifjsSeireki|
+\item |\jsSimpleJaSetup|
+\item |\jsSubtitle|
+\item |\jsTextWidthLimit|
+\item |\jsUnusualPtSize|
+% \jsUseMinimalPageLayout はテスト用
+\item |\ifjsWitheTeX|
+\item |\ifjsWithupTeX|
+\item |\jsXKanjiSkip|
+% \jsZw はユーザレベル命令
+\end{itemize}
+
 %% EOF

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

Modified: trunk/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx	2016-08-17 21:34:35 UTC (rev 41877)
+++ trunk/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx	2016-08-17 21:34:51 UTC (rev 41878)
@@ -70,7 +70,8 @@
 %<*driver>
 \ProvidesFile{bxjscls.dtx}
 %</driver>
-  [2016/08/01 v1.2 BXJS document classes]
+  [2016/08/16 v1.2a BXJS document classes]
+% [2016/08/01 v1.2 BXJS document classes]
 % based on jsclasses [2016/07/18]
 % [2016/07/16 v1.1f BXJS document classes]
 % based on jsclasses [2016/07/15]
@@ -99,6 +100,7 @@
 \newcommand{\TODO}{\par\noindent
   {\usefont{OT1}{cmss}{sbc}{n}\color{red}TODO:}\ }
 \newcommand{\Means}{~:\quad}
+\newcommand{\OR}{$\;|\;$}
 \newcommand{\ZRX}{☃}
 \newenvironment{ZRnote}
   {\StartZRnote}{\EndZRnote}
@@ -229,7 +231,7 @@
 % \begin{ZRnote}
 %    \begin{macrocode}
 %<*cls>
-%% このファイルは日本語文字を含みます
+%% このファイルは日本語文字を含みます.
 %    \end{macrocode}
 % 長さ値の指定で式を利用可能にするため |calc| を読み込む。
 %    \begin{macrocode}
@@ -249,15 +251,40 @@
 }{}
 %    \end{macrocode}
 %
+% \begin{macro}{\jsDocClass}
+% 〔トークン〕
+% 文書クラスの種別。
+% 以下の定値トークンの何れかと同等:
+% |\jsArticle|=bxjsarticle、
+% |\jsBook|=bxjsbook、
+% |\jsReport|=bxjsreport、
+% |\jsSlide|=bxjsslide。
+%    \begin{macrocode}
+\let\jsArticle=a
+\let\jsBook=b
+\let\jsReport=r
+\let\jsSlide=s
+%<article>\let\jsDocClass\jsArticle
+%<article>\def\bxjs at clsname{bxjsarticle}
+%<book>\let\jsDocClass\jsBook
+%<book>\def\bxjs at clsname{bxjsbook}
+%<report>\let\jsDocClass\jsReport
+%<report>\def\bxjs at clsname{bxjsreport}
+%<slide>\let\jsDocClass\jsSlide
+%<slide>\def\bxjs at clsname{bxjsslide}
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{\jsEngine}
 % 〔暗黙文字トークン〕
 % エンジン({\TeX}の種類)の種別:
-% |n|=オリジナル\TeX、
-% |j|={\pTeX}またはu{\pTeX}、
-% |J|=NTT j{\TeX}、
+% |j|={\pTeX}系、
 % |x|={\XeTeX}、
 % |p|=pdf{\TeX}(含DVIモード)、
-% |l|=Lua{\TeX}。
+% |l|=Lua{\TeX}、
+% |J|=NTT j{\TeX}、
+% |O|=Omega系、
+% |n|=以上の何れでもない。
 %
 %    \begin{macrocode}
 \let\jsEngine=n
@@ -267,6 +294,7 @@
   \ifx\bxjs at tmpa\bxjs at tmpb #2\fi}
 \bxjs at test@engine\kanjiskip{\let\jsEngine=j}
 \bxjs at test@engine\jintercharskip{\let\jsEngine=J}
+\bxjs at test@engine\Omegaversion{\let\jsEngine=O}
 \bxjs at test@engine\XeTeXversion{\let\jsEngine=x}
 \bxjs at test@engine\pdftexversion{\let\jsEngine=p}
 \bxjs at test@engine\luatexversion{\let\jsEngine=l}
@@ -285,6 +313,15 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\ifjsWithpTeXng}
+% 〔スイッチ〕
+% エンジンが{\pTeX-ng}であるか。
+%    \begin{macrocode}
+\newif\ifjsWithpTeXng
+\bxjs at test@engine\ngbanner{\jsWithpTeXngtrue}
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{\ifjsWitheTeX}
 % 〔スイッチ〕
 % エンジンが{\eTeX}拡張をもつか。
@@ -294,6 +331,21 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% 非サポートのエンジンの場合は強制終了させる。
+% \Note NTT j{\TeX}とOmega系。
+%    \begin{macrocode}
+\let\bxjs at tmpa\relax
+\ifx J\jsEngine \def\bxjs at tmpa{NTT-jTeX}\fi
+\ifx O\jsEngine \def\bxjs at tmpa{Omega}\fi
+\ifx\bxjs at tmpa\relax \expandafter\@gobble
+\else
+  \ClassError\@currname
+   {The engine in use (\bxjs at tmpa) is not supported}
+   {It's a fatal error. I'll quit right now.}
+  \expandafter\@firstofone
+\fi{\endinput\@@end}
+%    \end{macrocode}
+%
 % \begin{macro}{\bxjs at protected}
 % {\eTeX}拡張が有効な場合にのみ |\protected|
 % の効果をもつ。
@@ -332,7 +384,7 @@
 % \end{macro}
 %
 % \begin{macro}{\bxjs at cond}
-% |\bxjs at cond\ifXXX|……|\fi|\Meta{真}\Meta{偽}\par
+% |\bxjs at cond\ifXXX|……|\fi{|\Meta{真}|}{|\Meta{偽}|}|\par
 % {\TeX}のif-文(|\ifXXX|……\Meta{真}|\else|\Meta{偽}|\fi|)を
 % 末尾呼出形式に変換するためのマクロ。
 %    \begin{macrocode}
@@ -343,30 +395,6 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\jsDocClass}
-% 〔トークン〕
-% 文書クラスの種別。
-% 以下の定値トークンの何れかと同等:
-% |\jsArticle|=bxjsarticle、
-% |\jsBook|=bxjsbook、
-% |\jsReport|=bxjsreport、
-% |\jsSlide|=bxjsslide。
-%    \begin{macrocode}
-\let\jsArticle=a
-\let\jsBook=b
-\let\jsReport=r
-\let\jsSlide=s
-%<article>\let\jsDocClass\jsArticle
-%<article>\def\bxjs at clsname{bxjsarticle}
-%<book>\let\jsDocClass\jsBook
-%<book>\def\bxjs at clsname{bxjsbook}
-%<report>\let\jsDocClass\jsReport
-%<report>\def\bxjs at clsname{bxjsreport}
-%<slide>\let\jsDocClass\jsSlide
-%<slide>\def\bxjs at clsname{bxjsslide}
-%    \end{macrocode}
-% \end{macro}
-%
 % \begin{macro}{\jsAtEndOfClass}
 % このクラスの読込終了時に対するフック。
 % (補助パッケージ中で用いられる。)
@@ -540,9 +568,19 @@
 %
 %    \begin{macrocode}
 \newif\if at slide
+%    \end{macrocode}
+%
+% \begin{ZRnote}
+% BXJSではスライド用のクラス |bxjsslide| を用意しているので、
+% 本来はこのスイッチは不要なはずである。
+% しかし、JSクラスの一部のコードをそのまま使うために保持している。
+% \Note この |\if at slide| という制御綴は、ユニークでないにも関わらず、
+% 衝突した場合に正常動作が保たれない、という問題を抱えている。
+%    \begin{macrocode}
 %<!slide>\@slidefalse
 %<slide>\@slidetrue
 %    \end{macrocode}
+% \end{ZRnote}
 %
 % \paragraph{サイズオプション}
 %
@@ -619,7 +657,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% |\\ifjsc at mag| は「|\mag| を使うか」を表すスイッチ。
+% |\ifjsc at mag| は「|\mag| を使うか」を表すスイッチ。
 %    \begin{macrocode}
 \newif\ifjsc at mag
 %\let\jsc at magscale\@undefined
@@ -803,12 +841,13 @@
 % \texttt{draft} でoverfull boxの起きた行末に5ptの罫線を引きます。
 %
 % \begin{ZRnote}
+% \begin{macro}{\ifjsDraft}
 % JSクラスは |\ifdraft| という公開名のスイッチを用いているが、
 % これは |ifdraft| パッケージと衝突するので、代わりに |\ifjsDraft|
 % の名前を用い、本文開始時に |\ifdraft| が未定義の場合に限り、
 % |\ifjsDraft| を |\ifdraft| にコピーする処理にする。
-% \Note |\ifdraft| は2.0版で廃止予定。
-% \end{ZRnote}
+% \Note JSクラスの |\ifdraft| は2016/07/13版で廃止された。
+% よって |\ifdraft| は2.0版で廃止を予定する。
 %    \begin{macrocode}
 \let\ifjsDraft\iffalse
 \@onlypreamble\bxjs at draft
@@ -822,6 +861,8 @@
      \csname ifjsDraft\endcsname
   \fi}
 %    \end{macrocode}
+% \end{macro}
+% \end{ZRnote}
 %
 % \paragraph{和文フォントメトリックの選択}
 % \mbox{}
@@ -834,7 +875,10 @@
 % \begin{ZRnote}
 % |geometry| パッケージが行う。
 %
+% \begin{macro}{\ifbxjs at papersize}
+% 〔スイッチ〕 papersizeスペシャルを出力するか。
 % 既定で有効であるが、|nopapersize| オプションで無効にできる。
+% \Note JSクラスでは |\ifpapersize| という制御綴だが、これは採用しない。
 %    \begin{macrocode}
 \newif\ifbxjs at papersize
 \bxjs at papersizetrue
@@ -841,7 +885,7 @@
 \DeclareOption{nopapersize}{\bxjs at papersizefalse}
 \DeclareOption{papersize}{\bxjs at papersizetrue}
 %    \end{macrocode}
-%
+% \end{macro}
 % \end{ZRnote}
 %
 % \paragraph{英語化}
@@ -898,8 +942,16 @@
 % \item |japaram=|\meta{name} : 和文フォントパラメタの指定。
 % \item |magstyle=|\meta{name} : “版面拡大”の実現方法の選択。
 % \item |dvi=|\meta{name} : DVIモードの時のみに参照されるドライバ指定。
-% \item |geometry=|\meta{name} : |geometry| パッケージの読込を自動的に
+% \item |geometry=|\{|class|\OR|user|\} : |geometry| パッケージの読込を自動的に
 %   行うかユーザに任せるか。
+% \item |fancyhdr=|\meta{bool} : |fancyhdr| パッケージ用の調整を行うか。
+% \item |layout=|\meta{name} : レイアウト変種の指定。
+% \item |textwidth-limit=|\meta{number} : |bxjsbook| における、
+%   |\textwidth| の上限の全角単位での値。
+% \item |paragraph-mark=|\meta{char} : パラグラフのマーク。
+% \item |whole-zw-lines| : (予定)
+% \item |dummy-microtype| : (予定)
+% \item |hyperref-enc| : (予定)
 % \end{itemize}
 %
 % \begin{macro}{\bxjs at invscale}
@@ -1020,6 +1072,13 @@
 \DeclareOption{lualatex}{%
   \def\bxjs at engine@opt{lualatex}%
   \let\bxjs at engine@given=l}
+\DeclareOption{platex-ng}{%
+  \def\bxjs at engine@opt{platex-ng}%
+  \let\bxjs at engine@given=g}
+\DeclareOption{platex-ng*}{%
+  \def\bxjs at engine@opt{platex-ng*}%
+  \let\bxjs at platexng@nodrv=t%
+  \let\bxjs at engine@given=g}
 %    \end{macrocode}
 %
 % \begin{macro}{\bxjs at driver@given}
@@ -1214,6 +1273,25 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\bxjs at set@keyval}
+% |\bxjs at set@keyval{|\meta{key}|}{|\meta{value}|}{|\meta{error}|}|\par
+% |\bxjs at kv@|\meta{key}|@|\meta{value} が定義済ならそれを実行し、
+% 未定義ならエラーを出す。
+%    \begin{macrocode}
+\def\bxjs at set@keyval#1#2#3{%
+  \expandafter\let\expandafter\bxjs at next\csname bxjs at kv@#1@#2\endcsname
+  \ifx\bxjs at next\relax
+    \bxjs at error@keyval{#1}{#2}%
+    #3%
+  \else \bxjs at next
+  \fi}
+\@onlypreamble\bxjs at error@keyval
+\def\bxjs at error@keyval#1#2{%
+  \ClassError\bxjs at clsname
+   {Invalid value '#2' for option #1}\@ehc}
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{\ifbxjs at scaleset}
 % 和文スケール値が指定されたか。
 %    \begin{macrocode}
@@ -1222,10 +1300,10 @@
 % \end{macro}
 %
 % \begin{macro}{\jsScale}
-%  和文スケール値。
+% 〔実数値マクロ〕
+% 和文スケール値。
 %    \begin{macrocode}
 \def\jsScale{0.924715}
-\def\Cjascale{\jsScale}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1264,6 +1342,7 @@
 %    \end{macrocode}
 %
 % |CJK| オプションは廃止された。
+% \Note 1.3版で宣言そのものを削除する。
 %    \begin{macrocode}
 \DeclareOption{CJK}{%
   \ClassWarning\bxjs at clsname
@@ -1295,7 +1374,9 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% |ja| オプション(|jadriver| オプション)の処理。
+% |ja| オプションの処理。
+% \Note |jadriver| は0.9版で用いられた旧称。
+% \Note 単なる |ja| という指定は無視される(Pandoc 対策)。
 %    \begin{macrocode}
 \define at key{bxjs}{jadriver}{\edef\bxjs at jadriver{#1}}
 \define at key{bxjs}{ja}[\relax]{%
@@ -1347,6 +1428,9 @@
 \ifx l\jsEngine \ifnum\luatexversion>86
   \let\bxjs at magstyle@default\bxjs at magstyle@xreal
 \fi\fi
+\ifjsWithpTeXng
+  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+\fi
 \let\bxjs at magstyle\bxjs at magstyle@default
 %    \end{macrocode}
 % \end{macro}
@@ -1384,6 +1468,22 @@
   \fi}
 %    \end{macrocode}
 %
+% \begin{macro}{\ifbxjs at fancyhdr}
+% 〔スイッチ〕
+% |fancyhdr| パッケージに対する調整を行うか。
+%    \begin{macrocode}
+\newif\ifbxjs at fancyhdr \bxjs at fancyhdrtrue
+%    \end{macrocode}
+% \end{macro}
+%
+% |fancyhdr| オプションの処理。
+%    \begin{macrocode}
+\let\bxjs at kv@fancyhdr at true\bxjs at fancyhdrtrue
+\let\bxjs at kv@fancyhdr at false\bxjs at fancyhdrfalse
+\define at key{bxjs}{fancyhdr}{%
+  \bxjs at set@keyval{fancyhdr}{#1}{}}
+%    \end{macrocode}
+%
 % \begin{macro}{\ifbxjs at dvi@opt}
 % |dvi| オプションが指定されたか。
 %    \begin{macrocode}
@@ -1417,6 +1517,75 @@
   \fi}
 %    \end{macrocode}
 %
+% \begin{macro}{\ifbxjs at layout@buggyhmargin}
+% 〔スイッチ〕
+% |bxjsbook| の左右マージンがアレか。
+% \Note 既定はアレだが1.3版で非アレになる予定。
+%    \begin{macrocode}
+\newif\ifbxjs at layout@buggyhmargin \bxjs at layout@buggyhmargintrue
+%    \end{macrocode}
+% \end{macro}
+%
+% |layout| オプションの処理。
+%    \begin{macrocode}
+\@namedef{bxjs at kv@layout at v1}{%
+  \bxjs at layout@buggyhmargintrue}
+\@namedef{bxjs at kv@layout at v2}{%
+  \bxjs at layout@buggyhmarginfalse}
+\define at key{bxjs}{layout}{%
+  \bxjs at set@keyval{layout}{#1}{}}
+%    \end{macrocode}
+%
+% \begin{macro}{\bxjs at textwidth@limit}
+% |textwidth-limit| の指定値。
+% |\textwidth| の上限。
+%    \begin{macrocode}
+%\let\bxjs at textwidth@limit\@undefined
+\define at key{bxjs}{textwidth-limit}{%
+  \edef\bxjs at textwidth@limit{#1}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bxjs at paragraph@mark}
+% |paragraph-mark| の指定値。
+% パラグラフのマーク。
+%    \begin{macrocode}
+%\let\bxjs at paragraph@mark\@undefined
+\define at key{bxjs}{paragraph-mark}{%
+  \edef\bxjs at paragraph@mark{#1}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifbxjs at whole@zw at lines}
+% 〔スイッチ〕 |whole-zw-lines| の指定値。
+%    \begin{macrocode}
+\newif\ifbxjs at whole@zw at lines \bxjs at whole@zw at linestrue
+\let\bxjs at kv@wholezwlines at true\bxjs at whole@zw at linestrue
+\let\bxjs at kv@wholezwlines at false\bxjs at whole@zw at linesfalse
+\define at key{bxjs}{whole-zw-lines}{\bxjs at set@keyval{wholezwlines}{#1}{}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifbxjs at dummy@microtype}
+% 〔スイッチ〕 |dummy-microtype| の指定値。
+%    \begin{macrocode}
+\newif\ifbxjs at dummy@microtype \bxjs at dummy@microtypetrue
+\let\bxjs at kv@dummymicrotype at true\bxjs at dummy@microtypetrue
+\let\bxjs at kv@dummymicrotype at false\bxjs at dummy@microtypefalse
+\define at key{bxjs}{dummy-microtype}{\bxjs at set@keyval{dummymicrotype}{#1}{}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifbxjs at hyperref@enc}
+% 〔スイッチ〕 |hyperref-enc| の指定値。
+%    \begin{macrocode}
+\newif\ifbxjs at hyperref@enc \bxjs at hyperref@enctrue
+\let\bxjs at kv@hyperrefenc at true\bxjs at hyperref@enctrue
+\let\bxjs at kv@hyperrefenc at false\bxjs at hyperref@encfalse
+\define at key{bxjs}{hyperref-enc}{\bxjs at set@keyval{hyperrefenc}{#1}{}}
+%    \end{macrocode}
+% \end{macro}
+%
 % \end{ZRnote}
 %
 % \paragraph{オプションの実行}
@@ -1479,7 +1648,7 @@
 \bxjs at purge@brace at elts
 %    \end{macrocode}
 %
-% |papersize| と |10pt| のオプションは他のパッケージと衝突を
+% |papersize|、|10pt|、|noscale| の各オプションは他のパッケージと衝突を
 % 起こす可能性があるため、グローバルオプションから外す。
 %
 %    \begin{macrocode}
@@ -1487,6 +1656,8 @@
   {papersize}\@classoptionslist\@classoptionslist
 \@expandtwoargs\@removeelement
   {10pt}\@classoptionslist\@classoptionslist
+\@expandtwoargs\@removeelement
+  {noscale}\@classoptionslist\@classoptionslist
 %    \end{macrocode}
 %
 % 現在の(正規化前の)和文ドライバの値を\
@@ -1501,6 +1672,9 @@
 % それが実際のエンジンと一致するかを検査する。
 %    \begin{macrocode}
 \let\bxjs at tmpb\jsEngine
+\ifx j\bxjs at tmpb\ifjsWithpTeXng
+  \let\bxjs at tmpb=g
+\fi\fi
 \ifx j\bxjs at tmpb\ifjsWithupTeX
   \let\bxjs at tmpb=u
 \fi\fi
@@ -1514,7 +1688,7 @@
 \ifx *\bxjs at engine@given
   \let\bxjs at engine@given\bxjs at tmpb
 %    \end{macrocode}
-% エンジン指定が |autodetec-engine| であり、かつ実際のエンジンが
+% エンジン指定が |autodetect-engine| であり、かつ実際のエンジンが
 % {(u)\pLaTeX}だった場合は、本来のエンジンオプションを
 % グローバルオプションに加える。
 %    \begin{macrocode}
@@ -1532,6 +1706,14 @@
 \fi
 %    \end{macrocode}
 %
+% エンジンが{\pTeX-ng}の場合、グローバルオプションに |uplatex| を
+% 追加する。
+%    \begin{macrocode}
+\ifjsWithpTeXng
+  \g at addto@macro\@classoptionslist{,uplatex}
+\fi
+%    \end{macrocode}
+%
 % ドライバ指定のオプションが与えられた場合は、
 % それがエンジンと整合するかを検査する。
 %    \begin{macrocode}
@@ -1551,6 +1733,9 @@
     \else\ifx\bxjs at driver@given\bxjs at driver@@xetex
       \@tempswafalse
     \fi\fi
+    \ifjsWithpTeXng\ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx\else
+      \@tempswafalse
+    \fi\fi
   \fi\fi
 \fi
 \if at tempswa\else
@@ -1563,8 +1748,9 @@
 %    \begin{macrocode}
 \ifjsInPdfMode \@tempswafalse
 \else\ifx x\jsEngine \@tempswafalse
+\else\ifjsWithpTeXng \@tempswafalse
 \else \@tempswatrue
-\fi\fi
+\fi\fi\fi
 \if at tempswa
 %    \end{macrocode}
 % ドライバオプションがない場合は警告を出す。
@@ -1591,6 +1777,20 @@
 \fi
 %    \end{macrocode}
 %
+% エンジンが{\pTeX-ng}の場合、グローバルオプションに |dvipdfmx|
+% を追加する。
+% ただし、エンジンオプションが |platex-ng*|(|*|付)の場合、および
+% 既に |dvipdfmx| が指定されている場合を除く。
+%    \begin{macrocode}
+\ifjsWithpTeXng
+  \ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx
+    \let\bxjs at platexng@nodrv\@undefined
+  \else\ifx t\bxjs at platexng@nodrv\else
+    \g at addto@macro\@classoptionslist{,dvipdfmx}
+  \fi\fi
+\fi
+%    \end{macrocode}
+%
 % |\bxjs at jadriver| の正規化。
 % 値が未指定の場合は |minimal| に変える。
 % ただしエンジンが{(u)\pTeX}である場合は |standard|
@@ -1639,6 +1839,14 @@
 \bxjs at do@opt at jbase
 %    \end{macrocode}
 %
+% \begin{macro}{\Cjascale}
+% 和文クラス共通仕様(※ただしZR氏提唱)における、
+% 和文スケール値の変数。
+%    \begin{macrocode}
+\let\Cjascale\jsScale
+%    \end{macrocode}
+% \end{macro}
+%
 % \end{ZRnote}
 %
 % 後処理
@@ -1690,7 +1898,7 @@
 % 命令を実行する。
 %    \begin{macrocode}
 \ifbxjs at oldfontcommands
-  \jsAtEndOfClass{\allowoldfontcommands}
+  \AtEndOfClass{\allowoldfontcommands}
 \fi
 %    \end{macrocode}
 % \end{ZRnote}
@@ -1750,7 +1958,6 @@
 % 設定すべき |\mag| 値を (基底サイズ)/(10\,pt) $\times$ 1000 と算出。
 % BXJSクラスでは、|\mag| を直接指定したい場合は、|geometry| 側では
 % なくクラスのオプションで行うものとする。
-% \end{ZRnote}
 %    \begin{macrocode}
 \ifx\bxjs at param@mag\relax
   \@tempdima=\bxjs at param@basefontsize
@@ -1781,6 +1988,7 @@
 %\typeout{\string\ifjsc at mag: \meaning\ifjsc at mag}
 %\typeout{\string\ifbxjs at nfss@patch: \meaning\ifbxjs at nfss@patch}
 %    \end{macrocode}
+% \end{ZRnote}
 %
 % [2016-07-08] |\jsc at mpt| および |\jsc at mmm| に,それぞれ1ptおよび1mmを拡大させた値を格納します。
 % 以降のレイアウト指定ではこちらを使います。
@@ -1791,6 +1999,8 @@
 % その上で、|\mag| する場合は |?| を無視して |\p@| と解釈させ、
 % |\mag| しない場合は |?| を英字扱いにして |\p@?| という制御綴を
 % |\jsc at mpt| と同値にする。
+% \Note (多分2.0版あたりで)JSクラスに合わせるため |\p@?| 表記を
+% 止める予定。
 %    \begin{macrocode}
 \ifjsc at mag
   \let\jsc at mpt\p@
@@ -2141,7 +2351,6 @@
 %
 % \begin{ZRnote}
 % まず |\Cwd| 等の変数を定義する。
-% \end{ZRnote}
 %    \begin{macrocode}
 \ifx\Cht\@undefined \newdimen\Cht \fi
 \ifx\Cdp\@undefined \newdimen\Cdp \fi
@@ -2150,7 +2359,6 @@
 \ifx\Chs\@undefined \newdimen\Chs \fi
 %    \end{macrocode}
 %
-% \begin{ZRnote}
 % 規約上、現在の |\jsZw| の値が |\Cwd| である。
 % |\Cht| と |\Cdp| は単純に |\Cwd| の88\%と12\%の値とする。
 % \end{ZRnote}
@@ -2416,12 +2624,15 @@
 %
 % \subsection{ページレイアウト}
 %
-% |geometry| パッケージに任せる。
+% \begin{ZRnote}
+% BXJSではページレイアウトの処理は |geometry| パッケージが担当している。
+% \end{ZRnote}
 %
+% \paragraph{準備 \ZRX}
+% \mbox{}
 % \begin{ZRnote}
 % 現状ではここで |\mag| を設定している。\par
 % |\topskip| も指定する。
-% \end{ZRnote}
 %    \begin{macrocode}
 \ifjsc at mag
 \mag=\bxjs at param@mag
@@ -2429,10 +2640,8 @@
 \setlength{\topskip}{10\p@?}
 %    \end{macrocode}
 %
-% \begin{ZRnote}
 % |\bxjs at param@paper| が長さ指定(|{W}{H}|)の場合、
 % |geometry| の形式(|papersize={W,H}|)に変換する。
-% \end{ZRnote}
 %    \begin{macrocode}
 \def\bxjs at read@a{\futurelet\bxjs at tmpa\bxjs at read@b}
 \def\bxjs at read@b{%
@@ -2443,9 +2652,8 @@
 \expandafter\bxjs at read@a\bxjs at param@paper\@nil
 %    \end{macrocode}
 %
-% \begin{ZRnote}
-% |\bxjs at layout@paper| は |geometry| の用紙設定のオプション。
-% \end{ZRnote}
+% \begin{macro}{\bxjs at layout@paper}
+% |geometry| の用紙設定のオプション。
 %    \begin{macrocode}
 \edef\bxjs at layout@paper{%
   \ifjsc at mag truedimen,\fi
@@ -2452,12 +2660,11 @@
   \if at landscape landscape,\fi
   \bxjs at param@paper}
 %    \end{macrocode}
+% \end{macro}
 %
-%
-% \begin{ZRnote}
-% |\bxjs at layout| は |geometry| のページレイアウトのオプション
-% 列であり、文書クラス毎に異なる。
-% \end{ZRnote}
+% \begin{macro}{\bxjs at layout}
+% |geometry| のページレイアウトのオプション列。
+% 文書クラス毎に異なる。
 %    \begin{macrocode}
 %<*article|report>
 \def\bxjs at layout{%
@@ -2468,11 +2675,21 @@
 }
 %</article|report>
 %<*book>
+\ifbxjs at layout@buggyhmargin     %---
+% アレ
 \def\bxjs at layout{%
   headheight=\topskip,headsep=6\jsc at mmm,nofoot,includeheadfoot,%
   hmargin=36\jsc at mmm,hmarginratio=1:1,%
   vscale=0.83,vmarginratio=1:1,%
 }
+\else                           %---
+% 非アレ
+\def\bxjs at layout{%
+  headheight=\topskip,headsep=6\jsc at mmm,nofoot,includeheadfoot,%
+  hmargin=18\jsc at mmm,%
+  vscale=0.83,vmarginratio=1:1,%
+}
+\fi                             %---
 %</book>
 %<*slide>
 \def\bxjs at layout{%
@@ -2482,16 +2699,34 @@
 }
 %</slide>
 %    \end{macrocode}
+% \end{macro}
 %
-% \begin{ZRnote}
+% \begin{macro}{\fullwidth}
+% 〔寸法レジスタ〕
+% ヘッダ・フッタ領域の横幅。
+%    \begin{macrocode}
+\newdimen\fullwidth
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\jsTextWidthLimit}
+% 〔実数値マクロ〕
+% |bxjsbook| における、|\textwidth| の上限の全角単位での値。
+%    \begin{macrocode}
+%<*book>
+\newcommand\jsTextWidthLimit{40}
+\ifx\bxjs at textwidth@limit\@undefined\else
+  \let\c at bxjs@cnta\@tempcnta
+  \setcounter{bxjs at cnta}{\bxjs at textwidth@limit}
+  \long\edef\jsTextWidthLimit{\the\@tempcnta}
+\fi
+%</book>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bxjs at postproc@layout}
 % |geometry| の後処理。
-%
-% |\jsTextWidthLimit| は |bxjsbook| での |\textwidth| の
-% 上限で、全角単位の実数値マクロ。
-% \end{ZRnote}
 %    \begin{macrocode}
-\newdimen\fullwidth
-%<book>\newcommand\jsTextWidthLimit{40}
 \def\bxjs at postproc@layout{%
 % ドライバ再設定
   \ifx\bxjs at geometry@driver\relax\else
@@ -2534,32 +2769,31 @@
   \stockheight=\paperheight
 }
 %    \end{macrocode}
+% \end{macro}
 %
 % \begin{macro}{\jsGeometryOptions}
-% \begin{ZRnote}
 % |geometry|パッケージに渡すオプションのリスト。
 % \Note |geometry=user| 指定時にユーザが利用することを想定している。
-% \end{ZRnote}
 %    \begin{macrocode}
 \edef\jsGeometryOptions{%
   \bxjs at layout@paper,\bxjs at layout}
 %    \end{macrocode}
 % \end{macro}
+% \end{ZRnote}
 %
+% \paragraph{geometry パッケージ読込 \ZRX}
+% \mbox{}
 % \begin{ZRnote}
-% ここで|geoemtry|オプションの値に応じて分岐する。
+% |geoemtry| オプションの値に応じて分岐する。
 %
 % まずは|geometry=class|の場合。
-% \end{ZRnote}
 %    \begin{macrocode}
 \ifx\bxjs at geometry\bxjs at geometry@class
 %    \end{macrocode}
 %
-% \begin{ZRnote}
 % |geometry| は |\topskip| が標準の行高(|\ht\strutbox|)より小さくならない
 % ようにする自動調整を行うが、これをどうするかは未検討。
 % 今のところ、単純に回避(無効化)している。
-% \end{ZRnote}
 %    \begin{macrocode}
 \@onlypreamble\bxjs at revert
 \let\bxjs at revert\@empty
@@ -2567,7 +2801,7 @@
 \ht\strutbox=10\p@?
 \g at addto@macro\bxjs at revert{\ht\strutbox=\bxjs at tmpa\relax}
 %    \end{macrocode}
-% \begin{ZRnote}
+%
 % |geometry| のドライバオプション指定。
 % |nopapersize| 指定時は、special命令出力を抑止するために
 % ドライバを |none| にする。
@@ -2574,7 +2808,6 @@
 % そうでない場合は、クラスで指定したドライバオプションが引き継がれる
 % ので何もしなくてよいが、例外として、ドライバが |dvipdfmx| の
 % 時は、現状の |geometry| は |dvipdfm| を指定する必要がある。
-% \end{ZRnote}
 %    \begin{macrocode}
 \ifbxjs at papersize
   \ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx
@@ -2585,11 +2818,10 @@
   \PassOptionsToPackage{driver=none}{geometry}
 \fi
 %    \end{macrocode}
-% \begin{ZRnote}
+%
 % ここで |geometry| を読み込む。
 % \Note |geometry| のbegin-documentフックにおいて、Lua{\TeX}の
 % 旧版互換を有効にする。
-% \end{ZRnote}
 %    \begin{macrocode}
 \edef\bxjs at nxt{%
   \noexpand\RequirePackage[\bxjs at layout@paper,\bxjs at layout]{geometry}}
@@ -2598,25 +2830,25 @@
 \bxjs at nxt \bxjs at revert
 \AtBeginDocument{\RevokeOldLuaTeXBehavior}
 %    \end{macrocode}
-% \begin{ZRnote}
-% |\bxjs at geometry@driver| は |geometry| が用いるドライバの名前。
+%
+% \begin{macro}{\bxjs at geometry@driver}
+% |geometry| が用いるドライバの名前。
 % \Note この値は一度決めた後は変わってほしくないので、
 % |\bxjs at postproc@layout| において書き戻す処理を入れている。
-% \end{ZRnote}
 %    \begin{macrocode}
 \let\bxjs at geometry@driver\Gm at driver
 \bxjs at postproc@layout
 %    \end{macrocode}
+% \end{macro}
 %
 % \begin{macro}{\bxjs at pre@geometry at hook}
-% \begin{ZRnote}
 % 1.2版より、|geometry| の4.x版の使用は非推奨とする。
 % \Note 将来サポートを廃止する予定。
-% \end{ZRnote}
 %    \begin{macrocode}
 \@onlypreamble\bxjs at pre@geometry at hook
 \def\bxjs at pre@geometry at hook{%
-  \@ifpackageloaded{geometry}{\@ifpackagelater{geometry}{2010/02/12}{}{%
+  \@ifpackageloaded{geometry}{%
+    \@ifpackagelater{geometry}{2010/02/12}{}{%else
       \PackageWarningNoLine\bxjs at clsname
        {The 'geometry' package installed\MessageBreak
         is too old (< v5.0)}%
@@ -2625,11 +2857,18 @@
         \ifx\pdfhorigin\@undefined \newdimen\pdfhorigin \fi
         \ifx\pdfvorigin\@undefined \newdimen\pdfvorigin \fi
       \fi\fi
-  }}{}}
+    }%
+    \ifjsWithpTeXng
+      \ifx\Gm at driver\@empty
+        \def\Gm at driver{pdftex}%
+      \fi
+    \fi
+  }{}}
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{ZRnote}
+% \begin{macro}{\setpagelayout}
+% ページレイアウト設定のためのユーザ命令。
 % \begin{itemize}
 % \item |\setpagelayout{|\meta{text}|}| : 現在の geometry の設定の
 % 一部を修正する。
@@ -2637,7 +2876,6 @@
 % 改めて設定を行う。
 % \end{itemize}
 % どちらも設定の後で後処理 |\bxjs at postproc@layout| を実行する。
-% \end{ZRnote}
 %    \begin{macrocode}
 \def\setpagelayout{\@ifstar
   {\bxjs at reset@layout}{\bxjs at modify@layout}}
@@ -2648,23 +2886,20 @@
   \edef\bxjs at nxt{\noexpand\geometry{reset,\bxjs at layout@paper,#1,truedimen}}%
   \bxjs at nxt\bxjs at postproc@layout}
 %    \end{macrocode}
+% \end{macro}
 %
-% \begin{ZRnote}
 % |geometry=class|の場合の処理はここで終わり。
 %
 % 次に、|geometry=user|の場合の処理。
-% \end{ZRnote}
 %    \begin{macrocode}
 \else\ifx\bxjs at geometry\bxjs at geometry@user
 %    \end{macrocode}
 %
-% \begin{ZRnote}
 % この場合はユーザが何らかの方法(例えば |geometry| を読み込む)
 % でページレイアウトを設定する必要がある。
 % もし、本体開始時に |\textwidth| がカーネル設定の値(|.5\maxdimen|)
 % になっている場合はエラーを出す。
 % \Note |\jsUseMinimalPageLayout| は動作テスト用。
-% \end{ZRnote}
 %    \begin{macrocode}
 \AtBeginDocument{\bxjs at check@page at layout}
 \@onlypreamble\bxjs at check@page at layout
@@ -2679,9 +2914,7 @@
   \setlength{\textheight}{8in}}
 %    \end{macrocode}
 %
-% \begin{ZRnote}
 % |\setpagelayout| はとりあえず無効にしておく。
-% \end{ZRnote}
 %    \begin{macrocode}
 \let\bxjs at geometry@driver\relax
 \def\setpagelayout{\@ifstar
@@ -2692,14 +2925,11 @@
     because 'geometry' value is not 'class'}\@eha}
 %    \end{macrocode}
 %
-% \begin{ZRnote}
 % |geometry=user|の場合の処理はここで終わり。
-% \end{ZRnote}
 %    \begin{macrocode}
 \fi\fi
 %    \end{macrocode}
 %
-% \begin{ZRnote}
 % ここからのコードは以下の点を除いて JS クラスのものを踏襲する。
 % \begin{itemize}
 % \item zw の代わりに |\jsZw| を用いる。
@@ -3153,6 +3383,7 @@
 %
 % \begin{ZRnote}
 % \begin{macro}{\subtitle}
+% \begin{macro}{\jsSubtitle}
 % 副題を設定する。
 % \Note プレアンブルにおいて |\newcommand*{\subtitle}{...}| が
 % 行われることへの対策として、
@@ -3177,12 +3408,17 @@
   \fi}
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
+% \begin{macro}{\bxjs at annihilate@subtitle}
+% |\subtitle| 命令を無効化する。
+% \Note 独自の |\subtitle| が使われている場合は無効化しない。
 %    \begin{macrocode}
 \def\bxjs at annihilate@subtitle{%
   \ifx\subtitle\jsSubtitle \global\let\subtitle\relax \fi
   \global\let\jsSubtitle\relax}
 %    \end{macrocode}
+% \end{macro}
 %
 % \end{ZRnote}
 %
@@ -4151,6 +4387,9 @@
 % \end{ZRnote}
 %    \begin{macrocode}
 \newcommand\jsParagraphMark{\jsJaChar{■}}
+\ifx\bxjs at paragraph@mark\@undefined\else
+  \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs at paragraph@mark}}
+\fi
 \let\jsJaChar\@empty
 \if at twocolumn
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
@@ -6619,8 +6858,11 @@
 %    \begin{macrocode}
 \def\bxjs at tmpa#1/#2/#3/#4/#5\relax{%
   \def\bxjs at y{#5}}
+\ifjsWithpTeXng \def\bxjs at y{10}%
+\else
 \expandafter\expandafter\expandafter\bxjs at tmpa
  \expandafter\string\the\jfont\relax
+\fi
 \@for\bxjs at x:={\jsc at JYn/mc/m/n,\jsc at JYn/gt/m/n,%
                \jsc at JTn/mc/m/n,\jsc at JTn/gt/m/n}\do
   {\expandafter\let\csname\bxjs at x/10\endcsname=\@undefined
@@ -6875,6 +7117,7 @@
       \bxjs at do@simplejasetup
     \fi}
 \fi
+%    \end{macrocode}
 %
 % |precisetext| オプションの処理。
 %    \begin{macrocode}
@@ -6889,6 +7132,90 @@
 \fi
 %    \end{macrocode}
 %
+% \paragraph{fancyhdr対策}
+% |fancyhdr| オプションの値が |true| であり、
+% かつ |fancyhdr| が使用された場合に以下の対策を行う。
+% \begin{itemize}
+% \item デフォルトの書式設定に含まれる“二文字フォント命令”を除去する。
+% \item bxjsbookにおいて、ヘッダ・フッタの横幅を |\fullwidth| に変える。
+% \end{itemize}
+%
+%    \begin{macrocode}
+\ifbxjs at fancyhdr
+%    \end{macrocode}
+%
+% \begin{macro}{\bxjs at adjust@fancyhdr}
+% |fancyhdr| の初期設定に関する改変の処理。
+% |fancyhdr| 読込完了と |\pagestyle{fancy}| 実行の間で実行されるべき。
+%    \begin{macrocode}
+\@onlypreamble\bxjs at adjust@fancyhdr
+\def\bxjs at adjust@fancyhdr{%
+%    \end{macrocode}
+% ヘッダ・フッタの要素の書式について、それが既定のままであれば、
+% “二文字フォント命令”を除去したものに置き換える。
+% \Note 和文なので |\sl| は無い方がよいはず。
+%    \begin{macrocode}
+  \def\bxjs at tmpa{\fancyplain{}{\sl\rightmark}\strut}%
+  \def\bxjs at tmpb{\fancyplain{}{\rightmark}\strut}%
+  \ifx\f at ncyelh\bxjs at tmpa \global\let\f at ncyelh\bxjs at tmpb \fi
+  \ifx\f at ncyerh\bxjs at tmpa \global\let\f at ncyerh\bxjs at tmpb \fi
+  \ifx\f at ncyolh\bxjs at tmpa \global\let\f at ncyolh\bxjs at tmpb \fi
+  \ifx\f at ncyorh\bxjs at tmpa \global\let\f at ncyorh\bxjs at tmpb \fi
+  \def\bxjs at tmpa{\fancyplain{}{\sl\leftmark}\strut}%
+  \def\bxjs at tmpb{\fancyplain{}{\leftmark}\strut}%
+  \ifx\f at ncyelh\bxjs at tmpa \global\let\f at ncyelh\bxjs at tmpb \fi
+  \ifx\f at ncyerh\bxjs at tmpa \global\let\f at ncyerh\bxjs at tmpb \fi
+  \ifx\f at ncyolh\bxjs at tmpa \global\let\f at ncyolh\bxjs at tmpb \fi
+  \ifx\f at ncyorh\bxjs at tmpa \global\let\f at ncyorh\bxjs at tmpb \fi
+  \def\bxjs at tmpa{\rm\thepage\strut}%
+  \def\bxjs at tmpb{\thepage\strut}%
+  \ifx\f at ncyecf\bxjs at tmpa \global\let\f at ncyecf\bxjs at tmpb \fi
+  \ifx\f at ncyocf\bxjs at tmpa \global\let\f at ncyocf\bxjs at tmpb \fi
+%    \end{macrocode}
+% |\fullwidth| が(定義済で)|\textwidth| よりも大きい場合、
+% ヘッダ・フッタの横幅を |\fullwidth| に合わせる。
+%    \begin{macrocode}
+  \ifx\fullwidth\@undefined\else \ifdim\textwidth<\fullwidth
+    \setlength{\@tempdima}{\fullwidth-\textwidth}%
+    \edef\bxjs at tmpa{\noexpand\fancyhfoffset[EL,OR]{\the\@tempdima}%
+    }\bxjs at tmpa
+  \fi\fi
+  \PackageInfo\bxjs at clsname
+   {Patch to fancyhdr is applied\@gobble}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bxjs at pagestyle@hook}
+% |\pagestyle| へのフックの本体。
+%    \begin{macrocode}
+\def\bxjs at pagestyle@hook{%
+  \@ifpackageloaded{fancyhdr}{%
+    \bxjs at adjust@fancyhdr
+    \global\let\bxjs at adjust@fancyhdr\relax
+  }{}}
+%    \end{macrocode}
+% \end{macro}
+%
+% |\pagestyle| にフックを入れ込む。
+%    \begin{macrocode}
+\let\bxjs at org@pagestyle\pagestyle
+\def\pagestyle{%
+  \bxjs at pagestyle@hook \bxjs at org@pagestyle}
+%    \end{macrocode}
+%
+% begin-document フック。
+% \Note これ以降に |fancyhdr| が読み込まれることはあり得ない。
+%    \begin{macrocode}
+\AtBeginDocument{%
+  \bxjs at pagestyle@hook
+  \global\let\bxjs at pagestyle@hook\relax}
+%    \end{macrocode}
+%
+% 終わり。
+%    \begin{macrocode}
+\fi
+%    \end{macrocode}
+%
 % 以上で終わり。
 %    \begin{macrocode}
 %</minimal>
@@ -6963,12 +7290,15 @@
 % |\trueQ| と |\trueH| はともに0.25\,true\,mmに等しい。
 %    \begin{macrocode}
   \ifjsc at mag
-    \@tempdima=2.5mm
     \@tempdimb=\jsBaseFontSize\relax
     \edef\bxjs at tmpa{\strip at pt\@tempdimb}%
+    \@tempdima=2.5mm
     \bxjs at invscale\@tempdima\bxjs at tmpa
-    \edef\trueQ{\dimexpr\the\@tempdima\relax}
-  \else \let\trueQ\jQ
+    \protected\edef\trueQ{\dimexpr\the\@tempdima\relax}
+    \@tempdima=10pt
+    \bxjs at invscale\@tempdima\bxjs at tmpa
+    \protected\edef\bxjs at truept{\dimexpr\the\@tempdima\relax}
+  \else \let\trueQ\jQ \let\bxjs at truept\p@
   \fi
   \let\trueH\trueQ
 %    \end{macrocode}
@@ -6976,15 +7306,21 @@
 % \end{macro}
 %
 % \begin{macro}{\ascQ}
+% \begin{macro}{\ascpt}
 % |\ascQ| は |\trueQ| を和文スケール値で割った値。
 % 例えば、|\fontsize{12\ascQ}{16\trueH}| とすると、
 % 和文が12Qになる。
+%
+% 同様に、|\ascpt| は |truept| を和文スケールで割った値。
 %    \begin{macrocode}
   \@tempdima\trueQ \bxjs at invscale\@tempdima\jsScale
-  \edef\ascQ{\dimexpr\the\@tempdima\relax}
+  \protected\edef\ascQ{\dimexpr\the\@tempdima\relax}
+  \@tempdima\bxjs at truept \bxjs at invscale\@tempdima\jsScale
+  \protected\edef\ascpt{\dimexpr\the\@tempdima\relax}
 \fi
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % 続いて、和文間空白・和欧文間空白関連の命令を実装する。
 % (エンジン依存のコード。)
@@ -7376,7 +7712,8 @@
 %
 % |tounicode| special命令を出力する。
 %    \begin{macrocode}
-\ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx
+\if \ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx T%
+    \else\ifjsWithpTeXng T\else F\fi\fi T%
   \ifnum\jis"2121="A1A1 %euc
     \bxjs at urgent@special{pdf:tounicode EUC-UCS2}
   \else\ifnum\jis"2121="8140 %sjis

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls	2016-08-17 21:34:35 UTC (rev 41877)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls	2016-08-17 21:34:51 UTC (rev 41878)
@@ -37,8 +37,8 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsarticle}
-  [2016/08/01 v1.2 BXJS document classes]
-%% このファイルは日本語文字を含みます
+  [2016/08/16 v1.2a BXJS document classes]
+%% このファイルは日本語文字を含みます.
 \RequirePackage{calc}
 \RequirePackage{keyval}
 \IfFileExists{bxjscompat.sty}{%
@@ -45,6 +45,12 @@
   \let\jsAtEndOfClass\@gobble
   \RequirePackage{bxjscompat}%
 }{}
+\let\jsArticle=a
+\let\jsBook=b
+\let\jsReport=r
+\let\jsSlide=s
+\let\jsDocClass\jsArticle
+\def\bxjs at clsname{bxjsarticle}
 \let\jsEngine=n
 \def\bxjs at test@engine#1#2{%
   \edef\bxjs at tmpa{\string#1}%
@@ -52,6 +58,7 @@
   \ifx\bxjs at tmpa\bxjs at tmpb #2\fi}
 \bxjs at test@engine\kanjiskip{\let\jsEngine=j}
 \bxjs at test@engine\jintercharskip{\let\jsEngine=J}
+\bxjs at test@engine\Omegaversion{\let\jsEngine=O}
 \bxjs at test@engine\XeTeXversion{\let\jsEngine=x}
 \bxjs at test@engine\pdftexversion{\let\jsEngine=p}
 \bxjs at test@engine\luatexversion{\let\jsEngine=l}
@@ -60,8 +67,20 @@
   \jsWithupTeXtrue
 \fi\fi
 \let\if at jsc@uplatex\ifjsWithupTeX
+\newif\ifjsWithpTeXng
+\bxjs at test@engine\ngbanner{\jsWithpTeXngtrue}
 \newif\ifjsWitheTeX
 \bxjs at test@engine\eTeXversion{\jsWitheTeXtrue}
+\let\bxjs at tmpa\relax
+\ifx J\jsEngine \def\bxjs at tmpa{NTT-jTeX}\fi
+\ifx O\jsEngine \def\bxjs at tmpa{Omega}\fi
+\ifx\bxjs at tmpa\relax \expandafter\@gobble
+\else
+  \ClassError\@currname
+   {The engine in use (\bxjs at tmpa) is not supported}
+   {It's a fatal error. I'll quit right now.}
+  \expandafter\@firstofone
+\fi{\endinput\@@end}
 \ifjsWitheTeX \let\bxjs at protected\protected
 \else \let\bxjs at protected\@empty
 \fi
@@ -82,12 +101,6 @@
   #1\expandafter\@firstoftwo
   \else\expandafter\@secondoftwo
   \fi}
-\let\jsArticle=a
-\let\jsBook=b
-\let\jsReport=r
-\let\jsSlide=s
-\let\jsDocClass\jsArticle
-\def\bxjs at clsname{bxjsarticle}
 \def\jsAtEndOfClass{%
   \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
 \@onlypreamble\bxjs at restore@jltrcc
@@ -301,6 +314,13 @@
 \DeclareOption{lualatex}{%
   \def\bxjs at engine@opt{lualatex}%
   \let\bxjs at engine@given=l}
+\DeclareOption{platex-ng}{%
+  \def\bxjs at engine@opt{platex-ng}%
+  \let\bxjs at engine@given=g}
+\DeclareOption{platex-ng*}{%
+  \def\bxjs at engine@opt{platex-ng*}%
+  \let\bxjs at platexng@nodrv=t%
+  \let\bxjs at engine@given=g}
 \let\bxjs at driver@@dvimode=0
 \let\bxjs at driver@@dvipdfmx=1
 \let\bxjs at driver@@pdfmode=2
@@ -372,9 +392,19 @@
   \setkeys{#1}{#2}%
   \let\KV at errx\bxjs at KV@errx}
 \def\bxjs at safe@setkeys at a#1{}
+\def\bxjs at set@keyval#1#2#3{%
+  \expandafter\let\expandafter\bxjs at next\csname bxjs at kv@#1@#2\endcsname
+  \ifx\bxjs at next\relax
+    \bxjs at error@keyval{#1}{#2}%
+    #3%
+  \else \bxjs at next
+  \fi}
+\@onlypreamble\bxjs at error@keyval
+\def\bxjs at error@keyval#1#2{%
+  \ClassError\bxjs at clsname
+   {Invalid value '#2' for option #1}\@ehc}
 \newif\ifbxjs at scaleset
 \def\jsScale{0.924715}
-\def\Cjascale{\jsScale}
 \define at key{bxjs}{base}{\bxjs at setbasefontsize{#1}}
 \@onlypreamble\bxjs at do@opt at jbase
 \let\bxjs at do@opt at jbase\relax
@@ -414,6 +444,9 @@
 \ifx l\jsEngine \ifnum\luatexversion>86
   \let\bxjs at magstyle@default\bxjs at magstyle@xreal
 \fi\fi
+\ifjsWithpTeXng
+  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+\fi
 \let\bxjs at magstyle\bxjs at magstyle@default
 \define at key{bxjs}{magstyle}{%
   \expandafter\let\expandafter\bxjs at magstyle\csname
@@ -434,6 +467,11 @@
     {Invalid geometry value `#1'}\@ehc
     \let\bxjs at geometry\bxjs at geometry@class
   \fi}
+\newif\ifbxjs at fancyhdr \bxjs at fancyhdrtrue
+\let\bxjs at kv@fancyhdr at true\bxjs at fancyhdrtrue
+\let\bxjs at kv@fancyhdr at false\bxjs at fancyhdrfalse
+\define at key{bxjs}{fancyhdr}{%
+  \bxjs at set@keyval{fancyhdr}{#1}{}}
 \newif\ifbxjs at dvi@opt
 \let\bxjs at dvidriver@@dvipdfmx=\bxjs at driver@@dvipdfmx
 \let\bxjs at dvidriver@@dvips=\bxjs at driver@@dvimode
@@ -450,6 +488,29 @@
     \let\bxjs at driver@given\@undefined
     \bxjs at dvi@opttrue
   \fi}
+\newif\ifbxjs at layout@buggyhmargin \bxjs at layout@buggyhmargintrue
+\@namedef{bxjs at kv@layout at v1}{%
+  \bxjs at layout@buggyhmargintrue}
+\@namedef{bxjs at kv@layout at v2}{%
+  \bxjs at layout@buggyhmarginfalse}
+\define at key{bxjs}{layout}{%
+  \bxjs at set@keyval{layout}{#1}{}}
+\define at key{bxjs}{textwidth-limit}{%
+  \edef\bxjs at textwidth@limit{#1}}
+\define at key{bxjs}{paragraph-mark}{%
+  \edef\bxjs at paragraph@mark{#1}}
+\newif\ifbxjs at whole@zw at lines \bxjs at whole@zw at linestrue
+\let\bxjs at kv@wholezwlines at true\bxjs at whole@zw at linestrue
+\let\bxjs at kv@wholezwlines at false\bxjs at whole@zw at linesfalse
+\define at key{bxjs}{whole-zw-lines}{\bxjs at set@keyval{wholezwlines}{#1}{}}
+\newif\ifbxjs at dummy@microtype \bxjs at dummy@microtypetrue
+\let\bxjs at kv@dummymicrotype at true\bxjs at dummy@microtypetrue
+\let\bxjs at kv@dummymicrotype at false\bxjs at dummy@microtypefalse
+\define at key{bxjs}{dummy-microtype}{\bxjs at set@keyval{dummymicrotype}{#1}{}}
+\newif\ifbxjs at hyperref@enc \bxjs at hyperref@enctrue
+\let\bxjs at kv@hyperrefenc at true\bxjs at hyperref@enctrue
+\let\bxjs at kv@hyperrefenc at false\bxjs at hyperref@encfalse
+\define at key{bxjs}{hyperref-enc}{\bxjs at set@keyval{hyperrefenc}{#1}{}}
 \let\bxjs at ltx@removeelement\@removeelement
 \def\@removeelement#1#2#3{%
   \def\reserved at a{#2}%
@@ -481,10 +542,15 @@
   {papersize}\@classoptionslist\@classoptionslist
 \@expandtwoargs\@removeelement
   {10pt}\@classoptionslist\@classoptionslist
+\@expandtwoargs\@removeelement
+  {noscale}\@classoptionslist\@classoptionslist
 \ifx\bxjs at jadriver\relax\else
   \let\bxjs at jadriver@given\bxjs at jadriver
 \fi
 \let\bxjs at tmpb\jsEngine
+\ifx j\bxjs at tmpb\ifjsWithpTeXng
+  \let\bxjs at tmpb=g
+\fi\fi
 \ifx j\bxjs at tmpb\ifjsWithupTeX
   \let\bxjs at tmpb=u
 \fi\fi
@@ -505,6 +571,9 @@
     {Option `\bxjs at engine@opt' used on wrong engine}\@ehc
   \fi
 \fi
+\ifjsWithpTeXng
+  \g at addto@macro\@classoptionslist{,uplatex}
+\fi
 \@tempswatrue
 \ifx \bxjs at driver@given\@undefined\else
   \ifjsInPdfMode
@@ -521,6 +590,9 @@
     \else\ifx\bxjs at driver@given\bxjs at driver@@xetex
       \@tempswafalse
     \fi\fi
+    \ifjsWithpTeXng\ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx\else
+      \@tempswafalse
+    \fi\fi
   \fi\fi
 \fi
 \if at tempswa\else
@@ -529,8 +601,9 @@
 \fi
 \ifjsInPdfMode \@tempswafalse
 \else\ifx x\jsEngine \@tempswafalse
+\else\ifjsWithpTeXng \@tempswafalse
 \else \@tempswatrue
-\fi\fi
+\fi\fi\fi
 \if at tempswa
   \ifx\bxjs at driver@opt\@undefined \ifx\bxjs at jadriver@given\@undefined\else
     \ClassWarningNoLine\bxjs at clsname
@@ -545,6 +618,13 @@
     }\bxjs at nxt
   \fi
 \fi
+\ifjsWithpTeXng
+  \ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx
+    \let\bxjs at platexng@nodrv\@undefined
+  \else\ifx t\bxjs at platexng@nodrv\else
+    \g at addto@macro\@classoptionslist{,dvipdfmx}
+  \fi\fi
+\fi
 \def\bxjs@@minimal{minimal}
 \ifx\bxjs at jadriver\relax
   \ifx j\jsEngine
@@ -570,6 +650,7 @@
   \fi
 \fi
 \bxjs at do@opt at jbase
+\let\Cjascale\jsScale
 \if at slide
   \def\maybeblue{\@ifundefined{ver at color.sty}{}{\color{blue}}}
 \fi
@@ -590,7 +671,7 @@
 \fi
 \g at addto@macro\@classoptionslist{,nosetpagesize}
 \ifbxjs at oldfontcommands
-  \jsAtEndOfClass{\allowoldfontcommands}
+  \AtEndOfClass{\allowoldfontcommands}
 \fi
 \ifdim\bxjs at param@basefontsize<10pt \def\n at baseline{15}%
 \else \def\n at baseline{16}\fi
@@ -883,7 +964,8 @@
 \bxjs at postproc@layout
 \@onlypreamble\bxjs at pre@geometry at hook
 \def\bxjs at pre@geometry at hook{%
-  \@ifpackageloaded{geometry}{\@ifpackagelater{geometry}{2010/02/12}{}{%
+  \@ifpackageloaded{geometry}{%
+    \@ifpackagelater{geometry}{2010/02/12}{}{%else
       \PackageWarningNoLine\bxjs at clsname
        {The 'geometry' package installed\MessageBreak
         is too old (< v5.0)}%
@@ -892,7 +974,13 @@
         \ifx\pdfhorigin\@undefined \newdimen\pdfhorigin \fi
         \ifx\pdfvorigin\@undefined \newdimen\pdfvorigin \fi
       \fi\fi
-  }}{}}
+    }%
+    \ifjsWithpTeXng
+      \ifx\Gm at driver\@empty
+        \def\Gm at driver{pdftex}%
+      \fi
+    \fi
+  }{}}
 \def\setpagelayout{\@ifstar
   {\bxjs at reset@layout}{\bxjs at modify@layout}}
 \def\bxjs at modify@layout#1{%
@@ -1325,6 +1413,9 @@
     {\normalfont\normalsize\headfont}}
 \fi
 \newcommand\jsParagraphMark{\jsJaChar{■}}
+\ifx\bxjs at paragraph@mark\@undefined\else
+  \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs at paragraph@mark}}
+\fi
 \let\jsJaChar\@empty
 \if at twocolumn
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls	2016-08-17 21:34:35 UTC (rev 41877)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls	2016-08-17 21:34:51 UTC (rev 41878)
@@ -37,8 +37,8 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsbook}
-  [2016/08/01 v1.2 BXJS document classes]
-%% このファイルは日本語文字を含みます
+  [2016/08/16 v1.2a BXJS document classes]
+%% このファイルは日本語文字を含みます.
 \RequirePackage{calc}
 \RequirePackage{keyval}
 \IfFileExists{bxjscompat.sty}{%
@@ -45,6 +45,12 @@
   \let\jsAtEndOfClass\@gobble
   \RequirePackage{bxjscompat}%
 }{}
+\let\jsArticle=a
+\let\jsBook=b
+\let\jsReport=r
+\let\jsSlide=s
+\let\jsDocClass\jsBook
+\def\bxjs at clsname{bxjsbook}
 \let\jsEngine=n
 \def\bxjs at test@engine#1#2{%
   \edef\bxjs at tmpa{\string#1}%
@@ -52,6 +58,7 @@
   \ifx\bxjs at tmpa\bxjs at tmpb #2\fi}
 \bxjs at test@engine\kanjiskip{\let\jsEngine=j}
 \bxjs at test@engine\jintercharskip{\let\jsEngine=J}
+\bxjs at test@engine\Omegaversion{\let\jsEngine=O}
 \bxjs at test@engine\XeTeXversion{\let\jsEngine=x}
 \bxjs at test@engine\pdftexversion{\let\jsEngine=p}
 \bxjs at test@engine\luatexversion{\let\jsEngine=l}
@@ -60,8 +67,20 @@
   \jsWithupTeXtrue
 \fi\fi
 \let\if at jsc@uplatex\ifjsWithupTeX
+\newif\ifjsWithpTeXng
+\bxjs at test@engine\ngbanner{\jsWithpTeXngtrue}
 \newif\ifjsWitheTeX
 \bxjs at test@engine\eTeXversion{\jsWitheTeXtrue}
+\let\bxjs at tmpa\relax
+\ifx J\jsEngine \def\bxjs at tmpa{NTT-jTeX}\fi
+\ifx O\jsEngine \def\bxjs at tmpa{Omega}\fi
+\ifx\bxjs at tmpa\relax \expandafter\@gobble
+\else
+  \ClassError\@currname
+   {The engine in use (\bxjs at tmpa) is not supported}
+   {It's a fatal error. I'll quit right now.}
+  \expandafter\@firstofone
+\fi{\endinput\@@end}
 \ifjsWitheTeX \let\bxjs at protected\protected
 \else \let\bxjs at protected\@empty
 \fi
@@ -82,12 +101,6 @@
   #1\expandafter\@firstoftwo
   \else\expandafter\@secondoftwo
   \fi}
-\let\jsArticle=a
-\let\jsBook=b
-\let\jsReport=r
-\let\jsSlide=s
-\let\jsDocClass\jsBook
-\def\bxjs at clsname{bxjsbook}
 \def\jsAtEndOfClass{%
   \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
 \@onlypreamble\bxjs at restore@jltrcc
@@ -305,6 +318,13 @@
 \DeclareOption{lualatex}{%
   \def\bxjs at engine@opt{lualatex}%
   \let\bxjs at engine@given=l}
+\DeclareOption{platex-ng}{%
+  \def\bxjs at engine@opt{platex-ng}%
+  \let\bxjs at engine@given=g}
+\DeclareOption{platex-ng*}{%
+  \def\bxjs at engine@opt{platex-ng*}%
+  \let\bxjs at platexng@nodrv=t%
+  \let\bxjs at engine@given=g}
 \let\bxjs at driver@@dvimode=0
 \let\bxjs at driver@@dvipdfmx=1
 \let\bxjs at driver@@pdfmode=2
@@ -376,9 +396,19 @@
   \setkeys{#1}{#2}%
   \let\KV at errx\bxjs at KV@errx}
 \def\bxjs at safe@setkeys at a#1{}
+\def\bxjs at set@keyval#1#2#3{%
+  \expandafter\let\expandafter\bxjs at next\csname bxjs at kv@#1@#2\endcsname
+  \ifx\bxjs at next\relax
+    \bxjs at error@keyval{#1}{#2}%
+    #3%
+  \else \bxjs at next
+  \fi}
+\@onlypreamble\bxjs at error@keyval
+\def\bxjs at error@keyval#1#2{%
+  \ClassError\bxjs at clsname
+   {Invalid value '#2' for option #1}\@ehc}
 \newif\ifbxjs at scaleset
 \def\jsScale{0.924715}
-\def\Cjascale{\jsScale}
 \define at key{bxjs}{base}{\bxjs at setbasefontsize{#1}}
 \@onlypreamble\bxjs at do@opt at jbase
 \let\bxjs at do@opt at jbase\relax
@@ -418,6 +448,9 @@
 \ifx l\jsEngine \ifnum\luatexversion>86
   \let\bxjs at magstyle@default\bxjs at magstyle@xreal
 \fi\fi
+\ifjsWithpTeXng
+  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+\fi
 \let\bxjs at magstyle\bxjs at magstyle@default
 \define at key{bxjs}{magstyle}{%
   \expandafter\let\expandafter\bxjs at magstyle\csname
@@ -438,6 +471,11 @@
     {Invalid geometry value `#1'}\@ehc
     \let\bxjs at geometry\bxjs at geometry@class
   \fi}
+\newif\ifbxjs at fancyhdr \bxjs at fancyhdrtrue
+\let\bxjs at kv@fancyhdr at true\bxjs at fancyhdrtrue
+\let\bxjs at kv@fancyhdr at false\bxjs at fancyhdrfalse
+\define at key{bxjs}{fancyhdr}{%
+  \bxjs at set@keyval{fancyhdr}{#1}{}}
 \newif\ifbxjs at dvi@opt
 \let\bxjs at dvidriver@@dvipdfmx=\bxjs at driver@@dvipdfmx
 \let\bxjs at dvidriver@@dvips=\bxjs at driver@@dvimode
@@ -454,6 +492,29 @@
     \let\bxjs at driver@given\@undefined
     \bxjs at dvi@opttrue
   \fi}
+\newif\ifbxjs at layout@buggyhmargin \bxjs at layout@buggyhmargintrue
+\@namedef{bxjs at kv@layout at v1}{%
+  \bxjs at layout@buggyhmargintrue}
+\@namedef{bxjs at kv@layout at v2}{%
+  \bxjs at layout@buggyhmarginfalse}
+\define at key{bxjs}{layout}{%
+  \bxjs at set@keyval{layout}{#1}{}}
+\define at key{bxjs}{textwidth-limit}{%
+  \edef\bxjs at textwidth@limit{#1}}
+\define at key{bxjs}{paragraph-mark}{%
+  \edef\bxjs at paragraph@mark{#1}}
+\newif\ifbxjs at whole@zw at lines \bxjs at whole@zw at linestrue
+\let\bxjs at kv@wholezwlines at true\bxjs at whole@zw at linestrue
+\let\bxjs at kv@wholezwlines at false\bxjs at whole@zw at linesfalse
+\define at key{bxjs}{whole-zw-lines}{\bxjs at set@keyval{wholezwlines}{#1}{}}
+\newif\ifbxjs at dummy@microtype \bxjs at dummy@microtypetrue
+\let\bxjs at kv@dummymicrotype at true\bxjs at dummy@microtypetrue
+\let\bxjs at kv@dummymicrotype at false\bxjs at dummy@microtypefalse
+\define at key{bxjs}{dummy-microtype}{\bxjs at set@keyval{dummymicrotype}{#1}{}}
+\newif\ifbxjs at hyperref@enc \bxjs at hyperref@enctrue
+\let\bxjs at kv@hyperrefenc at true\bxjs at hyperref@enctrue
+\let\bxjs at kv@hyperrefenc at false\bxjs at hyperref@encfalse
+\define at key{bxjs}{hyperref-enc}{\bxjs at set@keyval{hyperrefenc}{#1}{}}
 \let\bxjs at ltx@removeelement\@removeelement
 \def\@removeelement#1#2#3{%
   \def\reserved at a{#2}%
@@ -485,10 +546,15 @@
   {papersize}\@classoptionslist\@classoptionslist
 \@expandtwoargs\@removeelement
   {10pt}\@classoptionslist\@classoptionslist
+\@expandtwoargs\@removeelement
+  {noscale}\@classoptionslist\@classoptionslist
 \ifx\bxjs at jadriver\relax\else
   \let\bxjs at jadriver@given\bxjs at jadriver
 \fi
 \let\bxjs at tmpb\jsEngine
+\ifx j\bxjs at tmpb\ifjsWithpTeXng
+  \let\bxjs at tmpb=g
+\fi\fi
 \ifx j\bxjs at tmpb\ifjsWithupTeX
   \let\bxjs at tmpb=u
 \fi\fi
@@ -509,6 +575,9 @@
     {Option `\bxjs at engine@opt' used on wrong engine}\@ehc
   \fi
 \fi
+\ifjsWithpTeXng
+  \g at addto@macro\@classoptionslist{,uplatex}
+\fi
 \@tempswatrue
 \ifx \bxjs at driver@given\@undefined\else
   \ifjsInPdfMode
@@ -525,6 +594,9 @@
     \else\ifx\bxjs at driver@given\bxjs at driver@@xetex
       \@tempswafalse
     \fi\fi
+    \ifjsWithpTeXng\ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx\else
+      \@tempswafalse
+    \fi\fi
   \fi\fi
 \fi
 \if at tempswa\else
@@ -533,8 +605,9 @@
 \fi
 \ifjsInPdfMode \@tempswafalse
 \else\ifx x\jsEngine \@tempswafalse
+\else\ifjsWithpTeXng \@tempswafalse
 \else \@tempswatrue
-\fi\fi
+\fi\fi\fi
 \if at tempswa
   \ifx\bxjs at driver@opt\@undefined \ifx\bxjs at jadriver@given\@undefined\else
     \ClassWarningNoLine\bxjs at clsname
@@ -549,6 +622,13 @@
     }\bxjs at nxt
   \fi
 \fi
+\ifjsWithpTeXng
+  \ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx
+    \let\bxjs at platexng@nodrv\@undefined
+  \else\ifx t\bxjs at platexng@nodrv\else
+    \g at addto@macro\@classoptionslist{,dvipdfmx}
+  \fi\fi
+\fi
 \def\bxjs@@minimal{minimal}
 \ifx\bxjs at jadriver\relax
   \ifx j\jsEngine
@@ -574,6 +654,7 @@
   \fi
 \fi
 \bxjs at do@opt at jbase
+\let\Cjascale\jsScale
 \if at slide
   \def\maybeblue{\@ifundefined{ver at color.sty}{}{\color{blue}}}
 \fi
@@ -594,7 +675,7 @@
 \fi
 \g at addto@macro\@classoptionslist{,nosetpagesize}
 \ifbxjs at oldfontcommands
-  \jsAtEndOfClass{\allowoldfontcommands}
+  \AtEndOfClass{\allowoldfontcommands}
 \fi
 \ifdim\bxjs at param@basefontsize<10pt \def\n at baseline{15}%
 \else \def\n at baseline{16}\fi
@@ -825,13 +906,26 @@
   \ifjsc at mag truedimen,\fi
   \if at landscape landscape,\fi
   \bxjs at param@paper}
+\ifbxjs at layout@buggyhmargin     %---
 \def\bxjs at layout{%
   headheight=\topskip,headsep=6\jsc at mmm,nofoot,includeheadfoot,%
   hmargin=36\jsc at mmm,hmarginratio=1:1,%
   vscale=0.83,vmarginratio=1:1,%
 }
+\else                           %---
+\def\bxjs at layout{%
+  headheight=\topskip,headsep=6\jsc at mmm,nofoot,includeheadfoot,%
+  hmargin=18\jsc at mmm,%
+  vscale=0.83,vmarginratio=1:1,%
+}
+\fi                             %---
 \newdimen\fullwidth
 \newcommand\jsTextWidthLimit{40}
+\ifx\bxjs at textwidth@limit\@undefined\else
+  \let\c at bxjs@cnta\@tempcnta
+  \setcounter{bxjs at cnta}{\bxjs at textwidth@limit}
+  \long\edef\jsTextWidthLimit{\the\@tempcnta}
+\fi
 \def\bxjs at postproc@layout{%
   \ifx\bxjs at geometry@driver\relax\else
     \let\Gm at driver\bxjs at geometry@driver
@@ -891,7 +985,8 @@
 \bxjs at postproc@layout
 \@onlypreamble\bxjs at pre@geometry at hook
 \def\bxjs at pre@geometry at hook{%
-  \@ifpackageloaded{geometry}{\@ifpackagelater{geometry}{2010/02/12}{}{%
+  \@ifpackageloaded{geometry}{%
+    \@ifpackagelater{geometry}{2010/02/12}{}{%else
       \PackageWarningNoLine\bxjs at clsname
        {The 'geometry' package installed\MessageBreak
         is too old (< v5.0)}%
@@ -900,7 +995,13 @@
         \ifx\pdfhorigin\@undefined \newdimen\pdfhorigin \fi
         \ifx\pdfvorigin\@undefined \newdimen\pdfvorigin \fi
       \fi\fi
-  }}{}}
+    }%
+    \ifjsWithpTeXng
+      \ifx\Gm at driver\@empty
+        \def\Gm at driver{pdftex}%
+      \fi
+    \fi
+  }{}}
 \def\setpagelayout{\@ifstar
   {\bxjs at reset@layout}{\bxjs at modify@layout}}
 \def\bxjs at modify@layout#1{%
@@ -1418,6 +1519,9 @@
     {\normalfont\normalsize\headfont}}
 \fi
 \newcommand\jsParagraphMark{\jsJaChar{■}}
+\ifx\bxjs at paragraph@mark\@undefined\else
+  \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs at paragraph@mark}}
+\fi
 \let\jsJaChar\@empty
 \if at twocolumn
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty	2016-08-17 21:34:35 UTC (rev 41877)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty	2016-08-17 21:34:51 UTC (rev 41878)
@@ -36,7 +36,7 @@
 %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
 %%   Right brace   \}     Tilde         \~}
 \ProvidesPackage{bxjscjkcat}
-  [2016/08/01 v1.2 BXJS document classes]
+  [2016/08/16 v1.2a BXJS document classes]
 \def\bxjx at pkgname{bxjscjkcat}
 \newcount\bxjx at cnta
 \let\bxjx at engine=n

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty	2016-08-17 21:34:35 UTC (rev 41877)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty	2016-08-17 21:34:51 UTC (rev 41878)
@@ -36,7 +36,7 @@
 %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
 %%   Right brace   \}     Tilde         \~}
 \ProvidesPackage{bxjscompat}
-  [2016/08/01 v1.2 BXJS document classes]
+  [2016/08/16 v1.2a BXJS document classes]
 \def\bxac at pkgname{bxjscompat}
 \let\bxac at engine=n
 \def\bxac at do#1#2{%

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def	2016-08-17 21:34:35 UTC (rev 41877)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def	2016-08-17 21:34:51 UTC (rev 41878)
@@ -36,7 +36,7 @@
 %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
 %%   Right brace   \}     Tilde         \~}
 \ProvidesFile{bxjsja-minimal.def}
-  [2016/08/01 v1.2 BXJS document classes]
+  [2016/08/16 v1.2a BXJS document classes]
 %% このファイルは日本語文字を含みます
 \def\DeclareJaTextFontCommand#1#2{%
   \DeclareRobustCommand#1[1]{%
@@ -147,8 +147,11 @@
 \fi
 \def\bxjs at tmpa#1/#2/#3/#4/#5\relax{%
   \def\bxjs at y{#5}}
+\ifjsWithpTeXng \def\bxjs at y{10}%
+\else
 \expandafter\expandafter\expandafter\bxjs at tmpa
  \expandafter\string\the\jfont\relax
+\fi
 \@for\bxjs at x:={\jsc at JYn/mc/m/n,\jsc at JYn/gt/m/n,%
                \jsc at JTn/mc/m/n,\jsc at JTn/gt/m/n}\do
   {\expandafter\let\csname\bxjs at x/10\endcsname=\@undefined
@@ -285,6 +288,44 @@
     \bxjs at do@precisetext
   \fi
 \fi
+\ifbxjs at fancyhdr
+\@onlypreamble\bxjs at adjust@fancyhdr
+\def\bxjs at adjust@fancyhdr{%
+  \def\bxjs at tmpa{\fancyplain{}{\sl\rightmark}\strut}%
+  \def\bxjs at tmpb{\fancyplain{}{\rightmark}\strut}%
+  \ifx\f at ncyelh\bxjs at tmpa \global\let\f at ncyelh\bxjs at tmpb \fi
+  \ifx\f at ncyerh\bxjs at tmpa \global\let\f at ncyerh\bxjs at tmpb \fi
+  \ifx\f at ncyolh\bxjs at tmpa \global\let\f at ncyolh\bxjs at tmpb \fi
+  \ifx\f at ncyorh\bxjs at tmpa \global\let\f at ncyorh\bxjs at tmpb \fi
+  \def\bxjs at tmpa{\fancyplain{}{\sl\leftmark}\strut}%
+  \def\bxjs at tmpb{\fancyplain{}{\leftmark}\strut}%
+  \ifx\f at ncyelh\bxjs at tmpa \global\let\f at ncyelh\bxjs at tmpb \fi
+  \ifx\f at ncyerh\bxjs at tmpa \global\let\f at ncyerh\bxjs at tmpb \fi
+  \ifx\f at ncyolh\bxjs at tmpa \global\let\f at ncyolh\bxjs at tmpb \fi
+  \ifx\f at ncyorh\bxjs at tmpa \global\let\f at ncyorh\bxjs at tmpb \fi
+  \def\bxjs at tmpa{\rm\thepage\strut}%
+  \def\bxjs at tmpb{\thepage\strut}%
+  \ifx\f at ncyecf\bxjs at tmpa \global\let\f at ncyecf\bxjs at tmpb \fi
+  \ifx\f at ncyocf\bxjs at tmpa \global\let\f at ncyocf\bxjs at tmpb \fi
+  \ifx\fullwidth\@undefined\else \ifdim\textwidth<\fullwidth
+    \setlength{\@tempdima}{\fullwidth-\textwidth}%
+    \edef\bxjs at tmpa{\noexpand\fancyhfoffset[EL,OR]{\the\@tempdima}%
+    }\bxjs at tmpa
+  \fi\fi
+  \PackageInfo\bxjs at clsname
+   {Patch to fancyhdr is applied\@gobble}}
+\def\bxjs at pagestyle@hook{%
+  \@ifpackageloaded{fancyhdr}{%
+    \bxjs at adjust@fancyhdr
+    \global\let\bxjs at adjust@fancyhdr\relax
+  }{}}
+\let\bxjs at org@pagestyle\pagestyle
+\def\pagestyle{%
+  \bxjs at pagestyle@hook \bxjs at org@pagestyle}
+\AtBeginDocument{%
+  \bxjs at pagestyle@hook
+  \global\let\bxjs at pagestyle@hook\relax}
+\fi
 \endinput
 %%
 %% End of file `bxjsja-minimal.def'.

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def	2016-08-17 21:34:35 UTC (rev 41877)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def	2016-08-17 21:34:51 UTC (rev 41878)
@@ -36,7 +36,7 @@
 %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
 %%   Right brace   \}     Tilde         \~}
 \ProvidesFile{bxjsja-modern.def}
-  [2016/08/01 v1.2 BXJS document classes]
+  [2016/08/16 v1.2a BXJS document classes]
 \input{bxjsja-standard.def}
 \ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi=\z@
 \def\encodingdefault{T1}%

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def	2016-08-17 21:34:35 UTC (rev 41877)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def	2016-08-17 21:34:51 UTC (rev 41878)
@@ -36,7 +36,7 @@
 %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
 %%   Right brace   \}     Tilde         \~}
 \ProvidesFile{bxjsja-pandoc.def}
-  [2016/08/01 v1.2 BXJS document classes]
+  [2016/08/16 v1.2a BXJS document classes]
 \input{bxjsja-standard.def}
 \@onlypreamble\bxjs at set@dupload at proc
 \def\bxjs at set@dupload at proc#1{%

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def	2016-08-17 21:34:35 UTC (rev 41877)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def	2016-08-17 21:34:51 UTC (rev 41878)
@@ -36,7 +36,7 @@
 %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
 %%   Right brace   \}     Tilde         \~}
 \ProvidesFile{bxjsja-standard.def}
-  [2016/08/01 v1.2 BXJS document classes]
+  [2016/08/16 v1.2a BXJS document classes]
 %% このファイルは日本語文字を含みます
 \input{bxjsja-minimal.def}
 \bxjs at simplejasetupfalse
@@ -45,16 +45,21 @@
   \protected\edef\jQ{\dimexpr\the\@tempdima\relax}
   \let\jH\jQ
   \ifjsc at mag
-    \@tempdima=2.5mm
     \@tempdimb=\jsBaseFontSize\relax
     \edef\bxjs at tmpa{\strip at pt\@tempdimb}%
+    \@tempdima=2.5mm
     \bxjs at invscale\@tempdima\bxjs at tmpa
-    \edef\trueQ{\dimexpr\the\@tempdima\relax}
-  \else \let\trueQ\jQ
+    \protected\edef\trueQ{\dimexpr\the\@tempdima\relax}
+    \@tempdima=10pt
+    \bxjs at invscale\@tempdima\bxjs at tmpa
+    \protected\edef\bxjs at truept{\dimexpr\the\@tempdima\relax}
+  \else \let\trueQ\jQ \let\bxjs at truept\p@
   \fi
   \let\trueH\trueQ
   \@tempdima\trueQ \bxjs at invscale\@tempdima\jsScale
-  \edef\ascQ{\dimexpr\the\@tempdima\relax}
+  \protected\edef\ascQ{\dimexpr\the\@tempdima\relax}
+  \@tempdima\bxjs at truept \bxjs at invscale\@tempdima\jsScale
+  \protected\edef\ascpt{\dimexpr\the\@tempdima\relax}
 \fi
 \def\bxjs at kanjiskip{0pt}
 \newcommand*\setkanjiskip[1]{%
@@ -269,7 +274,8 @@
 \endgroup}
 \@gtempa
 \bxjs at fix@hyperref at unicode{false}
-\ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx
+\if \ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx T%
+    \else\ifjsWithpTeXng T\else F\fi\fi T%
   \ifnum\jis"2121="A1A1 %euc
     \bxjs at urgent@special{pdf:tounicode EUC-UCS2}
   \else\ifnum\jis"2121="8140 %sjis

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls	2016-08-17 21:34:35 UTC (rev 41877)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls	2016-08-17 21:34:51 UTC (rev 41878)
@@ -37,8 +37,8 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsreport}
-  [2016/08/01 v1.2 BXJS document classes]
-%% このファイルは日本語文字を含みます
+  [2016/08/16 v1.2a BXJS document classes]
+%% このファイルは日本語文字を含みます.
 \RequirePackage{calc}
 \RequirePackage{keyval}
 \IfFileExists{bxjscompat.sty}{%
@@ -45,6 +45,12 @@
   \let\jsAtEndOfClass\@gobble
   \RequirePackage{bxjscompat}%
 }{}
+\let\jsArticle=a
+\let\jsBook=b
+\let\jsReport=r
+\let\jsSlide=s
+\let\jsDocClass\jsReport
+\def\bxjs at clsname{bxjsreport}
 \let\jsEngine=n
 \def\bxjs at test@engine#1#2{%
   \edef\bxjs at tmpa{\string#1}%
@@ -52,6 +58,7 @@
   \ifx\bxjs at tmpa\bxjs at tmpb #2\fi}
 \bxjs at test@engine\kanjiskip{\let\jsEngine=j}
 \bxjs at test@engine\jintercharskip{\let\jsEngine=J}
+\bxjs at test@engine\Omegaversion{\let\jsEngine=O}
 \bxjs at test@engine\XeTeXversion{\let\jsEngine=x}
 \bxjs at test@engine\pdftexversion{\let\jsEngine=p}
 \bxjs at test@engine\luatexversion{\let\jsEngine=l}
@@ -60,8 +67,20 @@
   \jsWithupTeXtrue
 \fi\fi
 \let\if at jsc@uplatex\ifjsWithupTeX
+\newif\ifjsWithpTeXng
+\bxjs at test@engine\ngbanner{\jsWithpTeXngtrue}
 \newif\ifjsWitheTeX
 \bxjs at test@engine\eTeXversion{\jsWitheTeXtrue}
+\let\bxjs at tmpa\relax
+\ifx J\jsEngine \def\bxjs at tmpa{NTT-jTeX}\fi
+\ifx O\jsEngine \def\bxjs at tmpa{Omega}\fi
+\ifx\bxjs at tmpa\relax \expandafter\@gobble
+\else
+  \ClassError\@currname
+   {The engine in use (\bxjs at tmpa) is not supported}
+   {It's a fatal error. I'll quit right now.}
+  \expandafter\@firstofone
+\fi{\endinput\@@end}
 \ifjsWitheTeX \let\bxjs at protected\protected
 \else \let\bxjs at protected\@empty
 \fi
@@ -82,12 +101,6 @@
   #1\expandafter\@firstoftwo
   \else\expandafter\@secondoftwo
   \fi}
-\let\jsArticle=a
-\let\jsBook=b
-\let\jsReport=r
-\let\jsSlide=s
-\let\jsDocClass\jsReport
-\def\bxjs at clsname{bxjsreport}
 \def\jsAtEndOfClass{%
   \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
 \@onlypreamble\bxjs at restore@jltrcc
@@ -305,6 +318,13 @@
 \DeclareOption{lualatex}{%
   \def\bxjs at engine@opt{lualatex}%
   \let\bxjs at engine@given=l}
+\DeclareOption{platex-ng}{%
+  \def\bxjs at engine@opt{platex-ng}%
+  \let\bxjs at engine@given=g}
+\DeclareOption{platex-ng*}{%
+  \def\bxjs at engine@opt{platex-ng*}%
+  \let\bxjs at platexng@nodrv=t%
+  \let\bxjs at engine@given=g}
 \let\bxjs at driver@@dvimode=0
 \let\bxjs at driver@@dvipdfmx=1
 \let\bxjs at driver@@pdfmode=2
@@ -376,9 +396,19 @@
   \setkeys{#1}{#2}%
   \let\KV at errx\bxjs at KV@errx}
 \def\bxjs at safe@setkeys at a#1{}
+\def\bxjs at set@keyval#1#2#3{%
+  \expandafter\let\expandafter\bxjs at next\csname bxjs at kv@#1@#2\endcsname
+  \ifx\bxjs at next\relax
+    \bxjs at error@keyval{#1}{#2}%
+    #3%
+  \else \bxjs at next
+  \fi}
+\@onlypreamble\bxjs at error@keyval
+\def\bxjs at error@keyval#1#2{%
+  \ClassError\bxjs at clsname
+   {Invalid value '#2' for option #1}\@ehc}
 \newif\ifbxjs at scaleset
 \def\jsScale{0.924715}
-\def\Cjascale{\jsScale}
 \define at key{bxjs}{base}{\bxjs at setbasefontsize{#1}}
 \@onlypreamble\bxjs at do@opt at jbase
 \let\bxjs at do@opt at jbase\relax
@@ -418,6 +448,9 @@
 \ifx l\jsEngine \ifnum\luatexversion>86
   \let\bxjs at magstyle@default\bxjs at magstyle@xreal
 \fi\fi
+\ifjsWithpTeXng
+  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+\fi
 \let\bxjs at magstyle\bxjs at magstyle@default
 \define at key{bxjs}{magstyle}{%
   \expandafter\let\expandafter\bxjs at magstyle\csname
@@ -438,6 +471,11 @@
     {Invalid geometry value `#1'}\@ehc
     \let\bxjs at geometry\bxjs at geometry@class
   \fi}
+\newif\ifbxjs at fancyhdr \bxjs at fancyhdrtrue
+\let\bxjs at kv@fancyhdr at true\bxjs at fancyhdrtrue
+\let\bxjs at kv@fancyhdr at false\bxjs at fancyhdrfalse
+\define at key{bxjs}{fancyhdr}{%
+  \bxjs at set@keyval{fancyhdr}{#1}{}}
 \newif\ifbxjs at dvi@opt
 \let\bxjs at dvidriver@@dvipdfmx=\bxjs at driver@@dvipdfmx
 \let\bxjs at dvidriver@@dvips=\bxjs at driver@@dvimode
@@ -454,6 +492,29 @@
     \let\bxjs at driver@given\@undefined
     \bxjs at dvi@opttrue
   \fi}
+\newif\ifbxjs at layout@buggyhmargin \bxjs at layout@buggyhmargintrue
+\@namedef{bxjs at kv@layout at v1}{%
+  \bxjs at layout@buggyhmargintrue}
+\@namedef{bxjs at kv@layout at v2}{%
+  \bxjs at layout@buggyhmarginfalse}
+\define at key{bxjs}{layout}{%
+  \bxjs at set@keyval{layout}{#1}{}}
+\define at key{bxjs}{textwidth-limit}{%
+  \edef\bxjs at textwidth@limit{#1}}
+\define at key{bxjs}{paragraph-mark}{%
+  \edef\bxjs at paragraph@mark{#1}}
+\newif\ifbxjs at whole@zw at lines \bxjs at whole@zw at linestrue
+\let\bxjs at kv@wholezwlines at true\bxjs at whole@zw at linestrue
+\let\bxjs at kv@wholezwlines at false\bxjs at whole@zw at linesfalse
+\define at key{bxjs}{whole-zw-lines}{\bxjs at set@keyval{wholezwlines}{#1}{}}
+\newif\ifbxjs at dummy@microtype \bxjs at dummy@microtypetrue
+\let\bxjs at kv@dummymicrotype at true\bxjs at dummy@microtypetrue
+\let\bxjs at kv@dummymicrotype at false\bxjs at dummy@microtypefalse
+\define at key{bxjs}{dummy-microtype}{\bxjs at set@keyval{dummymicrotype}{#1}{}}
+\newif\ifbxjs at hyperref@enc \bxjs at hyperref@enctrue
+\let\bxjs at kv@hyperrefenc at true\bxjs at hyperref@enctrue
+\let\bxjs at kv@hyperrefenc at false\bxjs at hyperref@encfalse
+\define at key{bxjs}{hyperref-enc}{\bxjs at set@keyval{hyperrefenc}{#1}{}}
 \let\bxjs at ltx@removeelement\@removeelement
 \def\@removeelement#1#2#3{%
   \def\reserved at a{#2}%
@@ -485,10 +546,15 @@
   {papersize}\@classoptionslist\@classoptionslist
 \@expandtwoargs\@removeelement
   {10pt}\@classoptionslist\@classoptionslist
+\@expandtwoargs\@removeelement
+  {noscale}\@classoptionslist\@classoptionslist
 \ifx\bxjs at jadriver\relax\else
   \let\bxjs at jadriver@given\bxjs at jadriver
 \fi
 \let\bxjs at tmpb\jsEngine
+\ifx j\bxjs at tmpb\ifjsWithpTeXng
+  \let\bxjs at tmpb=g
+\fi\fi
 \ifx j\bxjs at tmpb\ifjsWithupTeX
   \let\bxjs at tmpb=u
 \fi\fi
@@ -509,6 +575,9 @@
     {Option `\bxjs at engine@opt' used on wrong engine}\@ehc
   \fi
 \fi
+\ifjsWithpTeXng
+  \g at addto@macro\@classoptionslist{,uplatex}
+\fi
 \@tempswatrue
 \ifx \bxjs at driver@given\@undefined\else
   \ifjsInPdfMode
@@ -525,6 +594,9 @@
     \else\ifx\bxjs at driver@given\bxjs at driver@@xetex
       \@tempswafalse
     \fi\fi
+    \ifjsWithpTeXng\ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx\else
+      \@tempswafalse
+    \fi\fi
   \fi\fi
 \fi
 \if at tempswa\else
@@ -533,8 +605,9 @@
 \fi
 \ifjsInPdfMode \@tempswafalse
 \else\ifx x\jsEngine \@tempswafalse
+\else\ifjsWithpTeXng \@tempswafalse
 \else \@tempswatrue
-\fi\fi
+\fi\fi\fi
 \if at tempswa
   \ifx\bxjs at driver@opt\@undefined \ifx\bxjs at jadriver@given\@undefined\else
     \ClassWarningNoLine\bxjs at clsname
@@ -549,6 +622,13 @@
     }\bxjs at nxt
   \fi
 \fi
+\ifjsWithpTeXng
+  \ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx
+    \let\bxjs at platexng@nodrv\@undefined
+  \else\ifx t\bxjs at platexng@nodrv\else
+    \g at addto@macro\@classoptionslist{,dvipdfmx}
+  \fi\fi
+\fi
 \def\bxjs@@minimal{minimal}
 \ifx\bxjs at jadriver\relax
   \ifx j\jsEngine
@@ -574,6 +654,7 @@
   \fi
 \fi
 \bxjs at do@opt at jbase
+\let\Cjascale\jsScale
 \if at slide
   \def\maybeblue{\@ifundefined{ver at color.sty}{}{\color{blue}}}
 \fi
@@ -594,7 +675,7 @@
 \fi
 \g at addto@macro\@classoptionslist{,nosetpagesize}
 \ifbxjs at oldfontcommands
-  \jsAtEndOfClass{\allowoldfontcommands}
+  \AtEndOfClass{\allowoldfontcommands}
 \fi
 \ifdim\bxjs at param@basefontsize<10pt \def\n at baseline{15}%
 \else \def\n at baseline{16}\fi
@@ -887,7 +968,8 @@
 \bxjs at postproc@layout
 \@onlypreamble\bxjs at pre@geometry at hook
 \def\bxjs at pre@geometry at hook{%
-  \@ifpackageloaded{geometry}{\@ifpackagelater{geometry}{2010/02/12}{}{%
+  \@ifpackageloaded{geometry}{%
+    \@ifpackagelater{geometry}{2010/02/12}{}{%else
       \PackageWarningNoLine\bxjs at clsname
        {The 'geometry' package installed\MessageBreak
         is too old (< v5.0)}%
@@ -896,7 +978,13 @@
         \ifx\pdfhorigin\@undefined \newdimen\pdfhorigin \fi
         \ifx\pdfvorigin\@undefined \newdimen\pdfvorigin \fi
       \fi\fi
-  }}{}}
+    }%
+    \ifjsWithpTeXng
+      \ifx\Gm at driver\@empty
+        \def\Gm at driver{pdftex}%
+      \fi
+    \fi
+  }{}}
 \def\setpagelayout{\@ifstar
   {\bxjs at reset@layout}{\bxjs at modify@layout}}
 \def\bxjs at modify@layout#1{%
@@ -1414,6 +1502,9 @@
     {\normalfont\normalsize\headfont}}
 \fi
 \newcommand\jsParagraphMark{\jsJaChar{■}}
+\ifx\bxjs at paragraph@mark\@undefined\else
+  \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs at paragraph@mark}}
+\fi
 \let\jsJaChar\@empty
 \if at twocolumn
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls	2016-08-17 21:34:35 UTC (rev 41877)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls	2016-08-17 21:34:51 UTC (rev 41878)
@@ -37,8 +37,8 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsslide}
-  [2016/08/01 v1.2 BXJS document classes]
-%% このファイルは日本語文字を含みます
+  [2016/08/16 v1.2a BXJS document classes]
+%% このファイルは日本語文字を含みます.
 \RequirePackage{calc}
 \RequirePackage{keyval}
 \IfFileExists{bxjscompat.sty}{%
@@ -45,6 +45,12 @@
   \let\jsAtEndOfClass\@gobble
   \RequirePackage{bxjscompat}%
 }{}
+\let\jsArticle=a
+\let\jsBook=b
+\let\jsReport=r
+\let\jsSlide=s
+\let\jsDocClass\jsSlide
+\def\bxjs at clsname{bxjsslide}
 \let\jsEngine=n
 \def\bxjs at test@engine#1#2{%
   \edef\bxjs at tmpa{\string#1}%
@@ -52,6 +58,7 @@
   \ifx\bxjs at tmpa\bxjs at tmpb #2\fi}
 \bxjs at test@engine\kanjiskip{\let\jsEngine=j}
 \bxjs at test@engine\jintercharskip{\let\jsEngine=J}
+\bxjs at test@engine\Omegaversion{\let\jsEngine=O}
 \bxjs at test@engine\XeTeXversion{\let\jsEngine=x}
 \bxjs at test@engine\pdftexversion{\let\jsEngine=p}
 \bxjs at test@engine\luatexversion{\let\jsEngine=l}
@@ -60,8 +67,20 @@
   \jsWithupTeXtrue
 \fi\fi
 \let\if at jsc@uplatex\ifjsWithupTeX
+\newif\ifjsWithpTeXng
+\bxjs at test@engine\ngbanner{\jsWithpTeXngtrue}
 \newif\ifjsWitheTeX
 \bxjs at test@engine\eTeXversion{\jsWitheTeXtrue}
+\let\bxjs at tmpa\relax
+\ifx J\jsEngine \def\bxjs at tmpa{NTT-jTeX}\fi
+\ifx O\jsEngine \def\bxjs at tmpa{Omega}\fi
+\ifx\bxjs at tmpa\relax \expandafter\@gobble
+\else
+  \ClassError\@currname
+   {The engine in use (\bxjs at tmpa) is not supported}
+   {It's a fatal error. I'll quit right now.}
+  \expandafter\@firstofone
+\fi{\endinput\@@end}
 \ifjsWitheTeX \let\bxjs at protected\protected
 \else \let\bxjs at protected\@empty
 \fi
@@ -82,12 +101,6 @@
   #1\expandafter\@firstoftwo
   \else\expandafter\@secondoftwo
   \fi}
-\let\jsArticle=a
-\let\jsBook=b
-\let\jsReport=r
-\let\jsSlide=s
-\let\jsDocClass\jsSlide
-\def\bxjs at clsname{bxjsslide}
 \def\jsAtEndOfClass{%
   \expandafter\g at addto@macro\csname\bxjs at clsname.cls-h@@k\endcsname}
 \@onlypreamble\bxjs at restore@jltrcc
@@ -301,6 +314,13 @@
 \DeclareOption{lualatex}{%
   \def\bxjs at engine@opt{lualatex}%
   \let\bxjs at engine@given=l}
+\DeclareOption{platex-ng}{%
+  \def\bxjs at engine@opt{platex-ng}%
+  \let\bxjs at engine@given=g}
+\DeclareOption{platex-ng*}{%
+  \def\bxjs at engine@opt{platex-ng*}%
+  \let\bxjs at platexng@nodrv=t%
+  \let\bxjs at engine@given=g}
 \let\bxjs at driver@@dvimode=0
 \let\bxjs at driver@@dvipdfmx=1
 \let\bxjs at driver@@pdfmode=2
@@ -372,9 +392,19 @@
   \setkeys{#1}{#2}%
   \let\KV at errx\bxjs at KV@errx}
 \def\bxjs at safe@setkeys at a#1{}
+\def\bxjs at set@keyval#1#2#3{%
+  \expandafter\let\expandafter\bxjs at next\csname bxjs at kv@#1@#2\endcsname
+  \ifx\bxjs at next\relax
+    \bxjs at error@keyval{#1}{#2}%
+    #3%
+  \else \bxjs at next
+  \fi}
+\@onlypreamble\bxjs at error@keyval
+\def\bxjs at error@keyval#1#2{%
+  \ClassError\bxjs at clsname
+   {Invalid value '#2' for option #1}\@ehc}
 \newif\ifbxjs at scaleset
 \def\jsScale{0.924715}
-\def\Cjascale{\jsScale}
 \define at key{bxjs}{base}{\bxjs at setbasefontsize{#1}}
 \@onlypreamble\bxjs at do@opt at jbase
 \let\bxjs at do@opt at jbase\relax
@@ -414,6 +444,9 @@
 \ifx l\jsEngine \ifnum\luatexversion>86
   \let\bxjs at magstyle@default\bxjs at magstyle@xreal
 \fi\fi
+\ifjsWithpTeXng
+  \let\bxjs at magstyle@default\bxjs at magstyle@xreal
+\fi
 \let\bxjs at magstyle\bxjs at magstyle@default
 \define at key{bxjs}{magstyle}{%
   \expandafter\let\expandafter\bxjs at magstyle\csname
@@ -434,6 +467,11 @@
     {Invalid geometry value `#1'}\@ehc
     \let\bxjs at geometry\bxjs at geometry@class
   \fi}
+\newif\ifbxjs at fancyhdr \bxjs at fancyhdrtrue
+\let\bxjs at kv@fancyhdr at true\bxjs at fancyhdrtrue
+\let\bxjs at kv@fancyhdr at false\bxjs at fancyhdrfalse
+\define at key{bxjs}{fancyhdr}{%
+  \bxjs at set@keyval{fancyhdr}{#1}{}}
 \newif\ifbxjs at dvi@opt
 \let\bxjs at dvidriver@@dvipdfmx=\bxjs at driver@@dvipdfmx
 \let\bxjs at dvidriver@@dvips=\bxjs at driver@@dvimode
@@ -450,6 +488,29 @@
     \let\bxjs at driver@given\@undefined
     \bxjs at dvi@opttrue
   \fi}
+\newif\ifbxjs at layout@buggyhmargin \bxjs at layout@buggyhmargintrue
+\@namedef{bxjs at kv@layout at v1}{%
+  \bxjs at layout@buggyhmargintrue}
+\@namedef{bxjs at kv@layout at v2}{%
+  \bxjs at layout@buggyhmarginfalse}
+\define at key{bxjs}{layout}{%
+  \bxjs at set@keyval{layout}{#1}{}}
+\define at key{bxjs}{textwidth-limit}{%
+  \edef\bxjs at textwidth@limit{#1}}
+\define at key{bxjs}{paragraph-mark}{%
+  \edef\bxjs at paragraph@mark{#1}}
+\newif\ifbxjs at whole@zw at lines \bxjs at whole@zw at linestrue
+\let\bxjs at kv@wholezwlines at true\bxjs at whole@zw at linestrue
+\let\bxjs at kv@wholezwlines at false\bxjs at whole@zw at linesfalse
+\define at key{bxjs}{whole-zw-lines}{\bxjs at set@keyval{wholezwlines}{#1}{}}
+\newif\ifbxjs at dummy@microtype \bxjs at dummy@microtypetrue
+\let\bxjs at kv@dummymicrotype at true\bxjs at dummy@microtypetrue
+\let\bxjs at kv@dummymicrotype at false\bxjs at dummy@microtypefalse
+\define at key{bxjs}{dummy-microtype}{\bxjs at set@keyval{dummymicrotype}{#1}{}}
+\newif\ifbxjs at hyperref@enc \bxjs at hyperref@enctrue
+\let\bxjs at kv@hyperrefenc at true\bxjs at hyperref@enctrue
+\let\bxjs at kv@hyperrefenc at false\bxjs at hyperref@encfalse
+\define at key{bxjs}{hyperref-enc}{\bxjs at set@keyval{hyperrefenc}{#1}{}}
 \let\bxjs at ltx@removeelement\@removeelement
 \def\@removeelement#1#2#3{%
   \def\reserved at a{#2}%
@@ -481,10 +542,15 @@
   {papersize}\@classoptionslist\@classoptionslist
 \@expandtwoargs\@removeelement
   {10pt}\@classoptionslist\@classoptionslist
+\@expandtwoargs\@removeelement
+  {noscale}\@classoptionslist\@classoptionslist
 \ifx\bxjs at jadriver\relax\else
   \let\bxjs at jadriver@given\bxjs at jadriver
 \fi
 \let\bxjs at tmpb\jsEngine
+\ifx j\bxjs at tmpb\ifjsWithpTeXng
+  \let\bxjs at tmpb=g
+\fi\fi
 \ifx j\bxjs at tmpb\ifjsWithupTeX
   \let\bxjs at tmpb=u
 \fi\fi
@@ -505,6 +571,9 @@
     {Option `\bxjs at engine@opt' used on wrong engine}\@ehc
   \fi
 \fi
+\ifjsWithpTeXng
+  \g at addto@macro\@classoptionslist{,uplatex}
+\fi
 \@tempswatrue
 \ifx \bxjs at driver@given\@undefined\else
   \ifjsInPdfMode
@@ -521,6 +590,9 @@
     \else\ifx\bxjs at driver@given\bxjs at driver@@xetex
       \@tempswafalse
     \fi\fi
+    \ifjsWithpTeXng\ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx\else
+      \@tempswafalse
+    \fi\fi
   \fi\fi
 \fi
 \if at tempswa\else
@@ -529,8 +601,9 @@
 \fi
 \ifjsInPdfMode \@tempswafalse
 \else\ifx x\jsEngine \@tempswafalse
+\else\ifjsWithpTeXng \@tempswafalse
 \else \@tempswatrue
-\fi\fi
+\fi\fi\fi
 \if at tempswa
   \ifx\bxjs at driver@opt\@undefined \ifx\bxjs at jadriver@given\@undefined\else
     \ClassWarningNoLine\bxjs at clsname
@@ -545,6 +618,13 @@
     }\bxjs at nxt
   \fi
 \fi
+\ifjsWithpTeXng
+  \ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx
+    \let\bxjs at platexng@nodrv\@undefined
+  \else\ifx t\bxjs at platexng@nodrv\else
+    \g at addto@macro\@classoptionslist{,dvipdfmx}
+  \fi\fi
+\fi
 \def\bxjs@@minimal{minimal}
 \ifx\bxjs at jadriver\relax
   \ifx j\jsEngine
@@ -570,6 +650,7 @@
   \fi
 \fi
 \bxjs at do@opt at jbase
+\let\Cjascale\jsScale
 \if at slide
   \def\maybeblue{\@ifundefined{ver at color.sty}{}{\color{blue}}}
 \fi
@@ -590,7 +671,7 @@
 \fi
 \g at addto@macro\@classoptionslist{,nosetpagesize}
 \ifbxjs at oldfontcommands
-  \jsAtEndOfClass{\allowoldfontcommands}
+  \AtEndOfClass{\allowoldfontcommands}
 \fi
 \def\n at baseline{13}%
 \newif\ifbxjs at nfss@patch
@@ -881,7 +962,8 @@
 \bxjs at postproc@layout
 \@onlypreamble\bxjs at pre@geometry at hook
 \def\bxjs at pre@geometry at hook{%
-  \@ifpackageloaded{geometry}{\@ifpackagelater{geometry}{2010/02/12}{}{%
+  \@ifpackageloaded{geometry}{%
+    \@ifpackagelater{geometry}{2010/02/12}{}{%else
       \PackageWarningNoLine\bxjs at clsname
        {The 'geometry' package installed\MessageBreak
         is too old (< v5.0)}%
@@ -890,7 +972,13 @@
         \ifx\pdfhorigin\@undefined \newdimen\pdfhorigin \fi
         \ifx\pdfvorigin\@undefined \newdimen\pdfvorigin \fi
       \fi\fi
-  }}{}}
+    }%
+    \ifjsWithpTeXng
+      \ifx\Gm at driver\@empty
+        \def\Gm at driver{pdftex}%
+      \fi
+    \fi
+  }{}}
 \def\setpagelayout{\@ifstar
   {\bxjs at reset@layout}{\bxjs at modify@layout}}
 \def\bxjs at modify@layout#1{%
@@ -1323,6 +1411,9 @@
     {\normalfont\normalsize\headfont}}
 \fi
 \newcommand\jsParagraphMark{\jsJaChar{■}}
+\ifx\bxjs at paragraph@mark\@undefined\else
+  \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs at paragraph@mark}}
+\fi
 \let\jsJaChar\@empty
 \if at twocolumn
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%



More information about the tex-live-commits mailing list