在我的论文中,文本需要双倍行距,但目录和超过一行的图表列表的行需要单倍行距。在下面的代码中,我可以在目录中执行此操作,但它不适用于图表列表:
\documentclass[12pt]{article}
\usepackage{setspace}
\doublespacing
\usepackage{tocloft}
\renewcommand\cftsecafterpnum{\vskip\baselineskip}
\renewcommand\cftsubsecafterpnum{\vskip\baselineskip}
\renewcommand\cftsubsubsecafterpnum{\vskip\baselineskip}
\titleformat{\section}[block]{\Large\bfseries\filcenter}{}{}{}
\renewcommand{\contentsname}{\hfill\bfseries\Large TABLE OF CONTENTS\hfill}
\renewcommand{\cfttoctitlefont}{\hspace*{\fill}\Huge\bfseries}
\renewcommand{\cftaftertoctitle}{\hspace*{\fill}}
\renewcommand{\cftlottitlefont}{\hspace*{\fill}\Huge\bfseries}
\renewcommand{\cftafterlottitle}{\hspace*{\fill}}
\renewcommand{\cftloftitlefont}{\hspace*{\fill}\Huge\bfseries}
\renewcommand{\cftafterloftitle}{\hspace*{\fill}}
\renewcommand{\cftfigpresnum}{Figure \ }
\renewcommand{\cfttabpresnum}{Table \ }
\newlength{\mylenf}
\settowidth{\mylenf}{\cftfigpresnum}
\setlength{\cftfignumwidth}{\dimexpr\mylenf+1.5em}
\setlength{\cfttabnumwidth}{\dimexpr\mylenf+1.5em}
\begin{document}
\begin{singlespace}
\tableofcontents
\end{singlespace}
\newpage
\begin{singlespace}
\listoftables
\end{singlespace}
\addcontentsline{toc}{section}{List of Tables}
\newpage
\begin{singlespace}
\listoffigures
\end{singlespace}
\addcontentsline{toc}{section}{List of Figures}
\newpage
\end{document}
根据此代码,整个表格列表和图表列表都变成单倍行距。您能告诉我如何解决这个问题吗?
答案1
问题中的陈述不清楚。它确实适用于 ToC,但不适用于 LoF 和 LoT,因为相关\cftfigureafterpnum
宏没有像它们的sec
、subsec
和subsubsec
变体那样重新定义。
但是,它整体上看起来并不十分好看,尤其是在每个等条目之前还有额外的空格,可以使用 (以及的相关变体,即和)sec
进行控制。\cftbeforesecskip
subsec
subsubsec
\cftbeforesubsecskip
\cftbeforesubsubsecskip
我已经将要\begin{singlespacing}...\end{singlespacing}
写入相关.toc
文件等的明确内容以及添加的tocbibind
包以便将其包含list of...
在目录中。
最后,我\renewcommand{\contentsname}
用等将奇怪的东西改成更方便的东西\cfttoctitlefont
。
\documentclass[12pt]{article}
\usepackage{blindtext}
\usepackage{pgffor}
\usepackage{setspace}
\doublespacing
\usepackage{tocloft}
\usepackage{tocbibind}
\renewcommand\cftsecafterpnum{\vskip\baselineskip}
\renewcommand\cftsubsecafterpnum{\vskip\baselineskip}
\renewcommand\cftsubsubsecafterpnum{\vskip\baselineskip}
% My invention (C.H)
\renewcommand\cftfigafterpnum{\vskip\baselineskip}
\renewcommand\cfttabafterpnum{\vskip\baselineskip}
%\titleformat{\section}[block]{\Large\bfseries\filcenter}{}{}{}% No titlesec
%\renewcommand{\contentsname}{\hfill\bfseries\Large TABLE OF CONTENTS\hfill}% Bad idea
\renewcommand{\contentsname}{TABLE OF CONTENTS}
\renewcommand{\cfttoctitlefont}{\hfill\bfseries\Large}
\renewcommand{\cftaftertoctitle}{\hfill}
\renewcommand{\cfttoctitlefont}{\hspace*{\fill}\Huge\bfseries}
\renewcommand{\cftaftertoctitle}{\hspace*{\fill}}
\renewcommand{\cftlottitlefont}{\hspace*{\fill}\Huge\bfseries}
\renewcommand{\cftafterlottitle}{\hspace*{\fill}}
\renewcommand{\cftloftitlefont}{\hspace*{\fill}\Huge\bfseries}
\renewcommand{\cftafterloftitle}{\hspace*{\fill}}
\renewcommand{\cftfigpresnum}{Figure \ }
\renewcommand{\cfttabpresnum}{Table \ }
% Only if needed
%\setlength{\cftbeforesubsecskip}{0pt}
%\setlength{\cftbeforesecskip}{0pt}
\newlength{\mylenf}
\settowidth{\mylenf}{\cftfigpresnum}
\setlength{\cftfignumwidth}{\dimexpr\mylenf+1.5em}
\setlength{\cfttabnumwidth}{\dimexpr\mylenf+1.5em}
\AtBeginDocument{
\addtocontents{toc}{\protect\begin{singlespacing}}
\addtocontents{lof}{\protect\begin{singlespacing}}
\addtocontents{lot}{\protect\begin{singlespacing}}
}
\AtEndDocument{%
\addtocontents{toc}{\protect\end{singlespacing}}
\addtocontents{lof}{\protect\end{singlespacing}}
\addtocontents{lot}{\protect\end{singlespacing}}
}
\begin{document}
\tableofcontents
\clearpage
\listoftables
\clearpage
\listoffigures
\clearpage
\foreach \x in {1,2,3,4,5}
{
\section{My foo section \x}
\subsection{My foo subsection \x}
\begin{figure}
\caption{ A caption \x}
\end{figure}
\blindtext[10]
\begin{table}
\caption{ A caption \x}
\end{table}
\begin{figure}
\caption{ Another caption \x}
\end{figure}
\blindtext[3]
\begin{table}
\caption{ Another caption \x}
\end{table}
}
\end{document}
然而,我省略了表格列表的屏幕截图——它并没有显示与 LoF 真正不同的东西。