OSDN Git Service

test22-ltjs-mag: \ltjs@mpt -> \js@mpt
[luatex-ja/luatexja.git] / src / ltjsclasses.dtx
index 6980fd5..01f04d5 100644 (file)
@@ -6,7 +6,7 @@
 %  pLaTeX2ε新ドキュメントクラス
 %
 %  これは LaTeX3 Project の classes.dtx と株式会社アスキーの jclasses.dtx
-%  に基づいて奥村 <okumura@edu.mie-u.ac.jp> が改変したものです。
+%  に基づいて奥村 <okumura@okumuralab.org> が改変したものです。
 %  奥村の改変部分については何の権利も主張しません。
 %  オリジナルの著作権の許す範囲で自由にご利用ください。
 %
@@ -14,6 +14,9 @@
 %  必要が生じてきました。アスキーのものが最近はmodified BSDライセンスになっ
 %  ていますので,私のものもそれに準じてmodified BSDとすることにします。
 %
+%  [2016-07-11] abenoriさんによる\texttt{nomag}オプションをマージしました。
+%  なお,ソースコードの管理はGitHubで行うことにしました。
+%
 %  Copyright 1993 1994 1995 1996 1997 1998 1999
 %  The LaTeX3 Project and any individual authors listed elsewhere
 %  in this file. 
@@ -22,7 +25,7 @@
 %  -----------------------------------------
 %
 % \fi
-% \CheckSum{5121}
+% \CheckSum{5234}
 %% \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
@@ -50,7 +53,7 @@
 %<*driver>
 \ProvidesFile{ltjsclasses.dtx}
 %</driver>
-  [2016/03/21 ]
+  [2016/07/12 ltjsclasses ]
 %<*driver>
 \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
 \documentclass{ltjsarticle}
 %   削除しました。
 % \item 「\texttt{amsmath}との衝突の回避」のコードは,上流で既に対処されているうえ,
 %   これがあると |grfext.sty| を読み込んだ際にエラーを引き起こすので削除しました。
+% \item 本家 |jsclasses.dtx| では |\mag| を用いて「10pt時の組版結果を本文フォントサイズに合わせ拡大縮小」
+%   という方針でしたが,本 |ltjsclasses.dtx| ではそのような方法を取っていません。
+%   \begin{itemize}
+%    \item |nomag| オプション指定時には,単にレイアウトに用いる各種長さの値をスケールさせるだけです。
+%      そのため,例えば本文の文字サイズが17ptのときにはcmr10でなくcmr17を用いることになり,組版結果の印象が
+%      異なる恐れがあります。
+%    \item |nomag*| オプション指定時には,上記に加えてオプティカルサイズを調整する(本文ではcmr17の代わりに
+%      cmr10を拡大縮小する,など)ため,\LaTeX のフォント選択システムNFSSへパッチを当てます。
+%      こうすることで前項に書いた不具合はなくなりますが,かえって別の不具合が起きる可能性はあります。
+%   \end{itemize}
+%   標準では |nomag*| オプションが有効になっています。
 % \end{itemize}
 %
 % [2014-02-07 LTJ] jsclasses 2014-02-07 ベースにしました。
 % [2016-03-21 LTJ] Lua\TeX~beta-0.87.0 ではPDF出力時に|\mag|が使用できなくなったので,
 % ZRさんの|bxjscls|を参考に使わないように書き換えました。
 %
+% [2016-03-31 LTJ] |xreal|オプションを標準で有効にしました.
+%
+% [2016-07-12 LTJ] jsclasses 開発版に合わせ、|real|, |xreal| オプションの名称を変更するなどの変更を行いました。
+%
 % \StopEventually{}
 %
 % 以下では実際のコードに即して説明します。
 % [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@}
+\def\js@magscale{1}
+\DeclareOption{slide}{\@slidetrue\def\js@magscale{3.583}\@landscapetrue\@titlepagetrue}
+\DeclareOption{8pt} {\def\js@magscale{0.83}}% 1.2^(-1)
+\DeclareOption{9pt} {\def\js@magscale{0.913}}% 1.2^(-0.5}
+\DeclareOption{10pt}{\def\js@magscale{1}}
+\DeclareOption{11pt}{\def\js@magscale{1.095}}% 1.2^0.5
+\DeclareOption{12pt}{\def\js@magscale{1.200}}
+\DeclareOption{14pt}{\def\js@magscale{1.440}}
+\DeclareOption{17pt}{\def\js@magscale{1.728}}
+\DeclareOption{20pt}{\def\js@magscale{2}}
+\DeclareOption{21pt}{\def\js@magscale{2.074}}
+\DeclareOption{25pt}{\def\js@magscale{2.488}}
+\DeclareOption{30pt}{\def\js@magscale{2.986}}
+\DeclareOption{36pt}{\def\js@magscale{3.583}}
+\DeclareOption{43pt}{\def\js@magscale{4.300}}
+\DeclareOption{12Q} {\def\js@magscale{0.923}}% 1pt*12Q/13Q
+\DeclareOption{14Q} {\def\js@magscale{1.077}}% 1pt*14Q/13Q
+\DeclareOption{10ptj}{\def\js@magscale{1.085}}% 1pt*10bp/13Q
+\DeclareOption{10.5ptj}{\def\js@magscale{1.139}}
+\DeclareOption{11ptj}{\def\js@magscale{1.194}}
+\DeclareOption{12ptj}{\def\js@magscale{1.302}}
+%    \end{macrocode}
+%
+% \paragraph{オプティカルサイズの補正}
+% |nomag*| オプション指定時には,本文のフォントサイズが10pt以外の場合に
+% オプティカルサイズの補正を行うためにNFSSにパッチを当てます。
+% 現在の |ltjsclasses| ではこのパッチ当ては標準では行いますが,
+% 将来どうなるかわからないので |nomag| で無効化することができるようにしました。
+%
+% |noxreal|, |real| は旧来の互換性として今は残してありますが、将来は削除する予定です。
+%    \begin{macrocode}
+\newif\if@ltjs@mag@xreal
+\@ltjs@mag@xrealtrue
+\DeclareOption{nomag*}{\@ltjs@mag@xrealtrue}
+\DeclareOption{nomag}{\@ltjs@mag@xrealfalse}
+\DeclareOption{noxreal}{\@ltjs@mag@xrealfalse}
+\DeclareOption{real}{\@ltjs@mag@xrealfalse}
 %    \end{macrocode}
 %
+%
 % \paragraph{トンボオプション}
 %
 % トンボ(crop marks)を出力します。
 % \paragraph{papersizeスペシャルの利用}
 %
 % |ltjsclasses| では |papersize| オプションの有無に関わらず,
-% PDFのページサイズは適切に設定されます。
-%
-%    \begin{macrocode}
-\newif\ifpapersize
-\papersizefalse
-\DeclareOption{papersize}{\papersizetrue}
-%    \end{macrocode}
+% PDFのページサイズは適切に設定されるので,削除しました。
 %
 % \paragraph{英語化}
 %
 % \item |geometry| 側でオプション |mag| は使えません。
 % \end{itemize}
 %
-% [2016-03-21] |\mag| を使わないように全面的に書き換えました。
+% [2016-03-21 LTJ] |\mag| を使わないように全面的に書き換えました。
 % |\ltjs@mpt| に「拡大率だけ大きくしたpt」の値が格納されます。
 % |bxjscls| と同様に,|\@ptsize| は |10pt|,~|11pt|,~|12pt| オプションが指定された時だけ
 % 従来通り0,~1,~2と設定し,それ以外の場合は$-20$とすることにしました。
 % |\inv@mag| はもはや定義していません。
+%
+% [2016-03-26 LTJ] |\ltjs@magscale| に拡大率を格納した後,それを用いて |\ltjs@mpt| を
+% 設定するようにしました。
+%
+% [2016-07-08] |\js@mpt| および |\js@mmm| に,それぞれ1ptおよび1mmを拡大させた値を格納します。
+% 以降のレイアウト指定ではこちらを使います。
+%
+% [2016-07-12 LTJ] |\ltjs@...|を本家に合わせて|\js@...|に名称変更しました。
 %    \begin{macrocode}
-\ifdim\ltjs@mpt<.92\p@ % 8pt, 9pt 指定時
+%<*kiyou>
+\def\js@magscale{0.9769230}
+%</kiyou>
+\newdimen\js@mpt
+\newdimen\js@mmm
+\js@mpt=\js@magscale\p@
+\js@mmm=\js@magscale mm
+\ifdim\js@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\js@mpt=1.0954\p@ \renewcommand{\@ptsize}{1}\else
+\ifdim\js@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|オプションの指定時には,|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の誤差は仕方がないです。
+% そのため,事前に|type1cm|パッケージを読みこんでおきます。
+%
+% [2016-03-28 LTJ] |\luafunction|を使うようにし,また本文のフォントサイズが10ptのときには
+% (不要なので)パッチを当てないことにしました。
+%
+% [2016-04-04 LTJ] NFSSへのパッチを修正.
+%    \begin{macrocode}
+\if@ltjs@mag@xreal\RequirePackage{type1cm}
+\ifdim\js@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('js@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+\js@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{和文フォントの変更}
 %
 % 使うことにします。そのためには,$13\,\textrm{Q}/10\,\textrm{pt}\simeq 0.924715$倍
 % すればいいことになります。
 %
-% |\ltj@stdmcfont|,~|\ltj@stdgtfont| による、デフォルトで使われ明朝・ゴシックのフォントの
+% |\ltj@stdmcfont|,~|\ltj@stdgtfont| による、デフォルトで使われ明朝・ゴシックのフォントの
 % 設定に対応しました。この2つの命令の値はユーザが日々の利用でその都度指定するものではなく、
 % 何らかの理由で非埋め込みフォントが正しく利用できない場合にのみ |luatexja.cfg| によって
 % セットされるものです。
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\ltjs@setfontsize}
-% クラスファイルの内部では,拡大率も考慮した |ltjs@setfontsize| を
+% \begin{macro}{\js@setfontsize}
+% クラスファイルの内部では,拡大率も考慮した |\js@setfontsize| を
 % |\@setfontsize| の変わりに用いることにします。
 %    \begin{macrocode}
-\def\ltjs@setfontsize#1#2#3{%
-  \@setfontsize#1{#2\ltjs@mpt}{#3\ltjs@mpt}}
+\def\js@setfontsize#1#2#3{%
+  \@setfontsize#1{#2\js@mpt}{#3\js@mpt}}
 %    \end{macrocode}
 % \end{macro}
 %
 %    \begin{macrocode}
 \renewcommand{\normalsize}{%
   \ltj@@ifnarrowbaselines
-    {\ltjs@setfontsize\normalsize\@xpt\@xiipt}%
-    {\ltjs@setfontsize\normalsize\@xpt{\n@baseline}}%
+    {\js@setfontsize\normalsize\@xpt\@xiipt}%
+    {\js@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\js@mpt \@plus3\js@mpt \@minus4\js@mpt
+  \abovedisplayshortskip \z@ \@plus3\js@mpt
+  \belowdisplayskip 9\js@mpt \@plus3\js@mpt \@minus4\js@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>    {\js@setfontsize\small\@ixpt{11}}%
+%<kiyou>    {\js@setfontsize\small{8.8888}{11}}%
+%<!kiyou>    {\js@setfontsize\small\@ixpt{13}}%
+%<kiyou>    {\js@setfontsize\small{8.8888}{13.2418}}%
+  \abovedisplayskip 9\js@mpt \@plus3\js@mpt \@minus4\js@mpt
+  \abovedisplayshortskip  \z@ \@plus3\js@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>    {\js@setfontsize\footnotesize\@viiipt{9.5}}%
+%<kiyou>    {\js@setfontsize\footnotesize{8.8888}{11}}%
+%<!kiyou>    {\js@setfontsize\footnotesize\@viiipt{11}}%
+%<kiyou>    {\js@setfontsize\footnotesize{8.8888}{13.2418}}%
+  \abovedisplayskip 6\js@mpt \@plus2\js@mpt \@minus3\js@mpt
+  \abovedisplayshortskip  \z@ \@plus2\js@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}{\js@setfontsize\scriptsize\@viipt\@viiipt}
+\newcommand{\tiny}{\js@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}{\js@setfontsize\large\@xiipt{\n@baseline}}
+%<kiyou>  \newcommand{\large}{\js@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}{\js@setfontsize\large\@xiipt{17}}
+%<kiyou>  \newcommand{\large}{\js@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}{\js@setfontsize\Large\@xivpt{21}}
+%<kiyou>\newcommand{\Large}{\js@setfontsize\Large{12.222}{21}}
+\newcommand{\LARGE}{\js@setfontsize\LARGE\@xviipt{25}}
+\newcommand{\huge}{\js@setfontsize\huge\@xxpt{28}}
+\newcommand{\Huge}{\js@setfontsize\Huge\@xxvpt{33}}
+\newcommand{\HUGE}{\js@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\js@mpt}
+\setlength\normallineskip{1\js@mpt}
+\setlength\lineskiplimit{1\js@mpt}
+\setlength\normallineskiplimit{1\js@mpt}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % ことにしました。
 %
 %    \begin{macrocode}
-\setlength\topskip{10\ltjs@mpt}
+\setlength\topskip{10\js@mpt}
 \if@slide
-  \setlength\headheight{0\ltjs@mpt}
+  \setlength\headheight{0\js@mpt}
 \else
   \setlength\headheight{2\topskip}
 \fi
   \fi
 \fi
 %</article|kiyou>
-%<jspf>\setlength\footskip{9mm}
+%<jspf>\setlength\footskip{9\js@mmm}
 %<*book>
 \if@report
   \setlength\footskip{0.03367\paperheight}
 %    \begin{macrocode}
 %<*article>
 \if@slide
-  \setlength\headsep{0\ltjs@mpt}
+  \setlength\headsep{0\js@mpt}
 \else
   \setlength\headsep{\footskip}
   \addtolength\headsep{-\topskip}
   \setlength\headsep{\footskip}
   \addtolength\headsep{-\topskip}
 \else
-  \setlength\headsep{6mm}
+  \setlength\headsep{6\js@mmm}
 \fi
 %</book>
 %<*jspf>
-\setlength\headsep{9mm}
+\setlength\headsep{9\js@mmm}
 \addtolength\headsep{-\topskip}
 %</jspf>
 %<*kiyou>
-\setlength\headheight{0\ltjs@mpt}
-\setlength\headsep{0\ltjs@mpt}
+\setlength\headheight{0\js@mpt}
+\setlength\headsep{0\js@mpt}
 %</kiyou>
 %    \end{macrocode}
 % \end{macro}
   \setlength\fullwidth{0.76\paperwidth}
 \else
   \setlength\fullwidth{\paperwidth}
-  \addtolength\fullwidth{-36mm}
+  \addtolength\fullwidth{-36\js@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\js@mmm}
 \setlength\textwidth{\fullwidth}
 %</jspf>
 %<*kiyou>
 %<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\js@mpt}
+%<jspf>\setlength{\mathindent}{10\js@mmm}
 %    \end{macrocode}
 % \end{macro}
 %
 \addtolength\marginparwidth{-\oddsidemargin}
 \addtolength\marginparwidth{-1in}
 \addtolength\marginparwidth{-\textwidth}
-\addtolength\marginparwidth{-1cm}
+\addtolength\marginparwidth{-10\js@mmm}
 \addtolength\marginparwidth{-\marginparsep}
 \@tempdima=1\zw
 \divide\marginparwidth\@tempdima
 % 和文の行送りを考えてもうちょっと大きくします。
 %
 %    \begin{macrocode}
-\setlength{\skip\footins}{16\ltjs@mpt \@plus 5\ltjs@mpt \@minus 2\ltjs@mpt}
+\setlength{\skip\footins}{16\js@mpt \@plus 5\js@mpt \@minus 2\js@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\js@mpt \@plus 2\js@mpt \@minus 2\js@mpt}
+\setlength\textfloatsep{20\js@mpt \@plus 2\js@mpt \@minus 4\js@mpt}
+\setlength\intextsep   {12\js@mpt \@plus 2\js@mpt \@minus 2\js@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\js@mpt \@plus 2\js@mpt \@minus 2\js@mpt}
+\setlength\dbltextfloatsep{20\js@mpt \@plus 2\js@mpt \@minus 4\js@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\js@mpt \@plus 1fil}
+\setlength\@fpsep{8\js@mpt \@plus 2fil}
+\setlength\@fpbot{0\js@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\js@mpt \@plus 1fil}
+\setlength\@dblfpsep{8\js@mpt \@plus 2fil}
+\setlength\@dblfpbot{0\js@mpt \@plus 1fil}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
         \begin{center}
           \mbox{} \\[1\zw]
           \large
-          {\maybeblue\hrule height0\ltjs@mpt depth2\ltjs@mpt\relax}\par
+          {\maybeblue\hrule height0\js@mpt depth2\js@mpt\relax}\par
           \smallskip
           \@title
           \smallskip
-          {\maybeblue\hrule height0\ltjs@mpt depth2\ltjs@mpt\relax}\par
+          {\maybeblue\hrule height0\js@mpt depth2\js@mpt\relax}\par
           \vfill
           {\small \@author}%
         \end{center}
       \else
-      \vskip 60\ltjs@mpt
+      \vskip 60\js@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\js@mmm}{\textsf{Keywords:}\\ \small\@keywords}}
   \fi
   \vskip 1.5em}
 %</jspf>
     \@afterheading
   \fi
   \if@slide
-    {\vskip-6\ltjs@mpt\maybeblue\hrule height0\ltjs@mpt depth1\ltjs@mpt\vskip7\ltjs@mpt\relax}%
+    {\vskip-6\js@mpt\maybeblue\hrule height0\js@mpt depth1\js@mpt\vskip7\js@mpt\relax}%
   \fi
   \par  % 2000-12-18
   \ignorespaces}
     \normalfont
     \ifnum \c@secnumdepth >-2\relax
       \huge\headfont \prepartname\thepart\postpartname
-      \par\vskip20\ltjs@mpt
+      \par\vskip20\js@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\js@mpt}}%
+  \addtocontents{lot}{\protect\addvspace{10\js@mpt}}%
   \if@twocolumn
     \@topnewpage[\@makechapterhead{#2}]%
   \else
 \newbox\@abstractbox
 \newenvironment{abstract}{%
   \global\setbox\@abstractbox\hbox\bgroup
-  \begin{minipage}[b]{157mm}{\sffamily Abstract}\par
+  \begin{minipage}[b]{157\js@mmm}{\sffamily Abstract}\par
     \small
-    \if@english \parindent6mm \else \parindent1\zw \fi}%
+    \if@english \parindent6\js@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\js@mmm}{\sffamily Keywords:}\par
 %    \small\parindent0\zw}%
 %  {\end{minipage}\egroup}
 %</jspf>
 % |array| 環境の列間には |\arraycolsep| の2倍の幅の空きが入ります。
 %
 %    \begin{macrocode}
-\setlength\arraycolsep{5\ltjs@mpt}
+\setlength\arraycolsep{5\js@mpt}
 %    \end{macrocode}
 % \end{macro}
 %
 % |tabular| 環境の列間には |\tabcolsep| の2倍の幅の空きが入ります。
 %
 %    \begin{macrocode}
-\setlength\tabcolsep{6\ltjs@mpt}
+\setlength\tabcolsep{6\js@mpt}
 %    \end{macrocode}
 % \end{macro}
 %
 % |array|,|tabular| 環境内の罫線の幅です。
 %
 %    \begin{macrocode}
-\setlength\arrayrulewidth{.4\ltjs@mpt}
+\setlength\arrayrulewidth{.4\js@mpt}
 %    \end{macrocode}
 % \end{macro}
 %
 % |array|,|tabular| 環境での二重罫線間のアキです。
 %
 %    \begin{macrocode}
-\setlength\doublerulesep{2\ltjs@mpt}
+\setlength\doublerulesep{2\js@mpt}
 %    \end{macrocode}
 % \end{macro}
 %
 % |\fbox|,|\framebox| の罫線の幅です。
 %
 %    \begin{macrocode}
-\setlength\fboxsep{3\ltjs@mpt}
-\setlength\fboxrule{.4\ltjs@mpt}
+\setlength\fboxsep{3\js@mpt}
+\setlength\fboxrule{.4\js@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\js@mpt} % 元: 10\p@
+\setlength\belowcaptionskip{5\js@mpt} % 元: 0\p@
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %    \begin{macrocode}
 %<*!jspf>
 % \long\def\@makecaption#1#2{{\small
-%   \advance\leftskip1cm
-%   \advance\rightskip1cm
+%   \advance\leftskip10\js@mmm
+%   \advance\rightskip10\js@mmm
 %   \vskip\abovecaptionskip
 %   \sbox\@tempboxa{#1{\hskip1\zw}#2}%
 %   \ifdim \wd\@tempboxa >\hsize
         \itemsep    \z@
         \itemindent \z@
         \labelsep   \z@
-        \labelwidth 11mm
+        \labelwidth 11\js@mmm
         \listparindent\z@
-        \leftmargin 11mm}\item\relax #2\endlist}
+        \leftmargin 11\js@mmm}\item\relax #2\endlist}
   \else
     \global \@minipagefalse
     \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
   \ifnum \c@tocdepth >-2\relax
 %<!book>    \addpenalty\@secpenalty
 %<book>    \addpenalty{-\@highpenalty}%
-    \addvspace{2.25em \@plus\ltjs@mpt}%
+    \addvspace{2.25em \@plus\js@mpt}%
     \begingroup
       \parindent \z@
 %     \@pnumwidth should be \@tocrmarg
 \newcommand*{\l@chapter}[2]{%
   \ifnum \c@tocdepth >\m@ne
     \addpenalty{-\@highpenalty}%
-    \addvspace{1.0em \@plus\ltjs@mpt}
+    \addvspace{1.0em \@plus\js@mpt}
 %   \vskip 1.0em \@plus\p@   % book.clsでは↑がこうなっている
     \begingroup
       \parindent\z@
 \newcommand*{\l@section}[2]{%
   \ifnum \c@tocdepth >\z@
     \addpenalty{\@secpenalty}%
-    \addvspace{1.0em \@plus\ltjs@mpt}%
+    \addvspace{1.0em \@plus\js@mpt}%
     \begingroup
       \parindent\z@
 %     \rightskip\@pnumwidth
 %
 %    \begin{macrocode}
 \def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else
-  \vskip \z@ \@plus.2\ltjs@mpt
+  \vskip \z@ \@plus.2\js@mpt
   {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
     \parindent #2\relax\@afterindenttrue
    \interlinepenalty\@M
 %<!book>    \@mkboth{\indexname}{\indexname}%
     \plainifnotempty % \thispagestyle{plain}
     \parindent\z@
-    \parskip\z@ \@plus .3\ltjs@mpt\relax
+    \parskip\z@ \@plus .3\js@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\js@mpt \@plus5\js@mpt \@minus3\js@mpt\relax}
 %    \end{macrocode}
 % \end{macro}
 %
 %
 % [2014-07-02 LTJ] |\ifydir| を使わない形に書換えました。
 %
+% [2016-07-11] コミュニティ版p\LaTeX の変更に追随しました(Thanks: 角藤さん)。
+%
 %    \begin{macrocode}
-\renewcommand\@makefnmark{\hbox{}\hbox{%
-  \unless\ifnum\ltjgetparameter{direction}=3 \@textsuperscript{\normalfont\@thefnmark}%
-  \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi}\hbox{}}
+\renewcommand\@makefnmark{%
+  \unless\ifnum\ltjgetparameter{direction}=3
+    \hbox{}\hbox{\@textsuperscript{\normalfont\@thefnmark}}\hbox{}%
+  \else\hbox{\yoko \@textsuperscript{\normalfont\@thefnmark}}\fi}
 %    \end{macrocode}
 % \end{macro}
 %
 %
 %    \begin{macrocode}
 \renewcommand{\footnoterule}{%
-  \kern-3\ltjs@mpt
-  \hrule width .4\columnwidth height \ltjs@mpt
-  \kern 2.6\ltjs@mpt}
+  \kern-3\js@mpt
+  \hrule width 0.4\columnwidth height 0.4\js@mpt
+  \kern 2.6\js@mpt}
 %    \end{macrocode}
 % \end{macro}
 %