OSDN Git Service

changed descriptions of callback
[luatex-ja/luatexja.git] / src / ltjsclasses.dtx
index b955ee2..a3a3c6e 100644 (file)
 %
 %  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.
 %  -----------------------------------------
 %
 % \fi
-% \CheckSum{4988}
+% \CheckSum{5202}
 %% \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>
-  [2013/06/06 ]
+  [2015/10/18 ]
 %<*driver>
 \documentclass{ltjsarticle}
 \usepackage{doc}
+\usepackage{fontspec}
+\usepackage[ipaex,nfssonly]{luatexja-preset}
+%%%%\usepackage{unicode-math}
+%%%%\setmathfont{Latin Modern Math}
 \usepackage[unicode]{hyperref}
 \addtolength{\textwidth}{-1in}
 \addtolength{\evensidemargin}{1in}
 %
 % \subsection{\texttt{jsclasses.dtx}からの主な変更点}
 % 全ての変更点を知りたい場合は,|jsclasses.dtx| と |ltjsclasses.dtx| で |diff| を
-% とって下さい。
+% とって下さい。zw, zh は全て |\zw|, |\zh| に置き換えられています。
 % \begin{itemize}
 % \item フォントメトリック関係のオプション |winjis |は単に無視されます。
 % \item 標準では |jfm-ujis.lua|(Lua\TeX-ja標準のメトリック,OTFパッケージのものがベース)を使用します。
 %   これがあると |grfext.sty| を読み込んだ際にエラーを引き起こすので削除しました。
 % \end{itemize}
 %
-% \StopEventually
+% [2014-02-07 LTJ] jsclasses 2014-02-07 ベースにしました.
+%
+% [2014-07-26 LTJ] 縦組用和文フォントの設定を加えました.
+%
+% [2014-12-24 LTJ] |\@setfontsize| 中の和欧文間空白の設定で if 文が抜けていたのを直しました.
+%
+% [2016-01-30 LTJ] |\rmfamily| 他で和文フォントファミリも変更するコードを
+% Lua\TeX-ja カーネル内に移しました.
+%
+% \StopEventually{}
 %
 % 以下では実際のコードに即して説明します。
 % \section{Lua\TeX-jaの読み込み}
 % あるいは |\documentclass[オプション]{ltjsarticle}|
 % のように呼び出します。
 %
-% 最初に,オプションに関連するいくつかのコマンドやスイッチ(論理変数)を定
+% まず,オプションに関連するいくつかのコマンドやスイッチ(論理変数)を定
 % 義します。
 %
 % \begin{macro}{\if@restonecol}
 %
 % \begin{macro}{\if@enablejfam}
 %
-% å\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\82\92æ\95°å¼\8fã\83\95ã\82©ã\83³ã\83\88ã\81¨ã\81\97ã\81¦ç\99»é\8c²ã\81\99ã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\82\92示ã\81\99ã\82¹ã\82¤ã\83\83ã\83\81ã\81§ã\81\99ã\80\82
+% å\92\8cæ\96\87ã\83\95ã\82©ã\83³ã\83\88ã\82\92æ\95°å¼\8fã\83\95ã\82©ã\83³ã\83\88ã\81¨ã\81\97ã\81¦ç\99»é\8c²ã\81\99ã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\82\92示ã\81\99ã\82¹ã\82¤ã\83\83ã\83\81ã\81§ã\81\99ã\81\8cï¼\8c
 % 実際には用いられません。
 %
 %    \begin{macrocode}
 %
 % \paragraph{用紙サイズ}
 %
-% JISやISOのA0判は面積$1\,\mathrm{m}^2$,縦横比$1:\sqrt{2}$
-% の長方形の辺の長さをmm単位に切り捨てたものです。
-% これを基準として順に半截してはmm単位に切り捨てたものがA1,A2,…です。
+% JISやISOのA0判は面積 $1\,\mathrm{m}^2$,縦横比 $1:\sqrt{2}$
+% の長方形の辺の長さを mm 単位に切り捨てたものです。
+% これを基準として順に半截しては mm 単位に切り捨てたものがA1,A2,…です。
 %
 % B判はJISとISOで定義が異なります。
-% JISではB0判の面積が$1.5\,\mathrm{m}^2$ですが,
+% JISではB0判の面積が $1.5\,\mathrm{m}^2$ ですが,
 % ISOではB1判の辺の長さがA0判とA1判の辺の長さの幾何平均です。
-% したがってISOのB0判は$1000\,\mathrm{mm} \times 1414\,\mathrm{mm}$です。
-% このため,\LaTeXe の\texttt{b5paper}
-% は$250\,\mathrm{mm} \times 176\,\mathrm{mm}$ですが,
-% \pLaTeXe の\texttt{b5paper}
-% は$257\,\mathrm{mm} \times 182\,\mathrm{mm}$になっています。
+% したがってISOのB0判は $1000\,\mathrm{mm} \times 1414\,\mathrm{mm}$ です。
+% このため,\LaTeXe の \texttt{b5paper}
+% は $250\,\mathrm{mm} \times 176\,\mathrm{mm}$ ですが,
+% \pLaTeXe の \texttt{b5paper}
+% は $257\,\mathrm{mm} \times 182\,\mathrm{mm}$ になっています。
 % ここでは\pLaTeXe にならってJISに従いました。
-%
+% 
 % デフォルトは \texttt{a4paper} です。
 %
 % \texttt{b5var}(B5変形,182mm×230mm),
 %
 % \paragraph{slide}
 %
-% オプション\texttt{slide}を新設しました。
+% オプション \texttt{slide} を新設しました。
 %
 %    \begin{macrocode}
 \newif\if@slide
 %
 % \paragraph{サイズオプション}
 %
-% 10pt,11pt,12ptのほかに,8pt,9pt,14pt,17pt,21pt,25pt,30pt,36pt,43ptを追加しました。
-% これは等比数列になるように選んだものです(従来の20ptも残しました)。
+% 10pt,11pt,12pt のほかに,8pt,9pt,14pt,17pt,21pt,25pt,30pt,36pt,43pt を追加しました。
+% これは等比数列になるように選んだものです(従来の 20pt も残しました)。
 % |\@ptsize| の定義が変だったのでご迷惑をおかけしましたが,
 % 標準的なドキュメントクラスと同様にポイント数から10を引いたものに直しました。
 %
 \DeclareOption{43pt}{\renewcommand{\@ptsize}{33}}
 \DeclareOption{12Q}{\renewcommand{\@ptsize}{1200}}
 \DeclareOption{14Q}{\renewcommand{\@ptsize}{1400}}
+\DeclareOption{10ptj}{\renewcommand{\@ptsize}{1001}}
+\DeclareOption{10.5ptj}{\renewcommand{\@ptsize}{1051}}
+\DeclareOption{11ptj}{\renewcommand{\@ptsize}{1101}}
+\DeclareOption{12ptj}{\renewcommand{\@ptsize}{1201}}
 %    \end{macrocode}
 %
 % \paragraph{トンボオプション}
 %
-% トンボ(crop marks)を出力します。
+% トンボ(crop marks)を出力します。
 % 実際の処理は |lltjcore.sty| で行います。
-% オプション\texttt{tombow}で日付付きのトンボ,
-% オプション\texttt{tombo}で日付なしのトンボを出力します。
+% オプション \texttt{tombow} で日付付きのトンボ,
+% オプション \texttt{tombo} で日付なしのトンボを出力します。
 % これらはアスキー版のままです。
 % カウンタ |\hour|,|\minute| は |luatexja-compat.sty| で宣言されています。
 %
 %
 % \paragraph{面付け}
 %
-% オプション\texttt{mentuke}で幅ゼロのトンボを出力します。
+% オプション \texttt{mentuke} で幅ゼロのトンボを出力します。
 % 面付けに便利です。これもアスキー版のままです。
 %
 %    \begin{macrocode}
 %
 % \paragraph{両面,片面オプション}
 %
-% \texttt{twoside}で奇数ページ・偶数ページのレイアウトが変わります。
+% \texttt{twoside} で奇数ページ・偶数ページのレイアウトが変わります。
 %
-% [2003-04-29] \texttt{vartwoside}でどちらのページも傍注が右側になります。
+% [2003-04-29] \texttt{vartwoside} でどちらのページも傍注が右側になります。
 %
 %    \begin{macrocode}
 \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
 %
 % \paragraph{二段組}
 %
-% \texttt{twocolumn}で二段組になります。
+% \texttt{twocolumn} で二段組になります。
 %
 %    \begin{macrocode}
 \DeclareOption{onecolumn}{\@twocolumnfalse}
 %
 % \paragraph{表題ページ}
 %
-% \texttt{titlepage}で表題・概要を独立したページに出力します。
+% \texttt{titlepage} で表題・概要を独立したページに出力します。
 %
 %    \begin{macrocode}
 \DeclareOption{titlepage}{\@titlepagetrue}
 % \paragraph{右左起こし}
 %
 % 書籍では章は通常は奇数ページ起こしになりますが,
-% \texttt{openany}で偶数ページからでも始まるようになります。
+% \texttt{openany} で偶数ページからでも始まるようになります。
 %
 %    \begin{macrocode}
 %<book>\DeclareOption{openright}{\@openrighttrue}
 %    \end{macrocode}
 % \end{environment}
 %
-% \texttt{leqno}で数式番号が左側になります。
-% \texttt{fleqn}で数式が本文左端から一定距離のところに出力されます。
+% \texttt{leqno} で数式番号が左側になります。
+% \texttt{fleqn} で数式が本文左端から一定距離のところに出力されます。
 % 森本さんにしたがって訂正しました。
 %
 %    \begin{macrocode}
 %
 % \paragraph{ドラフト}
 %
-% \texttt{draft}でoverfull boxの起きた行末に5ptの罫線を引きます。
+% \texttt{draft} でoverfull boxの起きた行末に5ptの罫線を引きます。
 %
 %    \begin{macrocode}
 \newif\ifdraft
 %
 % \paragraph{英語化}
 %
-% オプション\texttt{english}を新設しました。
+% オプション \texttt{english} を新設しました。
 %
 %    \begin{macrocode}
 \newif\if@english
 %
 % \paragraph{ltjsreport相当}
 %
-% オプション\texttt{report}を新設しました。
+% オプション \texttt{report} を新設しました。
 %
 %    \begin{macrocode}
 %<*book>
   \mag 1077
   \def\inv@mag{0.928505}
 \fi
+\ifnum\@ptsize=1001
+  \mag 1085
+  \def\inv@mag{0.921659}
+\fi
+\ifnum\@ptsize=1051
+  \mag 1139
+  \def\inv@mag{0.877963}
+\fi
+\ifnum\@ptsize=1101
+  \mag 1194
+  \def\inv@mag{0.837521}
+\fi
+\ifnum\@ptsize=1201
+  \mag 1302
+  \def\inv@mag{0.768049}
+\fi
 %<*kiyou>
 \mag 977
 \def\inv@mag{1.02354}
 % \begin{macro}{\pdfpageheight}
 % 出力のPDFの用紙サイズをここで設定しておきます。
 % |tombow| が真のときは2インチ足しておきます。
+%
+% [2015-10-18 LTJ] Lua\TeX\ 0.81.0ではプリミティブの名称変更がされたので,
+% それに合わせておきます.
 %    \begin{macrocode}
 \setlength{\@tempdima}{\paperwidth}
 \setlength{\@tempdimb}{\paperheight}
   \advance \@tempdima 2in
   \advance \@tempdimb 2in
 \fi
-\setlength{\pdfpagewidth}{\@tempdima}
-\setlength{\pdfpageheight}{\@tempdimb}
+\ifdefined\pdfpagewidth
+  \setlength{\pdfpagewidth}{\@tempdima}
+  \setlength{\pdfpageheight}{\@tempdimb}
+\else
+  \setlength{\pagewidth}{\@tempdima}
+  \setlength{\pageheight}{\@tempdimb}
+\fi
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %
-% \section{和文フォントの選択}
+% \section{和文フォントの変更}
 %
 % JISの1ポイントは0.3514mm(約1/72.28インチ),
 % PostScriptの1ポイントは1/72インチですが,
 % 何らかの理由で非埋め込みフォントが正しく利用できない場合にのみ |luatexja.cfg| によって
 % セットされるものです。
 %
+% [2014-07-26 LTJ] なお,現状のところ,縦組用JFMは |jfm-ujisv.lua| しか準備していません.
+%
 %    \begin{macrocode}
 %<*!jspf>
 \expandafter\let\csname JY3/mc/m/n/10\endcsname\relax
     \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] \ltj@stdgtfont:jfm=ujis}{}
   \fi
 \fi
+\DeclareFontShape{JT3}{mc}{m}{n}{<-> s * [0.924872] \ltj@stdmcfont:jfm=ujisv}{}
+\DeclareFontShape{JT3}{gt}{m}{n}{<-> s * [0.924872] \ltj@stdgtfont:jfm=ujisv}{}
 %</!jspf>
 %    \end{macrocode}
 %
 %
 % 某学会誌では,
 % 和文フォントをPostScriptの9ポイントにするために,
-% $0.9*72.27/72 \simeq 0.903375$倍します。
+% $0.9*72.27/72 \simeq 0.903375$ 倍します。
 %
 %    \begin{macrocode}
 %<*jspf>
     \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] \ltj@stdgtfont:jfm=ujis}{}
   \fi
 \fi
+\DeclareFontShape{JT3}{mc}{m}{n}{<-> s * [0.903375] \ltj@stdmcfont:jfm=ujisv}{}
+\DeclareFontShape{JT3}{gt}{m}{n}{<-> s * [0.903375] \ltj@stdgtfont:jfm=ujisv}{}
 %</jspf>
 %    \end{macrocode}
 %
 % 和文でイタリック体,斜体,サンセリフ体,
 % タイプライタ体の代わりにゴシック体を使うことにします。
 %
+% [2014-03-25 LTJ] タイプライタ体に合わせるファミリを |\jttdefault| とし,
+% 通常のゴシック体と別にできるようにしました.|\jttdefault| は,標準で
+% |\gtdefault| と定義しています.
+%
 % [2003-03-16] イタリック体,斜体について,和文でゴシックを当てていましたが,
 % 数学の定理環境などで多量のイタリック体を使うことがあり,ゴシックに
 % すると黒々となってしまうという弊害がありました。
 %
 % [2004-11-03] |\rmfamily| も和文対応にしました。
 %
+% [2016-01-30 LTJ] |\rmfamily|, |\sffamily|, |\ttfamily| の再定義をLua\TeX-ja
+% カーネルに移動させたので,ここでは和文対応にするフラグ |\@ltj@match@family|\ 
+% を有効にさせるだけでよいです.
 %    \begin{macrocode}
 \DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{}
 \DeclareFontShape{JY3}{gt}{bx}{n}{<->ssub*gt/m/n}{}
 %% \DeclareFontShape{JT3}{gt}{m}{sl}{<->ssub*gt/m/n}{}
 %% \DeclareFontShape{JT3}{mc}{bx}{it}{<->ssub*gt/m/n}{}
 %% \DeclareFontShape{JT3}{mc}{bx}{sl}{<->ssub*gt/m/n}{}
-\DeclareRobustCommand\rmfamily
-        {\not@math@alphabet\rmfamily\mathrm
-         \romanfamily\rmdefault\kanjifamily\mcdefault\selectfont}
-\DeclareRobustCommand\sffamily
-        {\not@math@alphabet\sffamily\mathsf
-         \romanfamily\sfdefault\kanjifamily\gtdefault\selectfont}
-\DeclareRobustCommand\ttfamily
-        {\not@math@alphabet\ttfamily\mathtt
-         \romanfamily\ttdefault\kanjifamily\gtdefault\selectfont}
+\renewcommand\jttdefault{\gtdefault}\@ltj@match@familytrue
 %    \end{macrocode}
 %%
 % Lua\TeX-jaでは和文組版に伴うグルーはノードベースで挿入するようになり,また
 %
 % これは |\pounds| 命令で実際に呼び出される文字です。
 % 従来からのOT1エンコーディングでは |\$| のイタリック体が |\pounds|
-% なので\texttt{cmti}が使われていましたが,
-% 1994年春からは\texttt{cmu}(upright italic,直立イタリック体)
+% なので \texttt{cmti} が使われていましたが,
+% 1994年春からは \texttt{cmu}(upright italic,直立イタリック体)
 % に変わりました。
-% しかし\texttt{cmu}はその性格からして実験的なものであり,
+% しかし \texttt{cmu} はその性格からして実験的なものであり,
 % |\pounds| 以外で使われるとは思えないので,
-% ここでは\texttt{cmti}に戻してしまいます。
+% ここでは \texttt{cmti} に戻してしまいます。
 %
 % [2003-08-20] Computer Modernフォントを使う機会も減り,T1エンコーディング
 % が一般的になってきました。この定義はもうあまり意味がないので消します。
 %    \end{macrocode}
 % \end{macro}
 %
-% 「〒515」の記号と数字の間に四分アキが入らないようにします。
+% アスキーの \texttt{kinsoku.dtx} では「’」「“」「”」前後のペナルティが5000に
+% なっていたので,\texttt{jsclasses.dtx} ではそれを 10000 に補正していました。
+% しかし,Lua\TeX-jaでは最初からこれらのパラメータは 10000 なので,
+% もはや補正する必要はありません。
+%
+% 「\TeX!」「〒515」の記号と数字の間に四分アキが入らないようにします。
 %
 %    \begin{macrocode}
-\ltjsetparameter{jaxspmode={`〒,2}}
+\ltjsetparameter{jaxspmode={`!,2}}
+\ltjsetparameter{jaxspmode={`〒,1}}
 %    \end{macrocode}
 %
 % 「CやC++では……」と書くと,C++の直後に四分アキが入らないのでバランスが悪くなります。
-% 四分アキが入るようにしました。\%の両側も同じです。
+% 四分アキが入るようにしました。\% の両側も同じです。
 %
 %    \begin{macrocode}
 \ltjsetparameter{alxspmode={`+,3}}
 \ltjsetparameter{alxspmode={`\%,3}}
 %    \end{macrocode}
 %
+% \texttt{jsclasses.dtx} では80〜ffの文字の |\xspcode| を全て3にしていましたが,
+% Lua\TeX-jaでは同様の内容が最初から設定されていますので,対応する部分は削除。
+%
 % \begin{macro}{\@}
 %
-% \LaTeX の |\def\@{\spacefactor\@m}| という定義(|\@m| は1000)
-% では |I watch TV\@.| と書くとVとピリオドのペアカーニングが効かなくなります。
+% 欧文といえば,\LaTeX の |\def\@{\spacefactor\@m}| という定義(|\@m| は1000)
+% では |I watch TV\@.| と書くと V とピリオドのペアカーニングが効かなくなります。
 % そこで,次のような定義に直し,|I watch TV.\@| と書くことにします。
 %
 %    \begin{macrocode}
 %
 % |\parindent| については,0(以下)でなければ全角幅(|1\zw|)に直します。
 %
-% [2008-02-18] |english| オプションで |\parindent| を1emにしました。
+% [2008-02-18] |english| オプションで |\parindent| を 1em にしました。
+%
+% [2014-05-14 LTJ] |\ltjsetparameter|の実行は時間がかかるので,
+% |\ltjsetkanjiskip| と |\ltjsetxkanjiskip|(両者とも,
+% 実行前には |\ltj@setpar@global| の実行が必要)にしました.
+%
+% [2014-12-24 LTJ] |jsclasses| では,|\@setfontsize| 中で |xkanjiskip| を
+% 設定するのは現在の和欧文間空白の自然長が正の場合だけでした.
+% |ltjsclasses| では最初からこの判定が抜けてしまっていたので,復活させます.
 %
 %    \begin{macrocode}
 \def\@setfontsize#1#2#3{%
       \parindent=1\zw
     \fi
   \fi
-  \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
-  \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
-    \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+  \ltj@setpar@global
+  \ltjsetkanjiskip\z@ plus .1\zw minus .01\zw
+  \@tempskipa=\ltjgetparameter{xkanjiskip}
+  \ifdim\@tempskipa>\z@
+    \if@slide 
+      \ltjsetxkanjiskip .1em
+    \else
+     \ltjsetxkanjiskip .25em plus .15em minus .06em
+    \fi
   \fi}
 %    \end{macrocode}
 % \end{macro}
 %
 % TODO: Hasumiさん [qa:54539] のご指摘は考慮中です。
 %
+% [2015-01-07 LTJ] 遅くなりましたが,
+% \url{http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=1005} にあったZRさんのパッチを取り込みました.
+%
 %    \begin{macrocode}
 \newif\ifnarrowbaselines
 \if@english
   \belowdisplayskip=\skip4
   \belowdisplayshortskip=\skip6\relax}
 \def\widebaselines{\narrowbaselinesfalse\@currsize\selectfont}
+\def\ltj@@ifnarrowbaselines{%
+  \ifnarrowbaselines\expandafter\@firstoftwo
+  \else \expandafter\@secondoftwo
+  \fi
+}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % 公称10ポイントの和文フォントが約9.25ポイント
 % (アスキーのものの0.961倍)であることもあり,
 % 行送りがかなりゆったりとしたと思います。
-% 実際,$16/9.25 \approx 1.73$であり,
+% 実際,$16/9.25 \approx 1.73$ であり,
 % 和文の推奨値の一つ「二分四分」(1.75)
 % に近づきました。
 %
 %    \begin{macrocode}
 \renewcommand{\normalsize}{%
-  \ifnarrowbaselines
-    \@setfontsize\normalsize\@xpt\@xiipt
-  \else
-    \@setfontsize\normalsize\@xpt{\n@baseline}%
-  \fi
+  \ltj@@ifnarrowbaselines
+    {\@setfontsize\normalsize\@xpt\@xiipt}%
+    {\@setfontsize\normalsize\@xpt{\n@baseline}}%
 %    \end{macrocode}
 %
 % 数式の上のアキ(|\abovedisplayskip|),
 % ここで実際に標準フォントサイズで初期化します。
 %
 %    \begin{macrocode}
-\normalsize
+\mcfamily\selectfont\normalsize
 %    \end{macrocode}
 %
 % \end{macro}
 % \begin{macro}{\Chs}
 %
 % 基準となる長さの設定をします。
-% \texttt{lltjfont.dtx}で宣言されている
+% \texttt{lltjfont.sty}で宣言されている
 % パラメータに実際の値を設定します。
 % たとえば |\Cwd| は |\normalfont| の全角幅(|1\zw|)です。
 %
 %
 % |\small| も |\normalsize| と同様に設定します。
 % 行送りは,|\normalsize| が16ポイントなら,
-% 割合からすれば$16 \times 0.9 = 14.4$ポイントになりますが,
+% 割合からすれば $16 \times 0.9 = 14.4$ ポイントになりますが,
 % |\small| の使われ方を考えて,ここでは和文13ポイント,
 % 欧文11ポイントとします。
-% また,|\topsep| と |\parsep| は,元はそれぞれ$4 \pm 2$,$2 \pm 1$
+% また,|\topsep| と |\parsep| は,元はそれぞれ $4 \pm 2$,$2 \pm 1$
 % ポイントでしたが,ここではゼロ(|\z@|)にしました。
 %
 %    \begin{macrocode}
 \newcommand{\small}{%
-  \ifnarrowbaselines
-%<!kiyou>    \@setfontsize\small\@ixpt{11}%
-%<kiyou>    \@setfontsize\small{8.8888}{11}%
-  \else
-%<!kiyou>    \@setfontsize\small\@ixpt{13}%
-%<kiyou>    \@setfontsize\small{8.8888}{13.2418}%
-  \fi
+  \ltj@@ifnarrowbaselines
+%<!kiyou>    {\@setfontsize\small\@ixpt{11}}%
+%<kiyou>    {\@setfontsize\small{8.8888}{11}}%
+%<!kiyou>    {\@setfontsize\small\@ixpt{13}}%
+%<kiyou>    {\@setfontsize\small{8.8888}{13.2418}}%
   \abovedisplayskip 9\p@ \@plus3\p@ \@minus4\p@
   \abovedisplayshortskip  \z@ \@plus3\p@
   \belowdisplayskip \abovedisplayskip
 %
 %    \begin{macrocode}
 \newcommand{\footnotesize}{%
-  \ifnarrowbaselines
-%<!kiyou>    \@setfontsize\footnotesize\@viiipt{9.5}%
-%<kiyou>    \@setfontsize\footnotesize{8.8888}{11}%
-  \else
-%<!kiyou>    \@setfontsize\footnotesize\@viiipt{11}%
-%<kiyou>    \@setfontsize\footnotesize{8.8888}{13.2418}%
-  \fi
+  \ltj@@ifnarrowbaselines
+%<!kiyou>    {\@setfontsize\footnotesize\@viiipt{9.5}}%
+%<kiyou>    {\@setfontsize\footnotesize{8.8888}{11}}%
+%<!kiyou>    {\@setfontsize\footnotesize\@viiipt{11}}%
+%<kiyou>    {\@setfontsize\footnotesize{8.8888}{13.2418}}%
   \abovedisplayskip 6\p@ \@plus2\p@ \@minus3\p@
   \abovedisplayshortskip  \z@ \@plus2\p@
   \belowdisplayskip \abovedisplayskip
 % 上下の行の文字が |\lineskiplimit| より接近したら,
 % |\lineskip| より近づかないようにします。
 % 元は0ptでしたが1ptに変更しました。
-% \texttt{normal...}の付いた方は保存用です。
+% \texttt{normal...} の付いた方は保存用です。
 %
 %    \begin{macrocode}
 \setlength\lineskip{1\p@}
 % \begin{macro}{\parindent}
 %
 % |\parskip| は段落間の追加スペースです。
-% 元は0pt plus 1ptになっていましたが,ここではゼロにしました。
+% 元は 0pt plus 1pt になっていましたが,ここではゼロにしました。
 % |\parindent| は段落の先頭の字下げ幅です。
 %
 %    \begin{macrocode}
 %
 % \begin{macro}{\interlinepenalty}
 %
-% 段落中の改ページのペナルティです。デフォルトは0です。
+% 段落中の改ページのペナルティです。デフォルトは 0 です。
 %
 %    \begin{macrocode}
 % \interlinepenalty 0
 % \begin{macro}{\topskip}
 %
 % |\topskip| は本文領域上端と本文1行目のベースラインとの距離です。
-% あまりぎりぎりの値にすると,本文中に$\int$のような高い文字が
+% あまりぎりぎりの値にすると,本文中に $\int$ のような高い文字が
 % 入ったときに1行目のベースラインが他のページより下がってしまいます。
 % ここでは本文の公称フォントサイズ(10pt)にします。
 %
 % \begin{macro}{\footskip}
 %
 % |\footskip| は本文領域下端とフッタ下端との距離です。
-% 標準クラスファイルでは,bookで0.35in(約8.89mm),
-% book以外で30pt(約10.54mm)となっていましたが,
+% 標準クラスファイルでは,book で0.35in(約8.89mm),
+% book 以外で30pt(約10.54mm)となっていましたが,
 % ここではA4判のときちょうど1cmとなるように,
 % |\paperheight| の0.03367倍(最小 |\baselineskip|)としました。
 % 書籍については,フッタは使わないことにして,ゼロにしました。
 % \begin{macro}{\headsep}
 %
 % |\headsep| はヘッダ下端と本文領域上端との距離です。
-% 元はbookで18pt(約6.33mm),
+% 元は book で18pt(約6.33mm),
 % それ以外で25pt(約8.79mm)になっていました。
-% ここではarticleは |\footskip| $-$ |\topskip| としました。
+% ここでは article は |\footskip| $-$ |\topskip| としました。
 %
 %    \begin{macrocode}
 %<*article>
 \newdimen\fullwidth
 %    \end{macrocode}
 %
-% この |\fullwidth| はarticleでは紙幅 |\paperwidth|の0.76倍を超えない
+% この |\fullwidth| は article では紙幅 |\paperwidth|の0.76倍を超えない
 % 全角幅の整数倍(二段組では全角幅の偶数倍)にします。0.76倍という数値は
 % A4縦置きの場合に紙幅から約2インチを引いた値になるように選びました。
-% bookでは紙幅から36ミリを引いた値にしました。
+% book では紙幅から36ミリを引いた値にしました。
 %
 % \begin{macro}{\textwidth}
 %
 % はトンボの内側に |1in| のスペース(|1truein| ではなく)を挿入するので,
 % 場合分けしています。
 %
-% [2011-10-03] Lua\TeX{} (pdf\TeX?) では |1truein| ではなく
+% [2011-10-03 LTJ] Lua\TeX{} (pdf\TeX?) では |1truein| ではなく
 % |1in| になるようです。
 %
 %    \begin{macrocode}
 % [2003-06-26] |\headheight| を |\topskip| に直しました。
 % 以前はこの二つは値が同じであったので,変化はないはずです。
 %
-% [2011-10-03] ここも |\oddsidemargin| のときと同様に |-\inv@mag in| ではなく
+% [2011-10-03 LTJ] ここも |\oddsidemargin| のときと同様に |-\inv@mag in| ではなく
 % |-1in| にします。
 %
 %    \begin{macrocode}
 % \begin{macro}{\footins}
 %
 % |\skip\footins| は本文の最終行と最初の脚注との間の距離です。
-% 標準の10ポイントクラスでは9 plus 4 minus 2ポイントになっていますが,
+% 標準の10ポイントクラスでは 9 plus 4 minus 2 ポイントになっていますが,
 % 和文の行送りを考えてもうちょっと大きくします。
 %
 %    \begin{macrocode}
 % \begin{macro}{\topfraction}
 %
 % 本文ページ上部のフロートが占有できる最大の割合です。
-% フロートが入りやすいように,元の値0.7を0.8 [2003-08-23: 0.85]に変えてあります。
+% フロートが入りやすいように,元の値 0.7 を 0.8 [2003-08-23: 0.85] に変えてあります。
 %
 %    \begin{macrocode}
 \renewcommand{\topfraction}{.85}
 %
 % \begin{macro}{\bottomfraction}
 %
-% 本文ページ下部のフロートが占有できる最大の割合です。元は0.3でした。
+% 本文ページ下部のフロートが占有できる最大の割合です。元は 0.3 でした。
 %
 %    \begin{macrocode}
 \renewcommand{\bottomfraction}{.8}
 % \begin{macro}{\textfraction}
 %
 % 本文ページに最低限入らなければならない本文の割合です。
-% フロートが入りやすいように元の0.2を0.1に変えました。
+% フロートが入りやすいように元の 0.2 を 0.1 に変えました。
 %
 %    \begin{macrocode}
 \renewcommand{\textfraction}{.1}
 % \begin{macro}{\floatpagefraction}
 %
 % フロートだけのページでのフロートの最小割合です。
-% これも0.5を0.8に変えてあります。
+% これも 0.5 を 0.8 に変えてあります。
 %
 %    \begin{macrocode}
 \renewcommand{\floatpagefraction}{.8}
 %
 % 二段組のとき本文ページ上部に出力できる
 % 段抜きフロートが占めうる最大の割合です。
-% 0.7を0.8に変えてあります。
+% 0.7 を 0.8 に変えてあります。
 %
 %    \begin{macrocode}
 \renewcommand{\dbltopfraction}{.8}
 %
 % 二段組のときフロートだけのページに入るべき
 % 段抜きフロートの最小割合です。
-% 0.5を0.8に変えてあります。
+% 0.5 を 0.8 に変えてあります。
 %
 %    \begin{macrocode}
 \renewcommand{\dblfloatpagefraction}{.8}
 % ページスタイルとして,\LaTeXe (欧文版)の標準クラス
 % では |empty|,|plain|,|headings|,|myheadings| があります。
 % このうち |empty|,|plain| スタイルは\LaTeXe 本体
-% で定義されています。
+% で定義されています。 
 %
 % アスキーのクラスファイルでは |headnombre|,|footnombre|,
 % |bothstyle|,|jpl@in| が追加されていますが,
 % |headings| スタイルはヘッダに見出しとページ番号を出力します。
 % ここではヘッダにアンダーラインを引くようにしてみました。
 %
-% まずarticleの場合です。
+% まず article の場合です。
 %
 %    \begin{macrocode}
 %<*article|kiyou>
 %</article|kiyou>
 %    \end{macrocode}
 %
-% 次はbookの場合です。
+% 次は book の場合です。
+% [2011-05-10] しっぽ愛好家さん [qa:6370] のパッチを取り込ませていただきました
+% (北見さん [qa:55896] のご指摘ありがとうございます)。
 %
 %    \begin{macrocode}
 %<*book>
+\newif\if@omit@number
 \def\ps@headings{%
   \let\@oddfoot\@empty
   \let\@evenfoot\@empty
   \def\chaptermark##1{\markboth{%
     \ifnum \c@secnumdepth >\m@ne
       \if@mainmatter
-        \@chapapp\thechapter\@chappos\hskip1\zw
+        \if@omit@number\else
+          \@chapapp\thechapter\@chappos\hskip1\zw
+        \fi
       \fi
     \fi
     ##1}{}}%
 % 二つ挿入した |\everyparhook| のうち後者が |\paragraph| 類の後で2回実行され,
 % それ以降は前者が実行されます。
 %
-% [2011-10-05] Lua\TeX-jaでは|\everyparhook|は不要なので削除。
+% [2011-10-05 LTJ] Lua\TeX-jaでは |\everyparhook| は不要なので削除。
 %
 %    \begin{macrocode}
 \def\@xsect#1{%
 %
 % 見出し番号のカウンタです。
 % |\newcounter| の第1引数が新たに作るカウンタです。
-% これは第2引数が増加するたびに0に戻されます。
+% これは第2引数が増加するたびに 0 に戻されます。
 % 第2引数は定義済みのカウンタです。
 %
 %    \begin{macrocode}
 % 部の見出しを出力します。
 % |\bfseries| を |\headfont| に変えました。
 %
-% |book| クラス以外では |secnumdepth| が$-1$より大きいとき
+% |book| クラス以外では |secnumdepth| が $-1$ より大きいとき
 % 部番号を付けます。
 %
 %    \begin{macrocode}
 %</!book>
 %    \end{macrocode}
 %
-% |book| クラスでは |secnumdepth| が$-2$より大きいとき部番号を付けます。
+% |book| クラスでは |secnumdepth| が $-2$ より大きいとき部番号を付けます。
 %
 %    \begin{macrocode}
 %<*book>
 %
 %    章の最初のページスタイルは,全体が |empty| でなければ |plain| に
 %    します。
-%    また,|\@topnum| を0にして,
+%    また,|\@topnum| を 0 にして,
 %    章見出しの上に図や表が来ないようにします。
 %
 %    \begin{macrocode}
   \plainifnotempty % 元: \thispagestyle{plain}
   \global\@topnum\z@
   \if@english \@afterindentfalse \else \@afterindenttrue \fi
-  \secdef\@chapter\@schapter}
+  \secdef
+    {\@omit@numberfalse\@chapter}%
+    {\@omit@numbertrue\@schapter}}
 %    \end{macrocode}
 % \end{macro}
 %
       \typeout{\@chapapp\thechapter\@chappos}%
       \addcontentsline{toc}{chapter}%
         {\protect\numberline
-        {\if@english\thechapter\else\@chapapp\thechapter\@chappos\fi}%
+        % {\if@english\thechapter\else\@chapapp\thechapter\@chappos\fi}%
+        {\@chapapp\thechapter\@chappos}%
         #1}%
     \else\addcontentsline{toc}{chapter}{#1}\fi
   \else
 %
 % \subsection{リスト環境}
 %
-% 第$k$レベルのリストの初期化をするのが |\@list|$k$です
+% 第 $k$ レベルのリストの初期化をするのが |\@list|$k$ です
 % ($k = \mathtt{i}, \mathtt{ii}, \mathtt{iii}, \mathtt{iv}$)。
-% |\@list|$k$は |\leftmargin| を |\leftmargin|$k$に設定します。
+% |\@list|$k$ は |\leftmargin| を |\leftmargin|$k$ に設定します。
 %
 % \begin{macro}{\leftmargini}
 %
-% 二段組であるかないかに応じてそれぞれ2em,2.5emでしたが,
+% 二段組であるかないかに応じてそれぞれ 2em,2.5em でしたが,
 % ここでは全角幅の2倍にしました。
 %
 % [2002-05-11] |3\zw| に変更しました。
 % \begin{macro}{\leftmarginvi}
 %
 %    |ii|,|iii|,|iv| は |\labelsep| と
-%    それぞれ`(m)',`vii.',`M.'の幅との和より大きくする
+%    それぞれ `(m)',`vii.',`M.' の幅との和より大きくする
 %    ことになっています。ここでは全角幅の整数倍に丸めました。
 %
 %    \begin{macrocode}
 %    リスト環境の前に空行がある場合,
 %    |\parskip| と |\topsep| に |\partopsep| を
 %    加えた値だけ縦方向の空白ができます。
-%    0に改変しました。
+%    0 に改変しました。
 %
 %    \begin{macrocode}
 \setlength\partopsep{\z@} % {2\p@ \@plus 1\p@ \@minus 1\p@}
 %    トップレベルの |itemize|,|enumerate| 環境でだけ
 %    最初と最後に行送りの半分の空きが入るようになっていました。
 %
-%    [2004-09-27] |\topsep| のグルー$_{-0.1}^{+0.2}$ |\baselineskip|
+%    [2004-09-27] |\topsep| のグルー $_{-0.1}^{+0.2}$ |\baselineskip|
 %    を思い切って外しました。
 %
 %    \begin{macrocode}
 % \paragraph{enumerate環境}
 %
 % |enumerate| 環境はカウンタ |enumi|,|enumii|,|enumiii|,
-% |enumiv| を使います。|enum|$n$は第$n$レベルの番号です。
+% |enumiv| を使います。|enum|$n$ は第 $n$ レベルの番号です。
 %
 % \begin{macro}{\theenumi}
 % \begin{macro}{\theenumii}
 % \begin{macro}{\theenumiv}
 %
 %    出力する番号の書式を設定します。
-%    これらは\LaTeX 本体(\texttt{ltlists.dtx}参照)で定義済みですが,
+%    これらは\LaTeX 本体(\texttt{ltlists.dtx} 参照)で定義済みですが,
 %    ここでは表し方を変えています。
 %    |\@arabic|,|\@alph|,|\@roman|,|\@Alph| はそれぞれ
 %    算用数字,小文字アルファベット,小文字ローマ数字,大文字アルファベット
 % \begin{macro}{\p@enumiii}
 % \begin{macro}{\p@enumiv}
 %
-%    |\p@enum|$n$は |\ref| コマンドで |enumerate| 環境の第$n$レベルの
+%    |\p@enum|$n$ は |\ref| コマンドで |enumerate| 環境の第 $n$ レベルの
 %    項目が参照されるときの書式です。
 %    これも第2レベルは和文用かっこにしました。
 %
 % \begin{macro}{\labelitemii}
 % \begin{macro}{\labelitemiii}
 % \begin{macro}{\labelitemiv}
-%    |itemize| 環境の第$n$レベルのラベルを作るコマンドです。
+%    |itemize| 環境の第 $n$ レベルのラベルを作るコマンドです。
 %    \begin{macrocode}
 \newcommand\labelitemi{\textbullet}
 \newcommand\labelitemii{\normalfont\bfseries \textendash}
 % \begin{environment}{quotation}
 %
 % 段落の頭の字下げ量を1.5emから |\parindent| に変えました。
-% また,右マージンを0にしました。
+% また,右マージンを 0 にしました。
 %
 %    \begin{macrocode}
 \newenvironment{quotation}{%
 %
 % [2003-11-05] ロジックを少し変えてみました。
 %
+% [2015-05-26] |listings| パッケージを使うときに|title| を指定すると次のエラーが出るのを修正.
+% \begin{verbatim}
+% ! Missing number, treated as zero.
+% \end{verbatim}
+% 
+%
 %    \begin{macrocode}
 %<*!jspf>
 % \long\def\@makecaption#1#2{{\small
 %   \advance\leftskip1cm
 %   \advance\rightskip1cm
 %   \vskip\abovecaptionskip
-%   \sbox\@tempboxa{#1\hskip1\zw\relax #2}%
+%   \sbox\@tempboxa{#1{\hskip1\zw}#2}%
 %   \ifdim \wd\@tempboxa >\hsize
-%     #1\hskip1\zw\relax #2\par
+%     #1{\hskip1\zw}#2\par
 %   \else
 %     \global \@minipagefalse
 %     \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
   \advance\leftskip .0628\linewidth
   \advance\rightskip .0628\linewidth
   \vskip\abovecaptionskip
-  \sbox\@tempboxa{#1\hskip1\zw\relax #2}%
+  \sbox\@tempboxa{#1{\hskip1\zw}#2}%
   \ifdim \wd\@tempboxa <\hsize \centering \fi
-  #1\hskip1\zw\relax #2\par
+  #1{\hskip1\zw}#2\par
   \vskip\belowcaptionskip}}
 %</!jspf>
 %<*jspf>
 %
 % \begin{macro}{\@dotsep}
 %
-% 点の間隔です(単位mu)。
+% 点の間隔です(単位 mu)。
 %
 % \begin{macro}{\c@tocdepth}
 %
 %
 % 目次を生成します。
 %
+% \begin{macro}{\js@tocl@width}
+%
+% [2013-12-30] |\prechaptername| などから見積もった目次のラベルの長さです。(by ts)
+%
 %    \begin{macrocode}
+\newdimen\js@tocl@width
 \newcommand{\tableofcontents}{%
 %<*book>
+  \settowidth\js@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
   \if@twocolumn
     \@restonecoltrue\onecolumn
   \else
   \@mkboth{\contentsname}{}%
 %</book>
 %<*!book>
+  \settowidth\js@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
   \section*{\contentsname}%
   \@mkboth{\contentsname}{\contentsname}%
 %</!book>
 %<book>  \if@restonecol\twocolumn\fi
 }
 %    \end{macrocode}
-% \end{macro}
+% \end{macro}\end{macro}
 %
 % \begin{macro}{\l@part}
 %
 %
 % \begin{macro}{\l@chapter}
 %
-% 章の目次です。|\@lnumwidth| を|4.683\zw|に増やしました。
+% 章の目次です。|\@lnumwidth| を |4.683\zw| に増やしました。
+%
+% [2013-12-30] |\@lnumwidth| を |\js@tocl@width| から
+% 決めるようにしてみました。(by ts)
 %
 %    \begin{macrocode}
 %<*book>
       \rightskip\@tocrmarg
       \parfillskip-\rightskip
       \leavevmode\headfont
-      \if@english\setlength\@lnumwidth{5.5em}\else\setlength\@lnumwidth{4.683\zw}\fi
+      % \if@english\setlength\@lnumwidth{5.5em}\else\setlength\@lnumwidth{4.683\zw}\fi
+      \setlength\@lnumwidth{\js@tocl@width}\advance\@lnumwidth 2.683\zw
       \advance\leftskip\@lnumwidth \hskip-\leftskip
       #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par
       \penalty\@highpenalty
       \rightskip\@tocrmarg
       \parfillskip-\rightskip
       \leavevmode\headfont
-      \setlength\@lnumwidth{4\zw}% 元1.5em [2003-03-02]
+      %\setlength\@lnumwidth{4\zw}% 元1.5em [2003-03-02]
+      \setlength\@lnumwidth{\js@tocl@width}\advance\@lnumwidth 2\zw
       \advance\leftskip\@lnumwidth \hskip-\leftskip
       #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par
     \endgroup
 % |1\zw|,|3.683\zw|に変えました。
 %
 %    \begin{macrocode}
-%<book>\newcommand*{\l@section}{\@dottedtocline{1}{1\zw}{3.683\zw}}
+%<book> % \newcommand*{\l@section}{\@dottedtocline{1}{1\zw}{3.683\zw}}
 %    \end{macrocode}
+%
+% [2013-12-30] 上のインデントは |\js@tocl@width| から決めるように
+% しました。(by ts)
+%
 % \end{macro}
 %
 % \begin{macro}{\l@subsection}
 % さらに下位レベルの目次項目の体裁です。
 % あまり使ったことがありませんので,要修正かもしれません。
 %
+% [2013-12-30] ここも  |\js@tocl@width| から決めるように
+% してみました。(by ts)
+%
 %    \begin{macrocode}
 %<*!book>
 % \newcommand*{\l@subsection}   {\@dottedtocline{2}{1.5em}{2.3em}}
-\newcommand*{\l@subsection}   {\@dottedtocline{2}{1\zw}{3\zw}}
 % \newcommand*{\l@subsubsection}{\@dottedtocline{3}{3.8em}{3.2em}}
-\newcommand*{\l@subsubsection}{\@dottedtocline{3}{2\zw}{3\zw}}
 % \newcommand*{\l@paragraph}    {\@dottedtocline{4}{7.0em}{4.1em}}
-\newcommand*{\l@paragraph}    {\@dottedtocline{4}{3\zw}{3\zw}}
 % \newcommand*{\l@subparagraph} {\@dottedtocline{5}{10em}{5em}}
-\newcommand*{\l@subparagraph} {\@dottedtocline{5}{4\zw}{3\zw}}
+%
+% \newcommand*{\l@subsection}   {\@dottedtocline{2}{1\zw}{3\zw}}
+% \newcommand*{\l@subsubsection}{\@dottedtocline{3}{2\zw}{3\zw}}
+% \newcommand*{\l@paragraph}    {\@dottedtocline{4}{3\zw}{3\zw}}
+% \newcommand*{\l@subparagraph} {\@dottedtocline{5}{4\zw}{3\zw}}
+%
+\newcommand*{\l@subsection}{%
+          \@tempdima\js@tocl@width \advance\@tempdima -1\zw
+          \@dottedtocline{2}{\@tempdima}{3\zw}}
+\newcommand*{\l@subsubsection}{%
+          \@tempdima\js@tocl@width \advance\@tempdima 0\zw
+          \@dottedtocline{3}{\@tempdima}{4\zw}}
+\newcommand*{\l@paragraph}{%
+          \@tempdima\js@tocl@width \advance\@tempdima 1\zw
+          \@dottedtocline{4}{\@tempdima}{5\zw}}
+\newcommand*{\l@subparagraph}{%
+          \@tempdima\js@tocl@width \advance\@tempdima 2\zw
+          \@dottedtocline{5}{\@tempdima}{6\zw}}
 %</!book>
 %<*book>
-\newcommand*{\l@subsection}   {\@dottedtocline{2}{3.8em}{3.2em}}
-\newcommand*{\l@subsubsection}{\@dottedtocline{3}{7.0em}{4.1em}}
-\newcommand*{\l@paragraph}    {\@dottedtocline{4}{10em}{5em}}
-\newcommand*{\l@subparagraph} {\@dottedtocline{5}{12em}{6em}}
+% \newcommand*{\l@subsection}   {\@dottedtocline{2}{3.8em}{3.2em}}
+% \newcommand*{\l@subsubsection}{\@dottedtocline{3}{7.0em}{4.1em}}
+% \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
+          \@dottedtocline{1}{\@tempdima}{3.683\zw}}
+\newcommand*{\l@subsection}{%
+          \@tempdima\js@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
+          \@dottedtocline{3}{\@tempdima}{4.5\zw}}
+\newcommand*{\l@paragraph}{%
+          \@tempdima\js@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
+          \@dottedtocline{5}{\@tempdima}{6.5\zw}}
 %</book>
 %    \end{macrocode}
 % \end{macro}
    \@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}
 % \begin{macro}{\bibindent}
 %
 % オープンスタイルの参考文献で使うインデント幅です。
-% 元は1.5emでした。
+% 元は 1.5em でした。
 %
 %    \begin{macrocode}
 \newdimen\bibindent
 % \begin{macro}{\@cite}
 % \begin{macro}{\@citex}
 %
-% 文献の番号を出力する部分は\texttt{ltbibl.dtx}で定義されていますが,
+% 文献の番号を出力する部分は \texttt{ltbibl.dtx} で定義されていますが,
 % コンマとかっこを和文フォントにするには次のようにします。
 % とりあえずコメントアウトしておきましたので,必要に応じて生かしてください。
 % かっこの前後に入るグルーを |\inhibitglue| で取っていますので,
 %
 % [2002-04-09] インプリメントの仕方を変えたため消しました。
 %
+% [2013-04-23] 新しい\pTeX では脚注番号のまわりにスペースが入りすぎることを防ぐため,
+% 北川さんのパッチ [qa:57090] を取り込みました。
+%
+% [2013-05-14] plcore.ltx に倣った形に書き直しました(Thanks: 北川さん)。
+%
+% [2014-07-02 LTJ] |\ifydir| を使わない形に書換えました.
+%
 %    \begin{macrocode}
-% \def\@makefnmark{\hbox{\@textsuperscript{\normalfont
-%       \ifx\@thefnmark\@empty\else
-%         \textasteriskcentered
-%       \fi
-%       \@thefnmark}}}
+\renewcommand\@makefnmark{\hbox{}\hbox{%
+  \unless\ifnum\ltjgetparameter{direction}=3 \@textsuperscript{\normalfont\@thefnmark}%
+  \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi}\hbox{}}
 %    \end{macrocode}
 % \end{macro}
 %
 %
 % 段落頭のかぎかっこなどを見かけ1字半下げから全角1字下げに直します。
 %
-% [2012-04-24] LuaTeX-jaではJFMに段落開始時の括弧類の字下げ幅をコントロール
+% [2012-04-24 LTJ] LuaTeX-jaではJFMに段落開始時の括弧類の字下げ幅をコントロール
 % する機能がありますが,|\item| 直後ではラベル用のボックスが段落先頭になる
 % ため,うまく働きませんでした.形を変えて復活させます.
 %
 % \begin{macro}{\TeX}
 % \begin{macro}{\LaTeX}
 %
-% これらは\texttt{ltlogos.dtx}で定義されていますが,
+% これらは \texttt{ltlogos.dtx} で定義されていますが,
 % TimesやHelveticaでも見栄えがするように若干変更しました。
 %
 % [2003-06-12] Palatinoも加えました(要調整)。
 %
 % |\LaTeXe| コマンドの |\mbox{\m@th ...| で始まる新しい定義では
 % 直後の和文との間に |xkanjiskip| が入りません。また,
-% |mathptmx| パッケージなどと併用すると,最後の$\varepsilon$
+% |mathptmx| パッケージなどと併用すると,最後の $\varepsilon$ 
 % 下がりすぎてしまいます。そのため,ちょっと手を加えました。
 %
 %    \begin{macrocode}
 %
 % \begin{macro}{\AmSTeX}
 %
-% \texttt{amstex.sty}で定義されています。
+% \texttt{amstex.sty} で定義されています。
 %
 %    \begin{macrocode}
 \def\AmSTeX{\protect\AmS-\protect\TeX{}}
 % \begin{macro}{\BibTeX}
 % \begin{macro}{\SliTeX}
 %
-% これらは\texttt{doc.dtx}から取ったものです。
+% これらは \texttt{doc.dtx} から取ったものです。
 % ただし,|\BibTeX| だけはちょっと修正しました。
 %
 %    \begin{macrocode}
 %    \begin{macrocode}
 %<!jspf>\newcommand{\figurename}{\if@english Fig.~\else 図\fi}
 %<jspf>\newcommand{\figurename}{Fig.~}
-%<!jspf>\newcommand{\tablename}{\if@english Table.~\else 表\fi}
+%<!jspf>\newcommand{\tablename}{\if@english Table~\else 表\fi}
 %<jspf>\newcommand{\tablename}{Table~}
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{\appendixname}
 % \begin{macro}{\abstractname}
 %    \begin{macrocode}
-\newcommand{\appendixname}{\if@english Appendix~\else 付録\fi}
+% \newcommand{\appendixname}{\if@english Appendix~\else 付録\fi}
+\newcommand{\appendixname}{\if@english \else 付録\fi}
 %<!book>\newcommand{\abstractname}{\if@english Abstract\else 概要\fi}
 %    \end{macrocode}
 % \end{macro}
   \renewcommand\kanjifamilydefault{\gtdefault}
   \renewcommand\familydefault{\sfdefault}
   \raggedright
-  \ltjsetparameter{xkanjiskip={0.1em}}\relax
+  \ltj@setpar@global
+  \ltjsetxkanjiskip{0.1em}\relax
 \fi
 %    \end{macrocode}
 %