OSDN Git Service

ltj[s]classes.dtx: apply a patch by aminophen
[luatex-ja/luatexja.git] / src / ltjsclasses.dtx
index ebe511e..41e5549 100644 (file)
@@ -3,29 +3,16 @@
 %  -----------------------------------------
 %  Original: jsclasses.dtx
 %
-%  pLaTeX2ε新ドキュメントクラス
+%  pLaTeX2ε新ドキュメントクラス(日本語 TeX 開発コミュニティ版)
+%  原作者:奥村晴彦 <okumura@okumuralab.org>
 %
-%  これは LaTeX3 Project の classes.dtx と株式会社アスキーの jclasses.dtx
-%  に基づいて,もともと奥村晴彦 <okumura@okumuralab.org> により
-%  作成されたものです。
-%  現在は日本語\TeX 開発コミュニティにより管理されています。
-%
-%  [2002-12-19] いろいろなものに収録していただく際にライセンスを明確にする
-%  必要が生じてきました。アスキーのものが最近はmodified BSDライセンスになっ
-%  ていますので,私のものもそれに準じてmodified BSDとすることにします。
-%
-%  [2016-07-11] abenoriさんによる\texttt{nomag}オプションをマージしました。
-%  なお,ソースコードの管理はGitHubで行うことにしました。
-%
-%  [2016-07-13] 日本語\TeX 開発コミュニティによる管理に移行しました。
-%
-%  Copyright 1993 1994 1995 1996 1997 1998 1999
+%  Copyright 1993-2016
 %  The LaTeX3 Project and any individual authors listed elsewhere
 %  in this file.
 %
 %  Copyright 1995-1999 ASCII Corporation.
 %  Copyright 1999-2016 Haruhiko Okumura
-%  Copyright 2016-2017 Japanese TeX Development Community
+%  Copyright 2016-2018 Japanese TeX Development Community
 %  -----------------------------------------
 %
 % \fi
@@ -57,7 +44,7 @@
 %<*driver>
 \ProvidesFile{ltjsclasses.dtx}
 %</driver>
-  [2017/09/19 ltjsclasses ]
+  [2018/03/22 ltjsclasses ]
 %<*driver>
 \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
 \documentclass{ltjsarticle}
 \addtolength{\marginparwidth}{1in}
 \setlength\marginparpush{0pt}
 % \OnlyDescription
+\CodelineNumbered
 \EnableCrossrefs
 \setcounter{StandardModuleDepth}{1}
 \GetFileInfo{ltjsclasses.dtx}
-\CodelineNumbered
 \begin{document}
 \DocInput{ltjsclasses.dtx}
 \end{document}
 % 将来どうなるかわからないので\texttt{nomag}で無効化することができるようにしました。
 %
 % \texttt{noxreal},~\texttt{real}は旧来の互換性として今は残してありますが,2017年7月に削除する予定です。
+%
+% [2018-01-14] \texttt{noxreal},~\texttt{real} を削除しました.また,内部命令の名称を
+% \texttt{jsclasses}に合わせました.
+%
 %    \begin{macrocode}
-\newif\if@ltjs@mag@xreal
-\@ltjs@mag@xrealtrue
-\DeclareOption{nomag*}{\@ltjs@mag@xrealtrue}
-\DeclareOption{nomag}{\@ltjs@mag@xrealfalse}
-\DeclareOption{noxreal}{%
-  \ClassWarningNoLine{\jsc@clsname}{%
-    The class option `noxreal' is obsolete. \MessageBreak
-    Please use the `nomag' option instead}%
-  \@ltjs@mag@xrealfalse}
-\DeclareOption{real}{%
-  \ClassWarningNoLine{\jsc@clsname}{%
-    The class option `real' is obsolete. \MessageBreak
-    Please use the `nomag' option instead}%
-  \@ltjs@mag@xrealfalse}
+\newif\ifjsc@mag@xreal
+\jsc@mag@xrealtrue
+\DeclareOption{nomag*}{\jsc@mag@xrealtrue}
+\DeclareOption{nomag}{\jsc@mag@xrealfalse}
 \DeclareOption{usemag}{%
   \ClassWarningNoLine{\jsc@clsname}{%
     This \jsc@clsname\space cls does not support `usemag'\MessageBreak
        option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}%
-  \@ltjs@mag@xrealtrue}
-
-
+  \jsc@mag@xrealtrue}
 %    \end{macrocode}
 %
 %
 %
 % [2016-04-04 LTJ] NFSSへのパッチを修正。
 %
-% [2017-01-23] \LaTeXe\ 2017-01-01以降ではTUエンコーディングが標準なので,
+% [2017-01-23 LTJ] \LaTeXe\ 2017-01-01以降ではTUエンコーディングが標準なので,
 % \texttt{type1cm}パッケージは読み込まないようにしました.
 %
 % [2017-02-17 LTJ] |\directlua|中で出力される数字のカテゴリーコードが12になるようにしました.
 % この保証をしないと例えば\texttt{listings}パッケージで無限ループになります.
 %    \begin{macrocode}
-\if@ltjs@mag@xreal
+\ifjsc@mag@xreal
 \ifdim\jsc@mpt=\p@\else
   \expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax
   \expandafter\let\csname TU/lmr/m/n/10\endcsname\relax
 %
 % [2014-07-26 LTJ] なお,現状のところ,縦組用JFMは\texttt{jfm-ujisv.lua}しか準備していません。
 %
-% [2016-03-21 LTJ] 拡大率の計算で1~ptを$1/72.27$インチでなく0.3514~mmと間違えて扱っていたのを修正。
+% [2016-03-21 LTJ] 拡大率の計算で1~ptを$1/72.27$インチでなく0.3514\,mmと間違えて扱っていたのを修正。
+%
+% [2017-12-31] 和文スケール($1\,\mathrm{zw} \div \hbox{要求サイズ}$)を
+% 表す実数値マクロ |\Cjascale| を定義しました。
+%
 %    \begin{macrocode}
 %<!jspf> \def\Cjascale{0.924715}
 %    \end{macrocode}
 %
 % |\small| も |\normalsize| と同様に設定します。
 % 行送りは,|\normalsize| が16ポイントなら,
-% 割合からすれば $16 \times 0.9 = 14.4$ ポイントになりますが,
+% 割合からすれば$16 \times 0.9 = 14.4$ポイントになりますが,
 % |\small| の使われ方を考えて,ここでは和文13ポイント,
 % 欧文11ポイントとします。
-% また,|\topsep| と |\parsep| は,元はそれぞれ $4 \pm 2$,$2 \pm 1$
+% また,|\topsep| と |\parsep| は,元はそれぞれ$4 \pm 2$,$2 \pm 1$
 % ポイントでしたが,ここではゼロ(|\z@|)にしました。
 %
 %    \begin{macrocode}
 % 計算では |\headheight| ではなく |\topskip| を使う
 % ことにしました。
 %
-%
 % [2016-08-17] 圏点やルビが一行目に来た場合に下がるのを防ぐた
 % め,|\topskip| を10ptから1.38zwに増やしました。
 % |\headheight| は従来と同じ20ptのままとします。
 %
 %    \begin{macrocode}
 \def\flushbottom{%
-   \def\@textbottom{\vskip \z@ \@plus.1\jsc@mpt}%
-   \let\@texttop\relax}
+  \def\@textbottom{\vskip \z@ \@plus.1\jsc@mpt}%
+  \let\@texttop\relax}
 %    \end{macrocode}
 % \end{macro}
 %
 % |\topmargin| は従来の値から変わらないように調節しました。
 % …のつもりでしたが,|\textheight| を増やし忘れていたので
 % 変わってしまっていました(2016-08-26修正済み)。
+%
 %    \begin{macrocode}
 \setlength\topmargin{\paperheight}
 \addtolength\topmargin{-\textheight}
 %
 % フロート(図,表)関連のパラメータは\LaTeXe 本体で定義されていますが,
 % ここで設定変更します。本文ページ(本文とフロートが共存するページ)
-% ちなみに,カウンタは内部では |\c@| を名前に冠したマクロになっています。
 % とフロートだけのページで設定が異なります。
+% ちなみに,カウンタは内部では |\c@| を名前に冠したマクロになっています。
 %
 % \begin{macro}{\c@topnumber}
 %
 % 和文のものでは |\Large| になっていましたが,ここでは |\large|
 % にしました。
 %
+% [2016-11-16] スペーシングを元の |jsclasses| に合わせるため,|\smallskip| を
+% |\jsc@smallskip| に置き換えました。|\smallskip| のままでは
+% \texttt{nomag(*)} の場合にスケールしなくなり,レイアウトが変わってしまいます。
+%
 %    \begin{macrocode}
 %<*article|book|report|kiyou>
 \if@titlepage
   \if@slide
     {\vskip\if@twocolumn-5\jsc@mpt\else-6\jsc@mpt\fi
      \maybeblue\hrule height0\jsc@mpt depth1\jsc@mpt
-     \vskip\if@twocolumn 4\jsc@mpt\else 7\jsc@mpt\fi\relax}
+     \vskip\if@twocolumn 4\jsc@mpt\else 7\jsc@mpt\fi\relax}%
   \fi
   \par  % 2000-12-18
   \ignorespaces}
 %
 % ページ番号をローマ数字にし,章番号を付けないようにします。
 %
+% [2017-03-05] |\frontmatter| と |\mainmatter| の2つの命令は,
+% 改丁または改ページした後で |\pagenumbering{...}| でノンブルを1に
+% リセットします。長い間 |\frontmatter| は \texttt{openany} のときに
+% 単なる改ページとしていましたが,これではノンブルをリセットする際に
+% 偶奇逆転が起こる場合がありました。\texttt{openany} かどうかに依らず
+% 奇数ページまで繰るように修正することで,問題を解消しました。
+% 実は,\LaTeX の標準クラスでは1998年に修正されていた問題です
+% (コミュニティ版\pLaTeX の標準クラス2017/03/05も参照)。
+%
 %    \begin{macrocode}
 %<*book>
 \newcommand\frontmatter{%
 %
 % ページ番号を算用数字にし,章番号を付けるようにします。
 %
-% [2017-03-05] |\frontmatter| と |\mainmatter| の2つの命令は,
-% 改丁または改ページした後で |\pagenumbering{...}| でノンブルを1に
-% リセットします。長い間 |\frontmatter| は \texttt{openany} のときに
-% 単なる改ページとしていましたが,これではノンブルをリセットする際に
-% 偶奇逆転が起こる場合がありました。\texttt{openany} かどうかに依らず
-% 奇数ページまで繰るように修正することで,問題を解消しました。
-% 実は,\LaTeX の標準クラスでは1998年に修正されていた問題です
-% (コミュニティ版\pLaTeX の標準クラス2017/03/05も参照)。
-%
 %    \begin{macrocode}
 \newcommand\mainmatter{%
   \pltx@cleartooddpage
 %    \begin{macrocode}
 \newcommand\backmatter{%
   \if@openleft
-       \cleardoublepage
+    \cleardoublepage
   \else\if@openright
     \cleardoublepage
   \else
 %<*book|report>
 \newcommand\part{%
   \if@openleft
-       \cleardoublepage
+    \cleardoublepage
   \else\if@openright
     \cleardoublepage
   \else
 % 「注1」の形式にするには次のようにしてください。
 %
 %    \begin{macrocode}
-% \def\thefootnote{\ifnum\c@footnote>\z@注\kern0.1\zw\@arabic\c@footnote\fi}
+% \def\thefootnote{\ifnum\c@footnote>\z@ 注\kern0.1\zw\@arabic\c@footnote\fi}
 %    \end{macrocode}
 %
 % \end{macro}
 %
 % 脚注番号は章ごとにリセットされます。
 %
+% [2018-03-11] |\next|などいくつかの内部命令を |\jsc@...| 付きの
+% ユニークな名前にしました。
 %    \begin{macrocode}
 %<book|report>\@addtoreset{footnote}{chapter}
 %    \end{macrocode}
 % Jeremy Gibbons, \textit{\TeX\ and TUG NEWS},
 %  Vol.~2, No.~4 (1993), p.~9)
 %
+% [2018-03-11] |\next|などいくつかの内部命令を |\jsc@...| 付きの
+% ユニークな名前にしました。
 %    \begin{macrocode}
 \long\def\@footnotetext{%
   \insert\footins\bgroup
     \color@begingroup
       \@makefntext{%
         \rule\z@\footnotesep\ignorespaces}%
-      \futurelet\next\fo@t}
-\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
-                                \else \let\next\f@t\fi \next}
-\def\f@@t{\bgroup\aftergroup\@foot\let\next}
-\def\f@t#1{#1\@foot}
-\def\@foot{\@finalstrut\strutbox\color@endgroup\egroup}
+      \futurelet\jsc@next\jsc@fo@t}
+\def\jsc@fo@t{\ifcat\bgroup\noexpand\jsc@next \let\jsc@next\jsc@f@@t
+                                \else \let\jsc@next\jsc@f@t\fi \jsc@next}
+\def\jsc@f@@t{\bgroup\aftergroup\jsc@@foot\let\jsc@next}
+\def\jsc@f@t#1{#1\jsc@@foot}
+\def\jsc@@foot{\@finalstrut\strutbox\color@endgroup\egroup}
 %    \end{macrocode}
 % \end{macro}
 %
 % する機能がありますが,|\item| 直後ではラベル用のボックスが段落先頭になる
 % ため,うまく働きませんでした。形を変えて復活させます。
 %
-% [2017-04-03 LTJ] å¾\93æ\9d¥ã\82¯ã\83©ã\83\95ファイルで定義していた |\@inhibitglue| は,
+% [2017-04-03 LTJ] å¾\93æ\9d¥ã\82¯ã\83©ã\82¹ファイルで定義していた |\@inhibitglue| は,
 % Lua\TeX-jaのコアに |\ltjfakeparbegin| として正式に追加されたのでリネームします.
 %
 % |\item| 命令の直後です。
     \@nolnerr
   \else
     \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null
-    \inhibitglue\ignorespaces
+    \inhibitglue \ignorespaces
   \fi}
 %    \end{macrocode}
 %
 %
 % [2016-07-14] ロゴの定義は\texttt{jslogo}パッケージに移転しました。
 % 後方互換のため,\texttt{jsclasses}ではデフォルトでこれを読み込みます。
-%
 % \texttt{nojslogo}オプションが指定されている場合は読み込みません。
 %
 % [2016-07-21 LTJ] \texttt{jsclasses} とLua\TeX-jaの更新タイミングが一致しない可能性を考慮し,