后续问题为什么\listof{}{}
和\listoffigures
的风格不同?...
通过上述问题,我终于设法按需要设计了我的,\listof{}{}
但\listoffigures
仍有一个问题尚未解决:如何避免对我的文档进行全局设置,例如\setlength{\parskip}{3mm}
应用于图表列表、表格列表等?
MWE:取消注释\setlength{\parskip}{3mm}
会影响\listoffigures
但不会影响\listof{algo}{List of Algorithms}
。
\documentclass[12pt,a4paper,twoside,openright]{report}
\usepackage[english]{babel}
\usepackage{float}
\newfloat{algo}{tbp}{loa}[chapter]
% \setlength{\parskip}{3mm}
% \setlength{\parindent}{3mm}
\frenchspacing
\sloppy
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@chapter}%
{\addtocontents{lof}}%
{\addtocontents{loa}{\protect\addvspace{10pt}}%
\addtocontents{lof}}%
{\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
\makeatother
\begin{document}
\listoffigures
\listof{algo}{List of Algorithms}
\chapter{foo}
\begin{figure}
\centering
\rule{1cm}{1cm}
\caption{A figure}
\end{figure}
\begin{algo}
(algo)
\caption{An algorithm}
\end{algo}
\begin{figure}
\centering
\rule{1cm}{1cm}
\caption{Another figure}
\end{figure}
\begin{algo}
(algo)
\caption{Another algorithm}
\end{algo}
\chapter{bar}
\begin{figure}
\centering
\rule{1cm}{1cm}
\caption{Yet another figure}
\end{figure}
\begin{algo}
(algo)
\caption{Yet another algorithm}
\end{algo}
\end{document}
答案1
\parskip
首先,您不应该将其设置为固定值,使用parskip
包可能更好。只需将列表放在一个组中,然后将 parskip 设置为零即可。
\documentclass[12pt,a4paper,twoside,openright]{report}
\usepackage[english]{babel}
\usepackage{float}
\newfloat{algo}{tbp}{loa}[chapter]
\usepackage{parskip}
\frenchspacing
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@chapter}
{\addtocontents{lof}}
{\addtocontents{loa}{\protect\addvspace{10pt}}\addtocontents{lof}}
{}{}
\makeatother
\begin{document}
\begingroup\setlength{\parskip}{0pt plus .1pt}
\listoffigures
\listof{algo}{List of Algorithms}
\endgroup
\chapter{foo}
...
我永远不会使用非零 parskip和非零缩进(老实说,我会绝不使用非零 parskip)。此外,\sloppy
即使 TeX 可以做得更好,对整个文档进行声明也会导致排版效果很差。