X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fltjclasses.dtx;h=af796a1c1d5fb82c9efeb2c30dd63974614f1a4f;hb=ef70dd9bfdf2bd68a327dd89d875b12dd3719dcf;hp=d9322f9f93e221b2650d1d94968e90023fe2f22f;hpb=b11f94dd91f73c5c215c79831e2f187631175b1b;p=luatex-ja%2Fluatexja.git diff --git a/src/ltjclasses.dtx b/src/ltjclasses.dtx index d9322f9..af796a1 100644 --- a/src/ltjclasses.dtx +++ b/src/ltjclasses.dtx @@ -4,29 +4,14 @@ % Original: jclasses.dtx % % Copyright 1995-2001 ASCII Corporation. +% Copyright (c) 2010 ASCII MEDIA WORKS +% Copyright (c) 2016-2017 Japanese TeX Development Community % % This file is part of the pLaTeX2e system. % ----------------------------------------- % % \fi % -% \CheckSum{4478} -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% % % \setcounter{StandardModuleDepth}{1} % \StopEventually{} @@ -77,7 +62,56 @@ % \changes{v1.6}{2006/06/27}{フォントコマンドを修正。ありがとう、ymtさん。} % \changes{v1.6-ltj}{2011/09/27}{jclasses.dtx v1.6 をベースにLua\LaTeX-ja用に修正。} % \changes{v1.6-ltj-2}{2013/06/06}{luatexja.cfgに対応.} -% \changes{v1.6-ltj-3}{2014/06/08}{縦組みクラスの時のgeometry.styに対応.} +% \changes{v1.6-ltj-3}{2014/06/08}{縦組クラスの時のgeometry.styに対応.} +% \changes{v1.6-ltj-4}{2014/06/30}{組方向の変更箇所を現行のLua\TeX-jaの仕様に合うように修正.} +% \changes{v1.6-ltj-5}{2014/07/02}{\cs{ifydir}, \cs{iftdir}を使わないように修正.} +% \changes{v1.6-ltj-6}{2014/07/28}{縦組クラスでlltjext.styを読み込むように修正.} +% \changes{v1.6-ltj-7}{2014/11/15}{縦組クラスとeveryshi.styとの相性が悪い問題を修正.} +% \changes{v1.6-ltj-8}{2014/11/22}{縦組時のgeometry.styへの対応を別ファイル(lltjp-geometry.sty)に分離.それに伴いv1.6-ltj-3での変更を削除.} +% \changes{v1.6-ltj-9}{2015/01/01}{縦組クラスの日付出力でエラーになることなどを修正.} +% \changes{v1.6-ltj-10}{2015/10/18}{Lua\TeX\ 0.81.0に伴うプリミティブ名の変更に対応.} +% \changes{v1.6-ltj-11}{2016/07/19}{トンボ使用時の用紙サイズの設定方法を変更(aminophenさん,ありがとうございます).} +% \changes{v1.7}{2016/11/12}{ドキュメントに反して\cs{@maketitle}が +% 空になっていなかったのを修正} +% \changes{v1.7}{2016/11/12}{use \cs{@width} (sync with classes.dtx v1.3a)} +% \changes{v1.7}{2016/11/12}{Replaced all \cs{hbox to} by +% \cs{hb@xt@} (sync with classes.dtx v1.3a)} +% \changes{v1.7}{2016/11/12}{Moved \cs{@mkboth} out of heading +% arg (sync with classes.dtx v1.4c)} +% \changes{v1.7}{2016/11/12}{\cs{columnsep}と\cs{columnseprule}の +% 変更を後ろに移動(sync with classes.dtx v1.4f)} +% \changes{v1.7a}{2016/11/16}{Check \texttt{@noskipsec} switch and +% possibly force horizontal mode (sync with classes.dtx v1.4a)} +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} +% \changes{v1.7a}{2016/11/16}{Added \cs{nobreak} for +% latex/2343 (sync with ltsect.dtx v1.0z)} +% \changes{v1.7a}{2016/11/16}{Use \cs{expandafter} +% (sync with ltlists.dtx v1.0j)} +% \changes{v1.7b}{2016/11/22}{補足ドキュメントを追加} +% \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-ltj-12}{2017/01/17}{|\stockwidth|,~|\stockheight|をトンボオプション指定時にのみ定義 +% (aminophenさん,ありがとうございます).} +% \changes{v1.7c}{2016/12/18}{奇妙なarticleガードとコードを削除して +% ドキュメントを追加} +% \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-ltj-13}{2017/02/19}{縦組時クラスで|ftnright|パッケージを使うと +% 脚注番号が上書きされ横に寝てしまう問題を修正(aminophenさん,ありがとうございます).} +% \changes{v1.7d-ltj-14}{2017/02/20}{openleftオプションの処理で\cs{iftdir}, \cs{ifydir}を +% 誤って使っている問題を修正(aminophenさん,ありがとうございます).} +% \changes{v1.7e}{2017/03/05}{トンボに表示するジョブ情報の書式を変更} +% \changes{v1.7e}{2017/03/05}{\cs{frontmatter}と\cs{mainmatter}を +% 奇数ページに送るように変更} +% \changes{v1.7e-ltj-15}{2017/08/28}{本ドキュメントのタイプセットで,小塚フォントが存在するときには +% それを用いるように変更(PDFサイズ削減のため).クラスファイル本体の変更はなし,} % \fi % % \iffalse @@ -107,16 +141,22 @@ %<11pt&bk>\ProvidesFile{ltjtbk11.clo} %<12pt&bk>\ProvidesFile{ltjtbk12.clo} % - [2014/06/08 v1.6-ltj-3 + [2017/08/28 v1.7e-ltj-15 % Standard LuaLaTeX-ja class] %<10pt|11pt|12pt> Standard LuaLaTeX-ja file (size option)] %<*driver> ] \documentclass{ltjltxdoc} \GetFileInfo{ltjclasses.dtx} -\usepackage[kozuka-pr6n]{luatexja-preset} -\usepackage{unicode-math} -\setmathfont{Latin Modern Math} +\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 \usepackage[unicode]{hyperref} \title{Lua\LaTeX-ja用\texttt{jclasses}互換クラス} \author{Lua\TeX-jaプロジェクト} @@ -164,7 +204,7 @@ % \end{quotation} % のエラーが起こった場合は、|lualatex-math|パッケージを読み込んでみて下さい。 % \item 出力PDFの用紙サイズが自動的に設定されるようにしてあります。 -% \item 縦組みクラスにおいて、|geometry|パッケージを読み込んだときに意図通りにならない問題に対応しました。 +% %%%\item 縦組みクラスにおいて、|geometry|パッケージを読み込んだときに意図通りにならない問題に対応しました。% % \end{itemize} % % \section{Lua\TeX-ja の読み込み} @@ -173,10 +213,6 @@ %<*article|report|book> \RequirePackage{luatexja} % \end{macrocode} -% 縦組みの場合は|geometry|対応のために|filehook|も読み込んでおきます。 -% \begin{macrocode} -\RequirePackage{filehook} -% \end{macrocode} % % \section{オプションスイッチ} % ここでは、後ほど使用するいくつかのコマンドやスイッチを定義しています。 @@ -223,7 +259,8 @@ % \end{macro} % % \begin{macro}{\if@openright} -% chapterレベルを奇数ページからはじめるかどうかのスイッチです。 +% chapterレベルを右ページからはじめるかどうかのスイッチです。 +% 横組では奇数ページ、縦組では偶数ページから始まることになります。 % reportクラスのデフォルトは、``no''です。 % bookクラスのデフォルトは、``yes''です。 % \begin{macrocode} @@ -231,6 +268,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} +%\newif\if@openleft +% \end{macrocode} +% \end{macro} +% % \changes{v1.0c}{1995/12/25}{Macro \cs{if@openbib} removed} % % \begin{macro}{\if@mainmatter} @@ -320,15 +368,6 @@ \setlength\paperheight {257mm} \setlength\paperwidth {182mm}} % \end{macrocode} -% 縦組みクラスについて、|geometry|パッケージが読み込まれると|\textwidth|と|\textheight|が -% ひっくり返ってしまう問題に対処します。 -% \begin{macrocode} -%<*tate> -\AtEndOfPackageFile{geometry}{% - \setlength{\@tempdima}{\textheight}% - \setlength{\textheight}{\textwidth}% - \setlength{\textwidth}{\@tempdima}} -% % % \subsection{サイズオプション} % 基準となるフォントの大きさを指定するオプションです。 @@ -357,15 +396,19 @@ % |tombow|オプションが指定されると、用紙サイズに合わせてトンボを出力します。 % このとき、トンボの脇にPDFを作成した日付が出力されます。 % 作成日付の出力を抑制するには、|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 @@ -392,13 +435,33 @@ % \changes{v1.0g}{1997/01/25}{Insert \cs{hbox}, to switch tate-mode.} % \changes{v1.1d}{1997/02/05}{開始ページがおかしくなるのを修正} % \changes{v1.1f}{1997/07/08}{縦組時にベースラインがおかしくなるのを修正} +% +% \changes{v1.6-ltj-4}{2014/06/30}{本文の組方向を \cs{AtBeginDocument} で +% 変更することができなくなったことに対応} % \begin{macrocode} \DeclareOption{tate}{% - \AtBeginDocument{\tate\message{《縦組モード》}% - \adjustbaseline}% + \tate\AtBeginDocument{\message{《縦組モード》}\adjustbaseline}% } % \end{macrocode} % +% 縦組クラスと|everyshi|パッケージの相性が悪い問題に対処します。 +% この処理は、ZRさんの|pxeveryshi|パッケージと実質的に同じ内容です。 +% \begin{macrocode} +%<*tate> +\AtEndOfPackageFile{everyshi}{% + \def\@EveryShipout@Output{% + \setbox8\vbox{% + \yoko + \@EveryShipout@Hook + \@EveryShipout@AtNextHook + \global\setbox\luatexoutputbox=\box\luatexoutputbox + }% + \gdef\@EveryShipout@AtNextHook{}% + \@EveryShipout@Org@Shipout\box\luatexoutputbox + }} +% +% \end{macrocode} +% % \subsection{両面、片面オプション} % twosideオプションが指定されると、両面印字出力に適した整形を行ないます。 % \begin{macrocode} @@ -423,12 +486,15 @@ % \subsection{右左起こしオプション} % chapterを右ページあるいは左ページから % はじめるかどうかを指定するオプションです。 +% |openleft|オプションは日本語\TeX{}開発コミュニティによって追加されました。 +% \changes{v1.7d}{2017/02/15}{openleftオプション追加} % \begin{macrocode} %\if@compatibility %\@openrighttrue %\else -%\DeclareOption{openright}{\@openrighttrue} -%\DeclareOption{openany}{\@openrightfalse} +%\DeclareOption{openright}{\@openrighttrue\@openleftfalse} +%\DeclareOption{openleft}{\@openlefttrue\@openrightfalse} +%\DeclareOption{openany}{\@openrightfalse\@openleftfalse} %\fi % \end{macrocode} % @@ -493,38 +559,8 @@ % % \end{macrocode} % -% \subsection{オプションの実行} -% オプションの実行、およびサイズクラスのロードを行ないます。 -% \begin{macrocode} -%<*article|report|book> -%<*article> -%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,tate} -%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final} -% -%<*report> -%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany,tate} -%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany} -% -%<*book> -%\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright,tate} -%\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright} -% -\ProcessOptions\relax -%\input{ltjtbk1\@ptsize.clo} -%\input{ltjtsize1\@ptsize.clo} -%\input{ltjbk1\@ptsize.clo} -%\input{ltjsize1\@ptsize.clo} -% \end{macrocode} -% 縦組用クラスファイルの場合は、ここで\file{plext.sty}が読み込まれていました。 -% Lua\TeX-jaでどうなるかは未定です。 -% \changes{v1.0e}{1996/03/21}{\cs{usepackage} to \cs{RequirePackage}} -% \begin{macrocode} -%%\RequirePackage{plext} -% -% \end{macrocode} -% -% \section{フォント} -% +% \subsection{フォントメトリックの変更} +% % Lua\LaTeX-jaの標準では、OTFパッケージ由来のメトリックが使われるようになっています。 % 本クラスでは、「p\TeX の組版と互換性をできるだけ持たせる」例を提示するため、 % \begin{itemize} @@ -542,7 +578,9 @@ % 何らかの理由で非埋め込みフォントが正しく利用できない場合にのみ |luatexja.cfg| によって % セットされるものです。 % -% +% \changes{v1.6-ltj-9}{2015/01/01}{サイズクラスのロード前にメトリックの変更を行わないと, +% \cs{Cht}等の値が反映されないのでこの場所に移動させました.} +% % \begin{macrocode} %<*article|report|book> \directlua{luatexbase.add_to_callback('luatexja.load_jfm', @@ -557,6 +595,39 @@ % % \end{macrocode} % +% \subsection{オプションの実行} +% オプションの実行、およびサイズクラスのロードを行ないます。 +% \begin{macrocode} +%<*article|report|book> +%<*article> +%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,tate} +%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final} +% +%<*report> +%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany,tate} +%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany} +% +%<*book> +%\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright,tate} +%\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright} +% +\ProcessOptions\relax +%\input{ltjtbk1\@ptsize.clo} +%\input{ltjtsize1\@ptsize.clo} +%\input{ltjbk1\@ptsize.clo} +%\input{ltjsize1\@ptsize.clo} +% \end{macrocode} +% 縦組用クラスファイルの場合は、ここで\file{plext.sty}も読み込みます。 +% \changes{v1.0e}{1996/03/21}{\cs{usepackage} to \cs{RequirePackage}} +% \changes{v1.6-ltj-6}{2014/07/28}{Lua\TeX-jaでは,代わりに\file{lltjext.sty}を読み込みま +% す.これは\file{plext.sty}をLua\TeX-ja用に書きなおしたものです.} +% \begin{macrocode} +%\RequirePackage{lltjext} +% +% \end{macrocode} +% +% \section{フォント} +% % ここでは、\LaTeX{}のフォントサイズコマンドの定義をしています。 % フォントサイズコマンドの定義は、次のコマンドを用います。 % @@ -795,22 +866,50 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\pdfpagewidth} -% \begin{macro}{\pdfpageheight} +% \begin{macro}{\pagewidth} +% \begin{macro}{\pageheight} +% \begin{macro}{\stockwidth} +% \begin{macro}{\stockheight} % 出力のPDFの用紙サイズをここで設定しておきます。 % |tombow|が真のときは2インチ足しておきます。 +% +% [2015-10-18 LTJ] Lua\TeX\ 0.81.0ではプリミティブの名称変更がされたので, +% それに合わせておきます. +% +% [2016-07-19 LTJ] luatex.defが新しくなったことに対応するaminophenさんのパッチを取り込みました。 +% +% [2017-01-17 LTJ] [lt]jsclassesに合わせ,トンボオプションが指定されているとき「だけ」|\stockwidth|, +% |\stockheight|を定義するようにしました。aminophenさん,ありがとうございます. +% % \begin{macrocode} -\setlength{\@tempdima}{\paperwidth} -\setlength{\@tempdimb}{\paperheight} \iftombow - \advance \@tempdima 2in - \advance \@tempdimb 2in + \newlength{\stockwidth} + \newlength{\stockheight} + \setlength{\stockwidth}{\paperwidth} + \setlength{\stockheight}{\paperheight} + \advance \stockwidth 2in + \advance \stockheight 2in + \ifdefined\pdfpagewidth + \setlength{\pdfpagewidth}{\stockwidth} + \setlength{\pdfpageheight}{\stockheight} + \else + \setlength{\pagewidth}{\stockwidth} + \setlength{\pageheight}{\stockheight} + \fi +\else + \ifdefined\pdfpagewidth + \setlength{\pdfpagewidth}{\paperwidth} + \setlength{\pdfpageheight}{\paperheight} + \else + \setlength{\pagewidth}{\paperwidth} + \setlength{\pageheight}{\paperheight} + \fi \fi -\setlength{\pdfpagewidth}{\@tempdima} -\setlength{\pdfpageheight}{\@tempdimb} % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} % % \subsection{段落の形} % @@ -1685,10 +1784,83 @@ % \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}の代用となる命令群を追加} +% \changes{v1.7d-ltj-14}{2017/02/20}{\cs{iftdir}, \cs{ifydir}を使わないように修正} +% \begin{macrocode} +\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} +% \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 +% +% \end{macrocode} +% \end{macro} +% +% % % \section{ページスタイル}\label{sec:pagestyle} % つぎの6種類のページスタイルを使用できます。 -% \pstyle{empty}は\file{latex.dtx}で定義されています。 +% \pstyle{empty}は\file{ltpage.dtx}で定義されています。 % % \begin{tabular}{ll} % empty & ヘッダにもフッタにも出力しない\\ @@ -1709,10 +1881,10 @@ % % \DeleteShortVerb{\|} % \begin{tabular}{ll} -% |\@oddhead| & 奇数ページのヘッダを出力\\ -% |\@oddfoot| & 奇数ページのフッタを出力\\ -% |\@evenhead| & 偶数ページのヘッダを出力\\ -% |\@evenfoot| & 偶数ページのフッタを出力\\ +% \cs{@oddhead} & 奇数ページのヘッダを出力\\ +% \cs{@oddfoot} & 奇数ページのフッタを出力\\ +% \cs{@evenhead} & 偶数ページのヘッダを出力\\ +% \cs{@evenfoot} & 偶数ページのフッタを出力\\ % \end{tabular} % \MakeShortVerb{\|} % @@ -1759,9 +1931,9 @@ % \changes{v1.0a}{1995/08/30}{柱の書体がノンブルに影響するバグの修正} % % \subsection{plainページスタイル} -% \pstyle{jpl@in}に|\let|するために、ここで定義をします。 % % \begin{macro}{\ps@plain} +% \pstyle{jpl@in}に|\let|するために、ここで定義をします。 % \begin{macrocode} \def\ps@plain{\let\@mkboth\@gobbletwo \let\ps@jpl@in\ps@plain @@ -1773,6 +1945,8 @@ % \end{macro} % % \subsection{jpl@inページスタイル} +% +% \begin{macro}{\ps@jpl@in} % \changes{v1.0d}{1996/02/29}{\pstyle{jpl@in}の初期値を定義} % % \pstyle{jpl@in}スタイルは、クラスファイル内部で使用するものです。 @@ -1788,8 +1962,6 @@ % 出力されます。 % % ここで、定義をしているのは、その初期値です。 -% -% \begin{macro}{\ps@jpl@in} % \begin{macrocode} \let\ps@jpl@in\ps@plain % \end{macrocode} @@ -1996,13 +2168,13 @@ % % \section{文書コマンド} % -% \subsubsection{表題} +% \subsection{表題} % % \begin{macro}{\title} -% \begin{macro}{\autor} +% \begin{macro}{\author} % \begin{macro}{\date} % 文書のタイトル、著者、日付の情報のための、 -% これらの3つのコマンドは\file{latex.dtx}で提供されています。 +% これらの3つのコマンドは\file{ltsect.dtx}で提供されています。 % これらのコマンドは次のように定義されています。 % \begin{macrocode} %\newcommand*{\title}[1]{\gdef\@title{#1}} @@ -2025,6 +2197,84 @@ % 右起こしページ用のページパラメータでは誤った結果になります。 % 二段組スタイルでも一段組のページが作られます。 % +% \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 @@ -2038,25 +2288,29 @@ }% {\if@restonecol\twocolumn\else\newpage\fi } -% \end{macrocode} +% \end{macrocode} % % そして、\LaTeX{}ネイティブのための定義です。 -% \begin{macrocode} +% \changes{v1.7d}{2017/02/15}{bookクラスでtitlepageを必ず奇数ページ +% に送るように変更} +% \changes{v1.7d}{2017/02/15}{titlepageのページ番号を奇数ならば1に、 +% 偶数ならば0にリセットするように変更} +% \begin{macrocode} \else \newenvironment{titlepage} {% -% \cleardoublepage +% \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 @@ -2077,10 +2331,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} % @@ -2137,15 +2395,15 @@ \newcommand{\maketitle}{\par \begingroup \renewcommand{\thefootnote}{\fnsymbol{footnote}}% - \def\@makefnmark{\hbox{\ifydir $\m@th^{\@thefnmark}$ + \def\@makefnmark{\hbox{\unless\ifnum\ltjgetparameter{direction}=3 $\m@th^{\@thefnmark}$ \else\hbox{\yoko$\m@th^{\@thefnmark}$}\fi}}% %<*tate> \long\def\@makefntext##1{\parindent 1\zw\noindent - \hbox to 2\zw{\hss\@makefnmark}##1}% + \hb@xt@ 2\zw{\hss\@makefnmark}##1}% % %<*yoko> \long\def\@makefntext##1{\parindent 1em\noindent - \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}% + \hb@xt@1.8em{\hss$\m@th^{\@thefnmark}$}##1}% % \if@twocolumn \ifnum \col@number=\@ne \@maketitle @@ -2161,11 +2419,14 @@ % ここでグループを閉じ、\Lcount{footnote}カウンタをリセットし、 % |\thanks|, |\maketitle|, |\@maketitle|を無効にし、 % いくつかの内部マクロを空にして格納領域を節約します。 +% \changes{v1.7}{2016/11/12}{ドキュメントに反して\cs{@maketitle}が +% 空になっていなかったのを修正} % \begin{macrocode} \endgroup \setcounter{footnote}{0}% \global\let\thanks\relax \global\let\maketitle\relax + \global\let\@maketitle\relax \global\let\p@thanks\relax \global\let\@thanks\@empty \global\let\@author\@empty @@ -2203,7 +2464,7 @@ % \end{macrocode} % \end{macro} % -% \subsubsection{概要} +% \subsection{概要} % % \begin{environment}{abstract} % 要約文のための環境です。bookクラスでは使えません。 @@ -2240,7 +2501,7 @@ % % \subsection{章見出し} % -% \subsection{マークコマンド} +% \subsubsection{マークコマンド} % % \begin{macro}{\chaptermark} % \begin{macro}{\sectionmark} @@ -2250,7 +2511,7 @@ % \begin{macro}{\subparagraphmark} % |\...mark|コマンドを初期化します。これらのコマンドはページスタイルの % 定義で使われます(第\ref{sec:pagestyle}節参照)。 -% これらのたいていのコマンドは\file{latex.dtx}ですでに定義されています。 +% これらのたいていのコマンドは\file{ltsect.dtx}ですでに定義されています。 % \begin{macrocode} %\newcommand*{\chaptermark}[1]{} %\newcommand*{\sectionmark}[1]{} @@ -2397,20 +2658,50 @@ % \begin{macro}{\mainmatter} % \begin{macro}{\backmatter} % \changes{v1.1}{1997/01/15}{\cs{frontmatter}, \cs{mainmatter}, \cs{backmatter} -% を\LaTeX\ の定義に修正} +% を\LaTeX{}の定義に修正} % 一冊の本は論理的に3つに分割されます。 % 表題や目次や「はじめに」あるいは権利などの前付け、 % そして本文、それから用語集や索引や奥付けなどの後付けです。 +% +% \emph{日本語\TeX{}開発コミュニティによる補足}: +% \LaTeX{}のclasses.dtxは、1996/05/26 (v1.3r)と1998/05/05 (v1.3y)の +% 計2回、|\frontmatter|と|\mainmatter|の定義を修正しています。一回目は +% これらの命令を|openany|オプションに応じて切り替え、二回目はそれを +% 元に戻しています。アスキーによるjclasses.dtxは、1997/01/15に +% 一回目の修正に追随しましたが、二回目の修正には追随していません。 +% コミュニティ版では、一旦はアスキーによる仕様を維持しようと考え +% ました(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 +\newcommand{\frontmatter}{% + \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} % % \end{macrocode} @@ -2475,11 +2766,19 @@ % % articleクラスの場合は、簡単です。 % -% 新しい段落を開始し、小さな空白を入れ、段落後のインデントをしないようにし、 -% |\secdef|で作成します。 +% 新しい段落を開始し、小さな空白を入れ、段落後のインデントを行い、 +% |\secdef|で作成します。(アスキーによる元のドキュメントには +% 「段落後のインデントをしないようにし」と書かれていましたが、 +% 実際のコードでは段落後のインデントを行っていました。そこで +% 日本語\TeX{}開発コミュニティは、ドキュメントをコードに合わせて +% 「段落後のインデントを行い」へと修正しました。) +% \changes{v1.7a}{2016/11/16}{Check \texttt{@noskipsec} switch and +% possibly force horizontal mode (sync with classes.dtx v1.4a)} % \begin{macrocode} %<*article> -\newcommand{\part}{\par\addvspace{4ex}% +\newcommand{\part}{% + \if@noskipsec \leavevmode \fi + \par\addvspace{4ex}% \@afterindenttrue \secdef\@part\@spart} % @@ -2494,7 +2793,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 @@ -2509,6 +2809,8 @@ % % articleクラスの場合は、\Lcount{secnumdepth}が$-1$よりも大きいとき、 % 見出し番号を付けます。このカウンタが$-1$以下の場合には付けません。 +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} % \begin{macrocode} %<*article> \def\@part[#1]#2{% @@ -2521,7 +2823,7 @@ \fi \markboth{}{}% {\parindent\z@\raggedright - \interlinepenalty\@M\reset@font + \interlinepenalty\@M\normalfont \ifnum \c@secnumdepth >\m@ne \Large\bfseries\prepartname\thepart\postpartname \par\nobreak @@ -2546,7 +2848,7 @@ \fi \markboth{}{}% {\centering - \interlinepenalty\@M\reset@font + \interlinepenalty\@M\normalfont \ifnum \c@secnumdepth >-2\relax \huge\bfseries\prepartname\thepart\postpartname \par\vskip20\p@ @@ -2559,11 +2861,13 @@ % % \begin{macro}{\@spart} % このマクロは、番号を付けないときの体裁です。 +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} % \begin{macrocode} %<*article> \def\@spart#1{{% \parindent\z@\raggedright - \interlinepenalty\@M\reset@font + \interlinepenalty\@M\normalfont \huge\bfseries#1\par}% \nobreak\vskip3ex\@afterheading} % @@ -2574,7 +2878,7 @@ %<*report|book> \def\@spart#1{{% \centering - \interlinepenalty\@M\reset@font + \interlinepenalty\@M\normalfont \Huge\bfseries#1\par}% \@endpart} % @@ -2585,10 +2889,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} @@ -2607,6 +2922,10 @@ % なお、縦組の場合でも右ページからはじまるように、 % フォーマットファイルで|\clerdoublepage|が定義されています。 % +% \emph{日本語\TeX{}開発コミュニティによる補足}:コミュニティ版の実装では、 +% |openright|と|openleft|の場合に|\cleardoublepage|をクラスファイルの中で +% 再々定義しています。\ref{sec:cleardoublepage}を参照してください。 +% % 章見出しが出力されるページのスタイルは、\pstyle{jpl@in}になります。 % \pstyle{jpl@in}は、\pstyle{headnomble}か\pstyle{footnomble}のいずれかです。 % 詳細は、第\ref{sec:pagestyle}節を参照してください。 @@ -2616,7 +2935,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 @@ -2628,6 +2948,12 @@ % このマクロは、章見出しに番号を付けるときに呼び出されます。 % \Lcount{secnumdepth}が$-1$よりも大きく、 % |\@mainmatter|が真(bookクラスの場合)のときに、番号を出力します。 +% +% \emph{日本語\TeX{}開発コミュニティによる補足}:本家\LaTeX{}の +% \file{classes}では、二段組のときチャプタータイトルは一段組に戻され +% ますが、アスキーによる\file{jclasses}では二段組のままにされています。 +% したがって、チャプタータイトルより高い位置に右カラムの始点が来るという +% 挙動になっていますが、コミュニティ版でもアスキー版の挙動を維持しています。 % \begin{macrocode} \def\@chapter[#1]#2{% \ifnum \c@secnumdepth >\m@ne @@ -2653,12 +2979,14 @@ % 見出し文字列も消えてしまうのを修正} % \changes{v1.2}{2001/09/04}{\cs{chapter}の出力位置がアスタリスク形式と % そうでないときと違うのを修正(ありがとう、鈴木@津さん)} +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} % \begin{macrocode} \def\@makechapterhead#1{\hbox{}% \vskip2\Cvs {\parindent\z@ \raggedright - \reset@font\huge\bfseries + \normalfont\huge\bfseries \leavevmode \ifnum \c@secnumdepth >\m@ne \setlength\@tempdima{\linewidth}% @@ -2676,11 +3004,14 @@ % % \begin{macro}{\@schapter} % このマクロは、章見出しに番号を付けないときに呼び出されます。 +% +% \emph{日本語\TeX{}開発コミュニティによる補足}:やはり二段組でチャプター +% タイトルより高い位置に右カラムの始点が来るという挙動を維持してあります。 +% \changes{v1.7c}{2016/12/18}{奇妙なarticleガードとコードを削除して +% ドキュメントを追加} % \begin{macrocode} \def\@schapter#1{% -%
\if@twocolumn\@topnewpage[\@makeschapterhead{#1}]\else \@makeschapterhead{#1}\@afterheading -%
\fi } % \end{macrocode} % \end{macro} @@ -2689,12 +3020,14 @@ % 番号を付けない場合の形式です。 % \changes{v1.2}{2001/09/04}{\cs{chapter}の出力位置がアスタリスク形式と % そうでないときと違うのを修正(ありがとう、鈴木@津さん)} +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} % \begin{macrocode} \def\@makeschapterhead#1{\hbox{}% \vskip2\Cvs {\parindent\z@ \raggedright - \reset@font\huge\bfseries + \normalfont\huge\bfseries \leavevmode \setlength\@tempdima{\linewidth}% \vtop{\hsize\@tempdima#1}}\vskip3\Cvs} @@ -2706,53 +3039,63 @@ % % \begin{macro}{\section} % 見出しの前後に空白を付け、|\Large\bfseries|で出力をします。 +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} % \begin{macrocode} \newcommand{\section}{\@startsection{section}{1}{\z@}% {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% {.5\Cvs \@plus.3\Cvs}% - {\reset@font\Large\bfseries}} + {\normalfont\Large\bfseries}} % \end{macrocode} % \end{macro} % % \begin{macro}{\subsection} % 見出しの前後に空白を付け、|\large\bfseries|で出力をします。 +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} % \begin{macrocode} \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% {.5\Cvs \@plus.3\Cvs}% - {\reset@font\large\bfseries}} + {\normalfont\large\bfseries}} % \end{macrocode} % \end{macro} % % \begin{macro}{\subsubsection} % 見出しの前後に空白を付け、|\normalsize\bfseries|で出力をします。 +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} % \begin{macrocode} \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% {.5\Cvs \@plus.3\Cvs}% - {\reset@font\normalsize\bfseries}} + {\normalfont\normalsize\bfseries}} % \end{macrocode} % \end{macro} % % \begin{macro}{\paragraph} % 見出しの前に空白を付け、|\normalsize\bfseries|で出力をします。 % 見出しの後ろで改行されません。 +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} % \begin{macrocode} \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {3.25ex \@plus 1ex \@minus .2ex}% {-1em}% - {\reset@font\normalsize\bfseries}} + {\normalfont\normalsize\bfseries}} % \end{macrocode} % \end{macro} % % \begin{macro}{\subparagraph} % 見出しの前に空白を付け、|\normalsize\bfseries|で出力をします。 % 見出しの後ろで改行されません。 +% \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}% - {\reset@font\normalsize\bfseries}} + {\normalfont\normalsize\bfseries}} % \end{macrocode} % \end{macro} % @@ -3047,14 +3390,16 @@ % \changes{v1.1q}{1999/05/18}{縦組時のみに設定するようにした} % トップレベルで使われたときに、最初と最後に半行分のスペースを開けるように、 % 変更します。この環境は、\file{ltlists.dtx}で定義されています。 +% \changes{v1.7a}{2016/11/16}{Use \cs{expandafter} +% (sync with ltlists.dtx v1.0j)} % % \begin{macrocode} \renewenvironment{enumerate} {\ifnum \@enumdepth >\thr@@\@toodeep\else \advance\@enumdepth\@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth}% - \list{\csname label\@enumctr\endcsname}{% - \iftdir + \expandafter \list \csname label\@enumctr\endcsname{% + \ifnum\ltjgetparameter{direction}=3 \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip \else\topsep\z@\fi \parskip\z@ \itemsep\z@ \parsep\z@ @@ -3082,7 +3427,7 @@ % \begin{macrocode} \newcommand{\labelitemi}{\textbullet} \newcommand{\labelitemii}{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 {\textcircled{~}} \else {\normalfont\bfseries\textendash} @@ -3100,14 +3445,15 @@ % \changes{v1.0e}{1996/03/14}{縦組時のみに設定するようにした} % トップレベルで使われたときに、最初と最後に半行分のスペースを開けるように、 % 変更します。この環境は、\file{ltlists.dtx}で定義されています。 +% \changes{v1.7a}{2016/11/16}{Use \cs{expandafter} +% (sync with ltlists.dtx v1.0j)} % \begin{macrocode} \renewenvironment{itemize} {\ifnum \@itemdepth >\thr@@\@toodeep\else \advance\@itemdepth\@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% - \expandafter - \list{\csname \@itemitem\endcsname}{% - \iftdir + \expandafter \list \csname \@itemitem\endcsname{% + \ifnum\ltjgetparameter{direction}=3 \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip \else\topsep\z@\fi \parskip\z@ \itemsep\z@ \parsep\z@ @@ -3132,7 +3478,7 @@ % \begin{macrocode} \newenvironment{description} {\list{}{\labelwidth\z@ \itemindent-\leftmargin - \iftdir + \ifnum\ltjgetparameter{direction}=3 \leftmargin\leftskip \advance\leftmargin3\Cwd \rightmargin\rightskip \labelsep=1\zw \itemsep\z@ @@ -3369,15 +3715,15 @@ % \begin{macrocode} \long\def\@makecaption#1#2{% \vskip\abovecaptionskip - \iftdir\sbox\@tempboxa{#1\hskip1\zw#2}% + \ifnum\ltjgetparameter{direction}=3 \sbox\@tempboxa{#1\hskip1\zw#2}% \else\sbox\@tempboxa{#1: #2}% \fi \ifdim \wd\@tempboxa >\hsize - \iftdir #1\hskip1\zw#2\relax\par + \ifnum\ltjgetparameter{direction}=3 #1\hskip1\zw#2\relax\par \else #1: #2\relax\par\fi \else \global \@minipagefalse - \hbox to\hsize{\hfil\box\@tempboxa\hfil}% + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi \vskip\belowcaptionskip} % \end{macrocode} @@ -3662,7 +4008,7 @@ % |\numberline|マクロを再定義します。 % \begin{macrocode} \newdimen\@lnumwidth -\def\numberline#1{\hbox to\@lnumwidth{#1\hfil}} +\def\numberline#1{\hb@xt@\@lnumwidth{#1\hfil}} % \end{macrocode} % \end{macro} % \end{macro} @@ -3671,6 +4017,8 @@ % 目次の各行間に|\toclineskip|を入れるように変更します。 % このマクロは\file{ltsect.dtx}で定義されています。 % \changes{v1.3}{2001/10/04}{第5引数の書体を\cs{rmfamily}から\cs{normalfont}に変更} +% \changes{v1.7a}{2016/11/16}{Added \cs{nobreak} for +% latex/2343 (sync with ltsect.dtx v1.0z)} % \begin{macrocode} \def\@dottedtocline#1#2#3#4#5{% \ifnum #1>\c@tocdepth \else @@ -3680,7 +4028,7 @@ \interlinepenalty\@M \leavevmode \@lnumwidth #3\relax - \advance\leftskip \@lnumwidth \hbox{}\hskip -\leftskip + \advance\leftskip \@lnumwidth \null\nobreak\hskip -\leftskip {#4}\nobreak \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep mu$}% \hfill\nobreak @@ -3721,6 +4069,11 @@ % %
\section*{\contentsname % \chapter*{\contentsname +% \end{macrocode} +% |\tableofcontents|では、|\@mkboth|はheadingの中に入れてあります。 +% ほかの命令(|\listoffigures|など)については、|\@mkboth|はheadingの +% 外に出してあります。これは\LaTeX の\file{classes.dtx}に合わせています。 +% \begin{macrocode} \@mkboth{\contentsname}{\contentsname}% }\@starttoc{toc}% % \if@restonecol\twocolumn\fi @@ -3742,7 +4095,7 @@ {\leavevmode\large\bfseries \setlength\@lnumwidth{4\zw}% #1\hfil\nobreak - \hbox to\@pnumwidth{\hss#2}}\par + \hb@xt@\@pnumwidth{\hss#2}}\par \nobreak %
\if@compatibility \global\@nobreaktrue @@ -3766,7 +4119,7 @@ \leavevmode\bfseries \setlength\@lnumwidth{4\zw}% \advance\leftskip\@lnumwidth \hskip-\leftskip - #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par + #1\nobreak\hfil\nobreak\hb@xt@\@pnumwidth{\hss#2}\par \penalty\@highpenalty \endgroup \fi} @@ -3787,7 +4140,7 @@ \leavevmode\bfseries \setlength\@lnumwidth{1.5em}% \advance\leftskip\@lnumwidth \hskip-\leftskip - #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par + #1\nobreak\hfil\nobreak\hb@xt@\@pnumwidth{\hss#2}\par \endgroup \fi} %
@@ -3846,15 +4199,17 @@ % % \begin{macro}{\listoffigures} % 図の一覧を作成します。 +% \changes{v1.7}{2016/11/12}{Moved \cs{@mkboth} out of heading +% arg (sync with classes.dtx v1.4c)} % \begin{macrocode} \newcommand{\listoffigures}{% %<*report|book> \if@twocolumn\@restonecoltrue\onecolumn \else\@restonecolfalse\fi - \chapter*{\listfigurename + \chapter*{\listfigurename}% %
-%
\section*{\listfigurename - \@mkboth{\listfigurename}{\listfigurename}}% +%
\section*{\listfigurename}% + \@mkboth{\listfigurename}{\listfigurename}% \@starttoc{lof}% % \if@restonecol\twocolumn\fi } @@ -3872,15 +4227,17 @@ % \begin{macro}{\listoftables} % \changes{v1.0c}{1995/12/28}{fix the \cs{listoftable} typo.} % 表の一覧を作成します。 +% \changes{v1.7}{2016/11/12}{Moved \cs{@mkboth} out of heading +% arg (sync with classes.dtx v1.4c)} % \begin{macrocode} \newcommand{\listoftables}{% %<*report|book> \if@twocolumn\@restonecoltrue\onecolumn \else\@restonecolfalse\fi - \chapter*{\listtablename + \chapter*{\listtablename}% % -%
\section*{\listtablename - \@mkboth{\listtablename}{\listtablename}}% +%
\section*{\listtablename}% + \@mkboth{\listtablename}{\listtablename}% \@starttoc{lot}% % \if@restonecol\twocolumn\fi } @@ -3914,10 +4271,12 @@ % % \begin{environment}{thebibliography} % 参考文献や関連図書のリストを作成します。 +% \changes{v1.7}{2016/11/12}{Moved \cs{@mkboth} out of heading +% arg (sync with classes.dtx v1.4c)} % \begin{macrocode} \newenvironment{thebibliography}[1] -%
{\section*{\refname\@mkboth{\refname}{\refname}}% -%{\chapter*{\bibname\@mkboth{\bibname}{\bibname}}% +%
{\section*{\refname}\@mkboth{\refname}{\refname}% +%{\chapter*{\bibname}\@mkboth{\bibname}{\bibname}% \list{\@biblabel{\@arabic\c@enumiv}}% {\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth @@ -3958,7 +4317,7 @@ % % \begin{macro}{\@cite} % The output of the |\cite| command is produced by this macro. The -% default from \file{latex.dtx} is used. +% default from \file{ltbibl.dtx} is used. % \begin{macrocode} % \renewcommand*{\@cite}[1]{[#1]} % \end{macrocode} @@ -3974,12 +4333,19 @@ % \begin{macrocode} \newenvironment{theindex} {\if@twocolumn\@restonecolfalse\else\@restonecoltrue\fi - \columnseprule\z@ \columnsep 35\p@ %
\twocolumn[\section*{\indexname}]% % \twocolumn[\@makeschapterhead{\indexname}]% \@mkboth{\indexname}{\indexname}% \thispagestyle{jpl@in}\parindent\z@ +% \end{macrocode} +% パラメータ|\columnseprule|と|\columnsep|の変更は、|\twocolumn|が +% 実行された後でなければなりません。そうしないと、索引の前のページ +% にも影響してしまうためです。 +% \changes{v1.7}{2016/11/12}{\cs{columnsep}と\cs{columnseprule}の +% 変更を後ろに移動(sync with classes.dtx v1.4f)} +% \begin{macrocode} \parskip\z@ \@plus .3\p@\relax + \columnseprule\z@ \columnsep 35\p@ \let\item\@idxitem} {\if@restonecol\onecolumn\else\clearpage\fi} % \end{macrocode} @@ -4010,11 +4376,12 @@ % % \begin{macro}{\footnoterule} % 本文と脚注の間に引かれる罫線です。 +% \changes{v1.7}{2016/11/12}{use \cs{@width} (sync with classes.dtx v1.3a)} % \begin{macrocode} \renewcommand{\footnoterule}{% \kern-3\p@ - \hrule width .4\columnwidth - \kern 2.6\p@} + \hrule\@width.4\columnwidth + \kern2.6\p@} % \end{macrocode} % \end{macro} % @@ -4029,14 +4396,16 @@ % このマクロにしたがって脚注が組まれます。 % % |\@makefnmark|は脚注記号を組み立てるマクロです。 +% \changes{v1.7}{2016/11/12}{Replaced all \cs{hbox to} by +% \cs{hb@xt@} (sync with classes.dtx v1.3a)} % \begin{macrocode} %<*tate> \newcommand\@makefntext[1]{\parindent 1\zw - \noindent\hbox to 2\zw{\hss\@makefnmark}#1} + \noindent\hb@xt@ 2\zw{\hss\@makefnmark}#1} % %<*yoko> \newcommand\@makefntext[1]{\parindent 1em - \noindent\hbox to 1.8em{\hss\@makefnmark}#1} + \noindent\hb@xt@ 1.8em{\hss\@makefnmark}#1} % % \end{macrocode} % \end{macro} @@ -4078,17 +4447,20 @@ % % \begin{macro}{\today} % 縦組の場合は、漢数字で出力します。 +% +% \changes{v1.6-ltj-9}{2015/01/01}{縦組では,この漢数字による日付出力でエラーになりました. +% Lua\TeX-ja では,\cs{kansuji}の後に\cs{number}を続けることは出来ないので\cs{number}を削除しました.} % \begin{macrocode} \def\today{{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 \if西暦 - \kansuji\number\year 年 - \kansuji\number\month 月 - \kansuji\number\day 日 + \kansuji\year 年 + \kansuji\month 月 + \kansuji\day 日 \else - 平成\ifnum\heisei=1 元年\else\kansuji\number\heisei 年\fi - \kansuji\number\month 月 - \kansuji\number\day 日 + 平成\ifnum\heisei=1 元年\else\kansuji\heisei 年\fi + \kansuji\month 月 + \kansuji\day 日 \fi \else \if西暦 @@ -4166,14 +4538,20 @@ % \end{macro} % \end{macro} % +% |stfloats|パッケージがシステムにインストールされている場合は、このパッケージを使って +% p\LaTeX の標準時と同じようにボトムフロートの下に脚注が組まれるようにします。 % \changes{v1.0d}{1996/02/29}{articleとreportのデフォルトを % \pstyle{plain}に修正} % \changes{v1.4}{2002/04/09}{縦組スタイルで\cs{flushbottom}しないようにした} +% \changes{v1.7d-ltj-13}{2017/02/19}{p\LaTeX とLua\TeX-jaの|\@makecol|が違うことを +% 考慮していなかった} % \begin{macrocode} %\pagestyle{headings} %\pagestyle{plain} \pagenumbering{arabic} \raggedbottom +\fnfixbottomtrue % 2017-02-19 +\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{} \if@twocolumn \twocolumn \sloppy @@ -4204,6 +4582,22 @@ % % \end{macrocode} % +% \section{各種パッケージへの対応} +% もともと縦組での利用を想定されていないいくつかのパッケージについて、 +% 補正するためのコードを記述しておきます。 +% この節のコードは|filehook|パッケージ(Lua\TeX-ja読み込み時に自動でロードされます) +% の機能を用いています。 +% +% \subsection{\texttt{ftnright}パッケージ} +% 脚注番号の書式が|ftnright|パッケージによって勝手に書き換えられるので、 +% パッケージ読み込み前に予め退避しておき、読み込み後に復帰させます。 +% \changes{v1.7d}{2017/02/19}{コード追加} +% \begin{macrocode} +%<*article|report|book> +\AtBeginOfPackageFile*{ftnright}{\let\ltjt@orig@@makefntext=\@makefntext} +\AtEndOfPackageFile*{ftnright}{\let\@makefntext=\ltjt@orig@@makefntext} +% +% \end{macrocode} % % % \Finale