当条目为多行时需要在目录中留出空间

当条目为多行时需要在目录中留出空间

对于我的论文,我有一些跨越多行的标题条目。我目前正在使用 tocloft。问题是,当发生这种情况时,我的学校需要我在行尾留出额外的 0.5 英寸空间,并在下一行留出 0.25 英寸的缩进。这对我的图表列表也是一个问题。

确切的表述如下:“当标题很长时,文本必须在距右侧 0.5 英寸、距边距 1 英寸处停止,然后才能继续下一行。”

示例代码:

\documentclass[12pt]{article}
\textheight  9.0in
\usepackage[pdftex]{graphicx}
\usepackage{array}
\usepackage{epsfig} 
\usepackage{wrapfig}
\usepackage{setspace}
\usepackage{epstopdf}
\usepackage{amsmath}
\usepackage{subfig}
\usepackage{cite}
\usepackage{float}
\usepackage[margin=1.0in]{geometry}

%Make headers 12 pt (new):
\usepackage[tiny,center]{titlesec}

%Table of contents
\usepackage[subfigure]{tocloft}
\usepackage[toc,title]{appendix}
\usepackage[nottoc]{tocbibind}

\setlength{\cftsubsecindent}{0.5in}
\setlength{\cftsubsubsecindent}{1in}

%Space between figure legend entries:
\renewcommand\cftfigafterpnum{\vskip12pt\par}


%Adds leader dots everywhere:
\renewcommand\cftsecdotsep{\cftdotsep}

\usepackage{chngcntr}

\usepackage{caption}
\captionsetup{labelfont=bf}

\usepackage{morefloats}
\usepackage{afterpage}
\usepackage{geometry}
\usepackage{setspace}
\usepackage{lipsum}
\usepackage{indentfirst}
\usepackage{cleveref}
\usepackage{textgreek}
\usepackage [english]{babel}
\usepackage [autostyle, english = american]{csquotes}
\usepackage{pdfpages}
\usepackage{textcomp}
\MakeOuterQuote{"}

\usepackage{url}

\begin{document}

\clearpage
    \pagestyle{plain}
    \pagenumbering{roman}
    \setcounter{page}{1}
    \vspace*{2\baselineskip}
    \setlength{\footskip}{.25in}
        \begin{spacing}{1}
        \renewcommand{\contentsname}{\hfill\bfseries\normalsize  Table of Contents\hfill}
        \renewcommand{\cftaftertoctitle}{\hfill}
        \renewcommand\cftsecfont{\mdseries}
        \renewcommand\cftsecpagefont{\mdseries}
        \tableofcontents
        \end{spacing}
    \pagebreak

\section{Very long title aaaaaaaaaaaaaaa aaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaa aaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaa}

hello
\end{document}

谢谢

编辑:我的问题的第一部分已在其他地方得到解答。但没有回答条目第二行的 0.25 英寸缩进问题。

答案1

看来我的问题的第一部分在这里得到了回答: \@tocrmarg 适用于章节吗? 和: \makeatletter \renewcommand \@tocrmarg{0.5in} \makeatother

答案2

我避免使用 tocloft 之类的软件包,因为它们只会让事情变得复杂。相反,我会\l@section直接修改等等。

如果我理解您的要求,您所需要的只是\leftskip=0.25in\rightskip=0.5in(而不是\@tempdima\pnumwidth),这比单行测试和要简单的更改得多\hangindent

对于图形列表,只需重复该过程即可\l@figure

另一方面,这是一个足够简单的变化,tocloft 应该能够处理它。

\documentclass[12pt]{article}
\textheight  9.0in
\usepackage[pdftex]{graphicx}
\usepackage{array}
\usepackage{epsfig} 
\usepackage{wrapfig}
\usepackage{setspace}
\usepackage{epstopdf}
\usepackage{amsmath}
\usepackage{subfig}
\usepackage{cite}
\usepackage{float}
\usepackage[margin=1.0in, showframe]{geometry}

%Make headers 12 pt (new):
\usepackage[tiny,center]{titlesec}

%Table of contents
\usepackage[toc,title]{appendix}

\usepackage{chngcntr}

\usepackage{caption}
\captionsetup{labelfont=bf}

\usepackage{morefloats}
\usepackage{afterpage}
\usepackage{geometry}
\usepackage{setspace}
\usepackage{lipsum}
\usepackage{indentfirst}
\usepackage{cleveref}
\usepackage{textgreek}
\usepackage [english]{babel}
\usepackage [autostyle, english = american]{csquotes}
\usepackage{pdfpages}
\usepackage{textcomp}
\MakeOuterQuote{"}

\usepackage{url}

\usepackage{blindtext}

\makeatletter
\renewcommand*\l@section[2]{%
  \ifnum \c@tocdepth >\z@
    \addpenalty\@secpenalty
    \addvspace{1.0em \@plus\p@}%
    \setlength\@tempdima{1.5em}% width for \numberline
    \begingroup
      \parindent \z@ \rightskip 0.5in
      \parfillskip -0.5in
      \leavevmode \bfseries
      \advance\leftskip by 0.25in
      \hskip -\leftskip
      {#1}\nobreak
      \leaders\hbox{$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill
      \nobreak\hb@xt@\@pnumwidth{\hss #2\kern-\p@\kern\p@}\par
    \endgroup
  \fi}
\makeatother

\begin{document}

\clearpage
    \pagestyle{plain}
    \pagenumbering{roman}
    \setcounter{page}{1}
    \vspace*{2\baselineskip}
    \setlength{\footskip}{.25in}
        \begin{spacing}{1}
        \renewcommand{\contentsname}{\hfill\bfseries\normalsize  Table of Contents\hfill}
        \tableofcontents
        \end{spacing}
    \pagebreak

\section{A normal section}

hello

\section{\blindtext}

hello
\end{document}

相关内容