そもそもあまり使っている人がいないのかもしれませんが,
jsclasses に english オプションを付けたときの不具合について報告します.
\documentclass[english]{jsarticle}
\begin{document}
\tableofcontents
\section{One}
\appendix
\section{Two}
\section{Three}
\begin{table}[htbp]
\centering
\caption{Four}
\begin{tabular}{rr}
1 & 2\\
3 & 4
\end{tabular}
\end{table}
\end{document}
上記のようなソースのとき,目次の「Appendix A」が長すぎて「Two」とかぶってしまいます.
また,\tablename なのですが,「Table.~」の末尾のピリオドは取るべきと思います
(「Fig.~」と違って省略形ではないので).
http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/33001-33500.html の,[english]{jsbook} の目次の出力 というタイトルの一連の投稿がありますね.内容はもうすっかり忘れてしまいました.
Table. は前田さんがおっしゃるとおりだと思います.
このあたりの数値が決め打ちなのが前から気になっていました。englishオプションを使わなくとも、
\presectionname や \postsectionname や \appendixname をカスタマイズするユーザーならぶつかる
問題だと思います。たとえば \l@section の定義の中の
\setlength\@lnumwidth{4zw}% 元1.5em [2003-03-02]
という行を
\settowidth{\@tempdima}{\presectionname\postsectionname\hspace*{2zw}}%
\settowidth{\@tempdimb}{\appendixname\postsectionname\hspace*{2zw}}%
\ifdim\@tempdima<\@tempdimb\relax
\setlength{\@lnumwidth}{\@tempdimb}\else\setlength{\@lnumwidth}{\@tempdima}%
\fi
のように可変にするのはいかがでしょう。
\presectionname や \postsectionname や \appendixname をカスタマイズするユーザーならぶつかる
問題だと思います。たとえば \l@section の定義の中の
\setlength\@lnumwidth{4zw}% 元1.5em [2003-03-02]
という行を
\settowidth{\@tempdima}{\presectionname\postsectionname\hspace*{2zw}}%
\settowidth{\@tempdimb}{\appendixname\postsectionname\hspace*{2zw}}%
\ifdim\@tempdima<\@tempdimb\relax
\setlength{\@lnumwidth}{\@tempdimb}\else\setlength{\@lnumwidth}{\@tempdima}%
\fi
のように可変にするのはいかがでしょう。
しかし調整が難しいですね。
私の案は
\presectionname + \postsectionname と \appendixname
の差が 1zw 程度以内に収まるなら、違和感はありません。
しかし english オプションのように
本文の section には修飾語が全く無く、かつ
付録の修飾語が Appendix のように長いときには、
インデントの量を共通にするのは無理があります。
Appendixで文字が重ならないようにインデントすると
本文の方の番号とタイトルが離れ過ぎるのです。
(案1)
english オプションのときは \appendixname を空にするか
Appx. のように短くする。
(案2)
Appendix 以降はインデント量を変える。
(その他)
どんな仕様がいいでしょうか。
私の案は
\presectionname + \postsectionname と \appendixname
の差が 1zw 程度以内に収まるなら、違和感はありません。
しかし english オプションのように
本文の section には修飾語が全く無く、かつ
付録の修飾語が Appendix のように長いときには、
インデントの量を共通にするのは無理があります。
Appendixで文字が重ならないようにインデントすると
本文の方の番号とタイトルが離れ過ぎるのです。
(案1)
english オプションのときは \appendixname を空にするか
Appx. のように短くする。
(案2)
Appendix 以降はインデント量を変える。
(その他)
どんな仕様がいいでしょうか。
明けましておめでとうございます。
2013/05/14 の jsclasses.dtx に対するパッチ(jsarticle / jsbook 両方)を
作ってみました。変更ヶ所にはコメントを入れてあります。
とりあえずは目次については、
(1) カスタマイズに備え、目次のインデントは可変にする。
(2) jsarticle について、english option のときは \appendixname を空にする。
(3) 逆に jsbook について、english option のときに 目次で Chapter / Appendix
のラベルを削っていたのを復活する。
としてみました。(3)は、2004年のトニイさんのように、オプションなどで制御
できるようにした方がよかったかも知れません。
最初は \l@section と \l@chapter の変更だけにするつもりだったのですが、
subsection など下位の目次(デフォルトでは表示されませんが)のインデント
にも影響するので、これの調整であちこちいじってしまいました。
御意見よろしくお願いします。
Table も直しておきました。
以下テスト用。
%%%%%
\documentclass[english]{jsarticle}
% \documentclass{jsarticle}
\makeatletter
\if@english
\renewcommand{\appendixname}{Appendix~}
\else
\renewcommand{\presectionname}{特別講義第}\renewcommand{\postsectionname}{回}
\renewcommand{\appendixname}{特別大付録}
\fi
\makeatother
\newcommand{\test}{\section{HOGE}
\subsection{hoge} \subsection{hoge}
\setcounter{subsection}{9} \subsection{hoge}
}
\begin{document}
\tableofcontents
\newpage
\test \setcounter{section}{9} \test \appendix \test
\end{document}
%%%%%
2013/05/14 の jsclasses.dtx に対するパッチ(jsarticle / jsbook 両方)を
作ってみました。変更ヶ所にはコメントを入れてあります。
とりあえずは目次については、
(1) カスタマイズに備え、目次のインデントは可変にする。
(2) jsarticle について、english option のときは \appendixname を空にする。
(3) 逆に jsbook について、english option のときに 目次で Chapter / Appendix
のラベルを削っていたのを復活する。
としてみました。(3)は、2004年のトニイさんのように、オプションなどで制御
できるようにした方がよかったかも知れません。
最初は \l@section と \l@chapter の変更だけにするつもりだったのですが、
subsection など下位の目次(デフォルトでは表示されませんが)のインデント
にも影響するので、これの調整であちこちいじってしまいました。
御意見よろしくお願いします。
Table も直しておきました。
以下テスト用。
%%%%%
\documentclass[english]{jsarticle}
% \documentclass{jsarticle}
\makeatletter
\if@english
\renewcommand{\appendixname}{Appendix~}
\else
\renewcommand{\presectionname}{特別講義第}\renewcommand{\postsectionname}{回}
\renewcommand{\appendixname}{特別大付録}
\fi
\makeatother
\newcommand{\test}{\section{HOGE}
\subsection{hoge} \subsection{hoge}
\setcounter{subsection}{9} \subsection{hoge}
}
\begin{document}
\tableofcontents
\newpage
\test \setcounter{section}{9} \test \appendix \test
\end{document}
%%%%%
tat tsan さま,
パッチ,ありがとうございます。
特にご意見ないようですので,さきほどパッチを適用したものを公開しておきました。
それにしてもpLaTeX2e 新ドキュメントクラスのページ,まったく実情に合っていないですね。暇を見て直します。
パッチ,ありがとうございます。
特にご意見ないようですので,さきほどパッチを適用したものを公開しておきました。
それにしてもpLaTeX2e 新ドキュメントクラスのページ,まったく実情に合っていないですね。暇を見て直します。
%<*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<2zw \divide\js@tocl@width by 2 \advance\js@tocl@width 1zw\fi %(*1) %<*!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<2zw \divide\js@tocl@width by 1 \advance\js@tocl@width 2zw\fi %(*2)
この部分、(*1)はいいのですが、(*2)は少し不自然に見えます。(*2)はどのような論理に基づいているのでしょうか……?
(…zw\fi
の zw
の後には空白があった方がいいよね、という話はおいといて)