OSDN Git Service

updated documents, avoid errors in non-embedded fonts
[luatex-ja/luatexja.git] / src / ltjclasses.dtx
index af796a1..a9c24bb 100644 (file)
@@ -5,10 +5,10 @@
 %
 %  Copyright 1995-2001 ASCII Corporation.
 %  Copyright (c) 2010 ASCII MEDIA WORKS
-%  Copyright (c) 2016-2017 Japanese TeX Development Community
+%  Copyright (c) 2016-2020 Japanese TeX Development Community
 %
-%  This file is part of the pLaTeX2e system.
-%  -----------------------------------------
+%  This file is part of the pLaTeX2e system (community edition).
+%  -------------------------------------------------------------
 %
 % \fi
 %
 %   (ありがとうございます、鈴木た@MILNさん)}
 % \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-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.6-ltj-2}{2013/06/06}{luatexja.cfgに対応}
+% \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)}
@@ -92,7 +92,7 @@
 % \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さん,ありがとうございます).}
+%    (aminophenさん、ありがとうございます)。}
 % \changes{v1.7c}{2016/12/18}{奇妙なarticleガードとコードを削除して
 %    ドキュメントを追加}
 % \changes{v1.7d}{2017/02/15}{\cs{if@openleft}スイッチ追加}
 %   偶数ならば0にリセットするように変更}
 % \changes{v1.7d}{2017/02/15}{縦組クラスの所属表示の番号を直立にした}
 % \changes{v1.7d-ltj-13}{2017/02/19}{縦組時クラスで|ftnright|パッケージを使うと
-%   脚注番号が上書きされ横に寝てしまう問題を修正(aminophenさん,ありがとうございます).}
+%   脚注番号が上書きされ横に寝てしまう問題を修正(aminophenさん、ありがとうございます)。}
 % \changes{v1.7d-ltj-14}{2017/02/20}{openleftオプションの処理で\cs{iftdir}, \cs{ifydir}を
-%   誤って使っている問題を修正(aminophenさん,ありがとうございます).}
+%   誤って使っている問題を修正(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サイズ削減のため).クラスファイル本体の変更はなし,}
+% \changes{v1.7e-ltj-15}{2017/08/31}{本ドキュメントのタイプセットで、小塚フォントが存在するときには
+%   それを用いるように変更(PDFサイズ削減のため)。}
+% \changes{v1.7f}{2017/08/31}{和文書体の基準を全角空白から「漢」に変更}
+% \changes{v1.7g}{2017/09/19}{内部処理で使ったボックス0を空にした}
+% \changes{v1.7h}{2018/02/04}{和文スケール値\cs{Cjascale}を定義}
+% \changes{v1.8}{2018/07/03}{\cs{today}のデフォルトを和暦から西暦に変更}
+% \changes{v1.8-ltj-16}{2018/10/08}{Lua\TeX-jaが|disablejfam|オプションをサポートしたことによる変更}
+% \changes{v1.8a}{2018/10/25}{ファイル書き出し時の行末文字対策
+%    (sync with ltsect.dtx 2018/09/26 v1.1c)}
+% \changes{v1.8b}{2019/04/02}{新元号対応}
+% \changes{v1.8b-ltj-17}{2019/08/12}{disablejfamの``Unused global option(s)''警告を出さないようにした}
+% \changes{v1.8c}{2019/10/17}{フォントサイズ変更命令をrobustに
+%    (sync with classes.dtx 2019/08/27 v1.4j)}
+% \changes{v1.8d}{2019/10/25}{Don't use \cs{MakeRobust} if
+%    in rollback prior to 2015
+%    (sync with classes.dtx 2019/10/25 v1.4k)}
+% \changes{v1.8e}{2020/01/03}{Normalize label fonts
+%    (sync with classes.dtx 2019/12/20 v1.4l)}
+% \changes{v1.8e-ltj-18}{2020/05/30}{原ノ味フォントが\TeX~Liveに導入されたことにより、
+%    v1.8-ltj-16の変更を削除。「\pTeX と互換性を持たせる」メトリックの変更などは
+%    新設の|ptexmin|オプション指定時にのみ行うようにした。
+%    句読点を「、」「。」に統一。}
+% \changes{v1.8e-ltj-19}{2020/07/27}{|everyshi|パッケージへのパッチを別パッケージへ分離。}
+% \changes{v1.8e-ltj-20}{2020/08/03}{\LaTeX~2020-10-01への対応.}
+% \changes{v1.8f}{2020/09/30}{add a fourth argument for better
+%    hyperref compability
+%    (sync with ltsect.dtx 2020/07/27 v1.1e)}
 % \fi
 %
 % \iffalse
 %<11pt&bk>\ProvidesFile{ltjtbk11.clo}
 %<12pt&bk>\ProvidesFile{ltjtbk12.clo}
 %</tate>
-  [2017/08/28 v1.7e-ltj-15
+  [2020-09-30 v1.8f-ltj-20
 %<article|report|book> Standard LuaLaTeX-ja class]
 %<10pt|11pt|12pt>  Standard LuaLaTeX-ja file (size option)]
 %<*driver>
 ]
 \documentclass{ltjltxdoc}
 \GetFileInfo{ltjclasses.dtx}
-\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}
+\def\pLaTeX{p\kern-.05em\LaTeX}
 \usepackage[unicode]{hyperref}
 \title{Lua\LaTeX-ja用\texttt{jclasses}互換クラス}
 \author{Lua\TeX-jaプロジェクト}
 %
 % \section{はじめに}
 % このファイルは、Lua\LaTeX-ja用の|jclasses|互換クラスファイルです。
-% v1.6をベースに作成しています。
+% コミュニティ版をベースに作成しています。
 % \dst{}プログラムによって、横組用のクラスファイルと縦組用のクラスファイル
 % を作成することができます。
 %
 % 全ての変更点を知りたい場合は、|jclasses.dtx|と|ltjclasses.dtx|で|diff|を
 % とって下さい。
 % \begin{itemize}
-% \item |disablejfam|オプションを無効化。もし
+% \item もし
 % \begin{quotation}
 %   |! LaTeX Error: Too many math alphabets used in version ****.|
 % \end{quotation}
 % \changes{v1.1d}{1997/02/05}{開始ページがおかしくなるのを修正}
 % \changes{v1.1f}{1997/07/08}{縦組時にベースラインがおかしくなるのを修正}
 %
-% \changes{v1.6-ltj-4}{2014/06/30}{本文の組方向を \cs{AtBeginDocument} で
-%   変更することができなくなったことに対応}
+% [2014-06-30 LTJ] 本文の組方向を \cs{AtBeginDocument}で変更することができなくなったことに対応。
 %    \begin{macrocode}
 \DeclareOption{tate}{%
   \tate\AtBeginDocument{\message{《縦組モード》}\adjustbaseline}%
 %
 % 縦組クラスと|everyshi|パッケージの相性が悪い問題に対処します。
 % この処理は、ZRさんの|pxeveryshi|パッケージと実質的に同じ内容です。
+%
+% [2020-07-27 LTJ] |lltjp-everyshi.sty|に移しました。
 %    \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
-  }}
+%\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
+%  }}
 %</tate>
 %    \end{macrocode}
 %
 % |mathrmmc|オプションは、
 % |\mathrm|と|\mathbf|を和欧文両対応にするためのクラスオプションです。
 % \changes{v1.1d}{1992/02/04}{disablejfamの判断を間違えてたのを修正}
+%
+% [2018-10-08 LTJ] Lua\TeX-ja本体が、主にメモリ消費を抑える目的で
+%   |disablejfam|オプションをサポートしました。そのため以前出していた警告は削除します。
 %    \begin{macrocode}
 \if@compatibility
   \@mathrmmctrue
 \else
-  \DeclareOption{disablejfam}{%
-    \ClassWarningNoLine{\@currname}{The class option 'disablejfam' is obsolete}}
   \DeclareOption{mathrmmc}{\@mathrmmctrue}
 \fi
 %    \end{macrocode}
 %    \end{macrocode}
 %
 % \subsection{フォントメトリックの変更}
-% 
 % Lua\LaTeX-jaの標準では、OTFパッケージ由来のメトリックが使われるようになっています。
-% 本クラスでは、「p\TeX の組版と互換性をできるだけ持たせる」例を提示するため、
+% 本クラスでは、「p\TeX の組版と互換性をできるだけ持たせる」例を提示するため、|ptexmin|オプション指定時のみ
 % \begin{itemize}
 % \item メトリックを\texttt{min10.tfm}ベースの\texttt{jfm-min.lua}に変更。
 % \item 明朝とゴシックは両方とも\texttt{jfm-min.lua}を用いるが、
 %   和文処理用グルー挿入時には「違うメトリックを使用」として思わせる。
 % \item p\TeX と同様に、「異なるメトリックの2つの和文文字」の間には、両者から定める
 %   グルーを両方挿入する。
-% \item calllbackã\82\92å\88©ç\94¨ã\81\97ã\80\81æ¨\99æº\96ã\81§ç\94¨ã\81\84ã\82\8b\texttt{jfm-min.lua}ã\82\92ã\80\81段è\90½å§\8bã\82\81ã\81®æ\8b¬å¼§ã\81\8cå\85¨è§\92äº\8cå\88\86ä¸\8bã\81\8cã\82\8aã\81«ã\81ªã\82\8bã\82\88ã\81\86ã\81«å\86\85é\83¨ã\81§å¤\89æ\9b´ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
+% \item calllbackを利用し、標準で用いる\texttt{jfm-min.lua}を、段落始めの括弧が全角二分下がりになるように内部で変更。
 %
 % \end{itemize}
+% という変更を加えます。
 %
 % |\ltj@stdmcfont|,~|\ltj@stdgtfont| による、デフォルトで使われ明朝・ゴシックのフォントの
-% 設定に対応しました。この2つの命令の値はユーザが日々の利用でその都度指定するものではなく、
-% 何らかの理由で非埋め込みフォントが正しく利用できない場合にのみ |luatexja.cfg| によって
-% セットされるものです。
+% 設定に対応しました。この2つの命令の値はユーザが日々の利用でその都度指定するものではありません。
+%
+% [2015-01-01 LTJ] サイズクラスのロード前にメトリックの変更を行わないと、
+% \cs{Cht}等の値が反映されないのでこの場所に移動させました。
+%
+% [2020-05-30 LTJ] 本節の内容は新設の|ptexmin|オプション指定時にのみ行うようにしました。
+% その関係で、実際の処理は|\ProcessOptions|のところに移動させました。
 %
-% \changes{v1.6-ltj-9}{2015/01/01}{サイズクラスのロード前にメトリックの変更を行わないと,
-% \cs{Cht}等の値が反映されないのでこの場所に移動させました.}
-% 
 %    \begin{macrocode}
 %<*article|report|book>
-\directlua{luatexbase.add_to_callback('luatexja.load_jfm',
-  function (ji, jn) ji.chars['parbdd'] = 0; return ji end,
-  'ltj.jclasses_load_jfm', 1)}
-{\jfont\g=\ltj@stdmcfont:jfm=min } % loading jfm-min.lua
-\expandafter\let\csname JY3/mc/m/n/10\endcsname\relax
-\DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.962216] \ltj@stdmcfont:jfm=min}{}
-\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{}
-\ltjglobalsetparameter{differentjfm=both}
-\directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')}
+\newif\ifptexmin
+\DeclareOption{ptexmin}{\ptexmintrue}%
+%</article|report|book>
+%    \end{macrocode}
+%
+% \subsection{disablejfamオプション}
+% disablejfamオプションはLua\TeX-ja本体で処理しますが、
+% もうLua\TeX-jaは読み込んでいるため、このままでは``Unused global option(s): [disablejfam]''警告が
+% 出てしまいます。そのため、「何もしない」disablejfamオプションをクラス内で定義しておきます。
+%
+% [2019-08-12 LTJ] |disablejfam|の``Unused global option(s)''警告を出さないようにした。
+%
+%    \begin{macrocode}
+%<*article|report|book>
+\DeclareOption{disablejfam}{}
 %</article|report|book>
 %    \end{macrocode}
 %
 %<yoko>\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright}
 %</book>
 \ProcessOptions\relax
+%    \end{macrocode}
+%
+% [2020-05-30 LTJ] 「フォントメトリックの変更」の節の内容の処理をここで行います。
+%
+%    \begin{macrocode}
+\ifptexmin
+\directlua{luatexbase.add_to_callback('luatexja.load_jfm',
+  function (ji, jn) ji.chars['parbdd'] = 0; return ji end,
+  'ltj.jclasses_load_jfm', 1)}
+{\jfont\g=\ltj@stdmcfont:jfm=min } % loading jfm-min.lua
+\expandafter\let\csname JY3/mc/m/n/10\endcsname\relax
+\DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.962216] \ltj@stdmcfont:jfm=min}{}
+\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{}
+\ltjglobalsetparameter{differentjfm=both}
+\directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')}
+\fi
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 %<book&tate>\input{ltjtbk1\@ptsize.clo}
 %<!book&tate>\input{ltjtsize1\@ptsize.clo}
 %<book&yoko>\input{ltjbk1\@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用に書きなおしたものです.}
+
+% [2014-07-28 LTJ] Lua\TeX-jaでは、代わりに\file{lltjext.sty}を読み込みま
+% す。これは\file{plext.sty}をLua\TeX-ja用に書きなおしたものです。
 %    \begin{macrocode}
 %<tate>\RequirePackage{lltjext}
 %</article|report|book>
 %<tate>\kanjiencoding{\kanjiencodingdefault}%
 \normalsize
 %    \end{macrocode}
+%
+% |\normalsize|をrobustにします。
+% すぐ上で|\DeclareRobustCommand|とせずに、
+% カーネルの定義を|\renewcommand|した後に|\MakeRobust|を使っている理由は、
+% ログに |LaTeX Info: Redefining \normalsize on input line ...| という
+% メッセージを出したくないからです。
+% ただし、\textsf{latexrelease}パッケージで2015/01/01より
+% 昔の日付に巻き戻っている場合は|\MakeRobust|が定義されていません。
+% \changes{v1.8c}{2019/10/17}{フォントサイズ変更命令をrobustに
+%    (sync with classes.dtx 2019/08/27 v1.4j)}
+% \changes{v1.8d}{2019/10/25}{Don't use \cs{MakeRobust} if
+%    in rollback prior to 2015
+%    (sync with classes.dtx 2019/10/25 v1.4k)}
+%    \begin{macrocode}
+\ifx\MakeRobust\@undefined \else
+  \MakeRobust\normalsize
+\fi
+%    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %
 % \begin{macro}{\Cvs}
 % \begin{macro}{\Chs}
 % 基準となる長さの設定をします。これらのパラメータは\file{lltjfont.sty}で定義
-% されています。
+% されています。基準とする文字を「全角空白」(EUCコード\texttt{0xA1A1})から
+% 「漢」(JISコード\texttt{0x3441})へ変更しました。
+% \changes{v1.7f}{2017/08/31}{和文書体の基準を全角空白から「漢」に変更}
+% \changes{v1.7g}{2017/09/19}{内部処理で使ったボックス0を空にした}
 %    \begin{macrocode}
-\setbox0\hbox{\char"3000}% 全角スペース
+\setbox0\hbox{漢}
 \setlength\Cht{\ht0}
 \setlength\Cdp{\dp0}
 \setlength\Cwd{\wd0}
 \setlength\Cvs{\baselineskip}
 \setlength\Chs{\wd0}
+\setbox0=\box\voidb@x
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %
 % \begin{macro}{\small}
 % |\small|コマンドの定義は、|\normalsize|に似ています。
+% こちらはカーネルで未定義なので、直接|\DeclareRobustCommand|で定義します。
+% \changes{v1.8c}{2019/10/17}{フォントサイズ変更命令をrobustに
+%    (sync with classes.dtx 2019/08/27 v1.4j)}
 %    \begin{macrocode}
-\newcommand{\small}{%
+\DeclareRobustCommand{\small}{%
 %<*10pt>
   \@setfontsize\small\@ixpt{11}%
   \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
 %
 % \begin{macro}{\footnotesize}
 % |\footnotesize|コマンドの定義は、|\normalsize|に似ています。
+% こちらも直接|\DeclareRobustCommand|で定義します。
+% \changes{v1.8c}{2019/10/17}{フォントサイズ変更命令をrobustに
+%    (sync with classes.dtx 2019/08/27 v1.4j)}
 %    \begin{macrocode}
-\newcommand{\footnotesize}{%
+\DeclareRobustCommand{\footnotesize}{%
 %<*10pt>
   \@setfontsize\footnotesize\@viiipt{9.5}%
   \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
 % \begin{macro}{\Huge}
 % これらは先ほどのマクロよりも簡単です。これらはフォントサイズを変更する
 % だけで、リスト環境とディスプレイ数式のパラメータは変更しません。
+% \changes{v1.8c}{2019/10/17}{フォントサイズ変更命令をrobustに
+%    (sync with classes.dtx 2019/08/27 v1.4j)}
 %    \begin{macrocode}
 %<*10pt>
-\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt}
-\newcommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt}
-\newcommand{\large}{\@setfontsize\large\@xiipt{17}}
-\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}}
-\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}}
-\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}}
-\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}}
+\DeclareRobustCommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt}
+\DeclareRobustCommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt}
+\DeclareRobustCommand{\large}{\@setfontsize\large\@xiipt{17}}
+\DeclareRobustCommand{\Large}{\@setfontsize\Large\@xivpt{21}}
+\DeclareRobustCommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}}
+\DeclareRobustCommand{\huge}{\@setfontsize\huge\@xxpt{28}}
+\DeclareRobustCommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}}
 %</10pt>
 %<*11pt>
-\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}}
-\newcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt}
-\newcommand{\large}{\@setfontsize\large\@xiipt{17}}
-\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}}
-\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}}
-\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}}
-\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}}
+\DeclareRobustCommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}}
+\DeclareRobustCommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt}
+\DeclareRobustCommand{\large}{\@setfontsize\large\@xiipt{17}}
+\DeclareRobustCommand{\Large}{\@setfontsize\Large\@xivpt{21}}
+\DeclareRobustCommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}}
+\DeclareRobustCommand{\huge}{\@setfontsize\huge\@xxpt{28}}
+\DeclareRobustCommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}}
 %</11pt>
 %<*12pt>
-\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}}
-\newcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt}
-\newcommand{\large}{\@setfontsize\large\@xivpt{21}}
-\newcommand{\Large}{\@setfontsize\Large\@xviipt{25}}
-\newcommand{\LARGE}{\@setfontsize\LARGE\@xxpt{28}}
-\newcommand{\huge}{\@setfontsize\huge\@xxvpt{33}}
+\DeclareRobustCommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}}
+\DeclareRobustCommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt}
+\DeclareRobustCommand{\large}{\@setfontsize\large\@xivpt{21}}
+\DeclareRobustCommand{\Large}{\@setfontsize\Large\@xviipt{25}}
+\DeclareRobustCommand{\LARGE}{\@setfontsize\LARGE\@xxpt{28}}
+\DeclareRobustCommand{\huge}{\@setfontsize\huge\@xxvpt{33}}
 \let\Huge=\huge
 %</12pt>
 %</10pt|11pt|12pt>
 % \end{macro}
 % \end{macro}
 %
+% \begin{macro}{\Cjascale}
+% このクラスファイルが意図する和文スケール値
+% ($1\,\mathrm{zw} \div \textmc{要求サイズ}$)を
+% 表す実数値マクロ|\Cjascale|を定義します。
+% この\texttt{jclasses}互換クラスでは、Lua\TeX-ja読み込み時の和文スケール値がそのまま
+% 使用され、その値は0.962216です。
+% \changes{v1.7h}{2018/02/04}{和文スケール値\cs{Cjascale}を定義}
+%    \begin{macrocode}
+%<*article|report|book>
+\def\Cjascale{0.962216}
+%</article|report|book>
+%    \end{macrocode}
+% \end{macro}
+%
 %
 %
 % \section{レイアウト}
 % 出力のPDFの用紙サイズをここで設定しておきます。
 % |tombow|が真のときは2インチ足しておきます。
 %
-% [2015-10-18 LTJ] Lua\TeX\ 0.81.0ではプリミティブの名称変更がされたので
-% それに合わせておきます
+% [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さん,ありがとうございます.
+% [2017-01-17 LTJ] [lt]jsclassesに合わせ、トンボオプションが指定されているとき「だけ」|\stockwidth|、
+% |\stockheight|を定義するようにしました。aminophenさん、ありがとうございます。
 %
 %    \begin{macrocode}
 \iftombow
 % |\marginparwidth|を計算します。
 % ここで、|\@tempdima|の値は、\linebreak
 % |\paperwidth| $-$ |\textwidth|です。
-% \changes{v1.1d}{1995/11/24}{typo: \cs{marginmarwidth} to \cs{marginparwidth}}
+% \changes{v1.1d}{1995/11/24}{\break typo: \cs{marginmarwidth} to \cs{marginparwidth}}
 %    \begin{macrocode}
 %<*yoko>
   \if@twoside
 %
 % \pstyle{jpl@in}スタイルは、クラスファイル内部で使用するものです。
 % \LaTeX{}では、bookクラスを\pstyle{headings}としています。
-% しかし、\cs{tableofcontnts}コマンドの内部では\pstyle{plain}として
+% しかし、\cs{tableofcontents}コマンドの内部では\pstyle{plain}として
 % 設定されるため、一つの文書でのページ番号の位置が上下に出力される
 % ことになります。
 %
 %<*report|book>
   \def\chaptermark##1{\markboth{%
      \ifnum \c@secnumdepth >\m@ne
-%<book>         \if@mainmatter
+%<book>       \if@mainmatter
          \@chapapp\thechapter\@chappos\hskip1\zw
-%<book>         \fi
+%<book>       \fi
      \fi
      ##1}{}}%
   \def\sectionmark##1{\markright{%
 %<*report|book>
 \def\chaptermark##1{\markright{%
    \ifnum \c@secnumdepth >\m@ne
-%<book>         \if@mainmatter
+%<book>     \if@mainmatter
        \@chapapp\thechapter\@chappos\hskip1\zw
-%<book>         \fi
+%<book>     \fi
    \fi
    ##1}}%
 %</report|book>
 %<*report|book>
 \def\chaptermark##1{\markboth{%
      \ifnum \c@secnumdepth >\m@ne
-%<book>         \if@mainmatter
+%<book>       \if@mainmatter
          \@chapapp\thechapter\@chappos\hskip1\zw
-%<book>         \fi
+%<book>       \fi
      \fi
      ##1}{}}%
   \def\sectionmark##1{\markright{%
 %<*report|book>
   \def\chaptermark##1{\markright{%
      \ifnum \c@secnumdepth >\m@ne
-%<book>         \if@mainmatter
+%<book>       \if@mainmatter
          \@chapapp\thechapter\@chappos\hskip1\zw
-%<book>         \fi
+%<book>       \fi
      \fi
      ##1}}%
 %</report|book>
 % これらの3つのコマンドは\file{ltsect.dtx}で提供されています。
 % これらのコマンドは次のように定義されています。
 %    \begin{macrocode}
-%\newcommand*{\title}[1]{\gdef\@title{#1}}
-%\newcommand*{\author}[1]{\gdef\@author{#1}}
-%\newcommand*{\date}[1]{\gdef\@date{#1}}
+%\DeclareRobustCommand*{\title}[1]{\gdef\@title{#1}}
+%\DeclareRobustCommand*{\author}[1]{\gdef\@author{#1}}
+%\DeclareRobustCommand*{\date}[1]{\gdef\@date{#1}}
 %    \end{macrocode}
 % |\date|マクロのデフォルトは、今日の日付です。
 %    \begin{macrocode}
 \if@compatibility
 \newenvironment{titlepage}
     {%
-%<book>      \cleardoublepage
+%<book>     \cleardoublepage
      \if@twocolumn\@restonecoltrue\onecolumn
      \else\@restonecolfalse\newpage\fi
      \thispagestyle{empty}%
 %\newcommand*{\sectionmark}[1]{}
 %\newcommand*{\subsectionmark}[1]{}
 %\newcommand*{\subsubsectionmark}[1]{}
-%\newcommand*{\paragraph}[1]{}
-%\newcommand*{\subparagraph}[1]{}
+%\newcommand*{\paragraphmark}[1]{}
+%\newcommand*{\subparagraphmark}[1]{}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % |\alph{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を
 % $1=$~a, $2=$~b のようにして出力します。
 %
-% |\Roman{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を
+% |\Alph{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を
 % $1=$~A, $2=$~B のようにして出力します。
 %
-% |\kansuji{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を
+% |\Kanji{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を
 % 漢数字で出力します。
 %
 % |\rensuji{|\meta{obj}|}|は、\meta{obj}を横に並べて出力します。
 % \end{description}
 %
 % |\secdef|は次のようにして使うことができます。
-% \begin{verbatim}
+%\begin{verbatim}
 %    \def\chapter {... \secdef \CMDA \CMDB }
 %    \def\CMDA    [#1]#2{....} % \chapter[...]{...} の定義
 %    \def\CMDB    #1{....}     % \chapter*{...} の定義
-% \end{verbatim}
+%\end{verbatim}
 %
 %
 % \subsubsection{partレベル}
 % itemize環境のそれぞれの項目のラベルは、
 % |\labelenumi| \ldots\ |\labelenumiv|で生成されます。
 % \changes{v1.1a}{1997/01/28}{Bug fix: \cs{labelitemii}.}
+% \changes{v1.8e}{2020/01/03}{Normalize label fonts
+%    (sync with classes.dtx 2019/12/20 v1.4l)}
 %    \begin{macrocode}
-\newcommand{\labelitemi}{\textbullet}
+\newcommand{\labelitemi}{\labelitemfont \textbullet}
 \newcommand{\labelitemii}{%
   \ifnum\ltjgetparameter{direction}=3
-     {\textcircled{~}}
+     {\labelitemfont \textcircled{~}}
   \else
-     {\normalfont\bfseries\textendash}
+     {\labelitemfont \bfseries\textendash}
   \fi
 }
-\newcommand{\labelitemiii}{\textasteriskcentered}
-\newcommand{\labelitemiv}{\textperiodcentered}
+\newcommand{\labelitemiii}{\labelitemfont \textasteriskcentered}
+\newcommand{\labelitemiv}{\labelitemfont \textperiodcentered}
+\newcommand\labelitemfont{\normalfont}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %    \LaTeX{} 2.09
 %    compatibility mode では和文数式フォントfamが2重定義されていた
 %    ので、その部分を変更しました。
+%
+% \changes{v1.8-ltj-14}{2018/10/08}{Lua\TeX-ja本体が|disablejfam|オプションをサポートしました。
+%    クラス読み込み時に|disablejfam|オプションを指定した場合は、それがLua\TeX-jaに渡されて
+%       数式中に日本語を記述することができなくなります(|\mathmc|, |\mathgt|も定義されません)。}
 %    \begin{macrocode}
+\unless\ifltj@disablejfam
 \if@compatibility\else
   \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n}
   \DeclareSymbolFontAlphabet{\mathmc}{mincho}
   \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}
 }%
 \fi
+\fi
 %    \end{macrocode}
 %
 % ここでは\LaTeX~2.09で一般的に使われていたコマンドを定義しています。
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\@tocmarg}
+% \begin{macro}{\@tocrmarg}
 % 複数行にわたる場合の右マージンです。
 %    \begin{macrocode}
 \newcommand{\@tocrmarg}{2.55em}
 % |\@tempdima|にしていますが、この変数はいろいろな箇所で使われますので、
 % 期待した値が入らない場合があります。
 %
-% たとえば、|lltjfont.sty|での|\selectfont|は、和欧文のベースラインを調整する
-% ために|\@tempdima|変数を用いています。そのため、|\l@...|マクロの中で
-% フォントを切替えると、|\numberline|マクロのボックス
-% の幅が、ベースラインを調整するときに計算した値になってしまいます。
+% ^^A たとえば、|lltjfont.sty|での|\selectfont|は、和欧文のベースラインを調整する
+% ^^A ために|\@tempdima|変数を用いています。そのため、|\l@...|マクロの中で
+% ^^A フォントを切替えると、|\numberline|マクロのボックス
+% ^^A の幅が、ベースラインを調整するときに計算した値になってしまいます。
+% ^^A →修正(texjporg):最近の|\adjustbaseline|では|\adjust@dimen|が使われて
+% ^^A いるため、記述をコメントアウトしました。
 %
 % フォント選択コマンドの後、あるいは|\numberline|マクロの中でフォントを
 % 切替えてもよいのですが、一時変数を意識したくないので、
 % \end{macro}
 %
 % \begin{macro}{\addcontentsline}
-% ページ番号を|\rensuji|で囲むように変更します。
-% 横組のときにも`|\rensuji|'コマンドが出力されますが、
-% このコマンドによる影響はありません。
+% 縦組の場合にページ番号を|\rensuji|で囲むように変更します。
 %
 % このマクロは\file{ltsect.dtx}で定義されています。
-%    \begin{macrocode}
+% ^^A 命令 |\addcontentsline| と |\addtocontents| を組み合わせ
+% \changes{v1.8a}{2018/10/25}{ファイル書き出し時の行末文字対策
+%    (sync with ltsect.dtx 2018/09/26 v1.1c)}
+% \changes{v1.8f}{2020/09/30}{add a fourth argument for better
+%    hyperref compability
+%    (sync with ltsect.dtx 2020/07/27 v1.1e)}
+%    \begin{macrocode}
+\providecommand*\protected@file@percent{}
 \def\addcontentsline#1#2#3{%
   \protected@write\@auxout
     {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble
-%<tate>\@temptokena{\rensuji{\thepage}}}%
-%<yoko>\@temptokena{\thepage}}%
-    {\string\@writefile{#1}%
-       {\protect\contentsline{#2}{#3}{\the\@temptokena}}}%
+%<tate>     \@temptokena{\rensuji{\thepage}}%
+%<yoko>     \@temptokena{\thepage}%
+    }{\string\@writefile{#1}%
+       {\protect\contentsline{#2}{#3}{\the\@temptokena}{}%
+               \protected@file@percent}}%
 }
 %    \end{macrocode}
 % \end{macro}
          \renewcommand\theenumiv{\@arabic\c@enumiv}}%
    \sloppy
 %    \end{macrocode}
-% \changes{v1.1a}{1997/01/23}{\LaTeX\ \texttt{!<1996/12/01!>}に合わせて修正}
+% \changes{v1.1a}{1997/01/23}{\break\LaTeX\ \texttt{!<1996/12/01!>}に合わせて修正}
 %    \begin{macrocode}
    \clubpenalty4000
    \@clubpenalty\clubpenalty
 % \changes{v1.0h}{1996/12/17}{Typo:和歴 to 和暦}
 % |\today|コマンドの`年'を、
 % 西暦か和暦のどちらで出力するかを指定するコマンドです。
+% 2018年7月以降の日本語\TeX{}開発コミュニティ版(v1.8)では、
+% デフォルトを和暦ではなく西暦に設定しています。
+% \changes{v1.8}{2018/07/03}{\cs{today}のデフォルトを和暦から西暦に変更}
 %    \begin{macrocode}
-\newif\if西暦 \西暦false
+\newif\if西暦 \西暦true
 \def\西暦{\西暦true}
 \def\和暦{\西暦false}
 %    \end{macrocode}
 %
 % \begin{macro}{\heisei}
 % \changes{v1.1m}{1998/04/07}{\cs{today}の計算手順を変更}
+% \changes{v1.8b}{2019/04/02}{\cs{heisei}の値は$\mbox{西暦}-1988$で固定}
 % |\today|コマンドを|\rightmark|で指定したとき、|\rightmark|を出力する部分
 % で和暦のための計算ができないので、クラスファイルを読み込む時点で計算して
 % おきます。
 % \end{macro}
 %
 % \begin{macro}{\today}
+% \begin{macro}{\pltx@today@year}
 % 縦組の場合は、漢数字で出力します。
+% \pLaTeX\ 2018-12-01以前では縦数式ディレクション時でも漢数字で出力していましたが、
+% \pLaTeX\ 2019-04-06以降からはそうしなくなりました。
 %
-% \changes{v1.6-ltj-9}{2015/01/01}{縦組では,この漢数字による日付出力でエラーになりました.
-% Lua\TeX-ja では,\cs{kansuji}の後に\cs{number}を続けることは出来ないので\cs{number}を削除しました.}
+% [2015-01-01 LTJ] 縦組では、この漢数字による日付出力でエラーになりました。
+% Lua\TeX-ja では、\cs{kansuji}の後に\cs{number}を続けることは出来ないので\cs{number}を削除しました。
+% \changes{v1.8b}{2019/04/02}{\cs{today}の計算・出力方法を変更。}
 %    \begin{macrocode}
-\def\today{{%
-  \ifnum\ltjgetparameter{direction}=3
-    \if西暦
-      \kansuji\year 年
-      \kansuji\month 月
-      \kansuji\day 日
+\def\pltx@today@year@#1{%
+  \ifnum\numexpr\year-#1=1 元\else
+    \ifnum\ltjgetparameter{direction}=3
+      \kansuji\numexpr\year-#1\relax
     \else
-      平成\ifnum\heisei=1 元年\else\kansuji\heisei 年\fi
-      \kansuji\month 月
-      \kansuji\day 日
+      \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西暦
+    \ifnum\ltjgetparameter{direction}=3 \kansuji\year
+    \else\number\year\nobreak\fi 年
   \else
-    \if西暦
-      \number\year~年
-      \number\month~月
-      \number\day~日
-    \else
-      平成\ifnum\heisei=1 元年\else\number\heisei~年\fi
-      \number\month~月
-      \number\day~日
-    \fi
+    \pltx@today@year
+  \fi
+  \ifnum\ltjgetparameter{direction}=3
+    \kansuji\month 月
+    \kansuji\day 日
+  \else
+    \number\month\nobreak 月
+    \number\day\nobreak 日
   \fi}}
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 %
 %
 % \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|が違うことを
-%   考慮していなかった}
+% [2017-02-19 LTJ] p\LaTeX とLua\TeX-jaの|\@makecol|が違うことを
+%   考慮していなかった
 %    \begin{macrocode}
 %<book>\pagestyle{headings}
 %<!book>\pagestyle{plain}
 % \section{各種パッケージへの対応}
 % もともと縦組での利用を想定されていないいくつかのパッケージについて、
 % 補正するためのコードを記述しておきます。
-% この節のコードは|filehook|パッケージ(Lua\TeX-ja読み込み時に自動でロードされます)
-% の機能を用いています。
+%% この節のコードは|filehook|パッケージ(Lua\TeX-ja読み込み時に自動でロードされます)
+%% の機能を用いています。
+%
+% [2020-08-03 LTJ] \LaTeX\~2020-10-01に対応するため、Lua\TeX-jaの提供する命令
+% (|filehook|パッケージの命令の別名か、新\LaTeX のフック機構を利用して同様の内容を書いたもの)
+% に置き換えました。
 %
 % \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}
+\ltj@ExecuteBeforePackage*{ftnright}{\let\ltjt@orig@@makefntext=\@makefntext}
+\ltj@ExecuteAfterPackage*{ftnright}{\let\@makefntext=\ltjt@orig@@makefntext}
 %</article|report|book>
 %    \end{macrocode}
 %