对于我的论文,我有一些跨越多行的标题条目。我目前正在使用 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}