저는 스프링거를 사용하고 있어요svmult편집자가 있는 책의 템플릿입니다. TableOfContents(ToC)에 문제가 있습니다.
섹션 번호에 숫자 1-9만 포함되면 모든 것이 괜찮아 보입니다. 예:
- 머리글
1.1 하위 헤더
1.2.9 하위 하위 헤더
그러나 섹션 수가 10을 초과하면 헤더 텍스트와 섹션 번호가 ToC에서 너무 가까워서 겹치기 시작합니다. 이것은 보기 흉해 보입니다(여기보다 더 나쁩니다).
- 머리글
1.10하위 헤더
1.3.10SubSubheader
12.2.3SubSubheader
\tableofcontents
다음은 in 의 정의입니다 svmult.cls
. 나는 그것을 절반만 이해했고, 이 경우에는 그것만으로는 충분하지 않습니다. ToC의 섹션 번호와 섹션 헤더 사이에 항상 충분한 공간이 있도록 하려면 문제를 어디에서 수정해야 합니까?
\def\tableofcontents{\chapter*{\contentsname\markboth{{\contentsname}}%
{{\contentsname}}}
\def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}}
\def\lastand{\ifnum\value{auco}=2\relax
\unskip{} \andname\
\else
\unskip \lastandname\
\fi}%
\def\and{\stepcounter{@auth}\relax
\ifnum\value{@auth}=\value{auco}%
\lastand
\else
\unskip,
\fi}%
\@starttoc{toc}\if@restonecol\twocolumn\fi}
\setcounter{tocdepth}{0}
\def\l@part#1#2{\addpenalty{\@secpenalty}%
\addvspace{2em \@plus\p@}%
\begingroup
\parindent \z@
\rightskip \z@ \@plus 5em
\hrule\vskip5\p@
\bfseries\boldmath
\leavevmode
#1\par
\vskip5\p@
\hrule
\vskip\p@
\nobreak
\endgroup}
\def\@dotsep{2}
\def\addnumcontentsmark#1#2#3{%
\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline
{\thechapter}#3}{\thepage}}}
\def\addcontentsmark#1#2#3{%
\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}}
\def\addcontentsmarkwop#1#2#3{%
\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}}}
\def\@adcmk[#1]{\ifcase #1 \or
\def\@gtempa{\addnumcontentsmark}%
\or \def\@gtempa{\addcontentsmark}%
\or \def\@gtempa{\addcontentsmarkwop}%
\fi\@gtempa{toc}{chapter}}
\def\addtocmark{\@ifnextchar[{\@adcmk}{\@adcmk[3]}}
\def\l@chapter#1#2{\par\addpenalty{-\@highpenalty}
\addvspace{1.0em \@plus \p@}
\@tempdima \tocchpnum \begingroup
\parindent \z@ \rightskip \@tocrmarg
\advance\rightskip by \z@ \@plus 2cm
\parfillskip -\rightskip \pretolerance=10000
\leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
{\bfseries\boldmath#1}\ifx0#2\hfil\null
\else
\nobreak
\leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern
\@dotsep mu$}\hfill
\nobreak\hbox to\@pnumwidth{\hss #2}%
\fi\par
\penalty\@highpenalty \endgroup}
\newcommand{\tocauthorstyle}{\itshape}
\newcommand{\toctitlestyle}{\bfseries}
\def\l@title#1#2{\addpenalty{-\@highpenalty}
\addvspace{8\p@ \@plus \p@}
\@tempdima \z@
\tocchpnum \z@ \calctocindent
\begingroup
\parindent \z@ \rightskip \@tocrmarg
\advance\rightskip by \z@ \@plus 2cm
\pretolerance=10000
%\parfillskip -\@tocrmarg
\leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
{\toctitlestyle#1}%\nobreak
%\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
%\@dotsep mu$}\hfill
%\nobreak\hbox to\@pnumwidth{\hss #2}\par
\par
\penalty\@highpenalty \endgroup}
\newcommand{\tocaftauthskip}{\z@}
\def\l@author#1#2{%\addpenalty{\@highpenalty}
\@tempdima \z@
\begingroup
\pretolerance=10000
\parindent \z@ \rightskip \@tocrmarg
\advance\rightskip by \z@ \@plus 2cm
\parfillskip -\@tocrmarg
\leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
{\tocauthorstyle#1}\nobreak
\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
\@dotsep mu$}\hfill
\nobreak\hbox to\@pnumwidth{\hss #2}\par
\penalty\@highpenalty
\addvspace{\tocaftauthskip}\endgroup}
\newdimen\tocchpnum
\newdimen\tocsecnum
\newdimen\tocsectotal
\newdimen\tocsubsecnum
\newdimen\tocsubsectotal
\newdimen\tocsubsubsecnum
\newdimen\tocsubsubsectotal
\newdimen\tocparanum
\newdimen\tocparatotal
\newdimen\tocsubparanum
\tocchpnum=\z@ % no chapter numbers
\tocsecnum=18\p@ % section 88. plus 2.222pt
\tocsubsecnum=23\p@ % subsection 88.8 plus 2.222pt
\tocsubsubsecnum=27\p@ % subsubsection 88.8.8 plus 1.444pt
\tocparanum=35\p@ % paragraph 88.8.8.8 plus 1.666pt
\tocsubparanum=43\p@ % subparagraph 88.8.8.8.8 plus 1.888pt
\def\calctocindent{%
\tocsectotal=\tocchpnum
\advance\tocsectotal by\tocsecnum
\tocsubsectotal=\tocsectotal
\advance\tocsubsectotal by\tocsubsecnum
\tocsubsubsectotal=\tocsubsectotal
\advance\tocsubsubsectotal by\tocsubsubsecnum
\tocparatotal=\tocsubsubsectotal
\advance\tocparatotal by\tocparanum}
\calctocindent
\def\@dottedtocline#1#2#3#4#5{%
\ifnum #1>\c@tocdepth \else
\vskip \z@ \@plus.2\p@
{\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by \z@ \@plus 2cm
\parfillskip -\rightskip \pretolerance=10000
\parindent #2\relax\@afterindenttrue
\interlinepenalty\@M
\leavevmode
\@tempdima #3\relax
\advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
{#4}\nobreak
\leaders\hbox{$\m@th
\mkern \@dotsep mu\hbox{.}\mkern \@dotsep
mu$}\hfill
\nobreak
\hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
\par}%
\fi}
%
\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}}
\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}}
\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}}
\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}}
\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}}
답변1
클래스는 다음 길이를 사용하여 섹션 번호용으로 예약된 공간을 제어합니다.
\tocsecnum
섹션의 경우.\tocsubsecnum
하위 섹션의 경우.\tocsubsubsecnum
하위 섹션의 경우.\tocparanum
단락의 경우.\tocsubparanum
하위 단락의 경우.
그런 다음 필요한 길이에 일부 값을 추가하면 됩니다. 예를 들어:
\addtolength\tocsubsubsecnum{2ex}
그런 다음 호출
\calctocindent
하부 단면 단위 항목의 길이를 다시 계산할 수 있습니다.