%<*driver>
\ProvidesFile{ltjsclasses.dtx}
%</driver>
- [2017/02/19 ltjsclasses ]
+ [2017/03/06 ltjsclasses ]
%<*driver>
\IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
\documentclass{ltjsarticle}
%
% \begin{macro}{\if@openleft}
%
-% [????-??-??] |\chapter|,|\part| を左ページ起こしにするかどうかです。
+% [2017-02-24] |\chapter|,|\part| を左ページ起こしにするかどうかです。
%
% \begin{macrocode}
%<book|report>\newif\if@openleft
% \texttt{openright} と表すことにしてあります。
% \texttt{openany} で偶数ページからでも始まるようになります。
%
-% [????-??-??] \texttt{openright} は横組では奇数ページ起こし,縦組では
+% [2017-02-24] \texttt{openright} は横組では奇数ページ起こし,縦組では
% 偶数ページ起こしを表します。ややこしいですが,これは\LaTeX の標準クラスが
% 西欧の横組事情しか考慮せずに,奇数ページ起こしと右起こしを一緒にしてしまっ
% たせいです。縦組での奇数ページ起こしと横組での偶数ページ起こしも表現したい
% \begin{macro}{\pltx@cleartoleftpage}
% \begin{macro}{\pltx@cleartooddpage}
% \begin{macro}{\pltx@cleartoevenpage}
-% [????-??-??] コミュニティ版\pLaTeX の標準クラス2017/02/15に合わせて,
+% [2017-02-24] コミュニティ版\pLaTeX の標準クラス2017/02/15に合わせて,
% 同じ命令を追加しました。
% \begin{enumerate}
% \item|\pltx@cleartorightpage|:右ページになるまでページを繰る命令
% \end{macro}
%
% \begin{macro}{\cleardoublepage}
-% [????-??-??] コミュニティ版\pLaTeX の標準クラス2017/02/15に合わせて,
+% [2017-02-24] コミュニティ版\pLaTeX の標準クラス2017/02/15に合わせて,
% reportとbookクラスの場合に|\cleardoublepage|を再定義します。
% \begin{macrocode}
-%<*!article>
+%<*book|report>
\if@openleft
\let\cleardoublepage\pltx@cleartoleftpage
\else\if@openright
\let\cleardoublepage\pltx@cleartorightpage
\fi\fi
-%</!article>
+%</book|report>
% \end{macrocode}
% \end{macro}
%
\begingroup \@svsechd \endgroup
\unskip
\@tempskipa #1\relax
- \hskip -\@tempskipa\@inhibitglue
+ \hskip -\@tempskipa\ltjfakeparbegin
\else
\clubpenalty \@clubpenalty
\everypar{}%
% \begin{macrocode}
%<*book>
\newcommand\frontmatter{%
- \if@openleft
- \cleardoublepage
- \else\if@openright
- \cleardoublepage
- \else
- \clearpage
- \fi\fi
+ \pltx@cleartooddpage
\@mainmatterfalse
\pagenumbering{roman}}
% \end{macrocode}
%
% ページ番号を算用数字にし,章番号を付けるようにします。
%
+% [2017-03-05] |\frontmatter| と |\mainmatter| の2つの命令は,
+% 改丁または改ページした後で |\pagenumbering{...}| でノンブルを1に
+% リセットします。長い間 |\frontmatter| は \texttt{openany} のときに
+% 単なる改ページとしていましたが,これではノンブルをリセットする際に
+% 偶奇逆転が起こる場合がありました。\texttt{openany} かどうかに依らず
+% 奇数ページまで繰るように修正することで,問題を解消しました。
+% 実は,\LaTeX の標準クラスでは1998年に修正されていた問題です
+% (コミュニティ版\pLaTeX の標準クラス2017/03/05も参照)。
+%
% \begin{macrocode}
\newcommand\mainmatter{%
-% \if@openleft
-% \cleardoublepage
-% \else\if@openright
- \cleardoublepage
-% \else
-% \clearpage
-% \fi\fi
+ \pltx@cleartooddpage
\@mainmattertrue
\pagenumbering{arabic}}
% \end{macrocode}
%<*book|report>
\def\@endpart{\vfil\newpage
\if@twoside
- \if@openleft %% added (????/??/??)
+ \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, ????/??/??)
+ \fi\fi %% added (2016/12/13, 2017/02/24)
\fi
\if@restonecol
\twocolumn
%
% タイトルを独立のページに出力するのに使われます。
%
-% [????-??-??] コミュニティ版\pLaTeX の標準クラス2017/02/15に合わせて,
+% [2017-02-24] コミュニティ版\pLaTeX の標準クラス2017/02/15に合わせて,
% bookクラスでタイトルを必ず奇数ページに送るようにしました。といっても,
% 横組クラスしかありませんでしたので,従来の挙動は何も変わっていません。
% また,book以外の場合のページ番号のリセットもコミュニティ版\pLaTeX の
%
% \begin{macrocode}
\newenvironment{titlepage}{%
-%<book> \pltx@cleartooddpage %% ????-??-??
+%<book> \pltx@cleartooddpage %% 2017-02-24
\if@twocolumn
\@restonecoltrue\onecolumn
\else
% する機能がありますが,|\item| 直後ではラベル用のボックスが段落先頭になる
% ため,うまく働きませんでした。形を変えて復活させます。
%
+% [2017-04-03 LTJ] 従来クラフファイルで定義していた |\@inhibitglue| は,
+% Lua\TeX-jaのコアに |\ltjfakeparbegin| として正式に追加されたのでリネームします.
+%
% |\item| 命令の直後です。
%
% \begin{macrocode}
-\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}}
+\let\@inhibitglue=\ltjfakeparbegin
\def\@item[#1]{%
\if@noparitem
\@donoparitem
\else
\clubpenalty \@clubpenalty
\everypar{}%
- \fi\@inhibitglue}%
+ \fi\ltjfakeparbegin}%
\if@noitemarg
\@noitemargfalse
\if@nmbrlist