始めまして。卒業論文を書くのにTeXを使っています。
jsarticleを用いていますが、目次を出力すると、「章」と「ページ番号」の間に点線はありませんが、この部分に点線を追加するにはどのように\l@sectionを再定義したらよいでしょうか。
また、章番号の後の空白を調節することは可能でしょうか。
レベルの低い質問かもしれませんがよろしくお願いいたします。
>この部分に点線を追加する
・\l@section の定義中の \hfil を \dotfill(あるいはそれに代わる適当なリーダー)に変更する.
・\l@section の定義で \@dottedtocline を用いる.
etc.
>章番号の後の空白
# そもそも,「章」(\chapter)などという構造は jsarticle には存在しないという点はさておき,
どこにおける \section などの見出しの番号の後の空白の話ですか?
・目次の場合なら \l@section の定義中の \@lnumwidth の値を変更(\@dottedtocline を用いた目次項目については \@dottedtocline の第 3 引数を調整)
・本文中の見出しの場合なら \@seccntformat を再定義
etc.
### 「anonymous」でログインしたはずですが,投稿者名が妙なことになっているようです.
・\l@section の定義中の \hfil を \dotfill(あるいはそれに代わる適当なリーダー)に変更する.
・\l@section の定義で \@dottedtocline を用いる.
etc.
>章番号の後の空白
# そもそも,「章」(\chapter)などという構造は jsarticle には存在しないという点はさておき,
どこにおける \section などの見出しの番号の後の空白の話ですか?
・目次の場合なら \l@section の定義中の \@lnumwidth の値を変更(\@dottedtocline を用いた目次項目については \@dottedtocline の第 3 引数を調整)
・本文中の見出しの場合なら \@seccntformat を再定義
etc.
### 「anonymous」でログインしたはずですが,投稿者名が妙なことになっているようです.
ありがとうございます。
「章」ではなく「節」でした。
訂正してお詫び申し上げます。
以下jsarticleからの引用ですがtableofcontentsの
\newcommand*{\l@section}[2]{%
\ifnum \c@tocdepth >\z@
\addpenalty{\@secpenalty}%
\addvspace{1.0em \@plus\p@}%
\begingroup
\parindent\z@
\rightskip\@tocrmarg
\parfillskip-\rightskip
\leavevmode\headfont
\setlength\@lnumwidth{4zw}% 元1.5em [2003-03-02]
\advance\leftskip\@lnumwidth \hskip-\leftskip
#1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par
\endgroup
\fi}
の\hfilを\dotfillに変更したところ、希望通りの出力を得ることができました。
「章」ではなく「節」でした。
訂正してお詫び申し上げます。
以下jsarticleからの引用ですがtableofcontentsの
\newcommand*{\l@section}[2]{%
\ifnum \c@tocdepth >\z@
\addpenalty{\@secpenalty}%
\addvspace{1.0em \@plus\p@}%
\begingroup
\parindent\z@
\rightskip\@tocrmarg
\parfillskip-\rightskip
\leavevmode\headfont
\setlength\@lnumwidth{4zw}% 元1.5em [2003-03-02]
\advance\leftskip\@lnumwidth \hskip-\leftskip
#1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par
\endgroup
\fi}
の\hfilを\dotfillに変更したところ、希望通りの出力を得ることができました。
継続、連投申し訳ありません。
hfillでも問題はないのですが、dottedtoclineと見栄えが合わず苦労しています。
\@dottedtoclineを\@section中で使う方法をご教授願いたいです。
\hfilを\dotfillにする感覚で
#1\nobreak\dotfill\nobreak\hbox to\@pnumwidth{\hss#2}\par
の部分を
#1\nobreak{\@dottedtocline{1}{1zw}{3zw}}\nobreak\hbox to\@pnumwidth{\hss#2}\par
などとしてみましたが
Runaway argument?
! Paragraph ended before \@dottedtocline was complete.
とのエラーが出てしまいうまくいきません。
\@dottedtoclineがきちんと定義できていないのでしょうか。
hfillでも問題はないのですが、dottedtoclineと見栄えが合わず苦労しています。
\@dottedtoclineを\@section中で使う方法をご教授願いたいです。
\hfilを\dotfillにする感覚で
#1\nobreak\dotfill\nobreak\hbox to\@pnumwidth{\hss#2}\par
の部分を
#1\nobreak{\@dottedtocline{1}{1zw}{3zw}}\nobreak\hbox to\@pnumwidth{\hss#2}\par
などとしてみましたが
Runaway argument?
! Paragraph ended before \@dottedtocline was complete.
とのエラーが出てしまいうまくいきません。
\@dottedtoclineがきちんと定義できていないのでしょうか。
上の書き込みで,匿名さんが回答された
>・\l@section の定義で \@dottedtocline を用いる.
は,以下の意味と思われます。
% pLaTeX2e
\documentclass{jsarticle}
\makeatletter
\renewcommand*{\l@section} {\@dottedtocline{1}{0pt}{4zw}}
\makeatother
\begin{document}
\tableofcontents
\section{hoge}
\subsection{hogehoge}
\subsubsection{hogehogehoge}
\end{document}
>・\l@section の定義で \@dottedtocline を用いる.
は,以下の意味と思われます。
% pLaTeX2e
\documentclass{jsarticle}
\makeatletter
\renewcommand*{\l@section} {\@dottedtocline{1}{0pt}{4zw}}
\makeatother
\begin{document}
\tableofcontents
\section{hoge}
\subsection{hogehoge}
\subsubsection{hogehogehoge}
\end{document}
また,上の書き込みで匿名さんが
>・\l@section の定義中の \hfil を \dotfill(あるいはそれに代わる適当なリーダー)に変更する.
は,\dotfill ではなく \subsection のリーダーと等間隔のものにするのは,以下の意味と思われます。
% pLaTeX2e
\documentclass{jsarticle}
\makeatletter
\renewcommand*{\l@section}[2]{%
\ifnum \c@tocdepth >\z@
\addpenalty{\@secpenalty}%
\addvspace{1.0em \@plus\p@}%
\begingroup
\parindent\z@
\rightskip\@tocrmarg
\parfillskip-\rightskip
\leavevmode\headfont
\setlength\@lnumwidth{4zw}% 元1.5em [2003-03-02]
\advance\leftskip\@lnumwidth \hskip-\leftskip
#1\nobreak
\leaders\hbox{\normalfont$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill %
\nobreak\hbox to\@pnumwidth{\hss#2}\par
\endgroup
\fi}
\makeatother
\begin{document}
\tableofcontents
\section{hoge}
\subsection{hogehoge}
\subsubsection{hogehogehoge}
\end{document}
>・\l@section の定義中の \hfil を \dotfill(あるいはそれに代わる適当なリーダー)に変更する.
は,\dotfill ではなく \subsection のリーダーと等間隔のものにするのは,以下の意味と思われます。
% pLaTeX2e
\documentclass{jsarticle}
\makeatletter
\renewcommand*{\l@section}[2]{%
\ifnum \c@tocdepth >\z@
\addpenalty{\@secpenalty}%
\addvspace{1.0em \@plus\p@}%
\begingroup
\parindent\z@
\rightskip\@tocrmarg
\parfillskip-\rightskip
\leavevmode\headfont
\setlength\@lnumwidth{4zw}% 元1.5em [2003-03-02]
\advance\leftskip\@lnumwidth \hskip-\leftskip
#1\nobreak
\leaders\hbox{\normalfont$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill %
\nobreak\hbox to\@pnumwidth{\hss#2}\par
\endgroup
\fi}
\makeatother
\begin{document}
\tableofcontents
\section{hoge}
\subsection{hogehoge}
\subsubsection{hogehogehoge}
\end{document}