From 31fa4a2461c0ff5efe56ef940af61052b14874ef Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sat, 11 Mar 2017 23:08:46 +0000
Subject: bxjscls (11mar17)

git-svn-id: svn://tug.org/texlive/trunk@43467 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx | 354 ++++++++++++++++-----
 1 file changed, 269 insertions(+), 85 deletions(-)

(limited to 'Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx')

diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
index 955535e1bad..8fb72aac22a 100644
--- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
+++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
@@ -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,14 +489,23 @@
 %
 % \begin{macro}{\if@openright}
 %
-% |\chapter|，|\part| を奇数ページ起こしにするかどうかです。
-% 書籍では真が標準です。
+% |\chapter|，|\part| を右ページ起こしにするかどうかです。
+% 横組の書籍では真が標準で，要するに片起こし，奇数ページ起こしになります。
 %
 %    \begin{macrocode}
 %<book|report>\newif\if@openright
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\if@openleft}
+%
+% [2017-02-24] |\chapter|，|\part| を左ページ起こしにするかどうかです。
+%
+%    \begin{macrocode}
+%<book|report>\newif\if@openleft
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{\if@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@invscale}
@@ -1585,18 +1613,34 @@
 % \begin{macro}{\ifbxjs@layout@buggyhmargin}
 % 〔スイッチ〕
 % |bxjsbook| の左右マージンがアレか。
-% \Note 既定はアレだが1.3版で非アレになる予定。
+% \Note |layout| が |v1| の場合はアレになる。
+%    \begin{macrocode}
+\newif\ifbxjs@layout@buggyhmargin
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifbxjs@force@chapterabstract}
+% 〔スイッチ〕
+% abstract環境をchapterabstractにするか。
+% \Note |bxjsbook| では常に真。
+% |bxjsreport| では |layout| が |v1| の場合に真になる。
+% \Note ただし1.5版では移行措置のため |bxjsreport| の既定値を真にする。
 %    \begin{macrocode}
-\newif\ifbxjs@layout@buggyhmargin \bxjs@layout@buggyhmarginfalse
+\newif\ifbxjs@force@chapterabstract
+%<book|report>\bxjs@force@chapterabstracttrue
 %    \end{macrocode}
 % \end{macro}
 %
 % |layout| オプションの処理。
 %    \begin{macrocode}
 \@namedef{bxjs@kv@layout@v1}{%
-  \bxjs@layout@buggyhmargintrue}
+%<book>\bxjs@layout@buggyhmargintrue
+%<report>\bxjs@force@chapterabstracttrue
+}
 \@namedef{bxjs@kv@layout@v2}{%
-  \bxjs@layout@buggyhmarginfalse}
+%<book>\bxjs@layout@buggyhmarginfalse
+%<report>\bxjs@force@chapterabstractfalse
+}
 \define@key{bxjs}{layout}{%
   \bxjs@set@keyval{layout}{#1}{}}
 %    \end{macrocode}
@@ -1631,16 +1675,6 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\ifbxjs@dummy@microtype}
-% 〔スイッチ〕 |dummy-microtype| の指定値。
-%    \begin{macrocode}
-\newif\ifbxjs@dummy@microtype \bxjs@dummy@microtypetrue
-\let\bxjs@kv@dummymicrotype@true\bxjs@dummy@microtypetrue
-\let\bxjs@kv@dummymicrotype@false\bxjs@dummy@microtypefalse
-\define@key{bxjs}{dummy-microtype}{\bxjs@set@keyval{dummymicrotype}{#1}{}}
-%    \end{macrocode}
-% \end{macro}
-%
 % \begin{macro}{\ifbxjs@hyperref@enc}
 % 〔スイッチ〕 |hyperref-enc| の指定値。
 %    \begin{macrocode}
@@ -1679,8 +1713,8 @@
 %
 %    \begin{macrocode}
 %<article>\ExecuteOptions{a4paper,oneside,onecolumn,notitlepage,final}
-%<report>\ExecuteOptions{a4paper,oneside,onecolumn,titlepage,openany,final}
 %<book>\ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final}
+%<report>\ExecuteOptions{a4paper,oneside,onecolumn,titlepage,openany,final}
 %<slide>\ExecuteOptions{36pt,a4paper,landscape,oneside,onecolumn,titlepage,final}
 \ProcessOptions\relax
 \bxjs@composite@proc
@@ -2833,12 +2867,14 @@
     \let\Gm@driver\bxjs@geometry@driver
   \fi
 % textwidth 調整
-  \@tempdimb=\textwidth
-  \if@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@whole@zw@lines
+    \@tempdimb=\textwidth
+    \if@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@mmm-\marginparsep}
-  \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd
+  \ifbxjs@whole@zw@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@cleartorightpage}
+% \begin{macro}{\pltx@cleartoleftpage}
+% \begin{macro}{\pltx@cleartooddpage}
+% \begin{macro}{\pltx@cleartoevenpage}
+% [2017-02-24] コミュニティ版\pLaTeX の標準クラス2017/02/15に合わせて，
+% 同じ命令を追加しました。
+% \begin{enumerate}
+%   \item|\pltx@cleartorightpage|：右ページになるまでページを繰る命令
+%   \item|\pltx@cleartoleftpage|：左ページになるまでページを繰る命令
+%   \item|\pltx@cleartooddpage|：奇数ページになるまでページを繰る命令
+%   \item|\pltx@cleartoevenpage|：偶数ページになるまでページを繰る命令
+% \end{enumerate}
+% となっています。
+%    \begin{macrocode}
+%\def\pltx@cleartorightpage{\clearpage\if@twoside
+%  \ifodd\c@page
+%    \iftdir
+%      \hbox{}\thispagestyle{empty}\newpage
+%      \if@twocolumn\hbox{}\newpage\fi
+%    \fi
+%  \else
+%    \ifydir
+%      \hbox{}\thispagestyle{empty}\newpage
+%      \if@twocolumn\hbox{}\newpage\fi
+%    \fi
+%  \fi\fi}
+%\def\pltx@cleartoleftpage{\clearpage\if@twoside
+%  \ifodd\c@page
+%    \ifydir
+%      \hbox{}\thispagestyle{empty}\newpage
+%      \if@twocolumn\hbox{}\newpage\fi
+%    \fi
+%  \else
+%    \iftdir
+%      \hbox{}\thispagestyle{empty}\newpage
+%      \if@twocolumn\hbox{}\newpage\fi
+%    \fi
+%  \fi\fi}
+\def\pltx@cleartooddpage{\clearpage\if@twoside
+  \ifodd\c@page\else
+    \hbox{}\thispagestyle{empty}\newpage
+    \if@twocolumn\hbox{}\newpage\fi
+  \fi\fi}
+\def\pltx@cleartoevenpage{\clearpage\if@twoside
+  \ifodd\c@page
+    \hbox{}\thispagestyle{empty}\newpage
+    \if@twocolumn\hbox{}\newpage\fi
+  \fi\fi}
+%    \end{macrocode}
+%
+% \begin{ZRnote}
+% BXJSクラスでは |\iftdir| 等が使えないので、
+% 横組を仮定した定義を用いる。
+%    \begin{macrocode}
+\let\pltx@cleartorightpage\pltx@cleartooddpage
+\let\pltx@cleartoleftpage\pltx@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@openleft
+  \let\cleardoublepage\pltx@cleartoleftpage
+\else\if@openright
+  \let\cleardoublepage\pltx@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@openright
-    \cleardoublepage
-  \else
-    \clearpage
-  \fi
+  \pltx@cleartooddpage
   \@mainmatterfalse
   \pagenumbering{roman}}
 %    \end{macrocode}
@@ -4113,11 +4235,7 @@
 %
 %    \begin{macrocode}
 \newcommand\mainmatter{%
-% \if@openright
-    \cleardoublepage
-% \else
-%   \clearpage
-% \fi
+  \pltx@cleartooddpage
   \@mainmattertrue
   \pagenumbering{arabic}}
 %    \end{macrocode}
@@ -4129,11 +4247,13 @@
 %
 %    \begin{macrocode}
 \newcommand\backmatter{%
-  \if@openright
+  \if@openleft
+    \cleardoublepage
+  \else\if@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@openright
+  \if@openleft
+    \cleardoublepage
+  \else\if@openright
     \cleardoublepage
   \else
     \clearpage
-  \fi
+  \fi\fi
   \thispagestyle{empty}% 欧文用標準スタイルでは plain
   \if@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@twoside
-   \if@openright %% added (2016/12/13)
-    \null
-    \thispagestyle{empty}%
-    \newpage
-   \fi %% added (2016/12/13)
+   \if@openleft %% added (2017/02/24)
+    \null\thispagestyle{empty}\newpage
+   \else\if@openright %% added (2016/12/13)
+    \null\thispagestyle{empty}\newpage
+   \fi\fi %% added (2016/12/13, 2017/02/24)
   \fi
   \if@restonecol
     \twocolumn
@@ -4328,7 +4450,8 @@
 %    \begin{macrocode}
 %<*book|report>
 \newcommand{\chapter}{%
-  \if@openright\cleardoublepage\else\clearpage\fi
+  \if@openleft\cleardoublepage\else
+  \if@openright\cleardoublepage\else\clearpage\fi\fi
   \plainifnotempty % 元: \thispagestyle{plain}
   \global\@topnum\z@
   \if@english \@afterindentfalse \else \@afterindenttrue \fi
@@ -4519,9 +4642,11 @@
 % \end{ZRnote}
 %    \begin{macrocode}
 \newcommand\jsParagraphMark{\jsJaChar{■}}
-\ifx\bxjs@paragraph@mark\@undefined\else
+\ifx\bxjs@paragraph@mark\@empty
+  \let\jsParagraphMark\@empty
+\else\ifx\bxjs@paragraph@mark\@undefined\else
   \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs@paragraph@mark}}
-\fi
+\fi\fi
 \let\jsJaChar\@empty
 \if@twocolumn
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
@@ -4866,16 +4991,34 @@
 %
 % 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
     \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@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@force@chapterabstract| が真の場合は、abstract環境を
+% chapterabstract環境と等価にする。
+%    \begin{macrocode}
+%<*book|report>
+\ifbxjs@force@chapterabstract
+  \let\abstract\chapterabstract
+  \let\endabstract\endchapterabstract
+\fi
+%</book|report>
+%    \end{macrocode}
+% \end{ZRnote}
+%
 % \end{environment}
 %
 % \paragraph{キーワード}
@@ -5032,16 +5193,24 @@
 %
 % タイトルを独立のページに出力するのに使われます。
 %
+% [2017-02-24] コミュニティ版\pLaTeX の標準クラス2017/02/15に合わせて，
+% bookクラスでタイトルを必ず奇数ページに送るようにしました。といっても，
+% 横組クラスしかありませんでしたので，従来の挙動は何も変わっていません。
+% また，book以外の場合のページ番号のリセットもコミュニティ版\pLaTeX の
+% 標準クラス2017/02/15に合わせましたが，こちらも片面印刷あるいは
+% 独立のタイトルページを作らないクラスばかりでしたので，従来の挙動は
+% 何も変わらずに済みました。
+%
 %    \begin{macrocode}
 \newenvironment{titlepage}{%
-%<book|report>    \cleardoublepage
+%<book>    \pltx@cleartooddpage %% 2017-02-24
     \if@twocolumn
       \@restonecoltrue\onecolumn
     \else
       \@restonecolfalse\newpage
     \fi
     \thispagestyle{empty}%
-    \setcounter{page}\@ne
+    \ifodd\c@page\setcounter{page}\@ne\else\setcounter{page}\z@\fi %% 2017-02-24
   }%
   {\if@restonecol\twocolumn \else \newpage \fi
     \if@twoside\else
@@ -6401,14 +6570,14 @@
 % [2016-12-01] すぐ上の変更で |\@tempa| を使っていたのがよくなかった
 % ので，プレフィックスを付けて |\jsc@tempa| にしました(forum:2085)。
 %
+% [2017-02-13] |\jsc@tempa| は実はテンポラリではなく「この処理専用の
+% ユニーク制御綴」である必要があります。間違って別の箇所で使う危険性が
+% 高いので，専用の命令 |\jsc@ig@temp| に置き換えました(Issue \#54)。
+%
 % \begin{ZRnote}
 % \begin{macro}{\@inhibitglue}
 % JSクラスでの |\jsInhibitGlueAtParTop| の実装。
 % （これは{(u)\pTeX}専用である。）
-%
-% \Note |\jsc@tempa| は実はテンポラリではなく「この処理専用の
-% ユニーク制御綴」である（でないと不正である）が、間違って別の箇所で
-% 使う危険性が高いので |\bxjs@ig@temp| に置き換えた。
 %    \begin{macrocode}
 \def\@inhibitglue{%
   \futurelet\@let@token\@@inhibitglue}
@@ -6431,8 +6600,8 @@
 \def\@@inhibitglue{%
   \expandafter\expandafter\expandafter\jsc@inhibitglue\expandafter\meaning\expandafter\@let@token\KANJI@CHARACTER\relax\jsc@end}
 \expandafter\def\expandafter\jsc@inhibitglue\expandafter#\expandafter1\KANJI@CHARACTER#2#3\jsc@end{%
-  \def\bxjs@ig@temp{#1}%
-  \ifx\bxjs@ig@temp\@empty
+  \def\jsc@ig@temp{#1}%
+  \ifx\jsc@ig@temp\@empty
     \ifnum\the\inhibitxspcode`#2=2\relax
       \inhibitglue
     \fi
@@ -6661,7 +6830,7 @@
 %    \begin{macrocode}
 % \newcommand{\appendixname}{\if@english Appendix~\else 付録\fi}
 \newcommand{\appendixname}{\if@english \else 付録\fi}
-%<!book&!report>\newcommand{\abstractname}{\if@english Abstract\else 概要\fi}
+%<!book>\newcommand{\abstractname}{\if@english Abstract\else 概要\fi}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -7979,7 +8148,9 @@
 %
 % |unicode| にしてはいけない。
 %    \begin{macrocode}
-\bxjs@fix@hyperref@unicode{false}
+\ifbxjs@hyperref@enc
+  \bxjs@fix@hyperref@unicode{false}
+\fi
 %    \end{macrocode}
 %
 % |tounicode| special命令を出力する。
@@ -8002,13 +8173,6 @@
 \fi
 %    \end{macrocode}
 %
-% \paragraph{microtype対策}
-%
-%    \begin{macrocode}
-\@namedef{ver@microtype.sty}{2000/01/01}
-\newcommand*\UseMicrotypeSet[2][]{}
-%    \end{macrocode}
-%
 % \paragraph{和文数式ファミリ}
 %
 % 和文数式ファミリは既定で有効とする。
@@ -8064,7 +8228,9 @@
 % |bxcjkjatype| 使用時は |unicode| にするべき。
 % \Note 取りあえず固定はしない。
 %    \begin{macrocode}
-\PassOptionsToPackage{unicode}{hyperref}
+\ifbxjs@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@ne
-  \PassOptionsToPackage{unicode}{hyperref}
+  \ifbxjs@hyperref@enc
+    \PassOptionsToPackage{unicode}{hyperref}
+  \fi
 \fi
 %    \end{macrocode}
 %
@@ -8381,7 +8549,9 @@
 %
 % |unicode| にするべき。
 %    \begin{macrocode}
-\bxjs@fix@hyperref@unicode{true}
+\ifbxjs@hyperref@enc
+  \bxjs@fix@hyperref@unicode{true}
+\fi
 %    \end{macrocode}
 %
 % \paragraph{共通命令の実装}
@@ -8710,7 +8880,21 @@
 % 警告が多すぎなので消す。
 %
 %    \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@mark@as@loaded{microtype.sty}
+  \newcommand*\UseMicrotypeSet[2][]{}
+\fi
 %    \end{macrocode}
 %
 %^^A----------------
-- 
cgit v1.2.3

