OSDN Git Service

lltjext.sty: save \tabular*
[luatex-ja/luatexja.git] / src / ltjsclasses.dtx
index 7a1b55f..4c04d08 100644 (file)
@@ -6,23 +6,30 @@
 %  pLaTeX2ε新ドキュメントクラス
 %
 %  これは LaTeX3 Project の classes.dtx と株式会社アスキーの jclasses.dtx
-%  に基づいて奥村 <okumura@edu.mie-u.ac.jp> が改変したものです。
-%  奥村の改変部分については何の権利も主張しません
-%  オリジナルの著作権の許す範囲で自由にご利用ください
+%  に基づいて,もともと奥村晴彦 <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
 %  The LaTeX3 Project and any individual authors listed elsewhere
-%  in this file. 
+%  in this file.
 %
 %  Copyright 1995-1999 ASCII Corporation.
+%  Copyright 1999-2016 Haruhiko Okumura
+%  Copyright 2016 Japanese TeX Development Community
 %  -----------------------------------------
 %
 % \fi
-% \CheckSum{5121}
+% \CheckSum{5366}
 %% \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
 %<*driver>
 \ProvidesFile{ltjsclasses.dtx}
 %</driver>
-  [2016/03/21 ]
+  [2016/08/27 ltjsclasses ]
 %<*driver>
 \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
 \documentclass{ltjsarticle}
-\usepackage{doc}
+\usepackage{hypdoc}
+\hypersetup{unicode=true}
 \usepackage{fontspec}
 \usepackage[ipaex,nfssonly]{luatexja-preset}
+\ltjsetparameter{alxspmode={`\*,allow}}
+\ltjsetparameter{alxspmode={`\\,allow}}
 %%%%\usepackage{unicode-math}
 %%%%\setmathfont{Latin Modern Math}
-\usepackage[unicode]{hyperref}
 \addtolength{\textwidth}{-1in}
 \addtolength{\evensidemargin}{1in}
 \addtolength{\oddsidemargin}{1in}
 \addtolength{\marginparwidth}{1in}
 \setlength\marginparpush{0pt}
 % \OnlyDescription
-\DisableCrossrefs
+\EnableCrossrefs
 \setcounter{StandardModuleDepth}{1}
 \GetFileInfo{ltjsclasses.dtx}
 \CodelineNumbered
@@ -88,7 +97,8 @@
 %
 % \section{はじめに}
 %
-% これは奥村晴彦先生による |jsclasses.dtx| をLua\LaTeX-ja用に改変したものです。
+% これは,元々奥村晴彦先生により作成され,現在は日本語\TeX 開発コミュニティにより
+% 管理されている\texttt{jsclasses.dtx}をLua\LaTeX-ja用に改変したものです。
 % 次のドキュメントクラス(スタイルファイル)を生成します。
 % \begin{quote}
 %   \begin{tabular}{lll}
 %   \end{tabular}
 % \end{quote}
 %
-% |ltjclasses| と違うのは以下の点です。
-%
 % \subsection{\texttt{jsclasses.dtx}からの主な変更点}
-% 全ての変更点を知りたい場合は,|jsclasses.dtx| と |ltjsclasses.dtx| で |diff| 
+% 全ての変更点を知りたい場合は,\texttt{jsclasses.dtx}と\texttt{ltjsclasses.dtx}でdiff
 % とって下さい。zw, zh は全て |\zw|, |\zh| に置き換えられています。
 % \begin{itemize}
-% \item フォントメトリック関係のオプション |winjis| は単に無視されます。
-% \item 標準では |jfm-ujis.lua|(Lua\TeX-ja標準のメトリック,OTFパッケージのものがベース)を使用します。
-% \item |uplatex| オプションを削除してあります。
-% \item |disablejfam| オプションが無効になっています。もし
+% \item フォントメトリック関係のオプション\texttt{winjis}は単に無視されます。
+% \item 標準では\texttt{jfm-ujis.lua}(Lua\TeX-ja標準のメトリック,OTFパッケージのものがベース)を使用します。
+% \item \texttt{uplatex}オプションを削除してあります。
+% \item \texttt{disablejfam}オプションが無効になっています。もし
 % \begin{quotation}
 %   |! LaTeX Error: Too many math alphabets used in version ****.|
 % \end{quotation}
-% のエラーが起こった場合は,|lualatex-math| パッケージを読み込んでみて下さい。
-% \item |papersize| オプションの指定に関わらずPDFのページサイズは適切に
+% のエラーが起こった場合は,\texttt{lualatex-math}パッケージを読み込んでみて下さい。
+% \item \texttt{papersize}オプションの指定に関わらずPDFのページサイズは適切に
 %   設定されます。
 % \item Lua\TeX-ja同梱のメトリックを用いる限りは,段落の頭にグルーは挿入されません。
-%   そのため,オリジナルの |jsclasses.dtx| 内にあったhack (|\everyparhook|)は不要になったので,
+%   そのため,オリジナルの\texttt{jsclasses}内にあったhack (|\everyparhook|)は不要になったので,
 %   削除しました。
 % \item 「\texttt{amsmath}との衝突の回避」のコードは,上流で既に対処されているうえ,
-%   これがあると |grfext.sty| を読み込んだ際にエラーを引き起こすので削除しました。
+%   これがあると\texttt{grfext.sty}を読み込んだ際にエラーを引き起こすので削除しました。
+% \item 本家\texttt{jsclasses}では |\mag| を用いて「10\,pt時の組版結果を本文フォントサイズに合わせ拡大縮小」
+%   という方針でしたが,本\texttt{ltjsclasses}ではそのような方法を取っていません。
+%   \begin{itemize}
+%    \item \texttt{nomag}オプション指定時には,単にレイアウトに用いる各種長さの値をスケールさせるだけです。
+%      そのため,例えば本文の文字サイズが17\,ptのときにはcmr10でなくcmr17を用いることになり,組版結果の印象が
+%      異なる恐れがあります。
+%    \item \texttt{nomag*}オプション指定時には,上記に加えてオプティカルサイズを調整する(本文ではcmr17の代わりに
+%      cmr10を拡大縮小する,など)ため,\LaTeX のフォント選択システムNFSSへパッチを当てます。
+%      こうすることで前項に書いた不具合はなくなりますが,かえって別の不具合が起きる可能性
+%      はあります\footnote{%
+%        \texttt{nomag*}は\texttt{jsclasses}でも利用可能ですが,\texttt{ltjsclasses}では\texttt{jsclasses}とは
+%        別の実装をしています。
+%      }。
+%   \end{itemize}
+%   標準では\texttt{nomag*}オプションが有効になっています。\texttt{jsclasses}で用意され,かつ既定になっている
+%   \texttt{usemag}オプションを指定すると警告を出します。
 % \end{itemize}
 %
 % [2014-02-07 LTJ] jsclasses 2014-02-07 ベースにしました。
 % Lua\TeX-ja カーネル内に移しました。
 %
 % [2016-03-21 LTJ] Lua\TeX~beta-0.87.0 ではPDF出力時に|\mag|が使用できなくなったので,
-% ZRさんの|bxjscls|を参考に使わないように書き換えました。
+% ZRさんの\texttt{bxjscls}を参考に使わないように書き換えました。
+%
+% [2016-03-31 LTJ] \texttt{xreal}オプションを標準で有効にしました。
+%
+% [2016-07-12 LTJ] \texttt{jsclasses}開発版に合わせ,\texttt{real},~\texttt{xreal}オプションの名称を変更するなどの変更を行いました。
+%
+% [2016-07-18 LTJ] \texttt{usemag}オプションが指定されると警告を出すようにしました。
+%
+% [2016-07-21 LTJ] \LaTeX 等のロゴの再定義で,\texttt{jslogo}パッケージがあればそちらを読み込むことにしました。
 %
 % \StopEventually{}
 %
 % 以下では実際のコードに即して説明します。
+%
+% \begin{macro}{\jsc@clsname}
+%
+% 文書クラスの名前です。エラーメッセージ表示などで使われます。
+%
+%    \begin{macrocode}
+%<article>\def\jsc@clsname{ltjsarticle}
+%<book>\def\jsc@clsname{ltjsbook}
+%<jspf>\def\jsc@clsname{ltjspf}
+%<kiyou>\def\jsc@clsname{ltjskiyou}
+%    \end{macrocode}
+% \end{macro}
+%
 % \section{Lua\TeX-jaの読み込み}
 %
-% まず,|luatexja| を読み込みます。
+% まず,Lua\TeX-jaを読み込みます。
 %    \begin{macrocode}
 \RequirePackage{luatexja}
 %    \end{macrocode}
 % \pLaTeXe の \texttt{b5paper}
 % は $257\,\mathrm{mm} \times 182\,\mathrm{mm}$ になっています。
 % ここでは\pLaTeXe にならってJISに従いました。
-% 
+%
 % デフォルトは \texttt{a4paper} です。
 %
 % \texttt{b5var}(B5変形,182mm×230mm),
 %
 % [2003-04-18] 12Qオプションを追加しました。
 %
-%    \begin{macrocode}
-\newdimen\ltjs@mpt \ltjs@mpt=1\p@
-\DeclareOption{slide}{\@slidetrue\ltjs@mpt=3.58318\p@\@landscapetrue\@titlepagetrue}
-\DeclareOption{8pt} {\ltjs@mpt=.83333\p@}% 1.2^(-1)
-\DeclareOption{9pt} {\ltjs@mpt=.91287\p@}% 1.2^(-0.5}
-\DeclareOption{10pt}{\ltjs@mpt=1\p@}
-\DeclareOption{11pt}{\ltjs@mpt=1.0954\p@}% 1.2^0.5
-\DeclareOption{12pt}{\ltjs@mpt=1.2\p@}
-\DeclareOption{14pt}{\ltjs@mpt=1.44\p@}
-\DeclareOption{17pt}{\ltjs@mpt=1.728\p@}
-\DeclareOption{20pt}{\ltjs@mpt=2\p@}
-\DeclareOption{21pt}{\ltjs@mpt=2.0736\p@}
-\DeclareOption{25pt}{\ltjs@mpt=2.48832\p@}
-\DeclareOption{30pt}{\ltjs@mpt=2.98598\p@}
-\DeclareOption{36pt}{\ltjs@mpt=3.58318\p@}
-\DeclareOption{43pt}{\ltjs@mpt=4.29982\p@}
-\DeclareOption{12Q} {\ltjs@mpt=.92308\p@}% 1pt*12Q/13Q
-\DeclareOption{14Q} {\ltjs@mpt=1.07692\p@}% 1pt*14Q/13Q
-\DeclareOption{10ptj}{\ltjs@mpt=1.08547\p@}% 1pt*10bp/13Q
-\DeclareOption{10.5ptj}{\ltjs@mpt=1.13974\p@}
-\DeclareOption{11ptj}{\ltjs@mpt=1.19402\p@}
-\DeclareOption{12ptj}{\ltjs@mpt=1.30256\p@}
+% [2016-07-08] |\mag| を使わずに各種寸法をスケールさせるためのオプション \texttt{nomag} を新設しました。
+% \texttt{usemag} オプションの指定で従来通りの動作となります。デフォルトは \texttt{usemag} です。
+%
+% [2016-07-24] オプティカルサイズを調整するためにNFSSへパッチを当てるオプション \texttt{nomag*} を新設しました。
+%
+%    \begin{macrocode}
+\def\jsc@magscale{1}
+\DeclareOption{slide}{\@slidetrue\def\jsc@magscale{3.583}\@landscapetrue\@titlepagetrue}
+\DeclareOption{8pt} {\def\jsc@magscale{0.833}}% 1.2^(-1)
+\DeclareOption{9pt} {\def\jsc@magscale{0.913}}% 1.2^(-0.5}
+\DeclareOption{10pt}{\def\jsc@magscale{1}}
+\DeclareOption{11pt}{\def\jsc@magscale{1.095}}% 1.2^0.5
+\DeclareOption{12pt}{\def\jsc@magscale{1.200}}
+\DeclareOption{14pt}{\def\jsc@magscale{1.440}}
+\DeclareOption{17pt}{\def\jsc@magscale{1.728}}
+\DeclareOption{20pt}{\def\jsc@magscale{2}}
+\DeclareOption{21pt}{\def\jsc@magscale{2.074}}
+\DeclareOption{25pt}{\def\jsc@magscale{2.488}}
+\DeclareOption{30pt}{\def\jsc@magscale{2.986}}
+\DeclareOption{36pt}{\def\jsc@magscale{3.583}}
+\DeclareOption{43pt}{\def\jsc@magscale{4.300}}
+\DeclareOption{12Q} {\def\jsc@magscale{0.923}}% 1pt*12Q/13Q
+\DeclareOption{14Q} {\def\jsc@magscale{1.077}}% 1pt*14Q/13Q
+\DeclareOption{10ptj}{\def\jsc@magscale{1.085}}% 1pt*10bp/13Q
+\DeclareOption{10.5ptj}{\def\jsc@magscale{1.139}}
+\DeclareOption{11ptj}{\def\jsc@magscale{1.194}}
+\DeclareOption{12ptj}{\def\jsc@magscale{1.302}}
+%    \end{macrocode}
+%
+% \paragraph{オプティカルサイズの補正}
+% \texttt{nomag*}オプション指定時には,本文のフォントサイズが10pt以外の場合に
+% オプティカルサイズの補正を行うためにNFSSにパッチを当てます。
+% 現在の\texttt{ltjsclasses}ではこのパッチ当ては標準では行いますが,
+% 将来どうなるかわからないので\texttt{nomag}で無効化することができるようにしました。
+%
+% \texttt{noxreal},~\texttt{real}は旧来の互換性として今は残してありますが,2017年7月に削除する予定です。
+%    \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}
+\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}
+
+
 %    \end{macrocode}
 %
+%
 % \paragraph{トンボオプション}
 %
 % トンボ(crop marks)を出力します。
-% 実際の処理は |lltjcore.sty| で行います。
+% 実際の処理は\texttt{lltjcore.sty}で行います。
 % オプション \texttt{tombow} で日付付きのトンボ,
 % オプション \texttt{tombo} で日付なしのトンボを出力します。
 % これらはアスキー版のままです。
-% カウンタ |\hour|,|\minute| は |luatexja-compat.sty| で宣言されています。
+% カウンタ |\hour|,|\minute| は\texttt{luatexja-compat.sty}で宣言されています。
 %
 %    \begin{macrocode}
 \hour\time \divide\hour by 60\relax
 %
 % \paragraph{数式フォントとして和文フォントを登録しないオプション}
 %
-% p\TeX では数式中では16通りのフォントしか使えませんでしたが,Lua\TeX では
+% \pTeX では数式中では16通りのフォントしか使えませんでしたが,Lua\TeX では
 % Omega拡張が取り込まれていて256通りのフォントが使えます。
 % ただし,\LaTeXe カーネルでは未だに数式ファミリの数は16個に制限されているので,
-% 実際に使用可能な数式ファミリの数を増やすためには |lualatex-math| パッケージを
+% 実際に使用可能な数式ファミリの数を増やすためには\texttt{lualatex-math}パッケージを
 % 読み込む必要があることに注意が必要です。
 %
 %    \begin{macrocode}
 \DeclareOption{disablejfam}{%
-  \ClassWarningNoLine{\@currname}{The class option 'disablejfam' is obsolete}}
+  \ClassWarningNoLine{\jsc@clsname}{The class option 'disablejfam' is obsolete}}
 %    \end{macrocode}
 %
 % \paragraph{ドラフト}
 %
 % \texttt{draft} でoverfull boxの起きた行末に5ptの罫線を引きます。
 %
+% [2016-07-13] |\ifdraft| を定義するのをやめました。
+%
 %    \begin{macrocode}
-\newif\ifdraft
-\DeclareOption{draft}{\drafttrue \setlength\overfullrule{5pt}}
-\DeclareOption{final}{\draftfalse \setlength\overfullrule{0pt}}
+\DeclareOption{draft}{\setlength\overfullrule{5pt}}
+\DeclareOption{final}{\setlength\overfullrule{0pt}}
 %    \end{macrocode}
 %
 % \paragraph{和文フォントメトリックの選択}
 %
-% ここではOTFパッケージのメトリックを元とした,|jfm-ujis.lua| メトリックを標準で使います。
+% ここではOTFパッケージのメトリックを元とした,\texttt{jfm-ujis.lua}メトリックを標準で使います。
 % 古い\texttt{min10},\texttt{goth10}互換のメトリックを使いたいときは\texttt{mingoth}
 % というオプションを指定します。
-% p\TeX でよく利用される\texttt{jis}フォントメトリックと互換のメトリックを使いたい場合は,
+% \pTeX でよく利用される\texttt{jis}フォントメトリックと互換のメトリックを使いたい場合は,
 % \texttt{ptexjis}というオプションを指定します。
 % \texttt{winjis}メトリックは用済みのため,\texttt{winjis}オプションは無視されます。
 %
 \newif\ifptexjis
 \ptexjisfalse
 \DeclareOption{winjis}{%
-  \ClassWarningNoLine{\@currname}{The class option 'winjis' is obsolete}}
+  \ClassWarningNoLine{\jsc@clsname}{The \jsc@clsname\space class does not support `winjis' option}}
 \DeclareOption{uplatex}{%
-  \ClassWarningNoLine{\@currname}{The class option 'uplatex' is obsolete}}
+  \ClassWarningNoLine{\jsc@clsname}{The \jsc@clsname\space class does not support `uplatex' option}}
 \DeclareOption{mingoth}{\mingothtrue}
 \DeclareOption{ptexjis}{\ptexjistrue}
 \DeclareOption{jis}{\jisfonttrue}
 %
 % \paragraph{papersizeスペシャルの利用}
 %
-% |ltjsclasses| では |papersize| オプションの有無に関わらず,
-% PDFのページサイズは適切に設定されます。
-%
-%    \begin{macrocode}
-\newif\ifpapersize
-\papersizefalse
-\DeclareOption{papersize}{\papersizetrue}
-%    \end{macrocode}
+% \texttt{ltjsclasses}では\texttt{papersize}オプションの有無に関わらず,
+% PDFのページサイズは適切に設定されるので,削除しました。
 %
 % \paragraph{英語化}
 %
 %</book>
 %    \end{macrocode}
 %
+% \paragraph{\texttt{jslogo}パッケージの読み込み}
+%
+% \LaTeX 関連のロゴを再定義する\texttt{jslogo}パッケージを
+% 読み込まないオプション\texttt{nojslogo}を新設しました。
+% \texttt{jslogo}オプションの指定で従来どおりの動作となります。
+% デフォルトは\texttt{jslogo}で,すなわちパッケージを読み込みます。
+%    \begin{macrocode}
+\newif\if@jslogo \@jslogotrue
+\DeclareOption{jslogo}{\@jslogotrue}
+\DeclareOption{nojslogo}{\@jslogofalse}
+%    \end{macrocode}
+%
 % \paragraph{オプションの実行}
 %
 % デフォルトのオプションを実行します。
 % \item |geometry| 側でオプション |mag| は使えません。
 % \end{itemize}
 %
-% [2016-03-21] |\mag| を使わないように全面的に書き換えました。
+% [2016-03-21 LTJ] |\mag| を使わないように全面的に書き換えました。
 % |\ltjs@mpt| に「拡大率だけ大きくしたpt」の値が格納されます。
-% |bxjscls| と同様に,|\@ptsize| は |10pt|,~|11pt|,~|12pt| オプションが指定された時だけ
+% \texttt{bxjscls}と同様に,|\@ptsize| は |10pt|,~|11pt|,~|12pt| オプションが指定された時だけ
 % 従来通り0,~1,~2と設定し,それ以外の場合は$-20$とすることにしました。
 % |\inv@mag| はもはや定義していません。
+%
+% [2016-03-26 LTJ] |\ltjs@magscale| に拡大率を格納した後,それを用いて |\ltjs@mpt| を
+% 設定するようにしました。
+%
+% [2016-07-08] |\jsc@mpt| および |\jsc@mmm| に,それぞれ1ptおよび1mmを拡大させた値を格納します。
+% 以降のレイアウト指定ではこちらを使います。
+%
+% [2016-07-12 LTJ] |\ltjs@...| を本家に合わせて |\jsc@...| に名称変更しました。
 %    \begin{macrocode}
-\ifdim\ltjs@mpt<.92\p@ % 8pt, 9pt 指定時
+%<*kiyou>
+\def\jsc@magscale{0.9769230}
+%</kiyou>
+\newdimen\jsc@mpt
+\newdimen\jsc@mmm
+\jsc@mpt=\jsc@magscale\p@
+\jsc@mmm=\jsc@magscale mm
+\ifdim\jsc@mpt<.92\p@ % 8pt, 9pt 指定時
   \def\n@baseline{15}%
 \fi
 \newcommand{\@ptsize}{0}
-\ifdim\ltjs@mpt=1.0954\p@ \renewcommand{\@ptsize}{1}\else
-\ifdim\ltjs@mpt=1.2\p@    \renewcommand{\@ptsize}{2}\else
+\ifdim\jsc@mpt=1.0954\p@ \renewcommand{\@ptsize}{1}\else
+\ifdim\jsc@mpt=1.2\p@    \renewcommand{\@ptsize}{2}\else
 \renewcommand{\@ptsize}{-20}\fi\fi
-%<*kiyou>
-\ltjs@mpt=0.9769230\p@
-%</kiyou>
 %    \end{macrocode}
 %
+% \paragraph{オプティカルサイズの補正}
+% \leavevmode\par
+% [2016-03-26 LTJ] |xreal|オプションの指定時には,\texttt{bxjscls}の|magstyle=xreal|
+% オプションのように,オプティカルの補正を行うためにNFSSにパッチを当てます。
+% パッチは,概ねmiscさんによる「js*.cls 同様の文字サイズ設定を
+% |\mag|によらずに行う方法:試案」
+% (\texttt{http://oku.edu.mie-u.ac.jp/\textasciitilde okumura/texfaq/qa/28416.html})の
+% 方法に沿っていますが,拡大/縮小するところの計算にはLuaを用いています。
+%
+% なお,\TeX 内部で長さはsp単位の整数倍で表現されているので,数spの誤差は仕方がないです。
+% そのため,事前に\texttt{type1cm}パッケージを読みこんでおきます。
+%
+% [2016-03-28 LTJ] |\luafunction|を使うようにし,また本文のフォントサイズが10\,ptのときには
+% (不要なので)パッチを当てないことにしました。
+%
+% [2016-04-04 LTJ] NFSSへのパッチを修正。
+%    \begin{macrocode}
+\if@ltjs@mag@xreal\RequirePackage{type1cm}
+\ifdim\jsc@mpt=\p@\else
+  \expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax
+  \expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax
+  \newluafunction\ltjs@@magnify@font@calc
+  \begingroup\catcode`\%=12\relax
+  \directlua{
+    local getdimen, mpt=tex.getdimen, tex.getdimen('jsc@mpt')/65536
+    local t = lua.get_functions_table()
+    t[\the\ltjs@@magnify@font@calc] = function()
+      tex.sprint(math.floor(0.5+mpt*getdimen('dimen@')))
+    end
+    function luatexja.ltjs_unmagnify_fsize(a)
+      local s = luatexja.print_scaled(math.floor(0.5+a/mpt*65536))
+      tex.sprint( (s:match('%.0$')) and s:sub(1,-3) or s )
+    end
+  }
+  \endgroup
+  \def\ltjs@magnify@external@font#1 at#2 at#3\@nil{%
+     \def\@tempa{#1}\def\@tempb{#2}%
+     \ifx\@tempb\@empty
+        \edef\@tempb{ scaled\directlua{%
+          tex.sprint(math.floor(0.5+\jsc@magscale*1000))
+        }}%
+     \else
+        \dimen@\@tempb\relax
+        \edef\@tempb{ at\luafunction\ltjs@@magnify@font@calc sp}%
+     \fi
+     \edef\@tempa{\def\noexpand\external@font{\@tempa\@tempb}}%
+  }
+  \let\ltjs@orig@get@external@font=\get@external@font
+  \def\get@external@font{%
+    \edef\f@size{\directlua{luatexja.ltjs_unmagnify_fsize(\f@size)}}%
+    \ltjs@orig@get@external@font
+    \begingroup
+      \edef\@tempa{\external@font\space at\space at}%
+      \expandafter\ltjs@magnify@external@font\@tempa\@nil
+    \expandafter\endgroup\@tempa
+  }
+\fi\fi
+%    \end{macrocode}
+%
+%
 % \paragraph{PDFの用紙サイズの設定}
 %
-% \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-12 LTJ] luatex.defが新しくなったことに対応するaminophenさんのパッチを取り込みました。
+%
 %    \begin{macrocode}
-\setlength{\@tempdima}{\paperwidth}
-\setlength{\@tempdimb}{\paperheight}
+\newlength{\stockwidth}
+\newlength{\stockheight}
+\setlength{\stockwidth}{\paperwidth}
+\setlength{\stockheight}{\paperheight}
 \iftombow
-  \advance \@tempdima 2in
-  \advance \@tempdimb 2in
+  \advance \stockwidth 2in
+  \advance \stockheight 2in
 \fi
 \ifdefined\pdfpagewidth
-  \setlength{\pdfpagewidth}{\@tempdima}
-  \setlength{\pdfpageheight}{\@tempdimb}
+  \setlength{\pdfpagewidth}{\stockwidth}
+  \setlength{\pdfpageheight}{\stockheight}
 \else
-  \setlength{\pagewidth}{\@tempdima}
-  \setlength{\pageheight}{\@tempdimb}
+  \setlength{\pagewidth}{\stockwidth}
+  \setlength{\pageheight}{\stockheight}
 \fi
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
+% \end{macro}
+% \end{macro}
 %
 % \section{和文フォントの変更}
 %
 % 一方,Lua\TeX-jaの提供するメトリックでは,そのようなことはありません。
 % 公称10ポイントの和文フォントは,10ポイントで出力されます。
 %
-% この |ltjsclasses| でも,派生元の |jsclasses| と同じように,
+% この\texttt{ltjsclasses}でも,派生元の\texttt{jsclasses}と同じように,
 % この公称10ポイントのフォントをここでは13級に縮小して
 % 使うことにします。そのためには,$13\,\textrm{Q}/10\,\textrm{pt}\simeq 0.924715$倍
 % すればいいことになります。
 %
-% |\ltj@stdmcfont|,~|\ltj@stdgtfont| による、デフォルトで使われ明朝・ゴシックのフォントの
-% 設定に対応しました。この2つの命令の値はユーザが日々の利用でその都度指定するものではなく
-% 何らかの理由で非埋め込みフォントが正しく利用できない場合にのみ |luatexja.cfg| によって
+% |\ltj@stdmcfont|,~|\ltj@stdgtfont| による,デフォルトで使われる明朝・ゴシックのフォントの
+% 設定に対応しました。この2つの命令の値はユーザが日々の利用でその都度指定するものではなく
+% 何らかの理由で非埋め込みフォントが正しく利用できない場合にのみ\texttt{luatexja.cfg}によって
 % セットされるものです。
 %
-% [2014-07-26 LTJ] なお,現状のところ,縦組用JFMは |jfm-ujisv.lua| しか準備していません。
+% [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と間違えて扱っていたのを修正
 %    \begin{macrocode}
 %<*!jspf>
 \expandafter\let\csname JY3/mc/m/n/10\endcsname\relax
 % [2004-11-03] |\rmfamily| も和文対応にしました。
 %
 % [2016-01-30 LTJ] |\rmfamily|, |\sffamily|, |\ttfamily| の再定義をLua\TeX-ja
-% カーネルに移動させたので,ここでは和文対応にするフラグ |\@ltj@match@family|\ 
+% カーネルに移動させたので,ここでは和文対応にするフラグ |\@ltj@match@family|\
 % を有効にさせるだけでよいです。
 %    \begin{macrocode}
 \DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{}
 % Lua\TeX-jaでは和文組版に伴うグルーはノードベースで挿入するようになり,また
 % 欧文・和文間のグルーとイタリック補正は干渉しないようになりました。
 % まだ「和文の斜体」についてはLua\LaTeX カーネル側でまともな対応がされていませんが,
-% |jsclasses.dtx| で行われていた |\textmc|, |\textgt| の再定義は不要のように思われます。
+% \texttt{jsclasses}で行われていた |\textmc|, |\textgt| の再定義は不要のように思われます。
 %
-% |jsclasses.dtx| 中で行われていた |\reDeclareMathAlphabet| の再定義は削除。
+% \texttt{jsclasses.dtx}中で行われていた |\reDeclareMathAlphabet| の再定義は削除。
 %
 %    \begin{macrocode}
 \AtBeginDocument{%
 % では |I watch TV\@.| と書くと V とピリオドのペアカーニングが効かなくなります。
 % そこで,次のような定義に直し,|I watch TV.\@| と書くことにします。
 %
+% [2016-07-14] 2015-01-01の\LaTeX で,auxiliary filesに書き出されたときに
+% スペースが食われないようにする修正が入りました。これに合わせて |{}| を補いました。
+%
 %    \begin{macrocode}
-\def\@{\spacefactor3000\space}
+\def\@{\spacefactor3000{}}
 %    \end{macrocode}
 % \end{macro}
 %
 % 和文文字間のスペース |kanjiskip|,
 % 和文・欧文間のスペース |xkanjiskip| を変更しています。
 %
-% |kanjiskip| は |ltj-latex.sty| で |0pt plus 0.4pt minus 0.4pt| に
+% |kanjiskip| は |ltj-latex.sty| で |0pt plus 0.4pt minus 0.5pt| に
 % 設定していますが,
 % これはそもそも文字サイズの変更に応じて変わるべきものです。
 % それに,プラスになったりマイナスになったりするのは,
   \ltjsetkanjiskip\z@ plus .1\zw minus .01\zw
   \@tempskipa=\ltjgetparameter{xkanjiskip}
   \ifdim\@tempskipa>\z@
-    \if@slide 
+    \if@slide
       \ltjsetxkanjiskip .1em
     \else
       \ltjsetxkanjiskip .25em plus .15em minus .06em
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\ltjs@setfontsize}
-% クラスファイルの内部では,拡大率も考慮した |ltjs@setfontsize| を
+% \begin{macro}{\jsc@setfontsize}
+% クラスファイルの内部では,拡大率も考慮した |\jsc@setfontsize| を
 % |\@setfontsize| の変わりに用いることにします。
 %    \begin{macrocode}
-\def\ltjs@setfontsize#1#2#3{%
-  \@setfontsize#1{#2\ltjs@mpt}{#3\ltjs@mpt}}
+\def\jsc@setfontsize#1#2#3{%
+  \@setfontsize#1{#2\jsc@mpt}{#3\jsc@mpt}}
 %    \end{macrocode}
 % \end{macro}
 %
 %    \begin{macrocode}
 \renewcommand{\normalsize}{%
   \ltj@@ifnarrowbaselines
-    {\ltjs@setfontsize\normalsize\@xpt\@xiipt}%
-    {\ltjs@setfontsize\normalsize\@xpt{\n@baseline}}%
+    {\jsc@setfontsize\normalsize\@xpt\@xiipt}%
+    {\jsc@setfontsize\normalsize\@xpt{\n@baseline}}%
 %    \end{macrocode}
 %
 % 数式の上のアキ(|\abovedisplayskip|),
 % いましたが,結局,微調節してみることにしました。
 %
 %    \begin{macrocode}
-  \abovedisplayskip 11\ltjs@mpt \@plus3\ltjs@mpt \@minus4\ltjs@mpt
-  \abovedisplayshortskip \z@ \@plus3\ltjs@mpt
-  \belowdisplayskip 9\ltjs@mpt \@plus3\ltjs@mpt \@minus4\ltjs@mpt
+  \abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
+  \abovedisplayshortskip \z@ \@plus3\jsc@mpt
+  \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
   \belowdisplayshortskip \belowdisplayskip
 %    \end{macrocode}
 %
 %    \begin{macrocode}
 \newcommand{\small}{%
   \ltj@@ifnarrowbaselines
-%<!kiyou>    {\ltjs@setfontsize\small\@ixpt{11}}%
-%<kiyou>    {\ltjs@setfontsize\small{8.8888}{11}}%
-%<!kiyou>    {\ltjs@setfontsize\small\@ixpt{13}}%
-%<kiyou>    {\ltjs@setfontsize\small{8.8888}{13.2418}}%
-  \abovedisplayskip 9\ltjs@mpt \@plus3\ltjs@mpt \@minus4\ltjs@mpt
-  \abovedisplayshortskip  \z@ \@plus3\ltjs@mpt
+%<!kiyou>    {\jsc@setfontsize\small\@ixpt{11}}%
+%<kiyou>    {\jsc@setfontsize\small{8.8888}{11}}%
+%<!kiyou>    {\jsc@setfontsize\small\@ixpt{13}}%
+%<kiyou>    {\jsc@setfontsize\small{8.8888}{13.2418}}%
+  \abovedisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
+  \abovedisplayshortskip  \z@ \@plus3\jsc@mpt
   \belowdisplayskip \abovedisplayskip
   \belowdisplayshortskip \belowdisplayskip
   \def\@listi{\leftmargin\leftmargini
 %    \begin{macrocode}
 \newcommand{\footnotesize}{%
   \ltj@@ifnarrowbaselines
-%<!kiyou>    {\ltjs@setfontsize\footnotesize\@viiipt{9.5}}%
-%<kiyou>    {\ltjs@setfontsize\footnotesize{8.8888}{11}}%
-%<!kiyou>    {\ltjs@setfontsize\footnotesize\@viiipt{11}}%
-%<kiyou>    {\ltjs@setfontsize\footnotesize{8.8888}{13.2418}}%
-  \abovedisplayskip 6\ltjs@mpt \@plus2\ltjs@mpt \@minus3\ltjs@mpt
-  \abovedisplayshortskip  \z@ \@plus2\ltjs@mpt
+%<!kiyou>    {\jsc@setfontsize\footnotesize\@viiipt{9.5}}%
+%<kiyou>    {\jsc@setfontsize\footnotesize{8.8888}{11}}%
+%<!kiyou>    {\jsc@setfontsize\footnotesize\@viiipt{11}}%
+%<kiyou>    {\jsc@setfontsize\footnotesize{8.8888}{13.2418}}%
+  \abovedisplayskip 6\jsc@mpt \@plus2\jsc@mpt \@minus3\jsc@mpt
+  \abovedisplayshortskip  \z@ \@plus2\jsc@mpt
   \belowdisplayskip \abovedisplayskip
   \belowdisplayshortskip \belowdisplayskip
   \def\@listi{\leftmargin\leftmargini
 % [2004-11-03] |\HUGE| を追加。
 %
 %    \begin{macrocode}
-\newcommand{\scriptsize}{\ltjs@setfontsize\scriptsize\@viipt\@viiipt}
-\newcommand{\tiny}{\ltjs@setfontsize\tiny\@vpt\@vipt}
+\newcommand{\scriptsize}{\jsc@setfontsize\scriptsize\@viipt\@viiipt}
+\newcommand{\tiny}{\jsc@setfontsize\tiny\@vpt\@vipt}
 \if@twocolumn
-%<!kiyou>  \newcommand{\large}{\ltjs@setfontsize\large\@xiipt{\n@baseline}}
-%<kiyou>  \newcommand{\large}{\ltjs@setfontsize\large{11.111}{\n@baseline}}
+%<!kiyou>  \newcommand{\large}{\jsc@setfontsize\large\@xiipt{\n@baseline}}
+%<kiyou>  \newcommand{\large}{\jsc@setfontsize\large{11.111}{\n@baseline}}
 \else
-%<!kiyou>  \newcommand{\large}{\ltjs@setfontsize\large\@xiipt{17}}
-%<kiyou>  \newcommand{\large}{\ltjs@setfontsize\large{11.111}{17}}
+%<!kiyou>  \newcommand{\large}{\jsc@setfontsize\large\@xiipt{17}}
+%<kiyou>  \newcommand{\large}{\jsc@setfontsize\large{11.111}{17}}
 \fi
-%<!kiyou>\newcommand{\Large}{\ltjs@setfontsize\Large\@xivpt{21}}
-%<kiyou>\newcommand{\Large}{\ltjs@setfontsize\Large{12.222}{21}}
-\newcommand{\LARGE}{\ltjs@setfontsize\LARGE\@xviipt{25}}
-\newcommand{\huge}{\ltjs@setfontsize\huge\@xxpt{28}}
-\newcommand{\Huge}{\ltjs@setfontsize\Huge\@xxvpt{33}}
-\newcommand{\HUGE}{\ltjs@setfontsize\HUGE{30}{40}}
+%<!kiyou>\newcommand{\Large}{\jsc@setfontsize\Large\@xivpt{21}}
+%<kiyou>\newcommand{\Large}{\jsc@setfontsize\Large{12.222}{21}}
+\newcommand{\LARGE}{\jsc@setfontsize\LARGE\@xviipt{25}}
+\newcommand{\huge}{\jsc@setfontsize\huge\@xxpt{28}}
+\newcommand{\Huge}{\jsc@setfontsize\Huge\@xxvpt{33}}
+\newcommand{\HUGE}{\jsc@setfontsize\HUGE{30}{40}}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \texttt{normal...} の付いた方は保存用です。
 %
 %    \begin{macrocode}
-\setlength\lineskip{1\ltjs@mpt}
-\setlength\normallineskip{1\ltjs@mpt}
-\setlength\lineskiplimit{1\ltjs@mpt}
-\setlength\normallineskiplimit{1\ltjs@mpt}
+\setlength\lineskip{1\jsc@mpt}
+\setlength\normallineskip{1\jsc@mpt}
+\setlength\lineskiplimit{1\jsc@mpt}
+\setlength\normallineskiplimit{1\jsc@mpt}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % 計算では |\headheight| ではなく |\topskip| を使う
 % ことにしました。
 %
+%
+% [2016-08-17] 圏点やルビが一行目に来た場合に下がるのを防ぐた
+% め,|\topskip| を10ptから1.38zwに増やしました。
+% |\headheight| は従来と同じ20ptのままとします。
+%
+% [2016-08-17 LTJ] 1.38zwの代わりに1.38|\zh|にしています。
+%
 %    \begin{macrocode}
-\setlength\topskip{10\ltjs@mpt}
+\setlength\topskip{1.38\zh}%% from 10\jsc@mpt (2016-08-17)
 \if@slide
-  \setlength\headheight{0\ltjs@mpt}
+  \setlength\headheight{0\jsc@mpt}
 \else
-  \setlength\headheight{2\topskip}
+  \setlength\headheight{20\jsc@mpt}%% from 2\topskip (2016-08-17); from \topskip (2003-06-26)
 \fi
 %    \end{macrocode}
 % \end{macro}
   \fi
 \fi
 %</article|kiyou>
-%<jspf>\setlength\footskip{9mm}
+%<jspf>\setlength\footskip{9\jsc@mmm}
 %<*book>
 \if@report
   \setlength\footskip{0.03367\paperheight}
 %    \begin{macrocode}
 %<*article>
 \if@slide
-  \setlength\headsep{0\ltjs@mpt}
+  \setlength\headsep{0\jsc@mpt}
 \else
   \setlength\headsep{\footskip}
   \addtolength\headsep{-\topskip}
   \setlength\headsep{\footskip}
   \addtolength\headsep{-\topskip}
 \else
-  \setlength\headsep{6mm}
+  \setlength\headsep{6\jsc@mmm}
 \fi
 %</book>
 %<*jspf>
-\setlength\headsep{9mm}
+\setlength\headsep{9\jsc@mmm}
 \addtolength\headsep{-\topskip}
 %</jspf>
 %<*kiyou>
-\setlength\headheight{0\ltjs@mpt}
-\setlength\headsep{0\ltjs@mpt}
+\setlength\headheight{0\jsc@mpt}
+\setlength\headsep{0\jsc@mpt}
 %</kiyou>
 %    \end{macrocode}
 % \end{macro}
 %
 % 書籍以外では本文領域の幅 |\textwidth| は |\fullwidth| と等しくします。
 % |article| ではA4縦置きで49文字となります。
-% 某学会誌スタイルでは|50\zw|(25文字×2段)+段間8mmとします。
+% 某学会誌スタイルでは |50\zw|(25文字×2段)+段間8\,mmとします。
 %
 %    \begin{macrocode}
 %<*article>
   \setlength\fullwidth{0.76\paperwidth}
 \else
   \setlength\fullwidth{\paperwidth}
-  \addtolength\fullwidth{-36mm}
+  \addtolength\fullwidth{-36\jsc@mmm}
 \fi
 \if@twocolumn \@tempdima=2\zw \else \@tempdima=1\zw \fi
 \divide\fullwidth\@tempdima \multiply\fullwidth\@tempdima
 %</book>
 %<*jspf>
 \setlength\fullwidth{50\zw}
-\addtolength\fullwidth{8mm}
+\addtolength\fullwidth{8\jsc@mmm}
 \setlength\textwidth{\fullwidth}
 %</jspf>
 %<*kiyou>
 % [2003-06-26] |\headheight| を |\topskip| に直しました。
 % 以前はこの二つは値が同じであったので,変化はないはずです。
 %
+% [2016-08-26] |\topskip| を10ptから1.38zwに増やしましたので,
+% その分 |\textheight| を増やします(2016-08-17での修正漏れ)。
+%
 %    \begin{macrocode}
 %<*article|book>
 \if@slide
 \else
   \setlength{\textheight}{0.83\paperheight}
 \fi
-\addtolength{\textheight}{-\topskip}
+\addtolength{\textheight}{-0.5\headheight}%% from -\topskip (2016-08-26); from -\headheight (2003-06-26)
 \addtolength{\textheight}{-\headsep}
 \addtolength{\textheight}{-\footskip}
 \addtolength{\textheight}{-\topskip}
 %<jspf>\setlength{\textheight}{51\baselineskip}
 %<kiyou>\setlength{\textheight}{47\baselineskip}
 \addtolength{\textheight}{\topskip}
-\addtolength{\textheight}{0.1\ltjs@mpt}
-%<jspf>\setlength{\mathindent}{10mm}
+\addtolength{\textheight}{0.1\jsc@mpt}
+%<jspf>\setlength{\mathindent}{10\jsc@mmm}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\flushbottom}
+%
+% [2016-07-18] |\textheight| に念のため0.1ポイント余裕を持たせて
+% いるのと同様に,|\flushbottom| にも余裕を持たせます。
+% 元の\LaTeXe での完全な |\flushbottom| の定義は
+%\begin{verbatim}
+%  \def\flushbottom{%
+%    \let\@textbottom\relax \let\@texttop\relax}
+%\end{verbatim}
+% ですが,次のようにします。
+%
+%    \begin{macrocode}
+\def\flushbottom{%
+   \def\@textbottom{\vskip \z@ \@plus.1\jsc@mpt}%
+   \let\@texttop\relax}
 %    \end{macrocode}
 % \end{macro}
 %
 % |\marginparwidth| は欄外の書き込みの横幅です。
 % 外側マージンの幅(|\evensidemargin| $+$ 1インチ)から1センチを引き,
 % さらに |\marginparsep|(欄外の書き込みと本文のアキ)を引いた値に
-% しました。最後に|1\zw|の整数倍に切り捨てます。
+% しました。最後に |1\zw| の整数倍に切り捨てます。
 %
 %    \begin{macrocode}
 \setlength\marginparwidth{\paperwidth}
 \addtolength\marginparwidth{-\oddsidemargin}
 \addtolength\marginparwidth{-1in}
 \addtolength\marginparwidth{-\textwidth}
-\addtolength\marginparwidth{-1cm}
+\addtolength\marginparwidth{-10\jsc@mmm}
 \addtolength\marginparwidth{-\marginparsep}
 \@tempdima=1\zw
 \divide\marginparwidth\@tempdima
 % [2011-10-03 LTJ] ここも |\oddsidemargin| のときと同様に |-\inv@mag in| ではなく
 % |-1in| にします。
 %
+% [2016-08-17] |\topskip| を10ptから1.38zwに直しましたが,
+% |\topmargin| は従来の値から変わらないように調節しました。
+% …のつもりでしたが,|\textheight| を増やし忘れていたので
+% 変わってしまっていました(2016-08-26修正済み)。
 %    \begin{macrocode}
 \setlength\topmargin{\paperheight}
 \addtolength\topmargin{-\textheight}
 \if@slide
   \addtolength\topmargin{-\headheight}
 \else
-  \addtolength\topmargin{-\topskip}
+  \addtolength\topmargin{-0.5\headheight}%% from -\topskip (2016-08-17); from -\headheight (2003-06-26)
 \fi
 \addtolength\topmargin{-\headsep}
 \addtolength\topmargin{-\footskip}
 % 和文の行送りを考えてもうちょっと大きくします。
 %
 %    \begin{macrocode}
-\setlength{\skip\footins}{16\ltjs@mpt \@plus 5\ltjs@mpt \@minus 2\ltjs@mpt}
+\setlength{\skip\footins}{16\jsc@mpt \@plus 5\jsc@mpt \@minus 2\jsc@mpt}
 %    \end{macrocode}
 % \end{macro}
 %
 % |\intextsep| は本文の途中に出力されるフロートと本文との距離です。
 %
 %    \begin{macrocode}
-\setlength\floatsep    {12\ltjs@mpt \@plus 2\ltjs@mpt \@minus 2\ltjs@mpt}
-\setlength\textfloatsep{20\ltjs@mpt \@plus 2\ltjs@mpt \@minus 4\ltjs@mpt}
-\setlength\intextsep   {12\ltjs@mpt \@plus 2\ltjs@mpt \@minus 2\ltjs@mpt}
+\setlength\floatsep    {12\jsc@mpt \@plus 2\jsc@mpt \@minus 2\jsc@mpt}
+\setlength\textfloatsep{20\jsc@mpt \@plus 2\jsc@mpt \@minus 4\jsc@mpt}
+\setlength\intextsep   {12\jsc@mpt \@plus 2\jsc@mpt \@minus 2\jsc@mpt}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % 二段組のときの段抜きのフロートについての値です。
 %
 %    \begin{macrocode}
-\setlength\dblfloatsep    {12\ltjs@mpt \@plus 2\ltjs@mpt \@minus 2\ltjs@mpt}
-\setlength\dbltextfloatsep{20\ltjs@mpt \@plus 2\ltjs@mpt \@minus 4\ltjs@mpt}
+\setlength\dblfloatsep    {12\jsc@mpt \@plus 2\jsc@mpt \@minus 2\jsc@mpt}
+\setlength\dbltextfloatsep{20\jsc@mpt \@plus 2\jsc@mpt \@minus 4\jsc@mpt}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % |\@fpsep| はフロート間に入ります。
 %
 %    \begin{macrocode}
-\setlength\@fptop{0\ltjs@mpt \@plus 1fil}
-\setlength\@fpsep{8\ltjs@mpt \@plus 2fil}
-\setlength\@fpbot{0\ltjs@mpt \@plus 1fil}
+\setlength\@fptop{0\jsc@mpt \@plus 1fil}
+\setlength\@fpsep{8\jsc@mpt \@plus 2fil}
+\setlength\@fpbot{0\jsc@mpt \@plus 1fil}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % 段抜きフロートについての値です。
 %
 %    \begin{macrocode}
-\setlength\@dblfptop{0\ltjs@mpt \@plus 1fil}
-\setlength\@dblfpsep{8\ltjs@mpt \@plus 2fil}
-\setlength\@dblfpbot{0\ltjs@mpt \@plus 1fil}
+\setlength\@dblfptop{0\jsc@mpt \@plus 1fil}
+\setlength\@dblfpsep{8\jsc@mpt \@plus 2fil}
+\setlength\@dblfpbot{0\jsc@mpt \@plus 1fil}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % ページスタイルとして,\LaTeXe (欧文版)の標準クラス
 % では |empty|,|plain|,|headings|,|myheadings| があります。
 % このうち |empty|,|plain| スタイルは\LaTeXe 本体
-% で定義されています。 
+% で定義されています。
 %
 % アスキーのクラスファイルでは |headnombre|,|footnombre|,
 % |bothstyle|,|jpl@in| が追加されていますが,
         \begin{center}
           \mbox{} \\[1\zw]
           \large
-          {\maybeblue\hrule height0\ltjs@mpt depth2\ltjs@mpt\relax}\par
+          {\maybeblue\hrule height0\jsc@mpt depth2\jsc@mpt\relax}\par
           \smallskip
           \@title
           \smallskip
-          {\maybeblue\hrule height0\ltjs@mpt depth2\ltjs@mpt\relax}\par
+          {\maybeblue\hrule height0\jsc@mpt depth2\jsc@mpt\relax}\par
           \vfill
           {\small \@author}%
         \end{center}
       \else
-      \vskip 60\ltjs@mpt
+      \vskip 60\jsc@mpt
       \begin{center}%
         {\LARGE \@title \par}%
         \vskip 3em%
   \centerline{\box\@abstractbox}
   \ifx\@keywords\@undefined\else
     \vskip 1.5em
-    \centerline{\parbox{157mm}{\textsf{Keywords:}\\ \small\@keywords}}
+    \centerline{\parbox{157\jsc@mmm}{\textsf{Keywords:}\\ \small\@keywords}}
   \fi
   \vskip 1.5em}
 %</jspf>
 %
 % [2011-10-05 LTJ] Lua\TeX-jaでは |\everyparhook| は不要なので削除。
 %
+% [2016-07-28] \texttt{slide}オプションと\texttt{twocolumn}オプションを
+% 同時に指定した場合の罫線の位置を微調整しました。
+%
 %    \begin{macrocode}
 \def\@xsect#1{%
 % 見出しの後ろの空きを \@tempskipa にセット
     \@afterheading
   \fi
   \if@slide
-    {\vskip-6\ltjs@mpt\maybeblue\hrule height0\ltjs@mpt depth1\ltjs@mpt\vskip7\ltjs@mpt\relax}%
+    {\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}
   \fi
   \par  % 2000-12-18
   \ignorespaces}
     \normalfont
     \ifnum \c@secnumdepth >-2\relax
       \huge\headfont \prepartname\thepart\postpartname
-      \par\vskip20\ltjs@mpt
+      \par\vskip20\jsc@mpt
     \fi
     \Huge \headfont #2\par}%
   \@endpart}
     \addcontentsline{toc}{chapter}{#1}%
   \fi
   \chaptermark{#1}%
-  \addtocontents{lof}{\protect\addvspace{10\ltjs@mpt}}%
-  \addtocontents{lot}{\protect\addvspace{10\ltjs@mpt}}%
+  \addtocontents{lof}{\protect\addvspace{10\jsc@mpt}}%
+  \addtocontents{lot}{\protect\addvspace{10\jsc@mpt}}%
   \if@twocolumn
     \@topnewpage[\@makechapterhead{#2}]%
   \else
 %    \begin{macrocode}
 \if@twocolumn
   \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
-    {\z@}{\z@}%
+    {\z@}{\if@slide .4\Cvs \else \z@ \fi}%
     {\normalfont\normalsize\headfont}}
 \else
   \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
 % \end{macro}
 %
 % \begin{macro}{\subsubsection}
+%
+% [2016-07-22] \texttt{slide}オプション指定時に |\subsubsection| の文字列
+% と罫線が重なる問題に対処しました(forum:1982)。
+%
 %    \begin{macrocode}
 \if@twocolumn
   \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
-    {\z@}{\z@}%
+    {\z@}{\if@slide .4\Cvs \else \z@ \fi}%
     {\normalfont\normalsize\headfont}}
 \else
   \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
     {\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
-    {\z@}%
+    {\if@slide .5\Cvs \@plus.3\Cdp \else \z@ \fi}%
     {\normalfont\normalsize\headfont}}
 \fi
 %    \end{macrocode}
 %    \begin{macrocode}
 \if@twocolumn
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
-    {\z@}{-1\zw}% 改行せず 1\zw のアキ
+    {\z@}{\if@slide .4\Cvs \else -1\zw\fi}% 改行せず 1\zw のアキ
 %<jspf>    {\normalfont\normalsize\headfont}}
 %<!jspf>    {\normalfont\normalsize\headfont ■}}
 \else
   \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
     {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
-    {-1\zw}% 改行せず 1\zw のアキ
+    {\if@slide .5\Cvs \@plus.3\Cdp \else -1\zw\fi}% 改行せず 1\zw のアキ
 %<jspf>    {\normalfont\normalsize\headfont}}
 %<!jspf>    {\normalfont\normalsize\headfont ■}}
 \fi
 %    見出しの後ろで改行されません。
 %
 %    \begin{macrocode}
-\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}%
-   {\z@}{-1\zw}%
-   {\normalfont\normalsize\headfont}}
+\if@twocolumn
+  \newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}%
+    {\z@}{\if@slide .4\Cvs \@plus.3\Cdp \else -1\zw\fi}%
+    {\normalfont\normalsize\headfont}}
+\else
+  \newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}%
+    {\z@}{\if@slide .5\Cvs \@plus.3\Cdp \else -1\zw\fi}%
+    {\normalfont\normalsize\headfont}}
+\fi
 %    \end{macrocode}
 % \end{macro}
 %
 \newbox\@abstractbox
 \newenvironment{abstract}{%
   \global\setbox\@abstractbox\hbox\bgroup
-  \begin{minipage}[b]{157mm}{\sffamily Abstract}\par
+  \begin{minipage}[b]{157\jsc@mmm}{\sffamily Abstract}\par
     \small
-    \if@english \parindent6mm \else \parindent1\zw \fi}%
+    \if@english \parindent6\jsc@mmm \else \parindent1\zw \fi}%
   {\end{minipage}\egroup}
 %</jspf>
 %    \end{macrocode}
 %\newbox\@keywordsbox
 %\newenvironment{keywords}{%
 %  \global\setbox\@keywordsbox\hbox\bgroup
-%  \begin{minipage}[b]{157mm}{\sffamily Keywords:}\par
+%  \begin{minipage}[b]{157\jsc@mmm}{\sffamily Keywords:}\par
 %    \small\parindent0\zw}%
 %  {\end{minipage}\egroup}
 %</jspf>
 % |array| 環境の列間には |\arraycolsep| の2倍の幅の空きが入ります。
 %
 %    \begin{macrocode}
-\setlength\arraycolsep{5\ltjs@mpt}
+\setlength\arraycolsep{5\jsc@mpt}
 %    \end{macrocode}
 % \end{macro}
 %
 % |tabular| 環境の列間には |\tabcolsep| の2倍の幅の空きが入ります。
 %
 %    \begin{macrocode}
-\setlength\tabcolsep{6\ltjs@mpt}
+\setlength\tabcolsep{6\jsc@mpt}
 %    \end{macrocode}
 % \end{macro}
 %
 % |array|,|tabular| 環境内の罫線の幅です。
 %
 %    \begin{macrocode}
-\setlength\arrayrulewidth{.4\ltjs@mpt}
+\setlength\arrayrulewidth{.4\jsc@mpt}
 %    \end{macrocode}
 % \end{macro}
 %
 % |array|,|tabular| 環境での二重罫線間のアキです。
 %
 %    \begin{macrocode}
-\setlength\doublerulesep{2\ltjs@mpt}
+\setlength\doublerulesep{2\jsc@mpt}
 %    \end{macrocode}
 % \end{macro}
 %
 % |\fbox|,|\framebox| の罫線の幅です。
 %
 %    \begin{macrocode}
-\setlength\fboxsep{3\ltjs@mpt}
-\setlength\fboxrule{.4\ltjs@mpt}
+\setlength\fboxsep{3\jsc@mpt}
+\setlength\fboxrule{.4\jsc@mpt}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %    \begin{macrocode}
 \newlength\abovecaptionskip
 \newlength\belowcaptionskip
-\setlength\abovecaptionskip{5\ltjs@mpt} % 元: 10\p@
-\setlength\belowcaptionskip{5\ltjs@mpt} % 元: 0\p@
+\setlength\abovecaptionskip{5\jsc@mpt} % 元: 10\p@
+\setlength\belowcaptionskip{5\jsc@mpt} % 元: 0\p@
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \begin{verbatim}
 % ! Missing number, treated as zero.
 % \end{verbatim}
-% 
+%
 %
 %    \begin{macrocode}
 %<*!jspf>
 % \long\def\@makecaption#1#2{{\small
-%   \advance\leftskip1cm
-%   \advance\rightskip1cm
+%   \advance\leftskip10\jsc@mmm
+%   \advance\rightskip10\jsc@mmm
 %   \vskip\abovecaptionskip
 %   \sbox\@tempboxa{#1{\hskip1\zw}#2}%
 %   \ifdim \wd\@tempboxa >\hsize
         \itemsep    \z@
         \itemindent \z@
         \labelsep   \z@
-        \labelwidth 11mm
+        \labelwidth 11\jsc@mmm
         \listparindent\z@
-        \leftmargin 11mm}\item\relax #2\endlist}
+        \leftmargin 11\jsc@mmm}\item\relax #2\endlist}
   \else
     \global \@minipagefalse
     \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
 % これらは互換性のためのもので,
 % できるだけ |\text...| と |\math...| を使ってください。
 %
+% [2016-07-15] KOMA-Script中の |\scr@DeclareOldFontCommand| に倣い,
+% これらの命令を使うときには警告を発することにしました。
+%
+% [2016-07-16] 警告を最初の一回だけ発することにしました。また,
+% 例外的に警告を出さないようにするスイッチも付けます。
+%
+% \begin{macro}{\if@jsc@warnoldfontcmd}
+% \begin{macro}{\if@jsc@warnoldfontcmdexception}
+%    \begin{macrocode}
+\newif\if@jsc@warnoldfontcmd
+\@jsc@warnoldfontcmdtrue
+\newif\if@jsc@warnoldfontcmdexception
+\@jsc@warnoldfontcmdexceptionfalse
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\jsc@DeclareOldFontCommand}
+%    \begin{macrocode}
+\newcommand*{\jsc@DeclareOldFontCommand}[3]{%
+  \DeclareOldFontCommand{#1}{%
+    \jsc@warnoldfontcmd{#1}#2%
+  }{%
+    \jsc@warnoldfontcmd{#1}#3%
+  }%
+}
+\DeclareRobustCommand*{\jsc@warnoldfontcmd}[1]{%
+  \if@jsc@warnoldfontcmdexception\else\if@jsc@warnoldfontcmd
+  \ClassWarning{\jsc@clsname}{%
+    deprecated old font command `\string#1' used.\MessageBreak
+    You should note, that since 1994 LaTeX2e provides a\MessageBreak
+    new font selection scheme called NFSS2 with several\MessageBreak
+    new, combinable font commands. This \jsc@clsname\MessageBreak
+       class has defined the old font commands like\MessageBreak
+       `\string#1' only for compatibility%
+  }%
+  \global\@jsc@warnoldfontcmdfalse
+  \fi\fi
+}
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{\mc}
 % \begin{macro}{\gt}
 % \begin{macro}{\rm}
 % フォントファミリを変更します。
 %
 %    \begin{macrocode}
-\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
-\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
-\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
-\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
-\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\jsc@DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
+\jsc@DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
+\jsc@DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\jsc@DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\jsc@DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % コマンドは |\mdseries| です。
 %
 %    \begin{macrocode}
-\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\jsc@DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
 %    \end{macrocode}
 % \end{macro}
 %
 % 通常のアップライト体に戻すコマンドは |\upshape| です。
 %
 %    \begin{macrocode}
-\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
-\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
-\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+\jsc@DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\jsc@DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\jsc@DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %
 % 目次を生成します。
 %
-% \begin{macro}{\js@tocl@width}
+% \begin{macro}{\jsc@tocl@width}
 %
 % [2013-12-30] |\prechaptername| などから見積もった目次のラベルの長さです。(by ts)
 %
 %    \begin{macrocode}
-\newdimen\js@tocl@width
+\newdimen\jsc@tocl@width
 \newcommand{\tableofcontents}{%
 %<*book>
-  \settowidth\js@tocl@width{\headfont\prechaptername\postchaptername}%
+  \settowidth\jsc@tocl@width{\headfont\prechaptername\postchaptername}%
   \settowidth\@tempdima{\headfont\appendixname}%
-  \ifdim\js@tocl@width<\@tempdima \setlength\js@tocl@width{\@tempdima}\fi
-  \ifdim\js@tocl@width<2\zw \divide\js@tocl@width by 2 \advance\js@tocl@width 1\zw\fi
+  \ifdim\jsc@tocl@width<\@tempdima \setlength\jsc@tocl@width{\@tempdima}\fi
+  \ifdim\jsc@tocl@width<2\zw \divide\jsc@tocl@width by 2 \advance\jsc@tocl@width 1\zw\fi
   \if@twocolumn
     \@restonecoltrue\onecolumn
   \else
   \@mkboth{\contentsname}{}%
 %</book>
 %<*!book>
-  \settowidth\js@tocl@width{\headfont\presectionname\postsectionname}%
+  \settowidth\jsc@tocl@width{\headfont\presectionname\postsectionname}%
   \settowidth\@tempdima{\headfont\appendixname}%
-  \ifdim\js@tocl@width<\@tempdima\relax\setlength\js@tocl@width{\@tempdima}\fi
-  \ifdim\js@tocl@width<2\zw \divide\js@tocl@width by 2 \advance\js@tocl@width 1\zw\fi
+  \ifdim\jsc@tocl@width<\@tempdima\relax\setlength\jsc@tocl@width{\@tempdima}\fi
+  \ifdim\jsc@tocl@width<2\zw \divide\jsc@tocl@width by 2 \advance\jsc@tocl@width 1\zw\fi
   \section*{\contentsname}%
   \@mkboth{\contentsname}{\contentsname}%
 %</!book>
   \ifnum \c@tocdepth >-2\relax
 %<!book>    \addpenalty\@secpenalty
 %<book>    \addpenalty{-\@highpenalty}%
-    \addvspace{2.25em \@plus\ltjs@mpt}%
+    \addvspace{2.25em \@plus\jsc@mpt}%
     \begingroup
       \parindent \z@
 %     \@pnumwidth should be \@tocrmarg
 %
 % 章の目次です。|\@lnumwidth| を |4.683\zw| に増やしました。
 %
-% [2013-12-30] |\@lnumwidth| を |\js@tocl@width| から
+% [2013-12-30] |\@lnumwidth| を |\jsc@tocl@width| から
 % 決めるようにしてみました。(by ts)
 %
 %    \begin{macrocode}
 \newcommand*{\l@chapter}[2]{%
   \ifnum \c@tocdepth >\m@ne
     \addpenalty{-\@highpenalty}%
-    \addvspace{1.0em \@plus\ltjs@mpt}
+    \addvspace{1.0em \@plus\jsc@mpt}
 %   \vskip 1.0em \@plus\p@   % book.clsでは↑がこうなっている
     \begingroup
       \parindent\z@
       \parfillskip-\rightskip
       \leavevmode\headfont
       % \if@english\setlength\@lnumwidth{5.5em}\else\setlength\@lnumwidth{4.683\zw}\fi
-      \setlength\@lnumwidth{\js@tocl@width}\advance\@lnumwidth 2.683\zw
+      \setlength\@lnumwidth{\jsc@tocl@width}\advance\@lnumwidth 2.683\zw
       \advance\leftskip\@lnumwidth \hskip-\leftskip
       #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par
       \penalty\@highpenalty
 \newcommand*{\l@section}[2]{%
   \ifnum \c@tocdepth >\z@
     \addpenalty{\@secpenalty}%
-    \addvspace{1.0em \@plus\ltjs@mpt}%
+    \addvspace{1.0em \@plus\jsc@mpt}%
     \begingroup
       \parindent\z@
 %     \rightskip\@pnumwidth
       \parfillskip-\rightskip
       \leavevmode\headfont
       %\setlength\@lnumwidth{4\zw}% 元1.5em [2003-03-02]
-      \setlength\@lnumwidth{\js@tocl@width}\advance\@lnumwidth 2\zw
+      \setlength\@lnumwidth{\jsc@tocl@width}\advance\@lnumwidth 2\zw
       \advance\leftskip\@lnumwidth \hskip-\leftskip
       #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par
     \endgroup
 %<book> % \newcommand*{\l@section}{\@dottedtocline{1}{1\zw}{3.683\zw}}
 %    \end{macrocode}
 %
-% [2013-12-30] 上のインデントは |\js@tocl@width| から決めるように
+% [2013-12-30] 上のインデントは |\jsc@tocl@width| から決めるように
 % しました。(by ts)
 %
 % \end{macro}
 % さらに下位レベルの目次項目の体裁です。
 % あまり使ったことがありませんので,要修正かもしれません。
 %
-% [2013-12-30] ここも  |\js@tocl@width| から決めるように
+% [2013-12-30] ここも  |\jsc@tocl@width| から決めるように
 % してみました。(by ts)
 %
 %    \begin{macrocode}
 % \newcommand*{\l@subparagraph} {\@dottedtocline{5}{4\zw}{3\zw}}
 %
 \newcommand*{\l@subsection}{%
-          \@tempdima\js@tocl@width \advance\@tempdima -1\zw
+          \@tempdima\jsc@tocl@width \advance\@tempdima -1\zw
           \@dottedtocline{2}{\@tempdima}{3\zw}}
 \newcommand*{\l@subsubsection}{%
-          \@tempdima\js@tocl@width \advance\@tempdima 0\zw
+          \@tempdima\jsc@tocl@width \advance\@tempdima 0\zw
           \@dottedtocline{3}{\@tempdima}{4\zw}}
 \newcommand*{\l@paragraph}{%
-          \@tempdima\js@tocl@width \advance\@tempdima 1\zw
+          \@tempdima\jsc@tocl@width \advance\@tempdima 1\zw
           \@dottedtocline{4}{\@tempdima}{5\zw}}
 \newcommand*{\l@subparagraph}{%
-          \@tempdima\js@tocl@width \advance\@tempdima 2\zw
+          \@tempdima\jsc@tocl@width \advance\@tempdima 2\zw
           \@dottedtocline{5}{\@tempdima}{6\zw}}
 %</!book>
 %<*book>
 % \newcommand*{\l@paragraph}    {\@dottedtocline{4}{10em}{5em}}
 % \newcommand*{\l@subparagraph} {\@dottedtocline{5}{12em}{6em}}
 \newcommand*{\l@section}{%
-          \@tempdima\js@tocl@width \advance\@tempdima -1\zw
+          \@tempdima\jsc@tocl@width \advance\@tempdima -1\zw
           \@dottedtocline{1}{\@tempdima}{3.683\zw}}
 \newcommand*{\l@subsection}{%
-          \@tempdima\js@tocl@width \advance\@tempdima 2.683\zw
+          \@tempdima\jsc@tocl@width \advance\@tempdima 2.683\zw
           \@dottedtocline{2}{\@tempdima}{3.5\zw}}
 \newcommand*{\l@subsubsection}{%
-          \@tempdima\js@tocl@width \advance\@tempdima 6.183\zw
+          \@tempdima\jsc@tocl@width \advance\@tempdima 6.183\zw
           \@dottedtocline{3}{\@tempdima}{4.5\zw}}
 \newcommand*{\l@paragraph}{%
-          \@tempdima\js@tocl@width \advance\@tempdima 10.683\zw
+          \@tempdima\jsc@tocl@width \advance\@tempdima 10.683\zw
           \@dottedtocline{4}{\@tempdima}{5.5\zw}}
 \newcommand*{\l@subparagraph}{%
-          \@tempdima\js@tocl@width \advance\@tempdima 16.183\zw
+          \@tempdima\jsc@tocl@width \advance\@tempdima 16.183\zw
           \@dottedtocline{5}{\@tempdima}{6.5\zw}}
 %</book>
 %    \end{macrocode}
 %
 %    \begin{macrocode}
 \def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else
-  \vskip \z@ \@plus.2\ltjs@mpt
+  \vskip \z@ \@plus.2\jsc@mpt
   {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
     \parindent #2\relax\@afterindenttrue
    \interlinepenalty\@M
    \@lnumwidth #3\relax
    \advance\leftskip \@lnumwidth \null\nobreak\hskip -\leftskip
     {#4}\nobreak
-    \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep 
+    \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
        mu$}\hfill \nobreak\hb@xt@\@pnumwidth{%
          \hfil\normalfont \normalcolor #5}\par}\fi}
 %    \end{macrocode}
 %
 % 参考文献リストを出力します。
 %
+% [2016-07-16] \LaTeX~2.09で使われていたフォントコマンドの警告を,
+% 文献スタイル(.bst)ではよく |\bf| がいまだに用いられることが多いため,
+% |thebibliography| 環境内では例外的に出さないようにしました。
+%
 %    \begin{macrocode}
 \newenvironment{thebibliography}[1]{%
+  \global\@jsc@warnoldfontcmdexceptiontrue
   \global\let\presectionname\relax
   \global\let\postsectionname\relax
 %<article|jspf>  \section*{\refname}\@mkboth{\refname}{\refname}%
    \sfcode`\.\@m}
   {\def\@noitemerr
     {\@latex@warning{Empty `thebibliography' environment}}%
-   \endlist}
+   \endlist
+   \global\@jsc@warnoldfontcmdexceptionfalse}
 %    \end{macrocode}
 % \end{environment}
 %
 %<!book>    \@mkboth{\indexname}{\indexname}%
     \plainifnotempty % \thispagestyle{plain}
     \parindent\z@
-    \parskip\z@ \@plus .3\ltjs@mpt\relax
+    \parskip\z@ \@plus .3\jsc@mpt\relax
     \let\item\@idxitem
     \raggedright
     \footnotesize\narrowbaselines
 % 索引で先頭文字ごとのブロックの間に入るスペースです。
 %
 %    \begin{macrocode}
-\newcommand{\indexspace}{\par \vskip 10\ltjs@mpt \@plus5\ltjs@mpt \@minus3\ltjs@mpt\relax}
+\newcommand{\indexspace}{\par \vskip 10\jsc@mpt \@plus5\jsc@mpt \@minus3\jsc@mpt\relax}
 %    \end{macrocode}
 % \end{macro}
 %
 %
 % [2014-07-02 LTJ] |\ifydir| を使わない形に書換えました。
 %
-%    \begin{macrocode}
-\renewcommand\@makefnmark{\hbox{}\hbox{%
-  \unless\ifnum\ltjgetparameter{direction}=3 \@textsuperscript{\normalfont\@thefnmark}%
-  \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi}\hbox{}}
-%    \end{macrocode}
+% [2016-07-11] コミュニティ版p\LaTeX の変更に追随しました(Thanks: 角藤さん)。
+%
+% [2016-08-27 LTJ] 結果的に |\@makefnmark| の定義が
+% Lua\TeX-ja本体(lltjcore.sty)中のものと全く同じになっていたので,削除します,
 % \end{macro}
 %
 % \begin{macro}{\thefootnote}
 %
 %    \begin{macrocode}
 \renewcommand{\footnoterule}{%
-  \kern-3\ltjs@mpt
-  \hrule width .4\columnwidth height .4\ltjs@mpt
-  \kern 2.6\ltjs@mpt}
+  \kern-3\jsc@mpt
+  \hrule width .4\columnwidth height 0.4\jsc@mpt
+  \kern 2.6\jsc@mpt}
 %    \end{macrocode}
 % \end{macro}
 %
 %
 % \LaTeX 関連のロゴを作り直します。
 %
+% [2016-07-14] ロゴの定義は\texttt{jslogo}パッケージに移転しました。
+% 後方互換のため,\texttt{jsclasses}ではデフォルトでこれを読み込みます。
+%
+% \texttt{nojslogo}オプションが指定されている場合は読み込みません。
+%
+% [2016-07-21 LTJ] \texttt{jsclasses} とLua\TeX-jaの更新タイミングが一致しない可能性を考慮し,
+% \texttt{jslogo}パッケージが存在しない場合は旧来の定義をそのまま使うことにしました。
+%
+%    \begin{macrocode}
+\IfFileExists{jslogo.sty}{}{\@jslogofalse}%
+\if@jslogo
+  \RequirePackage{jslogo}
+  \def\小{\jslg@small}
+  \def\上小{\jslg@uppersmall}
+\else
+%    \end{macrocode}
+%
+% 以下は\texttt{jslogo}パッケージがない場合の定義です。
+%
 % \begin{macro}{\小}
 % \begin{macro}{\上小}
 %
 % \end{macro}
 % \end{macro}
 %
+% \texttt{jslogo}パッケージがない場合の定義はここで終わりです。
+%    \begin{macrocode}
+\fi
+%    \end{macrocode}
+%
 % \section{初期設定}
 %
 % \paragraph{いろいろな語}