目次の間隔を更新すると、セクションとタイトルのページ番号の太字が崩れる

目次の間隔を更新すると、セクションとタイトルのページ番号の太字が崩れる

単純な問題のように思えますが、どのように解決すればよいかは明確ではありません。

このことを考慮

\renewcommand{\thesection}{\arabic{section} ABCXYZ}
...
\tableofcontents
\section{The title of the section}

数字「1」と「セクションのタイトル」と ABCXYZ の間に重なりが生じます。

番号とタイトルの間の距離は、目次によって固定されています。これは可変ではありません。そこに何かを置くことはできません。もちろん、セクション番号が固定距離に比べて長すぎる場合と同じ問題になります。\setcounter{section}{1000}

次の解決策

\makeatletter\renewcommand*\l@section{\@dottedtocline{1}{...}{...}}\makeatother

多かれ少なかれ機能します。

ただし、通常の toc パラメータの一部がリセットされるようです。

少なくとも、セクション番号とセクション タイトルは太字で表示されますが、サブセクション タイルとサブサブセクション タイトルは太字ではありません。セクションのページ番号も太字ではなくなります。目次のサブセクション ページ番号のようになります。

それは悪いことだ。

ラッピング

\textbf{arabic{section}}内部\renewcommand{\thesection}

動作します。しかし、セクションタイトルに到達できません。

\section{\textbf{TITLE IS HERE}}

さまざまな理由から理想的とは言えません。

Q: *l@section を更新した後、デフォルトの toc の残りの通常の太字と書式設定を元に戻すにはどうすればよいですか?

パッケージなしでお願いします。

サブ質問は次のとおりです。長さを定義し、その幅を ```\arabic{section} ABCXYZ'' の長さに設定し、セクション toc の距離をかなり大きく設定したので、この可変距離を減算したいと思います。

その結果、セクション番号が小さいため、タイトルとの間に大きなスペースがなくなります。これは\renewcommand{\thesection}{...}間違った配置場所のようです。セクション タイトルのスペースには影響しません。

Q: 他に更新する必要があるものは何ですか。また、目次に表示されるセクション タイトルに影響を与える hspace{\correction} オブジェクトを貼り付ける正しい場所はどこですか。

おそらく、これはデフォルトの書式設定を再構築できる場所とまったく同じ場所です。

答え1

の定義は\l@sectionドキュメントクラスから来ているので、パッケージではなく、LaTeXの一部でもありません。

\makeatletter \show\l@section \makeatother

既存の定義を確認するには、ドキュメント内をクリックします。

おそらく、太字の「article」ドキュメントクラスを使用しているのでしょう。\l@sectionは使用せず、 はまったく使用しません\@dottedtocline。 article.cls の定義には、次のような不思議な設定があります。

\setlength\@tempdima{1.5em}%

これはセクション番号の幅です ( によって使用されます\numberline)。

最新バージョンを持っていないので、定義全体を投稿することはできません。ただし、パッケージを使用して目次をフォーマットすることを再検討したほうがよいかもしれません。

別の方法としては、\numberline番号とタイトルが重複しないように再定義することです。

\makeatletter
\renewcommand\numberline[1]{%
\begingroup
 \sbox\@tempboxa{#1 }%
 \ifdim\wd\@tempboxa<\@tempdima
  \wd\@tempboxa=\@tempdima
 \fi
 \usebox\@tempboxa
\endgroup
}

答え2

パッケージは使用したくないとおっしゃっていますが、以下ではパッケージを使用してtocloft何ができるかを示しています。ToC への唯一の変更は、セクション番号のスペースです。他の変更が必要な場合は、パッケージに多くの機能が用意されています ( texdoc tocloft)。

    % tocprob5.tex SE 533343 section numbers
\documentclass{article}
\renewcommand{\thesection}{\arabic{section} ABCXYZ}
\usepackage{tocloft}
\newlength{\mylen} 
\settowidth{\mylen}{\textbf{99 ABCXYZ}} % the space required for the section number
\setlength{\cftsecnumwidth}{\mylen} % set space for section number
\setlength{\cftsubsecnumwidth}{\mylen} % set space for subsection number
\begin{document}
\tableofcontents
\section{Section}
\subsection{Subsection}
\section{Another section}
\end{document}

\thesection実際のドキュメントでは、の例の再定義を使用しないことを願います。そうしないと、最初のセクション\subsectionの最初の\sectionセクションに「1 ABCXYZ.1」という番号が付けられ、非常に奇妙に見えます。サブセクションの番号付けを再定義する必要があるかもしれません。

関連情報