summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/uplatex/base/ujclasses.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/uplatex/base/ujclasses.dtx')
-rw-r--r--Master/texmf-dist/source/uplatex/base/ujclasses.dtx342
1 files changed, 301 insertions, 41 deletions
diff --git a/Master/texmf-dist/source/uplatex/base/ujclasses.dtx b/Master/texmf-dist/source/uplatex/base/ujclasses.dtx
index 4a05397f5b2..bf9022edcae 100644
--- a/Master/texmf-dist/source/uplatex/base/ujclasses.dtx
+++ b/Master/texmf-dist/source/uplatex/base/ujclasses.dtx
@@ -7,7 +7,7 @@
%
% Copyright (c) 2010 ASCII MEDIA WORKS
% Copyright (c) 2016 Takuji Tanaka
-% Copyright (c) 2016 Japanese TeX Development Community
+% Copyright (c) 2016-2017 Japanese TeX Development Community
%
% This file is part of the upLaTeX2e system (community edition).
% --------------------------------------------------------------
@@ -82,6 +82,24 @@
% (sync with ltlists.dtx v1.0j)}
% \changes{v1.7b}{2016/11/22}{補足ドキュメントを追加}
% \changes{v1.7b-u00}{2016/11/22}{p\LaTeX{}用に追随}
+% \changes{v1.7c}{2016/12/18}{Only add empty page after part if
+% twoside and openright (sync with classes.dtx v1.4b)}
+% \changes{v1.7c}{2016/12/18}{奇妙なarticleガードとコードを削除して
+% ドキュメントを追加}
+% \changes{v1.7c-u00}{2016/12/18}{p\LaTeX{}用に追随}
+% \changes{v1.7d}{2017/02/15}{\cs{if@openleft}スイッチ追加}
+% \changes{v1.7d}{2017/02/15}{openleftオプション追加}
+% \changes{v1.7d}{2017/02/15}{\cs{cleardoublepage}の代用となる命令群を追加}
+% \changes{v1.7d}{2017/02/15}{bookクラスでtitlepageを必ず奇数ページ
+% に送るように変更}
+% \changes{v1.7d}{2017/02/15}{titlepageのページ番号を奇数ならば1に、
+% 偶数ならば0にリセットするように変更}
+% \changes{v1.7d}{2017/02/15}{縦組クラスの所属表示の番号を直立にした}
+% \changes{v1.7d-u00}{2017/02/15}{p\LaTeX{}用に追随}
+% \changes{v1.7e}{2017/03/05}{トンボに表示するジョブ情報の書式を変更}
+% \changes{v1.7e}{2017/03/05}{\cs{frontmatter}と\cs{mainmatter}を
+% 奇数ページに送るように変更}
+% \changes{v1.7e-u00}{2017/03/05}{p\LaTeX{}用に追随}
% \fi
%
% \iffalse
@@ -111,7 +129,7 @@
%<11pt&bk>\ProvidesFile{utbk11.clo}
%<12pt&bk>\ProvidesFile{utbk12.clo}
%</tate>
- [2016/11/22 v1.7b-u00
+ [2017/03/05 v1.7e-u00
%<article|report|book> Standard upLaTeX class]
%<10pt|11pt|12pt> Standard upLaTeX file (size option)]
%<*driver>
@@ -159,7 +177,7 @@
%
% \begin{macro}{\c@@paper}
% 用紙サイズを示すために使います。
-% A4, A5, B4, B5 用紙はそれぞれ、1, 2, 3, 4 として表されます。
+% A4, A5, B4, B5用紙はそれぞれ、1, 2, 3, 4として表されます。
% \begin{macrocode}
%<*article|report|book>
\newcounter{@paper}
@@ -175,7 +193,7 @@
%
% \begin{macro}{\@ptsize}
% 組版をするポイント数の一の位を保存するために使います。
-% 0, 1, 2 のいずれかです。
+% 0, 1, 2のいずれかです。
% \begin{macrocode}
\newcommand{\@ptsize}{}
% \end{macrocode}
@@ -200,7 +218,8 @@
% \end{macro}
%
% \begin{macro}{\if@openright}
-% chapterレベルを奇数ページからはじめるかどうかのスイッチです。
+% chapterレベルを右ページからはじめるかどうかのスイッチです。
+% 横組では奇数ページ、縦組では偶数ページから始まることになります。
% reportクラスのデフォルトは、``no''です。
% bookクラスのデフォルトは、``yes''です。
% \begin{macrocode}
@@ -208,6 +227,17 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\if@openleft}
+% chapterレベルを左ページからはじめるかどうかのスイッチです。
+% 日本語\TeX{}開発コミュニティ版で新たに追加されました。
+% 横組では偶数ページ、縦組では奇数ページから始まることになります。
+% reportクラスとbookクラスの両方で、デフォルトは``no''です。
+% \changes{v1.7d}{2017/02/15}{\cs{if@openleft}スイッチ追加}
+% \begin{macrocode}
+%<!article>\newif\if@openleft
+% \end{macrocode}
+% \end{macro}
+%
% \changes{v1.0c}{1995/12/25}{Macro \cs{if@openbib} removed}
%
% \begin{macro}{\if@mainmatter}
@@ -330,15 +360,19 @@
% |tombow|オプションが指定されると、用紙サイズに合わせてトンボを出力します。
% このとき、トンボの脇にDVIを作成した日付が出力されます。
% 作成日付の出力を抑制するには、|tombow|ではなく、|tombo|と指定をします。
+%
+% ジョブ情報の書式は元々|filename : 2017/3/5(13:3)|のような書式でしたが、
+% jsclassesにあわせて桁数固定の|filename (2017-03-05 13:03)|に直しました。
% \changes{v1.0g}{1996/09/03}{Add to \cs{@bannertoken}.}
% \changes{v1.1a}{1997/01/23}{日付出力オプション}
+% \changes{v1.7e}{2017/03/05}{トンボに表示するジョブ情報の書式を変更}
% \begin{macrocode}
\DeclareOption{tombow}{%
\tombowtrue \tombowdatetrue
\setlength{\@tombowwidth}{.1\p@}%
\@bannertoken{%
- \jobname\space:\space\number\year/\number\month/\number\day
- (\number\hour:\number\minute)}
+ \jobname\space(\number\year-\two@digits\month-\two@digits\day
+ \space\two@digits\hour:\two@digits\minute)}%
\maketombowbox}
\DeclareOption{tombo}{%
\tombowtrue \tombowdatefalse
@@ -396,12 +430,15 @@
% \subsection{右左起こしオプション}
% chapterを右ページあるいは左ページから
% はじめるかどうかを指定するオプションです。
+% |openleft|オプションは日本語\TeX{}開発コミュニティによって追加されました。
+% \changes{v1.7d}{2017/02/15}{openleftオプション追加}
% \begin{macrocode}
%<!article>\if@compatibility
%<book>\@openrighttrue
%<!article>\else
-%<!article>\DeclareOption{openright}{\@openrighttrue}
-%<!article>\DeclareOption{openany}{\@openrightfalse}
+%<!article>\DeclareOption{openright}{\@openrighttrue\@openleftfalse}
+%<!article>\DeclareOption{openleft}{\@openlefttrue\@openrightfalse}
+%<!article>\DeclareOption{openany}{\@openrightfalse\@openleftfalse}
%<!article>\fi
% \end{macrocode}
%
@@ -448,6 +485,13 @@
% |disablejfam|オプションを指定しても|\textmc|や|\textgt|などを用いて、
% 数式内に日本語を記述することは可能です。
%
+% \noindent\emph{日本語\TeX{}開発コミュニティによる補足}:
+% コミュニティ版p\LaTeX{}の2016/11/29以降の版では、e-p\TeX{}の拡張機能
+% (通称「旧FAM256パッチ」)が利用可能な場合に、\LaTeX{}の機能で宣言
+% できる数式ファミリ(数式アルファベット)の上限を256個に増やしています。
+% したがって、新しい環境では|disablejfam|を指定しなくても上限を超える
+% ことが起きにくくなっています。
+%
% |mathrmmc|オプションは、
% |\mathrm|と|\mathbf|を和欧文両対応にするためのクラスオプションです。
% \changes{v1.1d}{1992/02/04}{disablejfamの判断を間違えてたのを修正}
@@ -1612,6 +1656,92 @@
% \end{macro}
%
%
+% \section{改ページ(日本語\TeX{}開発コミュニティ版のみ)}\label{sec:cleardoublepage}
+%
+% \begin{macro}{\pltx@cleartorightpage}
+% \begin{macro}{\pltx@cleartoleftpage}
+% \begin{macro}{\pltx@cleartooddpage}
+% \begin{macro}{\pltx@cleartoevenpage}
+% |\cleardoublepage|命令は、\LaTeX{}カーネルでは「奇数ページになるまでページを
+% 繰る命令」として定義されています。しかしp\LaTeX{}カーネルでは、アスキーの方針
+% により「横組では奇数ページになるまで、縦組では偶数ページになるまでページを
+% 繰る命令」に再定義されています。すなわち、p\LaTeX{}では縦組でも横組でも
+% 右ページになるまでページを繰ることになります。
+%
+% p\LaTeX{}標準クラスのbookは、横組も縦組も|openright|がデフォルトになっていて、
+% これは従来p\LaTeX{}カーネルで定義された|\cleardoublepage|を利用していました。
+% しかし、縦組で奇数ページ始まりの文書を作りたい場合もあるでしょうから、
+% コミュニティ版クラスでは以下の(非ユーザ向け)命令を追加します。
+% \begin{enumerate}
+% \item|\pltx@cleartorightpage|:右ページになるまでページを繰る命令
+% \item|\pltx@cleartoleftpage|:左ページになるまでページを繰る命令
+% \item|\pltx@cleartooddpage|:奇数ページになるまでページを繰る命令
+% \item|\pltx@cleartoevenpage|:偶数ページになるまでページを繰る命令
+% \end{enumerate}
+% \changes{v1.7d}{2017/02/15}{\cs{cleardoublepage}の代用となる命令群を追加}
+% \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}
+% \end{macrocode}
+%
+% |\pltx@cleartooddpage|は\LaTeX{}の|\cleardoublepage|に似ていますが、
+% 上の2つに合わせるため|\thispagestyle{empty}|を追加してあります。
+% \begin{macrocode}
+\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}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\cleardoublepage}
+% そしてreportとbookクラスの場合は、ユーザ向け命令である|\cleardoublepage|を、
+% |openright|オプションが指定されている場合は|\pltx@cleartorightpage|に、
+% |openleft|オプションが指定されている場合は|\pltx@cleartoleftpage|に、
+% それぞれ|\let|します。|openany|の場合はp\LaTeX{}カーネルの定義のままです。
+% \begin{macrocode}
+%<*!article>
+\if@openleft
+ \let\cleardoublepage\pltx@cleartoleftpage
+\else\if@openright
+ \let\cleardoublepage\pltx@cleartorightpage
+\fi\fi
+%</!article>
+% \end{macrocode}
+% \end{macro}
+%
+%
%
% \section{ページスタイル}\label{sec:pagestyle}
% p\LaTeXe{}では、つぎの6種類のページスタイルを使用できます。
@@ -1781,9 +1911,9 @@
%<*report|book>
\def\chaptermark##1{\markboth{%
\ifnum \c@secnumdepth >\m@ne
-%<book> \if@mainmatter
+%<book> \if@mainmatter
\@chapapp\thechapter\@chappos\hskip1zw
-%<book> \fi
+%<book> \fi
\fi
##1}{}}%
\def\sectionmark##1{\markright{%
@@ -1810,9 +1940,9 @@
%<*report|book>
\def\chaptermark##1{\markright{%
\ifnum \c@secnumdepth >\m@ne
-%<book> \if@mainmatter
+%<book> \if@mainmatter
\@chapapp\thechapter\@chappos\hskip1zw
-%<book> \fi
+%<book> \fi
\fi
##1}}%
%</report|book>
@@ -1828,7 +1958,7 @@
% ヘッダに見出しを、フッタにページ番号を出力します。
%
% このスタイルは、両面印刷と片面印刷とで形式が異なります。
-% \changes{v1.0d}{1995/08/23}{横組の evenfoot が中央揃えになっていたのを修正}
+% \changes{v1.0d}{1995/08/23}{横組のevenfootが中央揃えになっていたのを修正}
% \changes{v1.0d}{1996/03/05}{横組で偶数ページと奇数ページの設定が逆なのを修正}
% \begin{macrocode}
\if@twoside
@@ -1857,9 +1987,9 @@
%<*report|book>
\def\chaptermark##1{\markboth{%
\ifnum \c@secnumdepth >\m@ne
-%<book> \if@mainmatter
+%<book> \if@mainmatter
\@chapapp\thechapter\@chappos\hskip1zw
-%<book> \fi
+%<book> \fi
\fi
##1}{}}%
\def\sectionmark##1{\markright{%
@@ -1888,9 +2018,9 @@
%<*report|book>
\def\chaptermark##1{\markright{%
\ifnum \c@secnumdepth >\m@ne
-%<book> \if@mainmatter
+%<book> \if@mainmatter
\@chapapp\thechapter\@chappos\hskip1zw
-%<book> \fi
+%<book> \fi
\fi
##1}}%
%</report|book>
@@ -1923,7 +2053,7 @@
%
% \section{文書コマンド}
%
-% \subsubsection{表題}
+% \subsection{表題}
%
% \begin{macro}{\title}
% \begin{macro}{\author}
@@ -1952,12 +2082,90 @@
% 右起こしページ用のページパラメータでは誤った結果になります。
% 二段組スタイルでも一段組のページが作られます。
%
+% \noindent\emph{日本語\TeX{}開発コミュニティによる変更}:
+% 上にあるのはアスキー版の説明です。改めてアスキー版の挙動を整理すると、
+% 以下のようになります。
+% \begin{enumerate}
+% \item アスキー版では、タイトルページの番号を必ず1にリセットしていましたが、
+% これは正しくありません。これは、タイトルページが奇数ページ目か偶数ページ目
+% かにかかわらず、レイアウトだけ奇数ページ用が適用されてしまうからです。
+% さらに、タイトルの次のページも偶数のページ番号を持ってしまうため、両面印刷
+% で奇数ページと偶数ページが交互に出なくなるという問題もあります。
+% \item アスキー版bookクラスは、タイトルページを必ず|\cleardoublepage|で始めて
+% いました。p\LaTeX{}カーネルでの|\cleardoublepage|の定義から、縦組の既定では
+% タイトルが偶数ページ目に出ることになります。これ自体が正しくないと断定する
+% ことはできませんが、タイトルのページ番号を1にリセットすることと合わさって、
+% 偶数ページに送ったタイトルに奇数ページ用レイアウトが適用されてしまうという
+% 結果は正しくありません。
+% \end{enumerate}
+% そこで、コミュニティ版ではタイトルのレイアウトが必ず奇数ページ用になるという
+% 挙動を支持し、bookクラスではタイトルページを奇数ページ目に送ることにしました。
+% これでタイトルページが表紙らしく見えるようになります。また、reportクラスの
+% ようなタイトルが成り行きに従って出る場合には
+% \begin{itemize}
+% \item 奇数ページ目に出る場合、ページ番号を1(奇数)にリセット
+% \item 偶数ページ目に出る場合、ページ番号を0(偶数)にリセット
+% \end{itemize}
+% としました。
+%
+% 一つめの例を考えます。
+%\begin{verbatim}
+% \documentclass{tbook}
+% \title{タイトル}\author{著者}
+% \begin{document}
+% \maketitle
+% \chapter{チャプター}
+% \end{document}
+%\end{verbatim}
+% アスキー版tbookクラスでの結果は
+%\begin{verbatim}
+% 1ページ目:空白(ページ番号1は非表示)
+% 2ページ目:タイトル(奇数レイアウト、ページ番号1は非表示)
+% 3ページ目:チャプター(偶数レイアウト、ページ番号2)
+%\end{verbatim}
+% ですが、仮に最初の空白ページさえなければ
+%\begin{verbatim}
+% 1ページ目:タイトルすなわち表紙(奇数レイアウト、ページ番号1は非表示)
+% 2ページ目:チャプター(偶数レイアウト、ページ番号2)
+%\end{verbatim}
+% とみなせるため、コミュニティ版では空白ページを発生させないようにしました。
+%
+% 二つめの例を考えます。
+%\begin{verbatim}
+% \documentclass{tbook}
+% \title{タイトル}\author{著者}
+% \begin{document}
+% テスト文章
+% \maketitle
+% \chapter{チャプター}
+% \end{document}
+%\end{verbatim}
+% アスキー版tbookクラスでの結果は
+%\begin{verbatim}
+% 1ページ目:テスト文章(奇数レイアウト、ページ番号1)
+% 2ページ目:タイトル(奇数レイアウト、ページ番号1は非表示)
+% 3ページ目:チャプター(偶数レイアウト、ページ番号2)
+%\end{verbatim}
+% ですが、これでは奇数と偶数のページ番号が交互になっていないので正しく
+% ありません。そこで、コミュニティ版では
+%\begin{verbatim}
+% 1ページ目:テスト文章(奇数レイアウト、ページ番号1)
+% 2ページ目:空白ページ(ページ番号2は非表示)
+% 3ページ目:タイトル(奇数レイアウト、ページ番号1は非表示)
+% 4ページ目:チャプター(偶数レイアウト、ページ番号2)
+%\end{verbatim}
+% と直しました。
+%
+% なお、p\LaTeX~2.09互換モードはアスキー版のまま、すなわち「ページ番号をゼロに
+% 設定」としてあります。これは、横組の右起こしの挙動としては誤りですが、縦組の
+% 右起こしの挙動としては一応正しくなっているといえます。
+%
% 最初に互換モードの定義を作ります。
% \begin{macrocode}
\if@compatibility
\newenvironment{titlepage}
{%
-%<book> \cleardoublepage
+%<book> \cleardoublepage
\if@twocolumn\@restonecoltrue\onecolumn
\else\@restonecolfalse\newpage\fi
\thispagestyle{empty}%
@@ -1968,22 +2176,26 @@
% \end{macrocode}
%
% そして、\LaTeX{}ネイティブのための定義です。
+% \changes{v1.7d}{2017/02/15}{bookクラスでtitlepageを必ず奇数ページ
+% に送るように変更}
+% \changes{v1.7d}{2017/02/15}{titlepageのページ番号を奇数ならば1に、
+% 偶数ならば0にリセットするように変更}
% \begin{macrocode}
\else
\newenvironment{titlepage}
{%
-%<book> \cleardoublepage
+%<book> \pltx@cleartooddpage %% 2017/02/15
\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/15
}%
{\if@restonecol\twocolumn \else \newpage \fi
% \end{macrocode}
-% 二段組モードでなければ、タイトルページの直後のページのページ番号も1に
+% 両面モードでなければ、タイトルページの直後のページのページ番号も1に
% します。
% \begin{macrocode}
\if@twoside\else
@@ -2004,10 +2216,14 @@
% 縦組のときは、|\thanks|コマンドを|\p@thanks|に|\let|します。
% このコマンドは|\footnotetext|を使わず、直接、文字を|\@thanks|に格納
% していきます。
+%
+% 著者名の脇に表示される合印は直立した数字、注釈側は横に寝た数字となっていまし
+% たが、不自然なので|\hbox{\yoko ...}|を追加し、両方とも直立するようにしました。
+% \changes{v1.7d}{2017/02/15}{縦組クラスの所属表示の番号を直立にした}
% \begin{macrocode}
\def\p@thanks#1{\footnotemark
\protected@xdef\@thanks{\@thanks
- \protect{\noindent$\m@th^\thefootnote$~#1\protect\par}}}
+ \protect{\noindent\hbox{\yoko$\m@th^\thefootnote$}#1\protect\par}}}
% \end{macrocode}
% \end{macro}
%
@@ -2133,7 +2349,7 @@
% \end{macrocode}
% \end{macro}
%
-% \subsubsection{概要}
+% \subsection{概要}
%
% \begin{environment}{abstract}
% 要約文のための環境です。bookクラスでは使えません。
@@ -2170,7 +2386,7 @@
%
% \subsection{章見出し}
%
-% \subsection{マークコマンド}
+% \subsubsection{マークコマンド}
%
% \begin{macro}{\chaptermark}
% \begin{macro}{\sectionmark}
@@ -2338,21 +2554,39 @@
% これらの命令を|openany|オプションに応じて切り替え、二回目はそれを
% 元に戻しています。アスキーによるjclasses.dtxは、1997/01/15に
% 一回目の修正に追随しましたが、二回目の修正には追随していません。
-% コミュニティ版では、アスキーによる仕様を維持することとし、
-% |openany|オプションの場合は|\cleardoublepage|ではなく|\clearpage|が
-% 発行されます。もし|\cleardoublepage|が起きてほしい場合には、
-% 明示的に挿入してください。(参考:latex/2754)
+% コミュニティ版では、一旦はアスキーによる仕様を維持しようと考え
+% ました(2016/11/22)が、以下の理由により二回目の修正にも追随する
+% ことにしました(2017/03/05)。
+%
+% アスキー版での|\frontmatter|と|\mainmatter|の改ページ挙動は
+%\begin{quote}
+% |openright|なら|\cleardoublepage|、|openany|なら|\clearpage|を実行
+%\end{quote}
+% というものでした。しかし、|\frontmatter|及び|\mainmatter|はノンブルを
+% 1にリセットしますから、改ページの結果が偶数ページ目になる場合
+% \footnote{縦tbookのデフォルト(openright)が該当するほか、横jbookと
+% 縦tbookのopenanyのときには成り行き次第で該当する可能性があります。}に
+% ノンブルが偶奇逆転してしまいました。このままでは|openany|の場合に両面
+% 印刷がうまくいかないため、新しいコミュニティ版では
+%\begin{quote}
+% 必ず|\pltx@cleartooddpage|を実行
+%\end{quote}
+% としました。これは両面印刷(twoside)の場合は奇数ページに送り、
+% 片面印刷(oneside)の場合は単に改ページとなります。(参考:latex/2754)
% \changes{v1.7b}{2016/11/22}{補足ドキュメントを追加}
+% \changes{v1.7e}{2017/03/05}{\cs{frontmatter}と\cs{mainmatter}を
+% 奇数ページに送るように変更}
% \begin{macrocode}
%<*book>
\newcommand{\frontmatter}{%
- \if@openright \cleardoublepage \else \clearpage \fi
+ \pltx@cleartooddpage
\@mainmatterfalse\pagenumbering{roman}}
\newcommand{\mainmatter}{%
- \if@openright \cleardoublepage \else \clearpage \fi
+ \pltx@cleartooddpage
\@mainmattertrue\pagenumbering{arabic}}
\newcommand{\backmatter}{%
- \if@openright \cleardoublepage \else \clearpage \fi
+ \if@openleft \cleardoublepage \else
+ \if@openright \cleardoublepage \else \clearpage \fi \fi
\@mainmatterfalse}
%</book>
% \end{macrocode}
@@ -2444,7 +2678,8 @@
% \begin{macrocode}
%<*report|book>
\newcommand{\part}{%
- \if@openright \cleardoublepage \else \clearpage \fi
+ \if@openleft \cleardoublepage \else
+ \if@openright \cleardoublepage \else \clearpage \fi \fi
\thispagestyle{empty}%
\if@twocolumn\onecolumn\@tempswatrue\else\@tempswafalse\fi
\null\vfil
@@ -2539,10 +2774,21 @@
% |\@part|と|\@spart|の最後で実行されるマクロです。
% 両面印刷モードのときは、白ページを追加します。
% 二段組モードのときには、これ以降のページを二段組に戻します。
+% 2016年12月から、|openany| のときに白ページを追加するのをやめました。
+% このバグは\LaTeX{}ではclasses.dtx v1.4b (2000/05/19)で修正されていました。
+% (参考:latex/3155、texjporg/jsclasses\#48)
+% \changes{v1.7c}{2016/12/18}{Only add empty page after part if
+% twoside and openright (sync with classes.dtx v1.4b)}
% \begin{macrocode}
%<*report|book>
\def\@endpart{\vfil\newpage
- \if@twoside\null\thispagestyle{empty}\newpage\fi
+ \if@twoside
+ \if@openleft %% \if@openleft added (2017/02/15)
+ \null\thispagestyle{empty}\newpage
+ \else\if@openright %% \if@openright added (2016/12/18)
+ \null\thispagestyle{empty}\newpage
+ \fi\fi %% added (2016/12/18, 2017/02/15)
+ \fi
% \end{macrocode}
% 二段組文書のとき、スイッチを二段組モードに戻す必要があります。
% \begin{macrocode}
@@ -2561,6 +2807,10 @@
% なお、縦組の場合でも右ページからはじまるように、
% フォーマットファイルで|\clerdoublepage|が定義されています。
%
+% \emph{日本語\TeX{}開発コミュニティによる補足}:コミュニティ版の実装では、
+% |openright|と|openleft|の場合に|\cleardoublepage|をクラスファイルの中で
+% 再々定義しています。\ref{sec:cleardoublepage}を参照してください。
+%
% 章見出しが出力されるページのスタイルは、\pstyle{jpl@in}になります。
% \pstyle{jpl@in}は、\pstyle{headnomble}か\pstyle{footnomble}のいずれかです。
% 詳細は、第\ref{sec:pagestyle}節を参照してください。
@@ -2570,7 +2820,8 @@
% \begin{macrocode}
%<*report|book>
\newcommand{\chapter}{%
- \if@openright\cleardoublepage\else\clearpage\fi
+ \if@openleft \cleardoublepage \else
+ \if@openright \cleardoublepage \else \clearpage \fi \fi
\thispagestyle{jpl@in}%
\global\@topnum\z@
\@afterindenttrue
@@ -2582,6 +2833,12 @@
% このマクロは、章見出しに番号を付けるときに呼び出されます。
% \Lcount{secnumdepth}が$-1$よりも大きく、
% |\@mainmatter|が真(bookクラスの場合)のときに、番号を出力します。
+%
+% \emph{日本語\TeX{}開発コミュニティによる補足}:本家\LaTeX{}の
+% \file{classes}では、二段組のときチャプタータイトルは一段組に戻され
+% ますが、アスキーによる\file{jclasses}では二段組のままにされています。
+% したがって、チャプタータイトルより高い位置に右カラムの始点が来るという
+% 挙動になっていますが、コミュニティ版でもアスキー版の挙動を維持しています。
% \begin{macrocode}
\def\@chapter[#1]#2{%
\ifnum \c@secnumdepth >\m@ne
@@ -2632,11 +2889,14 @@
%
% \begin{macro}{\@schapter}
% このマクロは、章見出しに番号を付けないときに呼び出されます。
+%
+% \emph{日本語\TeX{}開発コミュニティによる補足}:やはり二段組でチャプター
+% タイトルより高い位置に右カラムの始点が来るという挙動を維持してあります。
+% \changes{v1.7c}{2016/12/18}{奇妙なarticleガードとコードを削除して
+% ドキュメントを追加}
% \begin{macrocode}
\def\@schapter#1{%
-%<article> \if@twocolumn\@topnewpage[\@makeschapterhead{#1}]\else
\@makeschapterhead{#1}\@afterheading
-%<article> \fi
}
% \end{macrocode}
% \end{macro}
@@ -2714,9 +2974,9 @@
% \begin{macro}{\subparagraph}
% 見出しの前に空白を付け、|\normalsize\bfseries|で出力をします。
% 見出しの後ろで改行されません。
-% \begin{macrocode}
% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with
% \cs{normalfont} (sync with classes.dtx v1.3c)}
+% \begin{macrocode}
\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}%
{3.25ex \@plus 1ex \@minus .2ex}%
{-1em}%
@@ -3459,7 +3719,7 @@
%
% \changes{v1.6}{2006/06/27}{フォントコマンドを修正。ありがとう、ymtさん。}
% p\LaTeX{} 2.09
-% compatibility mode では和文数式フォントfam が2重定義されていた
+% compatibility modeでは和文数式フォントfamが2重定義されていた
% ので、その部分を変更しました。
% \begin{macrocode}
\if@enablejfam
@@ -4208,7 +4468,7 @@
%<*yoko>
\if@twoside
\@mparswitchtrue
-\else
+\else
\@mparswitchfalse
\fi
%</yoko>