% pLaTeX2ε新ドキュメントクラス
%
% これは LaTeX3 Project の classes.dtx と株式会社アスキーの jclasses.dtx
-% に基づいて奥村 <okumura@okumuralab.org> が改変したものです。
-% 奥村の改変部分については何の権利も主張しません。
-% オリジナルの著作権の許す範囲で自由にご利用ください。
+% に基づいて,もともと奥村晴彦 <okumura@okumuralab.org> により
+% 作成されたものです。
+% 現在は日本語\TeX 開発コミュニティにより管理されています。
%
% [2002-12-19] いろいろなものに収録していただく際にライセンスを明確にする
% 必要が生じてきました。アスキーのものが最近は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{5229}
+% \CheckSum{5310}
%% \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/07/15 ltjsclasses ]
+ [2016/08/03 ltjsclasses ]
%<*driver>
\IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
\documentclass{ltjsarticle}
\usepackage{doc}
\usepackage{fontspec}
\usepackage[ipaex,nfssonly]{luatexja-preset}
+\ltjsetparameter{alxspmode={`\*,allow}}
+\ltjsetparameter{alxspmode={`\\,allow}}
%%%%\usepackage{unicode-math}
%%%%\setmathfont{Latin Modern Math}
\usepackage[unicode]{hyperref}
%
% \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| を読み込んだ際にエラーを引き起こすので削除しました。
-% \item 本家 |jsclasses.dtx| では |\mag| を用いて「10pt時の組版結果を本文フォントサイズに合わせ拡大縮小」
-% という方針でしたが,本 |ltjsclasses.dtx| ではそのような方法を取っていません。
+% これがあると\texttt{grfext.sty}を読み込んだ際にエラーを引き起こすので削除しました。
+% \item 本家\texttt{jsclasses}では |\mag| を用いて「10\,pt時の組版結果を本文フォントサイズに合わせ拡大縮小」
+% という方針でしたが,本\texttt{ltjsclasses}ではそのような方法を取っていません。
% \begin{itemize}
-% \item |nomag| オプション指定時には,単にレイアウトに用いる各種長さの値をスケールさせるだけです。
-% そのため,例えば本文の文字サイズが17ptのときにはcmr10でなくcmr17を用いることになり,組版結果の印象が
+% \item \texttt{nomag}オプション指定時には,単にレイアウトに用いる各種長さの値をスケールさせるだけです。
+% そのため,例えば本文の文字サイズが17\,ptのときにはcmr10でなくcmr17を用いることになり,組版結果の印象が
% 異なる恐れがあります。
-% \item |nomag*| オプション指定時には,上記に加えてオプティカルサイズを調整する(本文ではcmr17の代わりに
+% \item \texttt{nomag*}オプション指定時には,上記に加えてオプティカルサイズを調整する(本文ではcmr17の代わりに
% cmr10を拡大縮小する,など)ため,\LaTeX のフォント選択システムNFSSへパッチを当てます。
-% こうすることで前項に書いた不具合はなくなりますが,かえって別の不具合が起きる可能性はあります。
+% こうすることで前項に書いた不具合はなくなりますが,かえって別の不具合が起きる可能性
+% はあります\footnote{%
+% \texttt{nomag*}は\texttt{jsclasses}でも利用可能ですが,\texttt{ltjsclasses}では\texttt{jsclasses}とは
+% 別の実装をしています。
+% }。
% \end{itemize}
-% 標準では |nomag*| オプションが有効になっています。
+% 標準では\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-03-31 LTJ] |xreal|オプションを標準で有効にしました.
+% [2016-07-18 LTJ] \texttt{usemag}オプションが指定されると警告を出すようにしました。
%
-% [2016-07-12 LTJ] jsclasses 開発版に合わせ、|real|, |xreal| オプションの名称を変更するなどの変更を行いました。
+% [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オプションを追加しました。
%
+% [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.83}}% 1.2^(-1)
+\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
% \end{macrocode}
%
% \paragraph{オプティカルサイズの補正}
-% |nomag*| オプション指定時には,本文のフォントサイズが10pt以外の場合に
+% \texttt{nomag*}オプション指定時には,本文のフォントサイズが10pt以外の場合に
% オプティカルサイズの補正を行うためにNFSSにパッチを当てます。
-% 現在の |ltjsclasses| ではこのパッチ当ては標準では行いますが,
-% 将来どうなるかわからないので |nomag| で無効化することができるようにしました。
+% 現在の\texttt{ltjsclasses}ではこのパッチ当ては標準では行いますが,
+% 将来どうなるかわからないので\texttt{nomag}で無効化することができるようにしました。
%
-% |noxreal|, |real| は旧来の互換性として今は残してありますが、将来は削除する予定です。
+% \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}{\@ltjs@mag@xrealfalse}
-\DeclareOption{real}{\@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}
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\DeclareOption{final}{\setlength\overfullrule{0pt}}
%
% \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| オプションの有無に関わらず,
+% \texttt{ltjsclasses}では\texttt{papersize}オプションの有無に関わらず,
% PDFのページサイズは適切に設定されるので,削除しました。
%
% \paragraph{英語化}
%
% [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-07-08] |\jsc@mpt| および |\jsc@mmm| に,それぞれ1ptおよび1mmを拡大させた値を格納します。
% 以降のレイアウト指定ではこちらを使います。
%
-% [2016-07-12 LTJ] |\ltjs@...|を本家に合わせて|\jsc@...|に名称変更しました。
+% [2016-07-12 LTJ] |\ltjs@...| を本家に合わせて |\jsc@...| に名称変更しました。
% \begin{macrocode}
%<*kiyou>
\def\jsc@magscale{0.9769230}
%
% \paragraph{オプティカルサイズの補正}
% \leavevmode\par
-% [2016-03-26 LTJ] |xreal|オプションの指定時には,|bxjscls|の|magstyle=xreal|
+% [2016-03-26 LTJ] |xreal|オプションの指定時には,\texttt{bxjscls}の|magstyle=xreal|
% オプションのように,オプティカルの補正を行うためにNFSSにパッチを当てます。
% パッチは,概ねmiscさんによる「js*.cls 同様の文字サイズ設定を
% |\mag|によらずに行う方法:試案」
% 方法に沿っていますが,拡大/縮小するところの計算にはLuaを用いています。
%
% なお,\TeX 内部で長さはsp単位の整数倍で表現されているので,数spの誤差は仕方がないです。
-% そのため,事前に|type1cm|パッケージを読みこんでおきます。
+% そのため,事前に\texttt{type1cm}パッケージを読みこんでおきます。
%
-% [2016-03-28 LTJ] |\luafunction|を使うようにし,また本文のフォントサイズが10ptのときには
+% [2016-03-28 LTJ] |\luafunction|を使うようにし,また本文のフォントサイズが10\,ptのときには
% (不要なので)パッチを当てないことにしました。
%
-% [2016-04-04 LTJ] NFSSへのパッチを修正.
+% [2016-04-04 LTJ] NFSSへのパッチを修正。
% \begin{macrocode}
\if@ltjs@mag@xreal\RequirePackage{type1cm}
\ifdim\jsc@mpt=\p@\else
% 一方,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{%
% 和文文字間のスペース |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
%
% 書籍以外では本文領域の幅 |\textwidth| は |\fullwidth| と等しくします。
% |article| ではA4縦置きで49文字となります。
-% 某学会誌スタイルでは|50\zw|(25文字×2段)+段間8mmとします。
+% 某学会誌スタイルでは |50\zw|(25文字×2段)+段間8\,mmとします。
%
% \begin{macrocode}
%<*article>
% \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}
+%
% \begin{macro}{\marginparsep}
% \begin{macro}{\marginparpush}
%
% |\marginparwidth| は欄外の書き込みの横幅です。
% 外側マージンの幅(|\evensidemargin| $+$ 1インチ)から1センチを引き,
% さらに |\marginparsep|(欄外の書き込みと本文のアキ)を引いた値に
-% しました。最後に|1\zw|の整数倍に切り捨てます。
+% しました。最後に |1\zw| の整数倍に切り捨てます。
%
% \begin{macrocode}
\setlength\marginparwidth{\paperwidth}
% ページスタイルとして,\LaTeXe (欧文版)の標準クラス
% では |empty|,|plain|,|headings|,|myheadings| があります。
% このうち |empty|,|plain| スタイルは\LaTeXe 本体
-% で定義されています。
+% で定義されています。
%
% アスキーのクラスファイルでは |headnombre|,|footnombre|,
% |bothstyle|,|jpl@in| が追加されていますが,
% \begin{verbatim}
% ! Missing number, treated as zero.
% \end{verbatim}
-%
+%
%
% \begin{macrocode}
%<*!jspf>
% これらは互換性のためのもので,
% できるだけ |\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}
\@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}
%
%
% \LaTeX 関連のロゴを作り直します。
%
+% [2016-07-14] ロゴの定義は\texttt{jslogo}パッケージに移転しました。
+% 後方互換のため,\texttt{jsclasses}ではデフォルトでこれを読み込みます。
+%
+% [2016-07-21 LTJ] \texttt{jsclasses} とLua\TeX-jaの更新タイミングが一致しない可能性を考慮し,
+% \texttt{jslogo}パッケージが存在しない場合は旧来の定義をそのまま使うことにしました。
+%
+% \begin{macrocode}
+\IfFileExists{jslogo.sty}{%
+ \RequirePackage{jslogo}
+ \def\小{\jslg@small}
+ \def\上小{\jslg@uppersmall}
+}{%
+% \end{macrocode}
+%
+% 以下は\texttt{jslogo}パッケージがない場合の定義です。
+%
% \begin{macro}{\小}
% \begin{macro}{\上小}
%
% 文字を小さめに出したり上寄りに小さめに出したりする命令です。
%
% \begin{macrocode}
-\def\小#1{\hbox{$\m@th$%
+\def\小##1{\hbox{$\m@th$%
\csname S@\f@size\endcsname
\fontsize\sf@size\z@
\math@fontsfalse\selectfont
- #1}}
-\def\上小#1{{\sbox\z@ T\vbox to\ht0{\小{#1}\vss}}}
+ ##1}}
+\def\上小##1{{\sbox\z@ T\vbox to\ht0{\小{##1}\vss}}}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
+% \texttt{jslogo}パッケージがない場合の定義はここで終わりです。
+% \begin{macrocode}
+}
+% \end{macrocode}
+%
% \section{初期設定}
%
% \paragraph{いろいろな語}