texlive[43467] Master/texmf-dist: bxjscls (11mar17)

commits+karl at tug.org commits+karl at tug.org
Sun Mar 12 00:08:46 CET 2017


Revision: 43467
          http://tug.org/svn/texlive?view=revision&revision=43467
Author:   karl
Date:     2017-03-12 00:08:46 +0100 (Sun, 12 Mar 2017)
Log Message:
-----------
bxjscls (11mar17)

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	2017-03-11 23:08:30 UTC (rev 43466)
+++ trunk/Master/texmf-dist/doc/latex/bxjscls/README-ja.md	2017-03-11 23:08:46 UTC (rev 43467)
@@ -97,6 +97,15 @@
 更新履歴
 --------
 
+  * Version 1.5  〈2017/03/11〉
+      - jsreport の `layout=v2` 指定で、従来の jsbook + report に代わって、
+        jsclasses で新設された jsreport のレイアウトを継承する。
+      - pLaTeX-ng のためのエンジンオプション `platex-ng` を新設。
+      - `chapterabstract` 環境を新設。
+      - `hyperref-enc`、`whole-zw-lines` オプションを新設。
+      - jsclasses の 2017/03/05 と同期。
+          + `openleft` オプションを新設。
+          + `\frontmatter`、`\backmatter` の仕様の変更。
   * Version 1.4  〈2017/02/03〉
       - `\zwapace` 命令を追加。
       - 数式中の和文出力をサポートした。

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	2017-03-11 23:08:30 UTC (rev 43466)
+++ trunk/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex	2017-03-11 23:08:46 UTC (rev 43467)
@@ -12,8 +12,8 @@
   \renewcommand*{\XeLaTeX}{XeLaTeX}}
 \usepackage{shortvrb}
 \MakeShortVerb{\|}
-\newcommand{\PkgVersion}{1.4}
-\newcommand{\PkgDate}{2017/02/03}
+\newcommand{\PkgVersion}{1.5}
+\newcommand{\PkgDate}{2017/03/11}
 \newcommand{\Pkg}[1]{\textsf{#1}}
 \newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
 \newcommand{\Note}{\par\noindent ※}
@@ -49,7 +49,7 @@
 本パッケージに含まれる文書クラス集
 (以下では\jemph{BXJS(文書)クラス}と呼ぶ)
 は、奥村晴彦氏および“日本語{\TeX}開発コミュニティ”により作製された
-「p{\LaTeXe}新ドキュメントクラス」
+\Pkg{jsclasses}パッケージの文書クラス集
 (以下では\jemph{JS(文書)クラス}と呼ぶ)
 の拡張版に相当する。
 JSクラスのレイアウトデザインと機能をほぼ踏襲しているが、
@@ -405,7 +405,8 @@
   \Note JSクラスの |\ifdraft| は2016/07/13版で廃止された。
   従って、BXJSクラスにおいて |\ifdraft| スイッチの使用を
   非推奨とし、将来的に廃止を予定する。
-\item 1.2版より、|\bf| や |\it| 等の旧式のフォント選択命令の使用が
+\item 1.2版より、|\bf| や |\it| 等の
+  {\pLaTeX}\,2.09方式のフォント選択命令の使用が
   非推奨となり、これらの命令を使うと警告が出るようになった。
   詳細は\ref{sec:Old-font-commands}節を参照。
 % TODO: \@ptsize の話
@@ -536,7 +537,7 @@
 \item エンジンオプション\Means
   実際に使用するエンジン({\LaTeX}コマンド名)を指定する。
   有効な値は |latex|、|platex|、|uplatex|、|pdflatex|、|xelatex|、
-  |lualatex| である。
+  |lualatex|、|platex-ng| である。
   エンジンオプション(と次項の |autodetect-engine| の何れか)
   の指定は必須である。
 \item |autodetect-engine|\Means
@@ -644,7 +645,7 @@
   値は |true|(有効)/|false|(無効)/|default|(既定値に従う)
   の何れかである。
   エンジンや和文ドライバの種類により、
-  既定値が有効・無効の何れになるかは異なるし、また、
+  既定値が有効・無効の何れになるかは異なり、また、
   そもそも有効・無効の一方しか選択できない場合もある。
   詳細については\ref{sec:Ja-math-fonts}節を参照されたい。
 \item |disablejfam|\Means
@@ -755,17 +756,36 @@
 \item |paragraph-mark=|\Meta{文字1つ}\Means
   パラグラフ(|\paragraph|)の見出し先頭に付く記号。
   既定値は“■”。
+\item |whole-zw-lines=|\Meta{真偽値}\Means
+  ページレイアウト策定において「行長を全角幅の整数倍に丸める処理」
+  を行うか否か。
+\item |hyperref-enc=|\Meta{真偽値}\Means
+  \Pkg{hyperref}パッケージについて
+  「PDF文字列の文字コード設定を補正する処理」
+  を行うか否か。
 \item |layout=|\Meta{値}\Means
   レイアウトの変種を選択する。
+  現状では、過去の版との互換性を維持するために用いられている。
   有効な値は以下の通り。
   \begin{itemize}
-  \item |v2|(既定)\Means
-    現版の既定のレイアウト。
-  \item |v1|\Means
-    \Pkg{bxjsbook}クラスについて、1.2a版以前の
-    (本来は不適切な)水平マージンの設定を適用する。
-    (詳細は\ref{ssec:page-layout}節を参照。)
-    その他のクラスについては |v2| と全く同じ。
+  \item \Pkg{bxjsbook}クラスの場合:
+    \begin{itemize}
+    \item |v2|(既定)\Means
+      現版の既定のレイアウト。
+    \item |v1|\Means
+      1.2a版以前の(本来は不適切な)水平マージンの設定を適用する。
+      (詳細は\ref{ssec:page-layout}節を参照。)
+    \end{itemize}
+  \item \Pkg{bxjsreport}クラスの場合:
+    \begin{itemize}
+    \item |v2|\Means
+      JSクラスに新設された\Pkg{jsreport}クラスのレイアウトを継承する。
+      \Note 近い将来に、既定値が |v2| に変更される予定。
+    \item |v1|(既定)\Means
+      従来の「\Pkg{jsbook}クラス\,+\,|report|オプション」の
+      レイアウトを継承する。
+    \end{itemize}
+  \item それ以外のクラスでは、本オプションは無効である。
   \end{itemize}
 \end{itemize}
 
@@ -816,9 +836,10 @@
 |titlepage|、|notitlepage|。
 
 \paragraph{起こし}
-|openright|、|openany|。
-\Note \Pkg{jsbook}のみ(BXJSでは\Pkg{bxjsreport}と\Pkg{bxjsbook})
-にのみ存在するオプション。
+|openright|、|openleft|、|openany|。
+\Note \Pkg{jsreport}と\Pkg{jsbook}にのみ存在するオプション。
+\Note |openleft| は部・章の開始を見開き左側のページ
+(偶数ページ)に強制する(左起こし)。
 
 \paragraph{数式配置}
 |leqno|、|fleqn|。
@@ -833,6 +854,25 @@
 \paragraph{英語化}
 |english|。
 
+\paragraph{エンジン種別}
+|uplatex|、|autodetect-engine|。
+\Note 既に\ref{ssec:BXJS-specific-option}節で述べた通り。
+
+\paragraph{magstyle指定}
+|usemag|、|nomag|、|nomag*|。
+\Note BXJSクラスでは、これらは“|magstyle=|”を前置したものと
+同等に扱われる。
+詳細は\ref{ssec:magstyle}節を参照。
+
+\paragraph{和文数式ファミリ不使用}
+|disablejfam|。
+\Note BXJSクラスでは |enablejfam=false| と同値。
+詳細は\ref{sec:Ja-math-fonts}節を参照。
+
+\paragraph{ロゴ命令パッケージの読込}
+|jslogo|、|nojslogo|。
+\Note BXJSクラスでは |nojslogo| が既定値である。
+
 %-------------------
 \subsection{JSクラスのオプションで使用不可能なもの}
 \label{ssec:JS-deleted-option}
@@ -939,8 +979,8 @@
 (エラーになる)。
 
 \Note |magstyle| オプションの既定値は |usemag| である。
-ただし例外として、Lua{\TeX}の0.87版以降では
-(|mag| が使えないため)|nomag*| が既定値となる。
+ただし例外として、|usemag| がサポートされない
+エンジンでは |nomag*| が既定値となる。
 
 %===========================================================
 \section{和文ドライバ}
@@ -954,7 +994,7 @@
 これを\jemph{和文ドライバ}と呼ぶ。
 \footnote{\Pkg{graphicx}パッケージ等の「ドライバ」と類似した概念
 のためこの名称を用いた。}%
-\Pkg{BXjscls}のバンドルでは次の2つの和文ドライバを提供している。
+\Pkg{BXjscls}のバンドルでは以下に挙げる和文ドライバを提供している。
 
 \begin{itemize}
 \item standard和文ドライバ\Means
@@ -971,7 +1011,7 @@
 用いることを想定している。
 \item pandoc和文ドライバ\Means
 「Pandocモード」で仕様される和文ドライバ。
-基本的にstandardと同じ設定を用いるが、
+standardドライバの機能を継承するが、
 「Pandocの既定のlatexテンプレート」が使われることを前提として、
 それとBXJSの設定を整合させるための措置を加えている。
 \end{itemize}
@@ -981,7 +1021,9 @@
   情報については、ソースコード説明書(bxjscls.pdf)
   の付録Aを参照してほしい。}%
 |bxjsja-XXX.def|(|XXX| は任意の文字列
-\footnote{カテゴリコード11または12の文字からなる必要がある。}%
+\footnote{{\LaTeX}の非特殊文字
+({\TeX}言語でいうとカテゴリコードが11または12の文字)
+からなる必要がある。}%
 )の名前のファイルに実装コードを書いてそのファイルを配置すると、
 |ja=XXX| のオプション指定でその和文ドライバを利用できる。
 
@@ -1083,8 +1125,26 @@
 \item |\subtitle{|\Meta{テキスト}|}|\Means
   サブタイトルを設定する。
   \Note |\maketitle| の出力にサブタイトルが含まれるようになる。
+\item |chapterabstract| 環境\Means
+  \Pkg{jsbook}クラスの |abstract| 環境
+  \footnote{article系やreport系のクラスにあるような
+    (文書要旨のための)abstract 環境は、book系クラスでは
+    用意されていないことが多いことに注意。}%
+  と等価な環境で、
+  “各章の初めにちょっとしたことを書く”用途を想定したもの。
+  (ただし使用可能な場所に特に制限はない。)
 \end{itemize}
 
+なお、|abstract| 環境の機能については継承元のJSクラスと同一に
+なるため以下のようになる。
+\begin{itemize}
+\item \Pkg{bxjsarticle}および|layout=v2|指定の\Pkg{bxjsreport}\Means
+  \Pkg{jsarticle}/\Pkg{jsreport}クラスと同じ、
+  つまり「文書要旨」のための環境。
+\item \Pkg{bxjsbook}および|layout=v1|指定の\Pkg{bxjsreport}\Means
+  \Pkg{jsbook}クラスと同じ、
+  つまり |chapterabstract| 環境と等価。
+\end{itemize}
 
 %-------------------
 \subsection{和文用設定関連}
@@ -1092,6 +1152,7 @@
 \begin{itemize}
 \item |\jsZw|\Means
   和文の全角幅を表す。
+  例えば |2\jsZw| が pLaTeX の |2zw| に相当する。
 \item |\zw|\Means
   |\jsZw| の別名。
   \footnote{\Pkg{\LuaTeX-ja}では「実際の全角幅」を表す
@@ -1098,7 +1159,7 @@
     命令 |\zw|({\pLaTeX}の |zw| と本当に等価)が規定されている。
     |lualatex| エンジン指定かつ和文ドライバが |standard| の場合は
     この |\zw| の定義がそのまま使われる。
-    (従って |nozw| は実質的に無効である。)
+    (従って |zw|/|nozw| は実質的に意味を持たない。)
     なお、|\jsZw| は「規約上の全角幅」であり、「実際の全角幅」と本来は
     一致するはずだが、実際には計算誤差のせいで僅かに値が異なる。}%
   ただし |nozw| 指定時は定義されない。
@@ -1108,12 +1169,10 @@
 
 \subsubsection{standard和文ドライバの場合}
 
-standard和文ドライバでは和文に関連する
+standard和文ドライバ(およびそれを継承するドライバ)では和文に関連する
 文書ソース記述をエンジンに依らずに共通になることを目指している。
-従って、和文関連の組版パラメタの設定*1についても
+従って、和文関連の組版パラメタの設定についても
 「共通の命令」が提供される。
-\footnote{pandoc和文ドライバはstandard和文ドライバの設定を
-引き継ぐため、pandocモードでもこれらの命令を使用できる。}
 
 \begin{itemize}
 \item 和文ファミリ変更命令\Means
@@ -1125,9 +1184,6 @@
   \footnote{ちなみに、(u){\pLaTeX}の既定ではこの連動は起こらない。}%
   に、|\rmfamily| で和文が「明朝」、
   |\sffamily| および |\ttfamily| で和文が「ゴシック」に変更される。
-\item |\zw|\Means
-  和文の全角幅を表す。
-  例えば |2\zw| が pLaTeX の |2zw| に相当する。
 \item |\jQ|、|\jH|、|\trueQ|、|\trueH|\Means
   それぞれ{\pLaTeX}の単位Q、H、trueQ、trueHに相当する長さ。
 \item |\ascQ|\Means

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

Modified: trunk/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx	2017-03-11 23:08:30 UTC (rev 43466)
+++ trunk/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx	2017-03-11 23:08:46 UTC (rev 43467)
@@ -67,7 +67,9 @@
 %<*driver>
 \ProvidesFile{bxjscls.dtx}
 %</driver>
-  [2017/02/03 v1.4 BXJS document classes]
+  [2017/03/11 v1.5 BXJS document classes]
+% based on jsclasses [2017/03/05]
+% [2017/02/03 v1.4 BXJS document classes]
 % [2017/01/28 v1.3a BXJS document classes]
 % based on jsclasses [2017/01/13]
 % [2016/11/01 v1.3 BXJS document classes]
@@ -189,10 +191,16 @@
 %
 % \iffalse
 % ここでは次のドキュメントクラス(スタイルファイル)を作ります。
+%
+% [2017-02-13] forum:2121の議論を機に,jsreportクラスを新設しました。
+% 従来のjsbookの |report| オプションと比べると,|abstract| 環境の使い方
+% および挙動がアスキーのjreportに近づきました。
+%
 % \begin{quote}
 %   \begin{tabular}{lll}
 %     $\langle$\textsf{article}$\rangle$ & \texttt{jsarticle.cls}  & 論文・レポート用 \\
 %     $\langle$\textsf{book}$\rangle$    & \texttt{jsbook.cls}     & 書籍用 \\
+%     $\langle$\textsf{report}$\rangle$  & \texttt{jsreport.cls}   & レポート用 \\
 %     $\langle$\textsf{jspf}$\rangle$    & \texttt{jspf.cls}       & 某学会誌用 \\
 %     $\langle$\textsf{kiyou}$\rangle$   & \texttt{kiyou.cls}      & 某紀要用
 %   \end{tabular}
@@ -481,8 +489,8 @@
 %
 % \begin{macro}{\if at openright}
 %
-% |\chapter|,|\part| を奇数ページ起こしにするかどうかです。
-% 書籍では真が標準です。
+% |\chapter|,|\part| を右ページ起こしにするかどうかです。
+% 横組の書籍では真が標準で,要するに片起こし,奇数ページ起こしになります。
 %
 %    \begin{macrocode}
 %<book|report>\newif\if at openright
@@ -489,6 +497,15 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\if at openleft}
+%
+% [2017-02-24] |\chapter|,|\part| を左ページ起こしにするかどうかです。
+%
+%    \begin{macrocode}
+%<book|report>\newif\if at openleft
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{\if at mainmatter}
 %
 % 真なら本文,偽なら前付け・後付けです。
@@ -762,12 +779,20 @@
 %
 % \paragraph{右左起こし}
 %
-% 書籍では章は通常は奇数ページ起こしになりますが,
+% 書籍では章は通常は奇数ページ起こしになりますが,横組ではこれを
+% \texttt{openright} と表すことにしてあります。
 % \texttt{openany} で偶数ページからでも始まるようになります。
 %
+% [2017-02-24] \texttt{openright} は横組では奇数ページ起こし,縦組では
+% 偶数ページ起こしを表します。ややこしいですが,これは\LaTeX の標準クラスが
+% 西欧の横組事情しか考慮せずに,奇数ページ起こしと右起こしを一緒にしてしまっ
+% たせいです。縦組での奇数ページ起こしと横組での偶数ページ起こしも表現したい
+% ので,jsclassesでは新たに \texttt{openleft} も追加しました。
+%
 %    \begin{macrocode}
-%<book|report>\DeclareOption{openright}{\@openrighttrue}
-%<book|report>\DeclareOption{openany}{\@openrightfalse}
+%<book|report>\DeclareOption{openright}{\@openrighttrue\@openleftfalse}
+%<book|report>\DeclareOption{openleft}{\@openlefttrue\@openrightfalse}
+%<book|report>\DeclareOption{openany}{\@openrightfalse\@openleftfalse}
 %    \end{macrocode}
 %
 % \paragraph{eqnarray環境と数式の位置}
@@ -955,12 +980,16 @@
 \DeclareOption{english}{\@englishtrue}
 %    \end{macrocode}
 %
-% \paragraph{jsreport相当}
+% \paragraph{jsbookをjsreportもどきに}
 %
 % オプション \texttt{report} を新設しました。
 %
+% [2017-02-13] 従来は「jsreport相当」をjsbookの \texttt{report} オプションで提供して
+% いましたが,新しくjsreportクラスも作りました。どちらでもお好きな方を使ってください。
+%
 % \begin{ZRnote}
 % BXJS では `|report|' 相当のものは別に |bxjsreport| クラスとして用意する。
+% \Note FIXME:|jsbook|\,+\,|report| と |jsreport|のどちらに合わせるか。
 % \end{ZRnote}
 %
 % \paragraph{jslogoパッケージの読み込み}
@@ -1022,9 +1051,8 @@
 % \item |textwidth-limit=|\meta{number} : |bxjsbook| における、
 %   |\textwidth| の上限の全角単位での値。
 % \item |paragraph-mark=|\meta{char} : パラグラフのマーク。
-% \item |whole-zw-lines| : (予定)
-% \item |dummy-microtype| : (予定)
-% \item |hyperref-enc| : (予定)
+% \item |whole-zw-lines=|\meta{bool} : 行長を全角単位に丸めるか。
+% \item |hyperref-enc=|\meta{bool} : |hyperref| の文字コード指定補正を行うか。
 % \end{itemize}
 %
 % \begin{macro}{\bxjs at invscale}
@@ -1585,18 +1613,34 @@
 % \begin{macro}{\ifbxjs at layout@buggyhmargin}
 % 〔スイッチ〕
 % |bxjsbook| の左右マージンがアレか。
-% \Note 既定はアレだが1.3版で非アレになる予定。
+% \Note |layout| が |v1| の場合はアレになる。
 %    \begin{macrocode}
-\newif\ifbxjs at layout@buggyhmargin \bxjs at layout@buggyhmarginfalse
+\newif\ifbxjs at layout@buggyhmargin
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\ifbxjs at force@chapterabstract}
+% 〔スイッチ〕
+% abstract環境をchapterabstractにするか。
+% \Note |bxjsbook| では常に真。
+% |bxjsreport| では |layout| が |v1| の場合に真になる。
+% \Note ただし1.5版では移行措置のため |bxjsreport| の既定値を真にする。
+%    \begin{macrocode}
+\newif\ifbxjs at force@chapterabstract
+%<book|report>\bxjs at force@chapterabstracttrue
+%    \end{macrocode}
+% \end{macro}
+%
 % |layout| オプションの処理。
 %    \begin{macrocode}
 \@namedef{bxjs at kv@layout at v1}{%
-  \bxjs at layout@buggyhmargintrue}
+%<book>\bxjs at layout@buggyhmargintrue
+%<report>\bxjs at force@chapterabstracttrue
+}
 \@namedef{bxjs at kv@layout at v2}{%
-  \bxjs at layout@buggyhmarginfalse}
+%<book>\bxjs at layout@buggyhmarginfalse
+%<report>\bxjs at force@chapterabstractfalse
+}
 \define at key{bxjs}{layout}{%
   \bxjs at set@keyval{layout}{#1}{}}
 %    \end{macrocode}
@@ -1631,16 +1675,6 @@
 %    \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}
@@ -1679,8 +1713,8 @@
 %
 %    \begin{macrocode}
 %<article>\ExecuteOptions{a4paper,oneside,onecolumn,notitlepage,final}
+%<book>\ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final}
 %<report>\ExecuteOptions{a4paper,oneside,onecolumn,titlepage,openany,final}
-%<book>\ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final}
 %<slide>\ExecuteOptions{36pt,a4paper,landscape,oneside,onecolumn,titlepage,final}
 \ProcessOptions\relax
 \bxjs at composite@proc
@@ -2833,12 +2867,14 @@
     \let\Gm at driver\bxjs at geometry@driver
   \fi
 % textwidth 調整
-  \@tempdimb=\textwidth
-  \if at twocolumn \@tempdima=2\Cwd \else \@tempdima=1\Cwd \fi
-  \divide\textwidth\@tempdima \multiply\textwidth\@tempdima
-  \advance\@tempdimb-\textwidth
-  \advance\oddsidemargin 0.5\@tempdimb
-  \advance\evensidemargin 0.5\@tempdimb
+  \ifbxjs at whole@zw at lines
+    \@tempdimb=\textwidth
+    \if at twocolumn \@tempdima=2\Cwd \else \@tempdima=1\Cwd \fi
+    \divide\textwidth\@tempdima \multiply\textwidth\@tempdima
+    \advance\@tempdimb-\textwidth
+    \advance\oddsidemargin 0.5\@tempdimb
+    \advance\evensidemargin 0.5\@tempdimb
+  \fi
   \fullwidth=\textwidth
 %<*book>
   \ifdim\textwidth>\jsTextWidthLimit\Cwd
@@ -2862,7 +2898,9 @@
   \setlength\marginparpush{\baselineskip}
   \setlength\marginparwidth{\paperwidth-\oddsidemargin-1truein%
       -\textwidth-10\jsc at mmm-\marginparsep}
-  \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd
+  \ifbxjs at whole@zw at lines
+    \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd
+  \fi
 % 連動する変数
   \maxdepth=.5\topskip
   \stockwidth=\paperwidth
@@ -3247,6 +3285,86 @@
 % \end{macro}
 % \end{macro}
 %
+% \section{改ページ(日本語\TeX{}開発コミュニティ版のみ)}\label{sec:cleardoublepage}
+%
+% \begin{macro}{\pltx at cleartorightpage}
+% \begin{macro}{\pltx at cleartoleftpage}
+% \begin{macro}{\pltx at cleartooddpage}
+% \begin{macro}{\pltx at cleartoevenpage}
+% [2017-02-24] コミュニティ版\pLaTeX の標準クラス2017/02/15に合わせて,
+% 同じ命令を追加しました。
+% \begin{enumerate}
+%   \item|\pltx at cleartorightpage|:右ページになるまでページを繰る命令
+%   \item|\pltx at cleartoleftpage|:左ページになるまでページを繰る命令
+%   \item|\pltx at cleartooddpage|:奇数ページになるまでページを繰る命令
+%   \item|\pltx at cleartoevenpage|:偶数ページになるまでページを繰る命令
+% \end{enumerate}
+% となっています。
+%    \begin{macrocode}
+%\def\pltx at cleartorightpage{\clearpage\if at twoside
+%  \ifodd\c at page
+%    \iftdir
+%      \hbox{}\thispagestyle{empty}\newpage
+%      \if at twocolumn\hbox{}\newpage\fi
+%    \fi
+%  \else
+%    \ifydir
+%      \hbox{}\thispagestyle{empty}\newpage
+%      \if at twocolumn\hbox{}\newpage\fi
+%    \fi
+%  \fi\fi}
+%\def\pltx at cleartoleftpage{\clearpage\if at twoside
+%  \ifodd\c at page
+%    \ifydir
+%      \hbox{}\thispagestyle{empty}\newpage
+%      \if at twocolumn\hbox{}\newpage\fi
+%    \fi
+%  \else
+%    \iftdir
+%      \hbox{}\thispagestyle{empty}\newpage
+%      \if at twocolumn\hbox{}\newpage\fi
+%    \fi
+%  \fi\fi}
+\def\pltx at cleartooddpage{\clearpage\if at twoside
+  \ifodd\c at page\else
+    \hbox{}\thispagestyle{empty}\newpage
+    \if at twocolumn\hbox{}\newpage\fi
+  \fi\fi}
+\def\pltx at cleartoevenpage{\clearpage\if at twoside
+  \ifodd\c at page
+    \hbox{}\thispagestyle{empty}\newpage
+    \if at twocolumn\hbox{}\newpage\fi
+  \fi\fi}
+%    \end{macrocode}
+%
+% \begin{ZRnote}
+% BXJSクラスでは |\iftdir| 等が使えないので、
+% 横組を仮定した定義を用いる。
+%    \begin{macrocode}
+\let\pltx at cleartorightpage\pltx at cleartooddpage
+\let\pltx at cleartoleftpage\pltx at cleartoevenpage
+%    \end{macrocode}
+% \end{ZRnote}
+%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\cleardoublepage}
+% [2017-02-24] コミュニティ版\pLaTeX の標準クラス2017/02/15に合わせて,
+% reportとbookクラスの場合に|\cleardoublepage|を再定義します。
+%    \begin{macrocode}
+%<*book|report>
+\if at openleft
+  \let\cleardoublepage\pltx at cleartoleftpage
+\else\if at openright
+  \let\cleardoublepage\pltx at cleartorightpage
+\fi\fi
+%</book|report>
+%    \end{macrocode}
+% \end{macro}
+%
 % \section{ページスタイル}\label{sec:pagestyle}
 %
 % ページスタイルとして,\LaTeXe (欧文版)の標準クラス
@@ -3389,7 +3507,7 @@
 %</article|slide>
 %    \end{macrocode}
 %
-% 次は book の場合です。
+% 次は book および report の場合です。
 % [2011-05-10] しっぽ愛好家さん [qa:6370] のパッチを取り込ませていただきました
 % (北見さん [qa:55896] のご指摘ありがとうございます)。
 %
@@ -4094,14 +4212,18 @@
 %
 % ページ番号をローマ数字にし,章番号を付けないようにします。
 %
+% [2017-03-05] |\frontmatter| と |\mainmatter| の2つの命令は,
+% 改丁または改ページした後で |\pagenumbering{...}| でノンブルを1に
+% リセットします。長い間 |\frontmatter| は \texttt{openany} のときに
+% 単なる改ページとしていましたが,これではノンブルをリセットする際に
+% 偶奇逆転が起こる場合がありました。\texttt{openany} かどうかに依らず
+% 奇数ページまで繰るように修正することで,問題を解消しました。
+% 実は,\LaTeX の標準クラスでは1998年に修正されていた問題です
+% (コミュニティ版\pLaTeX の標準クラス2017/03/05も参照)。
+%
 %    \begin{macrocode}
 %<*book|report>
-\newcommand\frontmatter{%
-  \if at openright
-    \cleardoublepage
-  \else
-    \clearpage
-  \fi
+  \pltx at cleartooddpage
   \@mainmatterfalse
   \pagenumbering{roman}}
 %    \end{macrocode}
@@ -4113,11 +4235,7 @@
 %
 %    \begin{macrocode}
 \newcommand\mainmatter{%
-% \if at openright
-    \cleardoublepage
-% \else
-%   \clearpage
-% \fi
+  \pltx at cleartooddpage
   \@mainmattertrue
   \pagenumbering{arabic}}
 %    \end{macrocode}
@@ -4129,11 +4247,13 @@
 %
 %    \begin{macrocode}
 \newcommand\backmatter{%
-  \if at openright
+  \if at openleft
     \cleardoublepage
+  \else\if at openright
+    \cleardoublepage
   \else
     \clearpage
-  \fi
+  \fi\fi
   \@mainmatterfalse}
 %</book|report>
 %    \end{macrocode}
@@ -4165,7 +4285,7 @@
 %   \def\CMDB    #1{....}     % \chapter*{...} の定義
 %\end{verbatim}
 %
-% まず |book| クラス以外です。
+% まず |book| と |report| のクラス以外です。
 %
 %    \begin{macrocode}
 %<*!book&!report>
@@ -4178,16 +4298,18 @@
 %</!book&!report>
 %    \end{macrocode}
 %
-% |book| スタイルの場合は,少し複雑です。
+% |book| および |report| クラスの場合は,少し複雑です。
 %
 %    \begin{macrocode}
 %<*book|report>
 \newcommand\part{%
-  \if at openright
+  \if at openleft
     \cleardoublepage
+  \else\if at openright
+    \cleardoublepage
   \else
     \clearpage
-  \fi
+  \fi\fi
   \thispagestyle{empty}% 欧文用標準スタイルでは plain
   \if at twocolumn
     \onecolumn
@@ -4206,7 +4328,7 @@
 % 部の見出しを出力します。
 % |\bfseries| を |\headfont| に変えました。
 %
-% |book| クラス以外では |secnumdepth| が $-1$ より大きいとき
+% |book| および |report| クラス以外では |secnumdepth| が $-1$ より大きいとき
 % 部番号を付けます。
 %
 %    \begin{macrocode}
@@ -4236,7 +4358,7 @@
 %</!book&!report>
 %    \end{macrocode}
 %
-% |book| クラスでは |secnumdepth| が $-2$ より大きいとき部番号を付けます。
+% |book| および |report| クラスでは |secnumdepth| が $-2$ より大きいとき部番号を付けます。
 %
 %    \begin{macrocode}
 %<*book|report>
@@ -4303,11 +4425,11 @@
 %<*book|report>
 \def\@endpart{\vfil\newpage
   \if at twoside
-   \if at openright %% added (2016/12/13)
-    \null
-    \thispagestyle{empty}%
-    \newpage
-   \fi %% added (2016/12/13)
+   \if at openleft %% added (2017/02/24)
+    \null\thispagestyle{empty}\newpage
+   \else\if at openright %% added (2016/12/13)
+    \null\thispagestyle{empty}\newpage
+   \fi\fi %% added (2016/12/13, 2017/02/24)
   \fi
   \if at restonecol
     \twocolumn
@@ -4328,7 +4450,8 @@
 %    \begin{macrocode}
 %<*book|report>
 \newcommand{\chapter}{%
-  \if at openright\cleardoublepage\else\clearpage\fi
+  \if at openleft\cleardoublepage\else
+  \if at openright\cleardoublepage\else\clearpage\fi\fi
   \plainifnotempty % 元: \thispagestyle{plain}
   \global\@topnum\z@
   \if at english \@afterindentfalse \else \@afterindenttrue \fi
@@ -4519,9 +4642,11 @@
 % \end{ZRnote}
 %    \begin{macrocode}
 \newcommand\jsParagraphMark{\jsJaChar{■}}
-\ifx\bxjs at paragraph@mark\@undefined\else
+\ifx\bxjs at paragraph@mark\@empty
+  \let\jsParagraphMark\@empty
+\else\ifx\bxjs at paragraph@mark\@undefined\else
   \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs at paragraph@mark}}
-\fi
+\fi\fi
 \let\jsJaChar\@empty
 \if at twocolumn
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
@@ -4866,9 +4991,22 @@
 %
 % JSPFスタイルでは実際の出力は |\maketitle| で行われます。
 %
+% \begin{ZRnote}
+% |bxjsreport| クラスのabstract環境は:
+% \begin{itemize}
+% \item |layout=v1| の場合は |jsbook|\,+\,|report| の動作を継承する。
+%   つまり |jsbook| と同じになる。
+% \item |layout=v2| の場合は新設の |jsreport| の動作を継承する。
+%   つまり |jsarticle|(+\,|titlapage|)と同じになる。
+% \end{itemize}
+%
+% \begin{environment}{chapterabstract}
+% |jsbook| のabstract環境
+% (「各章の初めにちょっとしたことを書く」ためのもの)
+% をchapterabstractと呼ぶことにする。
 %    \begin{macrocode}
 %<*book|report>
-\newenvironment{abstract}{%
+\newenvironment{chapterabstract}{%
   \begin{list}{}{%
     \listparindent=1\jsZw
     \itemindent=\listparindent
@@ -4875,7 +5013,12 @@
     \rightmargin=\z@
     \leftmargin=5\jsZw}\item[]}{\end{list}\vspace{\baselineskip}}
 %</book|report>
-%<*article|slide>
+%    \end{macrocode}
+% \end{environment}
+%
+% “普通の”abstract環境の定義。
+%    \begin{macrocode}
+%<*article|report|slide>
 \newbox\@abstractbox
 \if at titlepage
   \newenvironment{abstract}{%
@@ -4885,7 +5028,12 @@
     \begin{center}%
       \headfont \abstractname
       \@endparpenalty\@M
-    \end{center}}%
+    \end{center}%
+%    \end{macrocode}
+% BXJSクラスでは、
+% 概要の最初の段落に段落下げが入るようにする。
+%    \begin{macrocode}
+    \par}%
   {\par\vfil\null\endtitlepage}
 \else
   \newenvironment{abstract}{%
@@ -4924,7 +5072,7 @@
       \endlist
     \fi}
 \fi
-%</article|slide>
+%</article|report|slide>
 %<*jspf>
 \newbox\@abstractbox
 \newenvironment{abstract}{%
@@ -4935,6 +5083,19 @@
   {\end{minipage}\egroup}
 %</jspf>
 %    \end{macrocode}
+%
+% |bxjs at force@chapterabstract| が真の場合は、abstract環境を
+% chapterabstract環境と等価にする。
+%    \begin{macrocode}
+%<*book|report>
+\ifbxjs at force@chapterabstract
+  \let\abstract\chapterabstract
+  \let\endabstract\endchapterabstract
+\fi
+%</book|report>
+%    \end{macrocode}
+% \end{ZRnote}
+%
 % \end{environment}
 %
 % \paragraph{キーワード}
@@ -5032,9 +5193,17 @@
 %
 % タイトルを独立のページに出力するのに使われます。
 %
+% [2017-02-24] コミュニティ版\pLaTeX の標準クラス2017/02/15に合わせて,
+% bookクラスでタイトルを必ず奇数ページに送るようにしました。といっても,
+% 横組クラスしかありませんでしたので,従来の挙動は何も変わっていません。
+% また,book以外の場合のページ番号のリセットもコミュニティ版\pLaTeX の
+% 標準クラス2017/02/15に合わせましたが,こちらも片面印刷あるいは
+% 独立のタイトルページを作らないクラスばかりでしたので,従来の挙動は
+% 何も変わらずに済みました。
+%
 %    \begin{macrocode}
 \newenvironment{titlepage}{%
-%<book|report>    \cleardoublepage
+%<book>    \pltx at cleartooddpage %% 2017-02-24
     \if at twocolumn
       \@restonecoltrue\onecolumn
     \else
@@ -5041,7 +5210,7 @@
       \@restonecolfalse\newpage
     \fi
     \thispagestyle{empty}%
-    \setcounter{page}\@ne
+    \ifodd\c at page\setcounter{page}\@ne\else\setcounter{page}\z@\fi %% 2017-02-24
   }%
   {\if at restonecol\twocolumn \else \newpage \fi
     \if at twoside\else
@@ -6401,14 +6570,14 @@
 % [2016-12-01] すぐ上の変更で |\@tempa| を使っていたのがよくなかった
 % ので,プレフィックスを付けて |\jsc at tempa| にしました(forum:2085)。
 %
+% [2017-02-13] |\jsc at tempa| は実はテンポラリではなく「この処理専用の
+% ユニーク制御綴」である必要があります。間違って別の箇所で使う危険性が
+% 高いので,専用の命令 |\jsc at ig@temp| に置き換えました(Issue \#54)。
+%
 % \begin{ZRnote}
 % \begin{macro}{\@inhibitglue}
 % JSクラスでの |\jsInhibitGlueAtParTop| の実装。
 % (これは{(u)\pTeX}専用である。)
-%
-% \Note |\jsc at tempa| は実はテンポラリではなく「この処理専用の
-% ユニーク制御綴」である(でないと不正である)が、間違って別の箇所で
-% 使う危険性が高いので |\bxjs at ig@temp| に置き換えた。
 %    \begin{macrocode}
 \def\@inhibitglue{%
   \futurelet\@let at token\@@inhibitglue}
@@ -6431,8 +6600,8 @@
 \def\@@inhibitglue{%
   \expandafter\expandafter\expandafter\jsc at inhibitglue\expandafter\meaning\expandafter\@let at token\KANJI at CHARACTER\relax\jsc at end}
 \expandafter\def\expandafter\jsc at inhibitglue\expandafter#\expandafter1\KANJI at CHARACTER#2#3\jsc at end{%
-  \def\bxjs at ig@temp{#1}%
-  \ifx\bxjs at ig@temp\@empty
+  \def\jsc at ig@temp{#1}%
+  \ifx\jsc at ig@temp\@empty
     \ifnum\the\inhibitxspcode`#2=2\relax
       \inhibitglue
     \fi
@@ -6661,7 +6830,7 @@
 %    \begin{macrocode}
 % \newcommand{\appendixname}{\if at english Appendix~\else 付録\fi}
 \newcommand{\appendixname}{\if at english \else 付録\fi}
-%<!book&!report>\newcommand{\abstractname}{\if at english Abstract\else 概要\fi}
+%<!book>\newcommand{\abstractname}{\if at english Abstract\else 概要\fi}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -7979,7 +8148,9 @@
 %
 % |unicode| にしてはいけない。
 %    \begin{macrocode}
-\bxjs at fix@hyperref at unicode{false}
+\ifbxjs at hyperref@enc
+  \bxjs at fix@hyperref at unicode{false}
+\fi
 %    \end{macrocode}
 %
 % |tounicode| special命令を出力する。
@@ -8002,13 +8173,6 @@
 \fi
 %    \end{macrocode}
 %
-% \paragraph{microtype対策}
-%
-%    \begin{macrocode}
-\@namedef{ver at microtype.sty}{2000/01/01}
-\newcommand*\UseMicrotypeSet[2][]{}
-%    \end{macrocode}
-%
 % \paragraph{和文数式ファミリ}
 %
 % 和文数式ファミリは既定で有効とする。
@@ -8064,7 +8228,9 @@
 % |bxcjkjatype| 使用時は |unicode| にするべき。
 % \Note 取りあえず固定はしない。
 %    \begin{macrocode}
-\PassOptionsToPackage{unicode}{hyperref}
+\ifbxjs at hyperref@enc
+  \PassOptionsToPackage{unicode}{hyperref}
+\fi
 %    \end{macrocode}
 %
 % |\hypersetup| 命令で(|CJK*| 環境に入れなくても)日本語文字を
@@ -8203,7 +8369,9 @@
 % \Note 取りあえず固定はしない。
 %    \begin{macrocode}
 \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99992}>\m at ne
-  \PassOptionsToPackage{unicode}{hyperref}
+  \ifbxjs at hyperref@enc
+    \PassOptionsToPackage{unicode}{hyperref}
+  \fi
 \fi
 %    \end{macrocode}
 %
@@ -8381,7 +8549,9 @@
 %
 % |unicode| にするべき。
 %    \begin{macrocode}
-\bxjs at fix@hyperref at unicode{true}
+\ifbxjs at hyperref@enc
+  \bxjs at fix@hyperref at unicode{true}
+\fi
 %    \end{macrocode}
 %
 % \paragraph{共通命令の実装}
@@ -8710,9 +8880,23 @@
 % 警告が多すぎなので消す。
 %
 %    \begin{macrocode}
-\PassOptionsToPackage{verbose=silent}{microtype}
+\if j\jsEngine \else
+  \PassOptionsToPackage{verbose=silent}{microtype}
+\fi
 %    \end{macrocode}
 %
+% エンジンが{(u)\pLaTeX}のときに |microtype| パッケージが
+% 読み込まれるのを阻止し、さらにテンプレートで使われている命令を
+% 通すためにダミーの定義を行う。
+% \Note 昔はstandardドライバでこの処理を行っていたが、
+% 元来はPandoc用の処理なので、1.5版でpandocに移動。
+%    \begin{macrocode}
+\if j\jsEngine
+  \bxjs at mark@as at loaded{microtype.sty}
+  \newcommand*\UseMicrotypeSet[2][]{}
+\fi
+%    \end{macrocode}
+%
 %^^A----------------
 % \subsection{完了}
 % おしまい。

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls	2017-03-11 23:08:30 UTC (rev 43466)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls	2017-03-11 23:08:46 UTC (rev 43467)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsarticle}
-  [2017/02/03 v1.4 BXJS document classes]
+  [2017/03/11 v1.5 BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \RequirePackage{calc}
 \RequirePackage{keyval}
@@ -481,11 +481,12 @@
     \let\bxjs at driver@given\@undefined
     \bxjs at dvi@opttrue
   \fi}
-\newif\ifbxjs at layout@buggyhmargin \bxjs at layout@buggyhmarginfalse
+\newif\ifbxjs at layout@buggyhmargin
+\newif\ifbxjs at force@chapterabstract
 \@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}{%
@@ -496,10 +497,6 @@
 \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
@@ -910,12 +907,14 @@
   \ifx\bxjs at geometry@driver\relax\else
     \let\Gm at driver\bxjs at geometry@driver
   \fi
-  \@tempdimb=\textwidth
-  \if at twocolumn \@tempdima=2\Cwd \else \@tempdima=1\Cwd \fi
-  \divide\textwidth\@tempdima \multiply\textwidth\@tempdima
-  \advance\@tempdimb-\textwidth
-  \advance\oddsidemargin 0.5\@tempdimb
-  \advance\evensidemargin 0.5\@tempdimb
+  \ifbxjs at whole@zw at lines
+    \@tempdimb=\textwidth
+    \if at twocolumn \@tempdima=2\Cwd \else \@tempdima=1\Cwd \fi
+    \divide\textwidth\@tempdima \multiply\textwidth\@tempdima
+    \advance\@tempdimb-\textwidth
+    \advance\oddsidemargin 0.5\@tempdimb
+    \advance\evensidemargin 0.5\@tempdimb
+  \fi
   \fullwidth=\textwidth
   \@tempdimb=\textheight
   \advance\textheight-\topskip
@@ -930,7 +929,9 @@
   \setlength\marginparpush{\baselineskip}
   \setlength\marginparwidth{\paperwidth-\oddsidemargin-1truein%
       -\textwidth-10\jsc at mmm-\marginparsep}
-  \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd
+  \ifbxjs at whole@zw at lines
+    \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd
+  \fi
   \maxdepth=.5\topskip
   \stockwidth=\paperwidth
   \stockheight=\paperheight
@@ -1029,6 +1030,18 @@
 \setlength\@dblfptop{0\p@? \@plus 1fil}
 \setlength\@dblfpsep{8\p@? \@plus 2fil}
 \setlength\@dblfpbot{0\p@? \@plus 1fil}
+\def\pltx at cleartooddpage{\clearpage\if at twoside
+  \ifodd\c at page\else
+    \hbox{}\thispagestyle{empty}\newpage
+    \if at twocolumn\hbox{}\newpage\fi
+  \fi\fi}
+\def\pltx at cleartoevenpage{\clearpage\if at twoside
+  \ifodd\c at page
+    \hbox{}\thispagestyle{empty}\newpage
+    \if at twocolumn\hbox{}\newpage\fi
+  \fi\fi}
+\let\pltx at cleartorightpage\pltx at cleartooddpage
+\let\pltx at cleartoleftpage\pltx at cleartoevenpage
 \def\ps at plainfoot{%
   \let\@mkboth\@gobbletwo
   \let\@oddhead\@empty
@@ -1412,9 +1425,11 @@
     {\normalfont\normalsize\headfont}}
 \fi
 \newcommand\jsParagraphMark{\jsJaChar{■}}
-\ifx\bxjs at paragraph@mark\@undefined\else
+\ifx\bxjs at paragraph@mark\@empty
+  \let\jsParagraphMark\@empty
+\else\ifx\bxjs at paragraph@mark\@undefined\else
   \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs at paragraph@mark}}
-\fi
+\fi\fi
 \let\jsJaChar\@empty
 \if at twocolumn
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
@@ -1523,7 +1538,8 @@
     \begin{center}%
       \headfont \abstractname
       \@endparpenalty\@M
-    \end{center}}%
+    \end{center}%
+    \par}%
   {\par\vfil\null\endtitlepage}
 \else
   \newenvironment{abstract}{%
@@ -1590,7 +1606,7 @@
       \@restonecolfalse\newpage
     \fi
     \thispagestyle{empty}%
-    \setcounter{page}\@ne
+    \ifodd\c at page\setcounter{page}\@ne\else\setcounter{page}\z@\fi %% 2017-02-24
   }%
   {\if at restonecol\twocolumn \else \newpage \fi
     \if at twoside\else
@@ -1931,8 +1947,8 @@
 \def\@@inhibitglue{%
   \expandafter\expandafter\expandafter\jsc at inhibitglue\expandafter\meaning\expandafter\@let at token\KANJI at CHARACTER\relax\jsc at end}
 \expandafter\def\expandafter\jsc at inhibitglue\expandafter#\expandafter1\KANJI at CHARACTER#2#3\jsc at end{%
-  \def\bxjs at ig@temp{#1}%
-  \ifx\bxjs at ig@temp\@empty
+  \def\jsc at ig@temp{#1}%
+  \ifx\jsc at ig@temp\@empty
     \ifnum\the\inhibitxspcode`#2=2\relax
       \inhibitglue
     \fi

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls	2017-03-11 23:08:30 UTC (rev 43466)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls	2017-03-11 23:08:46 UTC (rev 43467)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsbook}
-  [2017/02/03 v1.4 BXJS document classes]
+  [2017/03/11 v1.5 BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \RequirePackage{calc}
 \RequirePackage{keyval}
@@ -114,6 +114,7 @@
 \newif\if at restonecol
 \newif\if at titlepage
 \newif\if at openright
+\newif\if at openleft
 \newif\if at mainmatter \@mainmattertrue
 \newif\if at enablejfam \@enablejfamfalse
 \def\bxjs at setpaper#1{\def\bxjs at param@paper{#1}}
@@ -198,8 +199,9 @@
 \DeclareOption{twocolumn}{\@twocolumntrue}
 \DeclareOption{titlepage}{\@titlepagetrue}
 \DeclareOption{notitlepage}{\@titlepagefalse}
-\DeclareOption{openright}{\@openrighttrue}
-\DeclareOption{openany}{\@openrightfalse}
+\DeclareOption{openright}{\@openrighttrue\@openleftfalse}
+\DeclareOption{openleft}{\@openlefttrue\@openrightfalse}
+\DeclareOption{openany}{\@openrightfalse\@openleftfalse}
 \def\eqnarray{%
    \stepcounter{equation}%
    \def\@currentlabel{\p at equation\theequation}%
@@ -485,11 +487,15 @@
     \let\bxjs at driver@given\@undefined
     \bxjs at dvi@opttrue
   \fi}
-\newif\ifbxjs at layout@buggyhmargin \bxjs at layout@buggyhmarginfalse
+\newif\ifbxjs at layout@buggyhmargin
+\newif\ifbxjs at force@chapterabstract
+\bxjs at force@chapterabstracttrue
 \@namedef{bxjs at kv@layout at v1}{%
-  \bxjs at layout@buggyhmargintrue}
+\bxjs at layout@buggyhmargintrue
+}
 \@namedef{bxjs at kv@layout at v2}{%
-  \bxjs at layout@buggyhmarginfalse}
+\bxjs at layout@buggyhmarginfalse
+}
 \define at key{bxjs}{layout}{%
   \bxjs at set@keyval{layout}{#1}{}}
 \define at key{bxjs}{textwidth-limit}{%
@@ -500,10 +506,6 @@
 \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
@@ -927,12 +929,14 @@
   \ifx\bxjs at geometry@driver\relax\else
     \let\Gm at driver\bxjs at geometry@driver
   \fi
-  \@tempdimb=\textwidth
-  \if at twocolumn \@tempdima=2\Cwd \else \@tempdima=1\Cwd \fi
-  \divide\textwidth\@tempdima \multiply\textwidth\@tempdima
-  \advance\@tempdimb-\textwidth
-  \advance\oddsidemargin 0.5\@tempdimb
-  \advance\evensidemargin 0.5\@tempdimb
+  \ifbxjs at whole@zw at lines
+    \@tempdimb=\textwidth
+    \if at twocolumn \@tempdima=2\Cwd \else \@tempdima=1\Cwd \fi
+    \divide\textwidth\@tempdima \multiply\textwidth\@tempdima
+    \advance\@tempdimb-\textwidth
+    \advance\oddsidemargin 0.5\@tempdimb
+    \advance\evensidemargin 0.5\@tempdimb
+  \fi
   \fullwidth=\textwidth
   \ifdim\textwidth>\jsTextWidthLimit\Cwd
     \textwidth=\jsTextWidthLimit\Cwd
@@ -951,7 +955,9 @@
   \setlength\marginparpush{\baselineskip}
   \setlength\marginparwidth{\paperwidth-\oddsidemargin-1truein%
       -\textwidth-10\jsc at mmm-\marginparsep}
-  \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd
+  \ifbxjs at whole@zw at lines
+    \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd
+  \fi
   \maxdepth=.5\topskip
   \stockwidth=\paperwidth
   \stockheight=\paperheight
@@ -1050,6 +1056,23 @@
 \setlength\@dblfptop{0\p@? \@plus 1fil}
 \setlength\@dblfpsep{8\p@? \@plus 2fil}
 \setlength\@dblfpbot{0\p@? \@plus 1fil}
+\def\pltx at cleartooddpage{\clearpage\if at twoside
+  \ifodd\c at page\else
+    \hbox{}\thispagestyle{empty}\newpage
+    \if at twocolumn\hbox{}\newpage\fi
+  \fi\fi}
+\def\pltx at cleartoevenpage{\clearpage\if at twoside
+  \ifodd\c at page
+    \hbox{}\thispagestyle{empty}\newpage
+    \if at twocolumn\hbox{}\newpage\fi
+  \fi\fi}
+\let\pltx at cleartorightpage\pltx at cleartooddpage
+\let\pltx at cleartoleftpage\pltx at cleartoevenpage
+\if at openleft
+  \let\cleardoublepage\pltx at cleartoleftpage
+\else\if at openright
+  \let\cleardoublepage\pltx at cleartorightpage
+\fi\fi
 \def\ps at plainfoot{%
   \let\@mkboth\@gobbletwo
   \let\@oddhead\@empty
@@ -1360,31 +1383,30 @@
    \theparagraph.\@arabic\c at subparagraph}
 \newcommand{\@chapapp}{\prechaptername}
 \newcommand{\@chappos}{\postchaptername}
-\newcommand\frontmatter{%
-  \if at openright
-    \cleardoublepage
-  \else
-    \clearpage
-  \fi
+  \pltx at cleartooddpage
   \@mainmatterfalse
   \pagenumbering{roman}}
 \newcommand\mainmatter{%
-    \cleardoublepage
+  \pltx at cleartooddpage
   \@mainmattertrue
   \pagenumbering{arabic}}
 \newcommand\backmatter{%
-  \if at openright
+  \if at openleft
     \cleardoublepage
+  \else\if at openright
+    \cleardoublepage
   \else
     \clearpage
-  \fi
+  \fi\fi
   \@mainmatterfalse}
 \newcommand\part{%
-  \if at openright
+  \if at openleft
     \cleardoublepage
+  \else\if at openright
+    \cleardoublepage
   \else
     \clearpage
-  \fi
+  \fi\fi
   \thispagestyle{empty}% 欧文用標準スタイルでは plain
   \if at twocolumn
     \onecolumn
@@ -1420,17 +1442,18 @@
   \@endpart}
 \def\@endpart{\vfil\newpage
   \if at twoside
-   \if at openright %% added (2016/12/13)
-    \null
-    \thispagestyle{empty}%
-    \newpage
-   \fi %% added (2016/12/13)
+   \if at openleft %% added (2017/02/24)
+    \null\thispagestyle{empty}\newpage
+   \else\if at openright %% added (2016/12/13)
+    \null\thispagestyle{empty}\newpage
+   \fi\fi %% added (2016/12/13, 2017/02/24)
   \fi
   \if at restonecol
     \twocolumn
   \fi}
 \newcommand{\chapter}{%
-  \if at openright\cleardoublepage\else\clearpage\fi
+  \if at openleft\cleardoublepage\else
+  \if at openright\cleardoublepage\else\clearpage\fi\fi
   \plainifnotempty % 元: \thispagestyle{plain}
   \global\@topnum\z@
   \if at english \@afterindentfalse \else \@afterindenttrue \fi
@@ -1520,9 +1543,11 @@
     {\normalfont\normalsize\headfont}}
 \fi
 \newcommand\jsParagraphMark{\jsJaChar{■}}
-\ifx\bxjs at paragraph@mark\@undefined\else
+\ifx\bxjs at paragraph@mark\@empty
+  \let\jsParagraphMark\@empty
+\else\ifx\bxjs at paragraph@mark\@undefined\else
   \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs at paragraph@mark}}
-\fi
+\fi\fi
 \let\jsJaChar\@empty
 \if at twocolumn
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
@@ -1622,12 +1647,16 @@
     \advance \labelwidth by -\labelsep
     \let \makelabel=\descriptionlabel}}{\endlist}
 \newcommand*\descriptionlabel[1]{\normalfont\headfont #1\hfil}
-\newenvironment{abstract}{%
+\newenvironment{chapterabstract}{%
   \begin{list}{}{%
     \listparindent=1\jsZw
     \itemindent=\listparindent
     \rightmargin=\z@
     \leftmargin=5\jsZw}\item[]}{\end{list}\vspace{\baselineskip}}
+\ifbxjs at force@chapterabstract
+  \let\abstract\chapterabstract
+  \let\endabstract\endchapterabstract
+\fi
 \newenvironment{verse}{%
   \let \\=\@centercr
   \list{}{%
@@ -1650,7 +1679,7 @@
 \def\@opargbegintheorem#1#2#3{\trivlist\labelsep=1\jsZw
       \item[\hskip \labelsep{\headfont #1\ #2(#3)}]}
 \newenvironment{titlepage}{%
-    \cleardoublepage
+    \pltx at cleartooddpage %% 2017-02-24
     \if at twocolumn
       \@restonecoltrue\onecolumn
     \else
@@ -1657,7 +1686,7 @@
       \@restonecolfalse\newpage
     \fi
     \thispagestyle{empty}%
-    \setcounter{page}\@ne
+    \ifodd\c at page\setcounter{page}\@ne\else\setcounter{page}\z@\fi %% 2017-02-24
   }%
   {\if at restonecol\twocolumn \else \newpage \fi
     \if at twoside\else
@@ -2022,8 +2051,8 @@
 \def\@@inhibitglue{%
   \expandafter\expandafter\expandafter\jsc at inhibitglue\expandafter\meaning\expandafter\@let at token\KANJI at CHARACTER\relax\jsc at end}
 \expandafter\def\expandafter\jsc at inhibitglue\expandafter#\expandafter1\KANJI at CHARACTER#2#3\jsc at end{%
-  \def\bxjs at ig@temp{#1}%
-  \ifx\bxjs at ig@temp\@empty
+  \def\jsc at ig@temp{#1}%
+  \ifx\jsc at ig@temp\@empty
     \ifnum\the\inhibitxspcode`#2=2\relax
       \inhibitglue
     \fi

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty	2017-03-11 23:08:30 UTC (rev 43466)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty	2017-03-11 23:08:46 UTC (rev 43467)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesPackage{bxjscjkcat}
-  [2017/02/03 v1.4 BXJS document classes]
+  [2017/03/11 v1.5 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	2017-03-11 23:08:30 UTC (rev 43466)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty	2017-03-11 23:08:46 UTC (rev 43467)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesPackage{bxjscompat}
-  [2017/02/03 v1.4 BXJS document classes]
+  [2017/03/11 v1.5 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	2017-03-11 23:08:30 UTC (rev 43466)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def	2017-03-11 23:08:46 UTC (rev 43467)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesFile{bxjsja-minimal.def}
-  [2017/02/03 v1.4 BXJS document classes]
+  [2017/03/11 v1.5 BXJS document classes]
 %% このファイルは日本語文字を含みます
 \def\DeclareJaTextFontCommand#1#2{%
   \DeclareRobustCommand#1[1]{%

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def	2017-03-11 23:08:30 UTC (rev 43466)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def	2017-03-11 23:08:46 UTC (rev 43467)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesFile{bxjsja-modern.def}
-  [2017/02/03 v1.4 BXJS document classes]
+  [2017/03/11 v1.5 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	2017-03-11 23:08:30 UTC (rev 43466)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def	2017-03-11 23:08:46 UTC (rev 43467)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesFile{bxjsja-pandoc.def}
-  [2017/02/03 v1.4 BXJS document classes]
+  [2017/03/11 v1.5 BXJS document classes]
 \input{bxjsja-standard.def}
 \@onlypreamble\bxjs at set@dupload at proc
 \def\bxjs at set@dupload at proc#1{%
@@ -94,7 +94,13 @@
 \if j\jsEngine
   \bxjs at mark@as at loaded{cmap.sty}
 \fi
-\PassOptionsToPackage{verbose=silent}{microtype}
+\if j\jsEngine \else
+  \PassOptionsToPackage{verbose=silent}{microtype}
+\fi
+\if j\jsEngine
+  \bxjs at mark@as at loaded{microtype.sty}
+  \newcommand*\UseMicrotypeSet[2][]{}
+\fi
 \endinput
 %%
 %% End of file `bxjsja-pandoc.def'.

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def	2017-03-11 23:08:30 UTC (rev 43466)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def	2017-03-11 23:08:46 UTC (rev 43467)
@@ -21,7 +21,7 @@
 %% same distribution. (The sources need not necessarily be
 %% in the same archive or directory.)
 \ProvidesFile{bxjsja-standard.def}
-  [2017/02/03 v1.4 BXJS document classes]
+  [2017/03/11 v1.5 BXJS document classes]
 %% このファイルは日本語文字を含みます
 \input{bxjsja-minimal.def}
 \bxjs at simplejasetupfalse
@@ -258,7 +258,9 @@
   \closein\@inputcheck
 \endgroup}
 \@gtempa
-\bxjs at fix@hyperref at unicode{false}
+\ifbxjs at hyperref@enc
+  \bxjs at fix@hyperref at unicode{false}
+\fi
 \if \ifx\bxjs at driver@given\bxjs at driver@@dvipdfmx T%
     \else\ifjsWithpTeXng T\else F\fi\fi T%
   \ifnum\jis"2121="A1A1 %euc
@@ -275,8 +277,6 @@
   \fi\fi\fi
   \let\bxToUnicodeSpecialDone=t
 \fi
-\@namedef{ver at microtype.sty}{2000/01/01}
-\newcommand*\UseMicrotypeSet[2][]{}
 \ifx f\bxjs at enablejfam\else
   \@enablejfamtrue
 \fi
@@ -301,7 +301,9 @@
       whole,autotilde]{bxcjkjatype}[2013/10/15]}% v0.2c
 \bxjs at nxt
 \bxjs at cjk@loaded
-\PassOptionsToPackage{unicode}{hyperref}
+\ifbxjs at hyperref@enc
+  \PassOptionsToPackage{unicode}{hyperref}
+\fi
 \ifx\bxcjkjatypeHyperrefPatchDone\@undefined
 \begingroup
   \CJK at input{UTF8.bdg}
@@ -369,7 +371,9 @@
   \bxjs at nxt
 \fi
 \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99992}>\m at ne
-  \PassOptionsToPackage{unicode}{hyperref}
+  \ifbxjs at hyperref@enc
+    \PassOptionsToPackage{unicode}{hyperref}
+  \fi
 \fi
 \let\jsInhibitGlueAtParTop\@empty
 \newskip\jsKanjiSkip
@@ -447,7 +451,9 @@
     luatexja.jfmglue.create_beginpar_node()}}
 \let\bxjs at ltj@inhibitglue\@inhibitglue
 \let\@@inhibitglue\@undefined
-\bxjs at fix@hyperref at unicode{true}
+\ifbxjs at hyperref@enc
+  \bxjs at fix@hyperref at unicode{true}
+\fi
 \protected\def\autospacing{%
   \ltjsetparameter{autospacing=true}}
 \protected\def\noautospacing{%

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls	2017-03-11 23:08:30 UTC (rev 43466)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls	2017-03-11 23:08:46 UTC (rev 43467)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsreport}
-  [2017/02/03 v1.4 BXJS document classes]
+  [2017/03/11 v1.5 BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \RequirePackage{calc}
 \RequirePackage{keyval}
@@ -114,6 +114,7 @@
 \newif\if at restonecol
 \newif\if at titlepage
 \newif\if at openright
+\newif\if at openleft
 \newif\if at mainmatter \@mainmattertrue
 \newif\if at enablejfam \@enablejfamfalse
 \def\bxjs at setpaper#1{\def\bxjs at param@paper{#1}}
@@ -198,8 +199,9 @@
 \DeclareOption{twocolumn}{\@twocolumntrue}
 \DeclareOption{titlepage}{\@titlepagetrue}
 \DeclareOption{notitlepage}{\@titlepagefalse}
-\DeclareOption{openright}{\@openrighttrue}
-\DeclareOption{openany}{\@openrightfalse}
+\DeclareOption{openright}{\@openrighttrue\@openleftfalse}
+\DeclareOption{openleft}{\@openlefttrue\@openrightfalse}
+\DeclareOption{openany}{\@openrightfalse\@openleftfalse}
 \def\eqnarray{%
    \stepcounter{equation}%
    \def\@currentlabel{\p at equation\theequation}%
@@ -485,11 +487,15 @@
     \let\bxjs at driver@given\@undefined
     \bxjs at dvi@opttrue
   \fi}
-\newif\ifbxjs at layout@buggyhmargin \bxjs at layout@buggyhmarginfalse
+\newif\ifbxjs at layout@buggyhmargin
+\newif\ifbxjs at force@chapterabstract
+\bxjs at force@chapterabstracttrue
 \@namedef{bxjs at kv@layout at v1}{%
-  \bxjs at layout@buggyhmargintrue}
+\bxjs at force@chapterabstracttrue
+}
 \@namedef{bxjs at kv@layout at v2}{%
-  \bxjs at layout@buggyhmarginfalse}
+\bxjs at force@chapterabstractfalse
+}
 \define at key{bxjs}{layout}{%
   \bxjs at set@keyval{layout}{#1}{}}
 \define at key{bxjs}{textwidth-limit}{%
@@ -500,10 +506,6 @@
 \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
@@ -914,12 +916,14 @@
   \ifx\bxjs at geometry@driver\relax\else
     \let\Gm at driver\bxjs at geometry@driver
   \fi
-  \@tempdimb=\textwidth
-  \if at twocolumn \@tempdima=2\Cwd \else \@tempdima=1\Cwd \fi
-  \divide\textwidth\@tempdima \multiply\textwidth\@tempdima
-  \advance\@tempdimb-\textwidth
-  \advance\oddsidemargin 0.5\@tempdimb
-  \advance\evensidemargin 0.5\@tempdimb
+  \ifbxjs at whole@zw at lines
+    \@tempdimb=\textwidth
+    \if at twocolumn \@tempdima=2\Cwd \else \@tempdima=1\Cwd \fi
+    \divide\textwidth\@tempdima \multiply\textwidth\@tempdima
+    \advance\@tempdimb-\textwidth
+    \advance\oddsidemargin 0.5\@tempdimb
+    \advance\evensidemargin 0.5\@tempdimb
+  \fi
   \fullwidth=\textwidth
   \@tempdimb=\textheight
   \advance\textheight-\topskip
@@ -934,7 +938,9 @@
   \setlength\marginparpush{\baselineskip}
   \setlength\marginparwidth{\paperwidth-\oddsidemargin-1truein%
       -\textwidth-10\jsc at mmm-\marginparsep}
-  \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd
+  \ifbxjs at whole@zw at lines
+    \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd
+  \fi
   \maxdepth=.5\topskip
   \stockwidth=\paperwidth
   \stockheight=\paperheight
@@ -1033,6 +1039,23 @@
 \setlength\@dblfptop{0\p@? \@plus 1fil}
 \setlength\@dblfpsep{8\p@? \@plus 2fil}
 \setlength\@dblfpbot{0\p@? \@plus 1fil}
+\def\pltx at cleartooddpage{\clearpage\if at twoside
+  \ifodd\c at page\else
+    \hbox{}\thispagestyle{empty}\newpage
+    \if at twocolumn\hbox{}\newpage\fi
+  \fi\fi}
+\def\pltx at cleartoevenpage{\clearpage\if at twoside
+  \ifodd\c at page
+    \hbox{}\thispagestyle{empty}\newpage
+    \if at twocolumn\hbox{}\newpage\fi
+  \fi\fi}
+\let\pltx at cleartorightpage\pltx at cleartooddpage
+\let\pltx at cleartoleftpage\pltx at cleartoevenpage
+\if at openleft
+  \let\cleardoublepage\pltx at cleartoleftpage
+\else\if at openright
+  \let\cleardoublepage\pltx at cleartorightpage
+\fi\fi
 \def\ps at plainfoot{%
   \let\@mkboth\@gobbletwo
   \let\@oddhead\@empty
@@ -1343,31 +1366,30 @@
    \theparagraph.\@arabic\c at subparagraph}
 \newcommand{\@chapapp}{\prechaptername}
 \newcommand{\@chappos}{\postchaptername}
-\newcommand\frontmatter{%
-  \if at openright
-    \cleardoublepage
-  \else
-    \clearpage
-  \fi
+  \pltx at cleartooddpage
   \@mainmatterfalse
   \pagenumbering{roman}}
 \newcommand\mainmatter{%
-    \cleardoublepage
+  \pltx at cleartooddpage
   \@mainmattertrue
   \pagenumbering{arabic}}
 \newcommand\backmatter{%
-  \if at openright
+  \if at openleft
     \cleardoublepage
+  \else\if at openright
+    \cleardoublepage
   \else
     \clearpage
-  \fi
+  \fi\fi
   \@mainmatterfalse}
 \newcommand\part{%
-  \if at openright
+  \if at openleft
     \cleardoublepage
+  \else\if at openright
+    \cleardoublepage
   \else
     \clearpage
-  \fi
+  \fi\fi
   \thispagestyle{empty}% 欧文用標準スタイルでは plain
   \if at twocolumn
     \onecolumn
@@ -1403,17 +1425,18 @@
   \@endpart}
 \def\@endpart{\vfil\newpage
   \if at twoside
-   \if at openright %% added (2016/12/13)
-    \null
-    \thispagestyle{empty}%
-    \newpage
-   \fi %% added (2016/12/13)
+   \if at openleft %% added (2017/02/24)
+    \null\thispagestyle{empty}\newpage
+   \else\if at openright %% added (2016/12/13)
+    \null\thispagestyle{empty}\newpage
+   \fi\fi %% added (2016/12/13, 2017/02/24)
   \fi
   \if at restonecol
     \twocolumn
   \fi}
 \newcommand{\chapter}{%
-  \if at openright\cleardoublepage\else\clearpage\fi
+  \if at openleft\cleardoublepage\else
+  \if at openright\cleardoublepage\else\clearpage\fi\fi
   \plainifnotempty % 元: \thispagestyle{plain}
   \global\@topnum\z@
   \if at english \@afterindentfalse \else \@afterindenttrue \fi
@@ -1503,9 +1526,11 @@
     {\normalfont\normalsize\headfont}}
 \fi
 \newcommand\jsParagraphMark{\jsJaChar{■}}
-\ifx\bxjs at paragraph@mark\@undefined\else
+\ifx\bxjs at paragraph@mark\@empty
+  \let\jsParagraphMark\@empty
+\else\ifx\bxjs at paragraph@mark\@undefined\else
   \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs at paragraph@mark}}
-\fi
+\fi\fi
 \let\jsJaChar\@empty
 \if at twocolumn
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
@@ -1605,12 +1630,65 @@
     \advance \labelwidth by -\labelsep
     \let \makelabel=\descriptionlabel}}{\endlist}
 \newcommand*\descriptionlabel[1]{\normalfont\headfont #1\hfil}
-\newenvironment{abstract}{%
+\newenvironment{chapterabstract}{%
   \begin{list}{}{%
     \listparindent=1\jsZw
     \itemindent=\listparindent
     \rightmargin=\z@
     \leftmargin=5\jsZw}\item[]}{\end{list}\vspace{\baselineskip}}
+\newbox\@abstractbox
+\if at titlepage
+  \newenvironment{abstract}{%
+    \titlepage
+    \null\vfil
+    \@beginparpenalty\@lowpenalty
+    \begin{center}%
+      \headfont \abstractname
+      \@endparpenalty\@M
+    \end{center}%
+    \par}%
+  {\par\vfil\null\endtitlepage}
+\else
+  \newenvironment{abstract}{%
+    \if at twocolumn
+      \ifx\maketitle\relax
+        \section*{\abstractname}%
+      \else
+        \global\setbox\@abstractbox\hbox\bgroup
+        \begin{minipage}[b]{\textwidth}
+          \small\parindent1\jsZw
+          \begin{center}%
+            {\headfont \abstractname\vspace{-.5em}\vspace{\z@}}%
+          \end{center}%
+          \list{}{%
+            \listparindent\parindent
+            \itemindent \listparindent
+            \rightmargin \leftmargin}%
+          \item\relax
+      \fi
+    \else
+      \small
+      \begin{center}%
+        {\headfont \abstractname\vspace{-.5em}\vspace{\z@}}%
+      \end{center}%
+      \list{}{%
+        \listparindent\parindent
+        \itemindent \listparindent
+        \rightmargin \leftmargin}%
+      \item\relax
+    \fi}{\if at twocolumn
+      \ifx\maketitle\relax
+      \else
+        \endlist\end{minipage}\egroup
+      \fi
+    \else
+      \endlist
+    \fi}
+\fi
+\ifbxjs at force@chapterabstract
+  \let\abstract\chapterabstract
+  \let\endabstract\endchapterabstract
+\fi
 \newenvironment{verse}{%
   \let \\=\@centercr
   \list{}{%
@@ -1633,7 +1711,6 @@
 \def\@opargbegintheorem#1#2#3{\trivlist\labelsep=1\jsZw
       \item[\hskip \labelsep{\headfont #1\ #2(#3)}]}
 \newenvironment{titlepage}{%
-    \cleardoublepage
     \if at twocolumn
       \@restonecoltrue\onecolumn
     \else
@@ -1640,7 +1717,7 @@
       \@restonecolfalse\newpage
     \fi
     \thispagestyle{empty}%
-    \setcounter{page}\@ne
+    \ifodd\c at page\setcounter{page}\@ne\else\setcounter{page}\z@\fi %% 2017-02-24
   }%
   {\if at restonecol\twocolumn \else \newpage \fi
     \if at twoside\else
@@ -2005,8 +2082,8 @@
 \def\@@inhibitglue{%
   \expandafter\expandafter\expandafter\jsc at inhibitglue\expandafter\meaning\expandafter\@let at token\KANJI at CHARACTER\relax\jsc at end}
 \expandafter\def\expandafter\jsc at inhibitglue\expandafter#\expandafter1\KANJI at CHARACTER#2#3\jsc at end{%
-  \def\bxjs at ig@temp{#1}%
-  \ifx\bxjs at ig@temp\@empty
+  \def\jsc at ig@temp{#1}%
+  \ifx\jsc at ig@temp\@empty
     \ifnum\the\inhibitxspcode`#2=2\relax
       \inhibitglue
     \fi
@@ -2125,6 +2202,7 @@
 \newcommand{\figurename}{\if at english Fig.~\else 図\fi}
 \newcommand{\tablename}{\if at english Table~\else 表\fi}
 \newcommand{\appendixname}{\if at english \else 付録\fi}
+\newcommand{\abstractname}{\if at english Abstract\else 概要\fi}
 \@tempswafalse
 \if p\jsEngine \@tempswatrue \fi
 \if n\jsEngine \@tempswatrue \fi

Modified: trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls	2017-03-11 23:08:30 UTC (rev 43466)
+++ trunk/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls	2017-03-11 23:08:46 UTC (rev 43467)
@@ -22,7 +22,7 @@
 %% in the same archive or directory.)
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{bxjsslide}
-  [2017/02/03 v1.4 BXJS document classes]
+  [2017/03/11 v1.5 BXJS document classes]
 %% このファイルは日本語文字を含みます.
 \RequirePackage{calc}
 \RequirePackage{keyval}
@@ -481,11 +481,12 @@
     \let\bxjs at driver@given\@undefined
     \bxjs at dvi@opttrue
   \fi}
-\newif\ifbxjs at layout@buggyhmargin \bxjs at layout@buggyhmarginfalse
+\newif\ifbxjs at layout@buggyhmargin
+\newif\ifbxjs at force@chapterabstract
 \@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}{%
@@ -496,10 +497,6 @@
 \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
@@ -908,12 +905,14 @@
   \ifx\bxjs at geometry@driver\relax\else
     \let\Gm at driver\bxjs at geometry@driver
   \fi
-  \@tempdimb=\textwidth
-  \if at twocolumn \@tempdima=2\Cwd \else \@tempdima=1\Cwd \fi
-  \divide\textwidth\@tempdima \multiply\textwidth\@tempdima
-  \advance\@tempdimb-\textwidth
-  \advance\oddsidemargin 0.5\@tempdimb
-  \advance\evensidemargin 0.5\@tempdimb
+  \ifbxjs at whole@zw at lines
+    \@tempdimb=\textwidth
+    \if at twocolumn \@tempdima=2\Cwd \else \@tempdima=1\Cwd \fi
+    \divide\textwidth\@tempdima \multiply\textwidth\@tempdima
+    \advance\@tempdimb-\textwidth
+    \advance\oddsidemargin 0.5\@tempdimb
+    \advance\evensidemargin 0.5\@tempdimb
+  \fi
   \fullwidth=\textwidth
   \@tempdimb=\textheight
   \advance\textheight-\topskip
@@ -928,7 +927,9 @@
   \setlength\marginparpush{\baselineskip}
   \setlength\marginparwidth{\paperwidth-\oddsidemargin-1truein%
       -\textwidth-10\jsc at mmm-\marginparsep}
-  \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd
+  \ifbxjs at whole@zw at lines
+    \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd
+  \fi
   \maxdepth=.5\topskip
   \stockwidth=\paperwidth
   \stockheight=\paperheight
@@ -1027,6 +1028,18 @@
 \setlength\@dblfptop{0\p@? \@plus 1fil}
 \setlength\@dblfpsep{8\p@? \@plus 2fil}
 \setlength\@dblfpbot{0\p@? \@plus 1fil}
+\def\pltx at cleartooddpage{\clearpage\if at twoside
+  \ifodd\c at page\else
+    \hbox{}\thispagestyle{empty}\newpage
+    \if at twocolumn\hbox{}\newpage\fi
+  \fi\fi}
+\def\pltx at cleartoevenpage{\clearpage\if at twoside
+  \ifodd\c at page
+    \hbox{}\thispagestyle{empty}\newpage
+    \if at twocolumn\hbox{}\newpage\fi
+  \fi\fi}
+\let\pltx at cleartorightpage\pltx at cleartooddpage
+\let\pltx at cleartoleftpage\pltx at cleartoevenpage
 \def\ps at plainfoot{%
   \let\@mkboth\@gobbletwo
   \let\@oddhead\@empty
@@ -1410,9 +1423,11 @@
     {\normalfont\normalsize\headfont}}
 \fi
 \newcommand\jsParagraphMark{\jsJaChar{■}}
-\ifx\bxjs at paragraph@mark\@undefined\else
+\ifx\bxjs at paragraph@mark\@empty
+  \let\jsParagraphMark\@empty
+\else\ifx\bxjs at paragraph@mark\@undefined\else
   \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs at paragraph@mark}}
-\fi
+\fi\fi
 \let\jsJaChar\@empty
 \if at twocolumn
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
@@ -1521,7 +1536,8 @@
     \begin{center}%
       \headfont \abstractname
       \@endparpenalty\@M
-    \end{center}}%
+    \end{center}%
+    \par}%
   {\par\vfil\null\endtitlepage}
 \else
   \newenvironment{abstract}{%
@@ -1588,7 +1604,7 @@
       \@restonecolfalse\newpage
     \fi
     \thispagestyle{empty}%
-    \setcounter{page}\@ne
+    \ifodd\c at page\setcounter{page}\@ne\else\setcounter{page}\z@\fi %% 2017-02-24
   }%
   {\if at restonecol\twocolumn \else \newpage \fi
     \if at twoside\else
@@ -1929,8 +1945,8 @@
 \def\@@inhibitglue{%
   \expandafter\expandafter\expandafter\jsc at inhibitglue\expandafter\meaning\expandafter\@let at token\KANJI at CHARACTER\relax\jsc at end}
 \expandafter\def\expandafter\jsc at inhibitglue\expandafter#\expandafter1\KANJI at CHARACTER#2#3\jsc at end{%
-  \def\bxjs at ig@temp{#1}%
-  \ifx\bxjs at ig@temp\@empty
+  \def\jsc at ig@temp{#1}%
+  \ifx\jsc at ig@temp\@empty
     \ifnum\the\inhibitxspcode`#2=2\relax
       \inhibitglue
     \fi



More information about the tex-live-commits mailing list