X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fltjsclasses.dtx;h=98680844a0b96d9c953cc6facf46d409d5ea4554;hb=ef70dd9bfdf2bd68a327dd89d875b12dd3719dcf;hp=bec94c00806f1930a93345ef7711cfb8143e3a36;hpb=c4855029161214446695bc68fdb23061a316a9bb;p=luatex-ja%2Fluatexja.git diff --git a/src/ltjsclasses.dtx b/src/ltjsclasses.dtx index bec94c0..9868084 100644 --- a/src/ltjsclasses.dtx +++ b/src/ltjsclasses.dtx @@ -25,7 +25,7 @@ % % Copyright 1995-1999 ASCII Corporation. % Copyright 1999-2016 Haruhiko Okumura -% Copyright 2016 Japanese TeX Development Community +% Copyright 2016-2017 Japanese TeX Development Community % ----------------------------------------- % % \fi @@ -48,21 +48,30 @@ % \iffalse % % \begin{macrocode} -%\NeedsTeXFormat{LaTeX2e} +\NeedsTeXFormat{LaTeX2e} %
\ProvidesClass{ltjsarticle} %\ProvidesClass{ltjsbook} +%\ProvidesClass{ltjsreport} %\ProvidesClass{ltjspf} %\ProvidesClass{ltjskiyou} %<*driver> \ProvidesFile{ltjsclasses.dtx} % - [2017/01/23 ltjsclasses ] + [2017/08/28 ltjsclasses ] %<*driver> \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{} \documentclass{ltjsarticle} \usepackage{hypdoc} \hypersetup{unicode=true} -\usepackage[ipaex,nfssonly]{luatexja-preset} +\begingroup + \suppressfontnotfounderror=1 + \global\font\testfont=file:KozMinPr6N-Regular.otf +\endgroup +\ifx\testfont\nullfont + \usepackage[ipaex,nfssonly]{luatexja-preset} +\else + \usepackage[kozuka-pr6n,nfssonly]{luatexja-preset} +\fi \ltjsetparameter{alxspmode={`\*,allow}} \ltjsetparameter{alxspmode={`\\,allow}} %%%%\usepackage{unicode-math} @@ -98,12 +107,18 @@ % これは,元々奥村晴彦先生により作成され,現在は日本語\TeX 開発コミュニティにより % 管理されている\texttt{jsclasses.dtx}をLua\LaTeX-ja用に改変したものです。 % 次のドキュメントクラス(スタイルファイル)を生成します。 +% +% [2017-02-13] forum:2121の議論を機に,ltjsreportクラスを新設しました。 +% 従来のltjsbookの |report| オプションと比べると,|abstract| 環境の使い方 +% および挙動がアスキーのjreportに近づきました。 +% % \begin{quote} % \begin{tabular}{lll} % $\langle$\textsf{article}$\rangle$ & \texttt{ltjsarticle.cls} & 論文・レポート用 \\ % $\langle$\textsf{book}$\rangle$ & \texttt{ltjsbook.cls} & 書籍用 \\ +% $\langle$\textsf{report}$\rangle$ & \texttt{ltjsreport.cls} & レポート用 \\ % $\langle$\textsf{jspf}$\rangle$ & \texttt{ltjspf.cls} & 某学会誌用 \\ -% $\langle$\textsf{kiyou}$\rangle$ & \texttt{ltjskiyou.cls} & 某紀要用 +% $\langle$\textsf{kiyou}$\rangle$ & \texttt{ltjskiyou.cls} & 某紀要用 % \end{tabular} % \end{quote} % @@ -178,6 +193,7 @@ % \begin{macrocode} %
\def\jsc@clsname{ltjsarticle} %\def\jsc@clsname{ltjsbook} +%\def\jsc@clsname{ltjsreport} %\def\jsc@clsname{ltjspf} %\def\jsc@clsname{ltjskiyou} % \end{macrocode} @@ -219,11 +235,20 @@ % % \begin{macro}{\if@openright} % -% |\chapter|,|\part| を奇数ページ起こしにするかどうかです。 -% 書籍では真が標準です。 +% |\chapter|,|\part| を右ページ起こしにするかどうかです。 +% 横組の書籍では真が標準で,要するに片起こし,奇数ページ起こしになります。 % % \begin{macrocode} -%\newif\if@openright +%\newif\if@openright +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@openleft} +% +% [2017-02-24] |\chapter|,|\part| を左ページ起こしにするかどうかです。 +% +% \begin{macrocode} +%\newif\if@openleft % \end{macrocode} % \end{macro} % @@ -487,12 +512,20 @@ % % \paragraph{右左起こし} % -% 書籍では章は通常は奇数ページ起こしになりますが, +% 書籍では章は通常は奇数ページ起こしになりますが,横組ではこれを +% \texttt{openright} と表すことにしてあります。 % \texttt{openany} で偶数ページからでも始まるようになります。 % +% [2017-02-24] \texttt{openright} は横組では奇数ページ起こし,縦組では +% 偶数ページ起こしを表します。ややこしいですが,これは\LaTeX の標準クラスが +% 西欧の横組事情しか考慮せずに,奇数ページ起こしと右起こしを一緒にしてしまっ +% たせいです。縦組での奇数ページ起こしと横組での偶数ページ起こしも表現したい +% ので,ltjsclassesでは新たに \texttt{openleft} も追加しました。 +% % \begin{macrocode} -%\DeclareOption{openright}{\@openrighttrue} -%\DeclareOption{openany}{\@openrightfalse} +%\DeclareOption{openright}{\@openrighttrue\@openleftfalse} +%\DeclareOption{openleft}{\@openlefttrue\@openrightfalse} +%\DeclareOption{openany}{\@openrightfalse\@openleftfalse} % \end{macrocode} % % \paragraph{eqnarray環境と数式の位置} @@ -644,10 +677,13 @@ \DeclareOption{english}{\@englishtrue} % \end{macrocode} % -% \paragraph{ltjsreport相当} +% \paragraph{ltjsbookをltjsreportもどきに} % % オプション \texttt{report} を新設しました。 % +% [2017-02-13] 従来は「ltjsreport相当」をltjsbookの \texttt{report} オプションで提供して +% いましたが,新しくltjsreportクラスも作りました。どちらでもお好きな方を使ってください。 +% % \begin{macrocode} %<*book> \newif\if@report @@ -676,6 +712,7 @@ % \begin{macrocode} %
\ExecuteOptions{a4paper,oneside,onecolumn,notitlepage,final} %\ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final} +%\ExecuteOptions{a4paper,oneside,onecolumn,titlepage,openany,final} %\ExecuteOptions{a4paper,twoside,twocolumn,notitlepage,fleqn,final} %\ExecuteOptions{a4paper,twoside,twocolumn,notitlepage,final} \ProcessOptions @@ -701,7 +738,7 @@ % 基準となる行送りをポイント単位で表したものです。 % % \begin{macrocode} -%\if@slide\def\n@baseline{13}\else\def\n@baseline{16}\fi +%\if@slide\def\n@baseline{13}\else\def\n@baseline{16}\fi %\def\n@baseline{14.554375} %\def\n@baseline{14.897} % \end{macrocode} @@ -771,6 +808,9 @@ % % [2017-01-23] \LaTeXe\ 2017-01-01以降ではTUエンコーディングが標準なので, % \texttt{type1cm}パッケージは読み込まないようにしました. +% +% [2017-02-17 LTJ] |\directlua|中で出力される数字のカテゴリーコードが12になるようにしました. +% この保証をしないと例えば\texttt{listings}パッケージで無限ループになります. % \begin{macrocode} \if@ltjs@mag@xreal \ifdim\jsc@mpt=\p@\else @@ -783,11 +823,11 @@ local getdimen, mpt=tex.getdimen, tex.getdimen('jsc@mpt')/65536 local t = lua.get_functions_table() t[\the\ltjs@@magnify@font@calc] = function() - tex.sprint(math.floor(0.5+mpt*getdimen('dimen@'))) + tex.sprint(-2,math.floor(0.5+mpt*getdimen('dimen@'))) end function luatexja.ltjs_unmagnify_fsize(a) local s = luatexja.print_scaled(math.floor(0.5+a/mpt*65536)) - tex.sprint( (s:match('%.0$')) and s:sub(1,-3) or s ) + tex.sprint(-2, (s:match('%.0$')) and s:sub(1,-3) or s ) end } \endgroup @@ -795,7 +835,7 @@ \def\@tempa{#1}\def\@tempb{#2}% \ifx\@tempb\@empty \edef\@tempb{ scaled\directlua{% - tex.sprint(math.floor(0.5+\jsc@magscale*1000)) + tex.sprint(-2,math.floor(0.5+\jsc@magscale*1000)) }}% \else \dimen@\@tempb\relax @@ -1617,6 +1657,12 @@ \setlength\footskip{\z@} \fi % +%<*report> +\setlength\footskip{0.03367\paperheight} +\ifdim\footskip<\baselineskip + \setlength\footskip{\baselineskip} +\fi +% % \end{macrocode} % \end{macro} % @@ -1652,6 +1698,10 @@ \addtolength\headsep{10\jsc@mpt}%% added (2016-10-08) \fi % +%<*report> +\setlength\headsep{\footskip} +\addtolength\headsep{-\topskip} +% %<*jspf> \setlength\headsep{9\jsc@mmm} \addtolength\headsep{-\topskip} @@ -1733,6 +1783,12 @@ \fi \fi % +%<*report> +\setlength\fullwidth{0.76\paperwidth} +\if@twocolumn \@tempdima=2\zw \else \@tempdima=1\zw \fi +\divide\fullwidth\@tempdima \multiply\fullwidth\@tempdima +\setlength\textwidth{\fullwidth} +% %<*jspf> \setlength\fullwidth{50\zw} \addtolength\fullwidth{8\jsc@mmm} @@ -1775,7 +1831,7 @@ % なので,さらに修正しました(2016-08-17での修正漏れ)。 % % \begin{macrocode} -%<*article|book> +%<*article|book|report> \if@slide \setlength{\textheight}{0.95\paperheight} \else @@ -1787,7 +1843,7 @@ \addtolength{\textheight}{-\topskip} \divide\textheight\baselineskip \multiply\textheight\baselineskip -% +% %\setlength{\textheight}{51\baselineskip} %\setlength{\textheight}{47\baselineskip} \addtolength{\textheight}{\topskip} @@ -2105,6 +2161,65 @@ % \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} +%<*article|book|report> +\def\pltx@cleartorightpage{\clearpage\if@twoside + \unless\ifodd\numexpr\c@page+\ltjgetparameter{direction}\relax + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi\fi} +\def\pltx@cleartoleftpage{\clearpage\if@twoside + \ifodd\numexpr\c@page+\ltjgetparameter{direction}\relax + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\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} +% \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 +% +% \end{macrocode} +% \end{macro} +% % \section{ページスタイル}\label{sec:pagestyle} % % ページスタイルとして,\LaTeXe (欧文版)の標準クラス @@ -2247,12 +2362,12 @@ % % \end{macrocode} % -% 次は book の場合です。 +% 次は book および report の場合です。 % [2011-05-10] しっぽ愛好家さん [qa:6370] のパッチを取り込ませていただきました % (北見さん [qa:55896] のご指摘ありがとうございます)。 % % \begin{macrocode} -%<*book> +%<*book|report> \newif\if@omit@number \def\ps@headings{% \let\@oddfoot\@empty @@ -2267,17 +2382,17 @@ \let\@mkboth\markboth \def\chaptermark##1{\markboth{% \ifnum \c@secnumdepth >\m@ne - \if@mainmatter +% \if@mainmatter \if@omit@number\else \@chapapp\thechapter\@chappos\hskip1\zw \fi - \fi +% \fi \fi ##1}{}}% \def\sectionmark##1{\markright{% \ifnum \c@secnumdepth >\z@ \thesection \hskip1\zw\fi ##1}}}% -% +% % \end{macrocode} % % 最後は学会誌の場合です。 @@ -2311,9 +2426,9 @@ \def\@oddhead{% \hbox to \fullwidth{\rightmark\hfil\thepage}\hss}% \let\@mkboth\@gobbletwo -% \let\chaptermark\@gobble +% \let\chaptermark\@gobble \let\sectionmark\@gobble -% \let\subsectionmark\@gobble +% \let\subsectionmark\@gobble } % \end{macrocode} % \end{macro} @@ -2390,7 +2505,7 @@ % にしました。 % % \begin{macrocode} -%<*article|book|kiyou> +%<*article|book|report|kiyou> \if@titlepage \newcommand{\maketitle}{% \begin{titlepage}% @@ -2498,10 +2613,10 @@ {\large \@date}% \end{center}% \par\vskip 1.5em -% \ifvoid\@abstractbox\else\centerline{\box\@abstractbox}\vskip1.5em\fi +% \ifvoid\@abstractbox\else\centerline{\box\@abstractbox}\vskip1.5em\fi } \fi -% +% %<*jspf> \newcommand{\maketitle}{\par \begingroup @@ -2707,7 +2822,7 @@ \begingroup \@svsechd \endgroup \unskip \@tempskipa #1\relax - \hskip -\@tempskipa\@inhibitglue + \hskip -\@tempskipa\ltjfakeparbegin \else \clubpenalty \@clubpenalty \everypar{}% @@ -2773,8 +2888,8 @@ % 番号を付けるかを決めるカウンタです。 % % \begin{macrocode} -%\setcounter{secnumdepth}{3} -%\setcounter{secnumdepth}{2} +%\setcounter{secnumdepth}{3} +%\setcounter{secnumdepth}{2} % \end{macrocode} % \end{macro} % @@ -2792,9 +2907,9 @@ % % \begin{macrocode} \newcounter{part} -%\newcounter{chapter} -%\newcounter{section}[chapter] -%\newcounter{section} +%\newcounter{chapter} +%\newcounter{section}[chapter] +%\newcounter{section} \newcounter{subsection}[section] \newcounter{subsubsection}[subsection] \newcounter{paragraph}[subsubsection] @@ -2832,14 +2947,14 @@ % % \begin{macrocode} \renewcommand{\thepart}{\@Roman\c@part} -%% \renewcommand{\thesection}{\@arabic\c@section} -%\renewcommand{\thesection}{\presectionname\@arabic\c@section\postsectionname} -%\renewcommand{\thesubsection}{\@arabic\c@section.\@arabic\c@subsection} -%<*book> +%% \renewcommand{\thesection}{\@arabic\c@section} +%\renewcommand{\thesection}{\presectionname\@arabic\c@section\postsectionname} +%\renewcommand{\thesubsection}{\@arabic\c@section.\@arabic\c@subsection} +%<*book|report> \renewcommand{\thechapter}{\@arabic\c@chapter} \renewcommand{\thesection}{\thechapter.\@arabic\c@section} \renewcommand{\thesubsection}{\thesection.\@arabic\c@subsection} -% +% \renewcommand{\thesubsubsection}{% \thesubsection.\@arabic\c@subsubsection} \renewcommand{\theparagraph}{% @@ -2868,8 +2983,8 @@ % [2003-03-02] |\@secapp| は外しました。 % % \begin{macrocode} -%\newcommand{\@chapapp}{\prechaptername} -%\newcommand{\@chappos}{\postchaptername} +%\newcommand{\@chapapp}{\prechaptername} +%\newcommand{\@chappos}{\postchaptername} % \end{macrocode} % \end{macro} % \end{macro} @@ -2886,11 +3001,7 @@ % \begin{macrocode} %<*book> \newcommand\frontmatter{% - \if@openright - \cleardoublepage - \else - \clearpage - \fi + \pltx@cleartooddpage \@mainmatterfalse \pagenumbering{roman}} % \end{macrocode} @@ -2900,13 +3011,18 @@ % % ページ番号を算用数字にし,章番号を付けるようにします。 % +% [2017-03-05] |\frontmatter| と |\mainmatter| の2つの命令は, +% 改丁または改ページした後で |\pagenumbering{...}| でノンブルを1に +% リセットします。長い間 |\frontmatter| は \texttt{openany} のときに +% 単なる改ページとしていましたが,これではノンブルをリセットする際に +% 偶奇逆転が起こる場合がありました。\texttt{openany} かどうかに依らず +% 奇数ページまで繰るように修正することで,問題を解消しました。 +% 実は,\LaTeX の標準クラスでは1998年に修正されていた問題です +% (コミュニティ版\pLaTeX の標準クラス2017/03/05も参照)。 +% % \begin{macrocode} \newcommand\mainmatter{% -% \if@openright - \cleardoublepage -% \else -% \clearpage -% \fi + \pltx@cleartooddpage \@mainmattertrue \pagenumbering{arabic}} % \end{macrocode} @@ -2918,11 +3034,13 @@ % % \begin{macrocode} \newcommand\backmatter{% - \if@openright + \if@openleft + \cleardoublepage + \else\if@openright \cleardoublepage \else \clearpage - \fi + \fi\fi \@mainmatterfalse} % % \end{macrocode} @@ -2954,29 +3072,31 @@ % \def\CMDB #1{....} % \chapter*{...} の定義 %\end{verbatim} % -% まず |book| クラス以外です。 +% まず |book| と |report| のクラス以外です。 % % \begin{macrocode} -%<*!book> +%<*!book&!report> \newcommand\part{% \if@noskipsec \leavevmode \fi \par \addvspace{4ex}% \if@english \@afterindentfalse \else \@afterindenttrue \fi \secdef\@part\@spart} -% +% % \end{macrocode} % -% |book| スタイルの場合は,少し複雑です。 +% |book| および |report| クラスの場合は,少し複雑です。 % % \begin{macrocode} -%<*book> +%<*book|report> \newcommand\part{% - \if@openright + \if@openleft + \cleardoublepage + \else\if@openright \cleardoublepage \else \clearpage - \fi + \fi\fi \thispagestyle{empty}% 欧文用標準スタイルでは plain \if@twocolumn \onecolumn @@ -2986,7 +3106,7 @@ \fi \null\vfil \secdef\@part\@spart} -% +% % \end{macrocode} % \end{macro} % @@ -2995,11 +3115,11 @@ % 部の見出しを出力します。 % |\bfseries| を |\headfont| に変えました。 % -% |book| クラス以外では |secnumdepth| が $-1$ より大きいとき +% |book| および |report| クラス以外では |secnumdepth| が $-1$ より大きいとき % 部番号を付けます。 % % \begin{macrocode} -%<*!book> +%<*!book&!report> \def\@part[#1]#2{% \ifnum \c@secnumdepth >\m@ne \refstepcounter{part}% @@ -3022,13 +3142,13 @@ \nobreak \vskip 3ex \@afterheading} -% +% % \end{macrocode} % -% |book| クラスでは |secnumdepth| が $-2$ より大きいとき部番号を付けます。 +% |book| および |report| クラスでは |secnumdepth| が $-2$ より大きいとき部番号を付けます。 % % \begin{macrocode} -%<*book> +%<*book|report> \def\@part[#1]#2{% \ifnum \c@secnumdepth >-2\relax \refstepcounter{part}% @@ -3047,7 +3167,7 @@ \fi \Huge \headfont #2\par}% \@endpart} -% +% % \end{macrocode} % \end{macro} % @@ -3056,7 +3176,7 @@ % 番号を付けない部です。 % % \begin{macrocode} -%<*!book> +%<*!book&!report> \def\@spart#1{{% \parindent \z@ \raggedright \interlinepenalty \@M @@ -3065,15 +3185,15 @@ \nobreak \vskip 3ex \@afterheading} -% -%<*book> +% +%<*book|report> \def\@spart#1{{% \centering \interlinepenalty \@M \normalfont \Huge \headfont #1\par}% \@endpart} -% +% % \end{macrocode} % \end{macro} % @@ -3089,19 +3209,19 @@ % で修正されています。 % % \begin{macrocode} -%<*book> +%<*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 \fi} -% +% % \end{macrocode} % \end{macro} % @@ -3115,9 +3235,10 @@ % 章見出しの上に図や表が来ないようにします。 % % \begin{macrocode} -%<*book> +%<*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 @@ -3135,7 +3256,7 @@ % \begin{macrocode} \def\@chapter[#1]#2{% \ifnum \c@secnumdepth >\m@ne - \if@mainmatter +% \if@mainmatter \refstepcounter{chapter}% \typeout{\@chapapp\thechapter\@chappos}% \addcontentsline{toc}{chapter}% @@ -3143,7 +3264,7 @@ % {\if@english\thechapter\else\@chapapp\thechapter\@chappos\fi}% {\@chapapp\thechapter\@chappos}% #1}% - \else\addcontentsline{toc}{chapter}{#1}\fi +% \else\addcontentsline{toc}{chapter}{#1}\fi \else \addcontentsline{toc}{chapter}{#1}% \fi @@ -3169,11 +3290,11 @@ \vspace*{2\Cvs}% 欧文は50pt {\parindent \z@ \raggedright \normalfont \ifnum \c@secnumdepth >\m@ne - \if@mainmatter +% \if@mainmatter \huge\headfont \@chapapp\thechapter\@chappos \par\nobreak \vskip \Cvs % 欧文は20pt - \fi +% \fi \fi \interlinepenalty\@M \Huge \headfont #1\par\nobreak @@ -3209,7 +3330,7 @@ \interlinepenalty\@M \Huge \headfont #1\par\nobreak \vskip 3\Cvs}} % 欧文は40pt -% +% % \end{macrocode} % \end{macro} % @@ -3638,7 +3759,7 @@ \rightmargin=0pt \leftmargin=5\zw}\item[]}{\end{list}\vspace{\baselineskip}} % -%<*article|kiyou> +%<*article|report|kiyou> \newbox\@abstractbox \if@titlepage \newenvironment{abstract}{% @@ -3687,7 +3808,7 @@ \endlist \fi} \fi -% +% %<*jspf> \newbox\@abstractbox \newenvironment{abstract}{% @@ -3795,16 +3916,24 @@ % % タイトルを独立のページに出力するのに使われます。 % +% [2017-02-24] コミュニティ版\pLaTeX の標準クラス2017/02/15に合わせて, +% bookクラスでタイトルを必ず奇数ページに送るようにしました。といっても, +% 横組クラスしかありませんでしたので,従来の挙動は何も変わっていません。 +% また,book以外の場合のページ番号のリセットもコミュニティ版\pLaTeX の +% 標準クラス2017/02/15に合わせましたが,こちらも片面印刷あるいは +% 独立のタイトルページを作らないクラスばかりでしたので,従来の挙動は +% 何も変わらずに済みました。 +% % \begin{macrocode} \newenvironment{titlepage}{% -% \cleardoublepage +% \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 }% {\if@restonecol\twocolumn \else \newpage \fi \if@twoside\else @@ -3820,7 +3949,7 @@ % 本文と付録を分離するコマンドです。 % % \begin{macrocode} -%<*!book> +%<*!book&!report> \newcommand{\appendix}{\par \setcounter{section}{0}% \setcounter{subsection}{0}% @@ -3829,15 +3958,15 @@ % \gdef\thesection{\@Alph\c@section}% [2003-03-02] \gdef\thesection{\presectionname\@Alph\c@section\postsectionname}% \gdef\thesubsection{\@Alph\c@section.\@arabic\c@subsection}} -% -%<*book> +% +%<*book|report> \newcommand{\appendix}{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \gdef\@chapapp{\appendixname}% \gdef\@chappos{}% \gdef\thechapter{\@Alph\c@chapter}} -% +% % \end{macrocode} % \end{macro} % @@ -3929,12 +4058,12 @@ % 数式番号を出力するコマンドです。 % % \begin{macrocode} -%\renewcommand \theequation {\@arabic\c@equation} -%<*book> +%\renewcommand \theequation {\@arabic\c@equation} +%<*book|report> \@addtoreset{equation}{chapter} \renewcommand\theequation {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@equation} -% +% % \end{macrocode} % \end{macro} % @@ -3998,15 +4127,15 @@ % 図番号を出力するコマンドです。 % % \begin{macrocode} -%<*!book> +%<*!book&!report> \newcounter{figure} \renewcommand \thefigure {\@arabic\c@figure} -% -%<*book> +% +%<*book|report> \newcounter{figure}[chapter] \renewcommand \thefigure {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure} -% +% % \end{macrocode} % \end{macro} % \end{macro} @@ -4057,15 +4186,15 @@ % ここではオリジナルのままにしています。 % % \begin{macrocode} -%<*!book> +%<*!book&!report> \newcounter{table} \renewcommand\thetable{\@arabic\c@table} -% -%<*book> +% +%<*book|report> \newcounter{table}[chapter] \renewcommand \thetable {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table} -% +% % \end{macrocode} % \end{macro} % \end{macro} @@ -4364,8 +4493,8 @@ \newcommand\@pnumwidth{1.55em} \newcommand\@tocrmarg{2.55em} \newcommand\@dotsep{4.5} -%\setcounter{tocdepth}{2} -%\setcounter{tocdepth}{1} +%\setcounter{tocdepth}{2} +%\setcounter{tocdepth}{1} % \end{macrocode} % \end{macro} % \end{macro} @@ -4385,7 +4514,7 @@ % \begin{macrocode} \newdimen\jsc@tocl@width \newcommand{\tableofcontents}{% -%<*book> +%<*book|report> \settowidth\jsc@tocl@width{\headfont\prechaptername\postchaptername}% \settowidth\@tempdima{\headfont\appendixname}% \ifdim\jsc@tocl@width<\@tempdima \setlength\jsc@tocl@width{\@tempdima}\fi @@ -4397,17 +4526,17 @@ \fi \chapter*{\contentsname}% \@mkboth{\contentsname}{}% -% -%<*!book> +% +%<*!book&!report> \settowidth\jsc@tocl@width{\headfont\presectionname\postsectionname}% \settowidth\@tempdima{\headfont\appendixname}% \ifdim\jsc@tocl@width<\@tempdima\relax\setlength\jsc@tocl@width{\@tempdima}\fi \ifdim\jsc@tocl@width<2\zw \divide\jsc@tocl@width by 2 \advance\jsc@tocl@width 1\zw\fi \section*{\contentsname}% \@mkboth{\contentsname}{\contentsname}% -% +% \@starttoc{toc}% -% \if@restonecol\twocolumn\fi +% \if@restonecol\twocolumn\fi } % \end{macrocode} % \end{macro}\end{macro} @@ -4419,8 +4548,8 @@ % \begin{macrocode} \newcommand*{\l@part}[2]{% \ifnum \c@tocdepth >-2\relax -% \addpenalty\@secpenalty -% \addpenalty{-\@highpenalty}% +% \addpenalty\@secpenalty +% \addpenalty{-\@highpenalty}% \addvspace{2.25em \@plus\jsc@mpt}% \begingroup \parindent \z@ @@ -4433,8 +4562,8 @@ \setlength\@lnumwidth{4\zw}% #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par \nobreak -% \global\@nobreaktrue -% \everypar{\global\@nobreakfalse\everypar{}}% +% \global\@nobreaktrue +% \everypar{\global\@nobreakfalse\everypar{}}% \endgroup \fi} % \end{macrocode} @@ -4448,7 +4577,7 @@ % 決めるようにしてみました。(by ts) % % \begin{macrocode} -%<*book> +%<*book|report> \newcommand*{\l@chapter}[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% @@ -4467,7 +4596,7 @@ \penalty\@highpenalty \endgroup \fi} -% +% % \end{macrocode} % \end{macro} % @@ -4476,7 +4605,7 @@ % 節の目次です。 % % \begin{macrocode} -%<*!book> +%<*!book&!report> \newcommand*{\l@section}[2]{% \ifnum \c@tocdepth >\z@ \addpenalty{\@secpenalty}% @@ -4493,14 +4622,14 @@ #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par \endgroup \fi} -% +% % \end{macrocode} % % インデントと幅はそれぞれ1.5em,2.3emでしたが, % |1\zw|,|3.683\zw|に変えました。 % % \begin{macrocode} -% % \newcommand*{\l@section}{\@dottedtocline{1}{1\zw}{3.683\zw}} +% % \newcommand*{\l@section}{\@dottedtocline{1}{1\zw}{3.683\zw}} % \end{macrocode} % % [2013-12-30] 上のインデントは |\jsc@tocl@width| から決めるように @@ -4520,7 +4649,7 @@ % してみました。(by ts) % % \begin{macrocode} -%<*!book> +%<*!book&!report> % \newcommand*{\l@subsection} {\@dottedtocline{2}{1.5em}{2.3em}} % \newcommand*{\l@subsubsection}{\@dottedtocline{3}{3.8em}{3.2em}} % \newcommand*{\l@paragraph} {\@dottedtocline{4}{7.0em}{4.1em}} @@ -4543,8 +4672,8 @@ \newcommand*{\l@subparagraph}{% \@tempdima\jsc@tocl@width \advance\@tempdima 2\zw \@dottedtocline{5}{\@tempdima}{6\zw}} -% -%<*book> +% +%<*book|report> % \newcommand*{\l@subsection} {\@dottedtocline{2}{3.8em}{3.2em}} % \newcommand*{\l@subsubsection}{\@dottedtocline{3}{7.0em}{4.1em}} % \newcommand*{\l@paragraph} {\@dottedtocline{4}{10em}{5em}} @@ -4564,7 +4693,7 @@ \newcommand*{\l@subparagraph}{% \@tempdima\jsc@tocl@width \advance\@tempdima 16.183\zw \@dottedtocline{5}{\@tempdima}{6.5\zw}} -% +% % \end{macrocode} % \end{macro} % \end{macro} @@ -4617,18 +4746,18 @@ % % \begin{macrocode} \newcommand{\listoffigures}{% -%<*book> +%<*book|report> \if@twocolumn\@restonecoltrue\onecolumn \else\@restonecolfalse\fi \chapter*{\listfigurename}% \@mkboth{\listfigurename}{}% -% -%<*!book> +% +%<*!book&!report> \section*{\listfigurename}% \@mkboth{\listfigurename}{\listfigurename}% -% +% \@starttoc{lof}% -% \if@restonecol\twocolumn\fi +% \if@restonecol\twocolumn\fi } % \end{macrocode} % \end{macro} @@ -4648,18 +4777,18 @@ % % \begin{macrocode} \newcommand{\listoftables}{% -%<*book> +%<*book|report> \if@twocolumn\@restonecoltrue\onecolumn \else\@restonecolfalse\fi \chapter*{\listtablename}% \@mkboth{\listtablename}{}% -% -%<*!book> +% +%<*!book&!report> \section*{\listtablename}% \@mkboth{\listtablename}{\listtablename}% -% +% \@starttoc{lot}% -% \if@restonecol\twocolumn\fi +% \if@restonecol\twocolumn\fi } % \end{macrocode} % \end{macro} @@ -4705,8 +4834,8 @@ \subsubsection*{\refname}\@mkboth{\refname}{\refname}% \vspace{0.5\baselineskip} % -% \chapter*{\bibname}\@mkboth{\bibname}{}% -% \addcontentsline{toc}{chapter}{\bibname}% +% \chapter*{\bibname}\@mkboth{\bibname}{}% +% \addcontentsline{toc}{chapter}{\bibname}% \list{\@biblabel{\@arabic\c@enumiv}}% {\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth @@ -4815,28 +4944,28 @@ \fi \columnseprule.4pt \columnsep 2\zw \ifx\multicols\@undefined -% \twocolumn[\@makeschapterhead{\indexname}% -% \addcontentsline{toc}{chapter}{\indexname}]% -% \def\presectionname{}\def\postsectionname{}% -% \twocolumn[\section*{\indexname}]% +% \twocolumn[\@makeschapterhead{\indexname}% +% \addcontentsline{toc}{chapter}{\indexname}]% +% \def\presectionname{}\def\postsectionname{}% +% \twocolumn[\section*{\indexname}]% \else \ifdim\textwidth<\fullwidth \setlength{\evensidemargin}{\oddsidemargin} \setlength{\textwidth}{\fullwidth} \setlength{\linewidth}{\fullwidth} -% \begin{multicols}{3}[\chapter*{\indexname}% -% \addcontentsline{toc}{chapter}{\indexname}]% -% \def\presectionname{}\def\postsectionname{}% -% \begin{multicols}{3}[\section*{\indexname}]% +% \begin{multicols}{3}[\chapter*{\indexname}% +% \addcontentsline{toc}{chapter}{\indexname}]% +% \def\presectionname{}\def\postsectionname{}% +% \begin{multicols}{3}[\section*{\indexname}]% \else -% \begin{multicols}{2}[\chapter*{\indexname}% -% \addcontentsline{toc}{chapter}{\indexname}]% -% \def\presectionname{}\def\postsectionname{}% -% \begin{multicols}{2}[\section*{\indexname}]% +% \begin{multicols}{2}[\chapter*{\indexname}% +% \addcontentsline{toc}{chapter}{\indexname}]% +% \def\presectionname{}\def\postsectionname{}% +% \begin{multicols}{2}[\section*{\indexname}]% \fi \fi -% \@mkboth{\indexname}{}% -% \@mkboth{\indexname}{\indexname}% +% \@mkboth{\indexname}{}% +% \@mkboth{\indexname}{\indexname}% \plainifnotempty % \thispagestyle{plain} \parindent\z@ \parskip\z@ \@plus .3\jsc@mpt\relax @@ -4977,7 +5106,7 @@ % 脚注番号は章ごとにリセットされます。 % % \begin{macrocode} -%\@addtoreset{footnote}{chapter} +%\@addtoreset{footnote}{chapter} % \end{macrocode} % \end{macro} % @@ -5059,10 +5188,13 @@ % する機能がありますが,|\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 @@ -5105,7 +5237,7 @@ \else \clubpenalty \@clubpenalty \everypar{}% - \fi\@inhibitglue}% + \fi\ltjfakeparbegin}% \if@noitemarg \@noitemargfalse \if@nmbrlist @@ -5138,14 +5270,14 @@ % % [2016-12-05 LTJ] 本家[2016-11-29],lltjcore.styでの変更に追従させます. % +% [2017-02-18 LTJ] lltjcore.sty側で戻したのを忘れていました. % \begin{macrocode} \def\@gnewline #1{% \ifvmode \@nolnerr \else -% \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \hskip\z@ -% \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null - \inhibitglue \ignorespaces + \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null + \inhibitglue\ignorespaces \fi} % \end{macrocode} % @@ -5392,8 +5524,8 @@ % \begin{macrocode} \newcommand{\prepartname}{\if@english Part~\else 第\fi} \newcommand{\postpartname}{\if@english\else 部\fi} -%\newcommand{\prechaptername}{\if@english Chapter~\else 第\fi} -%\newcommand{\postchaptername}{\if@english\else 章\fi} +%\newcommand{\prechaptername}{\if@english Chapter~\else 第\fi} +%\newcommand{\postchaptername}{\if@english\else 章\fi} \newcommand{\presectionname}{}% 第 \newcommand{\postsectionname}{}% 節 % \end{macrocode} @@ -5492,12 +5624,19 @@ % \paragraph{ページ設定} % % ページ設定の初期化です。 +% |stfloats|パッケージがシステムにインストールされている場合は、このパッケージを使って +% \pLaTeX の標準時と同じようにボトムフロートの下に脚注が組まれるようにします。 % +% [2017-02-19] \pLaTeX とLua\TeX-jaの|\@makecol|が違うことを +% 考慮していませんでした。 % \begin{macrocode} -%\if@slide \pagestyle{empty} \else \pagestyle{plain} \fi +%
\if@slide \pagestyle{empty} \else \pagestyle{plain} \fi %\if@report \pagestyle{plain} \else \pagestyle{headings} \fi +%\pagestyle{plain} %\pagestyle{headings} \pagenumbering{arabic} +\fnfixbottomtrue % 2017-02-19 +\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{} \if@twocolumn \twocolumn \sloppy