
간단한 문제인 것 같지만 해결 방법이 명확하지 않습니다.
이걸 고려하세요
\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을 갱신한 후 기본 텍스트의 나머지 일반 굵은 글꼴과 서식을 어떻게 다시 가져오나요?
패키지 없이 부탁드립니다.
하위 질문은 다음과 같습니다. 길이를 정의하고 너비를 ``\arabic{section} ABCXYZ''의 길이로 설정했습니다. 이제 섹션 toc 거리를 꽤 크게 설정한 후 이 가변 거리를 빼고 싶습니다. .
결과적으로 섹션 번호가 작으면 섹션과 제목 사이에 큰 공간이 없게 됩니다. \renewcommand{\thesection}{...}
넣는 곳이 잘못된 것 같습니다 . 섹션 제목의 간격에는 영향을 미치지 않습니다.
Q: 그 밖에 갱신해야 할 사항은 무엇이며 목차에 나타나는 섹션 제목에 영향을 주기 위해 hspace{\correction} 객체를 붙여 넣을 올바른 위치는 어디입니까?
아마도 이 곳은 기본 서식을 재구성할 수 있는 곳과 정확히 같은 곳일 것입니다.
답변1
의 정의는 \l@section
문서 클래스에서 나오므로 패키지는 아니지만 정확히 LaTeX의 일부는 아닙니다. 넣어두는 걸 추천해
\makeatletter \show\l@section \makeatother
문서에서 기존 정의를 확인하세요.
나는 당신이 굵은 글씨체를 사용하고 전혀 \l@section
사용하지 않는 "article" 문서 클래스를 사용하고 있다고 생각합니다 ! \@dottedtocline
Article.cls에 있는 정의에는 다음과 같은 신비한 설정이 있습니다.
\setlength\@tempdima{1.5em}%
이는 섹션 번호(에서 사용됨)의 너비입니다 \numberline
.
최신 버전이 없기 때문에 전체 정의를 게시하지 않겠습니다. 하지만 어쩌면 당신은 toc의 형식을 지정하기 위해 패키지를 사용하는 것을 재고하고 싶을 수도 있습니다.
대안은 \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"로 번호가 매겨져 나에게는 정말 이상해 보일 것입니다. 아마도 하위 섹션 번호 매기기를 재정의하고 싶을 수도 있습니다.