OSDN Git Service

ltjsclasses: sync with jsclasses 2020-10-09
[luatex-ja/luatexja.git] / src / ltjsclasses.dtx
index 60845a9..f0c8830 100644 (file)
@@ -6,13 +6,13 @@
 %  pLaTeX2ε新ドキュメントクラス(日本語 TeX 開発コミュニティ版)
 %  原作者:奥村晴彦 <okumura@okumuralab.org>
 %
-%  Copyright 1993-2016
+%  Copyright 1993-2020
 %  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-2020 Japanese TeX Development Community
 %  -----------------------------------------
 %
 % \fi
 %<*driver>
 \ProvidesFile{ltjsclasses.dtx}
 %</driver>
-  [2018/01/14 ltjsclasses ]
+  [2020/12/23 ltjsclasses ]
 %<*driver>
 \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
-\documentclass{ltjsarticle}
+\documentclass[disablejfam]{ltjsarticle}
 \usepackage{hypdoc}
 \hypersetup{unicode=true}
-\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-math}
+\setmathfont{Latin Modern Math}
 \ltjsetparameter{alxspmode={`\*,allow}}
 \ltjsetparameter{alxspmode={`\\,allow}}
 %%%%\usepackage{unicode-math}
 \addtolength{\marginparwidth}{1in}
 \setlength\marginparpush{0pt}
 % \OnlyDescription
+\CodelineNumbered
 \EnableCrossrefs
 \setcounter{StandardModuleDepth}{1}
 \GetFileInfo{ltjsclasses.dtx}
-\CodelineNumbered
 \begin{document}
 \DocInput{ltjsclasses.dtx}
 \end{document}
 % \item 標準では\texttt{jfm-ujis.lua}(Lua\TeX-ja標準のメトリック,OTFパッケージのものがベース)を使用します。
 % \item \texttt{uplatex}オプション,\texttt{autodetect-engine}オプションを
 % 削除してあります(前者ではエラーを出すようにしています)。
-% \item \texttt{disablejfam}オプションが無効になっています。もし
+% \item \texttt{disablejfam}オプションはクラス側では何もしません(ただLua\TeX-ja本体に
+% 渡されるだけです)。もし
 % \begin{quotation}
 %   |! LaTeX Error: Too many math alphabets used in version ****.|
 % \end{quotation}
 %
 % [2016-07-21 LTJ] \LaTeX 等のロゴの再定義で,\texttt{jslogo}パッケージがあればそちらを読み込むことにしました。
 %
-% [2016-10-13 LTJ] \texttt{slide}オプションの使用時にエラーが出るのを修正
+% [2016-10-13 LTJ] \texttt{slide}オプションの使用時にエラーが出るのを修正
 %
 % \StopEventually{}
 %
 %
 % \section{Lua\TeX-jaの読み込み}
 %
-% まず,Lua\TeX-jaを読み込みます。
+% 和文スケール値を設定した後に,Lua\TeX-jaを読み込みます。
 %    \begin{macrocode}
+%<!jspf>\def\Cjascale{0.924715}
+%<jspf>\def\Cjascale{0.903375}
 \RequirePackage{luatexja}
 %    \end{macrocode}
 %
 %
 % \texttt{noxreal},~\texttt{real}は旧来の互換性として今は残してありますが,2017年7月に削除する予定です。
 %
-% [2018-01-14] \texttt{noxreal},~\texttt{real} を削除しましたまた,内部命令の名称を
-% \texttt{jsclasses}に合わせました
+% [2018-01-14] \texttt{noxreal},~\texttt{real} を削除しましたまた,内部命令の名称を
+% \texttt{jsclasses}に合わせました
 %
 %    \begin{macrocode}
 \newif\ifjsc@mag@xreal
     This \jsc@clsname\space cls does not support `usemag'\MessageBreak
        option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}%
   \jsc@mag@xrealtrue}
-
-
 %    \end{macrocode}
 %
 %
 % 実際に使用可能な数式ファミリの数を増やすためには\texttt{lualatex-math}パッケージを
 % 読み込む必要があることに注意が必要です。
 %
+% [2018-10-08 LTJ] Lua\TeX-ja本体が\texttt{disablejfam}オプションをサポートしたので,
+% クラスファイルからは削除します。
+%
+% [2019-08-12 LTJ] ……と思いましたが,``Unused global option(s): [disablejfam]''警告が
+% 出てしまいますので,「何もしない」クラスオプションとして形だけ定義します。
 %    \begin{macrocode}
-\DeclareOption{disablejfam}{%
-  \ClassWarningNoLine{\jsc@clsname}{The class option 'disablejfam' is obsolete}}
+%<*article|report|book>
+\DeclareOption{disablejfam}{}
+%</article|report|book>
 %    \end{macrocode}
 %
 % \paragraph{ドラフト}
 %
 % [2016-11-09] pLaTeX / upLaTeX を自動判別するオプション \texttt{autodetect-engine} を新設しました。
 %
-% [2016-11-24 LTJ] \texttt{autodetect-engine} はLua\TeX-jaでは意味がないので警告を表示させます.
+% [2016-11-24 LTJ] \texttt{autodetect-engine} はLua\TeX-jaでは意味がないので警告を表示させます。
+%
+% [2018-07-30 LTJ] \texttt{uplatex} 指定時のエラーが正しく表示されなかったので修正しました。
 %
 %    \begin{macrocode}
 \newif\ifmingoth
 \newif\ifptexjis
 \ptexjisfalse
 \DeclareOption{winjis}{%
-  \ClassWarningNoLine{\jsc@clsname}{The \jsc@clsname\space class does not support `winjis' option}}
+  \ClassWarningNoLine{\jsc@clsname}{this class does not support `winjis' option}}
 \DeclareOption{uplatex}{%
-  \ClassErrorNoLine{\jsc@clsname}{The \jsc@clsname\space class does not support `uplatex' option}}
+  \ClassError{\jsc@clsname}{this class does not support `uplatex' option}}
 \DeclareOption{autodetect-engine}{%
-  \ClassWarningNoLine{\jsc@clsname}{The \jsc@clsname\space class does not support `autodetect-engine' option}}
+  \ClassWarningNoLine{\jsc@clsname}{this class does not support `autodetect-engine' option}}
 \DeclareOption{mingoth}{\mingothtrue}
 \DeclareOption{ptexjis}{\ptexjistrue}
 \DeclareOption{jis}{\jisfonttrue}
 %
 % [2016-04-04 LTJ] NFSSへのパッチを修正。
 %
-% [2017-01-23] \LaTeXe\ 2017-01-01以降ではTUエンコーディングが標準なので,
-% \texttt{type1cm}パッケージは読み込まないようにしました.
+% [2017-01-23 LTJ] \LaTeXe\ 2017-01-01以降ではTUエンコーディングが標準なので,
+% \texttt{type1cm}パッケージは読み込まないようにしました。
+%
+% [2017-02-17 LTJ] |\directlua|中で出力される数字のカテゴリーコードが12になるようにしました。
+% この保証をしないと例えば\texttt{listings}パッケージで無限ループになります。
 %
-% [2017-02-17 LTJ] |\directlua|中で出力される数字のカテゴリーコードが12になるようにしました.
-% この保証をしないと例えば\texttt{listings}パッケージで無限ループになります.
+% [2018-07-02 LTJ] 10ptオプションが指定されており,
+% 実際にはオプティカルサイズの補正が不要なときは「|xreal|オプションは指定されなかった」という
+% 扱いにしておきます。
 %    \begin{macrocode}
 \ifjsc@mag@xreal
-\ifdim\jsc@mpt=\p@\else
+\ifdim\jsc@mpt=\p@\jsc@mag@xrealfalse\else
   \expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax
   \expandafter\let\csname TU/lmr/m/n/10\endcsname\relax
   \expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax
 % すればいいことになります。
 %
 % |\ltj@stdmcfont|,~|\ltj@stdgtfont| による,デフォルトで使われる明朝・ゴシックのフォントの
-% 設定に対応しました。この2つの命令の値はユーザが日々の利用でその都度指定するものではなく,
-% 何らかの理由で非埋め込みフォントが正しく利用できない場合にのみ\texttt{luatexja.cfg}によって
-% セットされるものです。
+% 設定に対応しました。この2つの命令の値はユーザが日々の利用でその都度指定するものではありません。
 %
 % [2014-07-26 LTJ] なお,現状のところ,縦組用JFMは\texttt{jfm-ujisv.lua}しか準備していません。
 %
 % [2017-12-31] 和文スケール($1\,\mathrm{zw} \div \hbox{要求サイズ}$)を
 % 表す実数値マクロ |\Cjascale| を定義しました。
 %
-%    \begin{macrocode}
-%<!jspf> \def\Cjascale{0.924715}
-%    \end{macrocode}
+% [2020-05-30] |\ltj@stdmcfont|の説明に古い記述があったので修正。
 %
 % これにより,公称10ポイントの和文フォントを0.924715倍したことにより,
 % 約9.25ポイント,
 % 和文フォントをPostScriptの9ポイントにするために,
 % $0.9*72.27/72 \simeq 0.903375$ 倍します。
 %
-%    \begin{macrocode}
-%<jspf> \def\Cjascale{0.903375}
-%    \end{macrocode}
+% [2018-09-23 LTJ] 実際の|\Cjascale|の定義はLua\TeX-jaの読み込み前に移動しました。
+% こうすることによって「0.962216倍された和文フォント」という実際には使われない和文フォントを
+% 読み込む必要がなくなります。
 %
-% 実際にフォントの再定義を行う部分です.
+%
+% 実際にフォントの再定義を行う部分です。
+%
+% [2018-09-23 LTJ] |\Cjascale|の設定を前倒ししたことに伴い,実際の再定義は
+% \texttt{mingoth}, \texttt{ptexjis}のときしか必要なくなりました。
 %
 %    \begin{macrocode}
 \expandafter\let\csname JY3/mc/m/n/10\endcsname\relax
   \ifptexjis
     \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [\Cjascale] \ltj@stdmcfont:jfm=jis}{}
     \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [\Cjascale] \ltj@stdgtfont:jfm=jis}{}
-  \else
-    \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [\Cjascale] \ltj@stdmcfont:jfm=ujis}{}
-    \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [\Cjascale] \ltj@stdgtfont:jfm=ujis}{}
   \fi
 \fi
-\DeclareFontShape{JT3}{mc}{m}{n}{<-> s * [\Cjascale] \ltj@stdmcfont:jfm=ujisv}{}
-\DeclareFontShape{JT3}{gt}{m}{n}{<-> s * [\Cjascale] \ltj@stdgtfont:jfm=ujisv}{}
 %    \end{macrocode}
 %
 % 和文でイタリック体,斜体,サンセリフ体,
 % [2016-01-30 LTJ] |\rmfamily|, |\sffamily|, |\ttfamily| の再定義をLua\TeX-ja
 % カーネルに移動させたので,ここでは和文対応にするフラグ |\@ltj@match@family|\
 % を有効にさせるだけでよいです。
+%
+% [2018-06-09 LTJ] シリーズ|b|は同じ書体の|bx|と等価になるように宣言します。
+%
 %    \begin{macrocode}
 \DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{}
 \DeclareFontShape{JY3}{gt}{bx}{n}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JY3}{mc}{b}{n}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JY3}{mc}{b}{n}{<->ssub*gt/m/n}{}
 \DeclareFontShape{JY3}{mc}{m}{it}{<->ssub*mc/m/n}{}
 \DeclareFontShape{JY3}{mc}{m}{sl}{<->ssub*mc/m/n}{}
 \DeclareFontShape{JY3}{mc}{m}{sc}{<->ssub*mc/m/n}{}
 \DeclareFontShape{JY3}{gt}{m}{sl}{<->ssub*gt/m/n}{}
 \DeclareFontShape{JY3}{mc}{bx}{it}{<->ssub*gt/m/n}{}
 \DeclareFontShape{JY3}{mc}{bx}{sl}{<->ssub*gt/m/n}{}
-% \DeclareFontShape{JT3}{mc}{bx}{n}{<->ssub*gt/m/n}{}
-% \DeclareFontShape{JT3}{gt}{bx}{n}{<->ssub*gt/m/n}{}
-%% \DeclareFontShape{JT3}{mc}{m}{it}{<->ssub*mc/m/n}{}
-%% \DeclareFontShape{JT3}{mc}{m}{sl}{<->ssub*mc/m/n}{}
-%% \DeclareFontShape{JT3}{mc}{m}{sc}{<->ssub*mc/m/n}{}
-%% \DeclareFontShape{JT3}{gt}{m}{it}{<->ssub*gt/m/n}{}
-%% \DeclareFontShape{JT3}{gt}{m}{sl}{<->ssub*gt/m/n}{}
-%% \DeclareFontShape{JT3}{mc}{bx}{it}{<->ssub*gt/m/n}{}
-%% \DeclareFontShape{JT3}{mc}{bx}{sl}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JY3}{mc}{b}{it}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JY3}{mc}{b}{sl}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JT3}{mc}{bx}{n}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JT3}{gt}{bx}{n}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JT3}{mc}{b}{n}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JT3}{mc}{b}{n}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JT3}{mc}{m}{it}{<->ssub*mc/m/n}{}
+\DeclareFontShape{JT3}{mc}{m}{sl}{<->ssub*mc/m/n}{}
+\DeclareFontShape{JT3}{mc}{m}{sc}{<->ssub*mc/m/n}{}
+\DeclareFontShape{JT3}{gt}{m}{it}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JT3}{gt}{m}{sl}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JT3}{mc}{bx}{it}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JT3}{mc}{bx}{sl}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JT3}{mc}{b}{it}{<->ssub*gt/m/n}{}
+\DeclareFontShape{JT3}{mc}{b}{sl}{<->ssub*gt/m/n}{}
 \renewcommand\jttdefault{\gtdefault}\@ltj@match@familytrue
 %    \end{macrocode}
 %%
 % \texttt{jsclasses}で行われていた |\textmc|, |\textgt| の再定義は不要のように思われます。
 %
 % \texttt{jsclasses.dtx}中で行われていた |\reDeclareMathAlphabet| の再定義は削除。
-% また,Yue ZHANGさん作の\texttt{fixjfm}パッケージ対応のコードもLua\TeX-jaでは削除しています
+% また,Yue ZHANGさん作の\texttt{fixjfm}パッケージ対応のコードもLua\TeX-jaでは削除しています
 %
 %    \begin{macrocode}
 \AtBeginDocument{%
-  \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}
-  \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}}%
+  \unless\ifltj@disablejfam
+    \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}
+    \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}
+  \fi
+}%
 %    \end{macrocode}
 %
 % \begin{macro}{\textsterling}
 %
 % |\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
 % \end{macro}
 %
 % \begin{macro}{\paragraph}
+% \begin{macro}{\jsParagraphMark}
 %
 %    見出しの後ろで改行されません。
 %
 \fi
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\subparagraph}
 %
 %
 %    \begin{macrocode}
 \newcommand{\labelenumi}{\theenumi.}
-\newcommand{\labelenumii}{\inhibitglue(\theenumii)\inhibitglue}
+\newcommand{\labelenumii}{\inhibitglue (\theenumii)\inhibitglue}
 \newcommand{\labelenumiii}{\theenumiii.}
 \newcommand{\labelenumiv}{\theenumiv.}
 %    \end{macrocode}
 %
 %    \begin{macrocode}
 \renewcommand{\p@enumii}{\theenumi}
-\renewcommand{\p@enumiii}{\theenumi\inhibitglue(\theenumii)}
+\renewcommand{\p@enumiii}{\theenumi\inhibitglue (\theenumii)}
 \renewcommand{\p@enumiv}{\p@enumiii\theenumiii}
 %    \end{macrocode}
 % \end{macro}
 %    数式番号の形式です。
 %    デフォルトの値をコメントアウトして示しておきます。
 %
-%    |\inhibitglue(\theequation)\inhibitglue| のように和文かっこ
+%    |\inhibitglue (\theequation)\inhibitglue| のように和文かっこ
 %    を使うことも可能です。
 %
 %    \begin{macrocode}
 %    |amsmath| パッケージを使う場合は |\tagform@| を次のように修正します。
 %
 %    \begin{macrocode}
-% \def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}}
+% \def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr )}}
 %    \end{macrocode}
 %
 % \subsection{フロート}
 % \end{macro}
 %
 % \begin{macro}{\@dottedtocline}
+% \begin{macro}{\jsTocLine}
 %
 % \LaTeX 本体(\texttt{ltsect.dtx} 参照)での定義と同じですが,
 % |\@tempdima| を |\@lnumwidth| に変えています。
 %
+% [2018-06-23] デフォルトでは\jsTocLine のようにベースラインになります。\par
+% これを変更可能にするため,|\jsTocLine| というマクロに切り出しました。
+% 例えば,仮想ボディの中央
+% {\renewcommand{\jsTocLine}{\leaders \hbox {\hss ・\hss}\hfill}\jsTocLine}
+% に変更したい場合は
+%\begin{verbatim}
+%  \renewcommand{\jsTocLine}{\leaders \hbox {\hss ・\hss}\hfill}
+%\end{verbatim}
+% とします。
+%
 %    \begin{macrocode}
+\def\jsTocLine{\leaders\hbox{%
+  $\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill}
 \def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else
   \vskip \z@ \@plus.2\jsc@mpt
   {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
    \@lnumwidth #3\relax
    \advance\leftskip \@lnumwidth \null\nobreak\hskip -\leftskip
     {#4}\nobreak
-    \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
-       mu$}\hfill \nobreak\hb@xt@\@pnumwidth{%
+    \jsTocLine \nobreak\hb@xt@\@pnumwidth{%
          \hfil\normalfont \normalcolor #5}\par}\fi}
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % \paragraph{図目次と表目次}
 %
 % とりあえずコメントアウトしておきますので,必要に応じて生かしてください。
 %
 %    \begin{macrocode}
-% \def\@biblabel#1{\inhibitglue[#1]\inhibitglue}
+% \def\@biblabel#1{\inhibitglue [#1]\inhibitglue}
 %    \end{macrocode}
 % \end{macro}
 %
 %        \@latex@warning
 %          {Citation `\@citeb' on page \thepage \space undefined}}%
 %        {\@cite@ofmt{\csname b@\@citeb\endcsname}}}}{#1}}
-% \def\@cite#1#2{\inhibitglue[{#1\if@tempswa ,#2\fi}]\inhibitglue}
+% \def\@cite#1#2{\inhibitglue [{#1\if@tempswa ,#2\fi}]\inhibitglue}
 %    \end{macrocode}
 %
 % 引用番号を上ツキの 1)のようなスタイルにするには次のようにします。
 % 「注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\ltj@@next\fo@t}
-\def\fo@t{\ifcat\bgroup\noexpand\ltj@@next \let\ltj@@next\f@@t
-                                \else \let\ltj@@next\f@t\fi \ltj@@next}
-\def\f@@t{\bgroup\aftergroup\@foot\let\ltj@@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| は,
-% Lua\TeX-jaのコアに |\ltjfakeparbegin| として正式に追加されたのでリネームします
+% [2017-04-03 LTJ] å¾\93æ\9d¥ã\82¯ã\83©ã\82¹ファイルで定義していた |\@inhibitglue| は,
+% Lua\TeX-jaのコアに |\ltjfakeparbegin| として正式に追加されたのでリネームします
 %
 % |\item| 命令の直後です。
 %
 %
 % しかし単に戻すだけでも駄目みたいなので,ここでも最後にグルーを消しておきます。
 %
-% [2016-12-05 LTJ] 本家[2016-11-29],lltjcore.styでの変更に追従させます
+% [2016-12-05 LTJ] 本家[2016-11-29],lltjcore.styでの変更に追従させます
 %
-% [2017-02-18 LTJ] 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 \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の更新タイミングが一致しない可能性を考慮し,
 % \paragraph{今日の日付}
 %
 % \LaTeX で処理した日付を出力します。
-% |ltjarticle| などと違って,標準を西暦にし,余分な空白が入らないように改良しました。
+% ^^A |jarticle| などと違って,標準を西暦にし,
+% ^^A 余分な空白が入らないように改良しました。
+% ^^A -- 2018年7月以降は |jarticle| なども標準が西暦,
+% ^^A -- 2019年4月以降は余分な空白が入らなくなっています。
 % 和暦にするには |\和暦| と書いてください。
+% ちなみにこの文章の作成日は西暦では{\西暦\today}で,
+% 和暦では{\和暦\today}です。
 %
 % \begin{macro}{\today}
 %    \begin{macrocode}
 \def\西暦{\西暦true}
 \def\和暦{\西暦false}
 \newcount\heisei \heisei\year \advance\heisei-1988\relax
+\def\pltx@today@year@#1{%
+  \ifnum\numexpr\year-#1=1 元\else
+    \ifnum\ltjgetparameter{direction}=3
+      \kansuji\numexpr\year-#1\relax
+    \else
+      \number\numexpr\year-#1\relax\nobreak
+    \fi
+  \fi 年
+}
+\def\pltx@today@year{%
+  \ifnum\numexpr\year*10000+\month*100+\day<19890108
+    昭和\pltx@today@year@{1925}%
+  \else\ifnum\numexpr\year*10000+\month*100+\day<20190501
+    平成\pltx@today@year@{1988}%
+  \else
+    令和\pltx@today@year@{2018}%
+  \fi\fi}
 \def\today{%
   \if@english
     \ifcase\month\or
       January\or February\or March\or April\or May\or June\or
       July\or August\or September\or October\or November\or December\fi
       \space\number\day, \number\year
+  \else\if西暦
+    \ifnum\ltjgetparameter{direction}=3 \kansuji\year
+    \else\number\year\nobreak\fi 年
   \else
-    \if西暦
-      \number\year 年
-      \number\month 月
-      \number\day 日
-    \else
-      平成\number\heisei 年
-      \number\month 月
-      \number\day 日
-    \fi
-  \fi}
+    \pltx@today@year
+  \fi
+  \ifnum\ltjgetparameter{direction}=3
+    \kansuji\month 月
+    \kansuji\day 日
+  \else
+    \number\month\nobreak 月
+    \number\day\nobreak 日
+  \fi\fi}
 %    \end{macrocode}
 % \end{macro}
 %
 % \paragraph{ページ設定}
 %
 % ページ設定の初期化です。
-% |stfloats|パッケージがシステムにインストールされている場合はこのパッケージを使って
+% |stfloats|パッケージがシステムにインストールされている場合はこのパッケージを使って
 % \pLaTeX の標準時と同じようにボトムフロートの下に脚注が組まれるようにします。
 %
 % [2017-02-19] \pLaTeX とLua\TeX-jaの|\@makecol|が違うことを