我尝试了所有我能找到的带有\cleardoublepage
和\newpage
等的东西;他们大多使用\addcontentsline
。我不需要使用它,因为listof=totoc
已经将它放入了目录中,所以即使我使用\addcontentsline
它,我也会得到相同的结果。
\documentclass[
fontsize=11pt,
DIV10,
ngerman,
paper=a4,
twoside=false,
titlepage,
parskip=half,
listof=totoc,
bibliography=totoc,
index=totoc,
captions=tableheading,
foottotes=multiple,
final
]{scrartcl}
\usepackage[
automark,
headsepline,
ilines
]{scrpage2}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[dvips]{graphicx}
\begin{document}
\ofoot{\pagemark}
\pagenumbering{Roman}
\clearpage
\tableofcontents
\clearpage
\listoffigures
\clearpage
\pagenumbering{arabic}
\section{Test}
\label{sec:Test}
Test
\subsection{Test}
\label{sec:Test}
\begin{figure}[H]
\centering
\caption{Testfig}
\label{fig:testfig}
\end{figure}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\subsection{Test}
\label{sec:Test}
\end{document}
答案1
您的示例为我显示了目录中正确的页面条目。您仅将您的问题描述为“[w] 目录中的数字错误,长度超过一页”。我猜你的数字在两页的目录中偏离(太低)了一个(或者更一般地说,偏离了 [目录页数 - 1])。解决方案是编译你的 LaTeX 文档(至少)三時間:
第一次运行后,文档包含一个空白的单页目录;
第二次运行后(读取了第一的运行 (run),文档包含一个目录 (ToC),其中的页面条目反映了第一个运行的目录长度 (即一页的目录);
第三次运行后(读取了第二运行),ToC 页面条目反映了正确的 ToC 长度。
答案2
好的,以下是 sharelatex.com 为我提供的解决方案:
有时我们的编译器没有意识到需要再次运行 latex 才能使目录编号正确。尝试在代码中的某处添加以下行:\phantom{\cite{?}}。这包括一个不存在的不可见引用,并将诱使我们的编译器运行最大次数。
答案3
我遇到过类似的问题...目录有 3 页长,但前言中的页面超链接(罗马数字)不正确,指向错误的页面。我尝试通过\setcounter{page}{7}
手动设置页码来修复它,但没有效果,而且目录中的罗马数字也这样被搞乱了。
解决方案是: - 不使用任何\setcounter{page}{7}
(或除 7 以外的任何其他数字)在前言中手动设置页码。即使目录长度超过一两页,它也至少会在页眉中正确编号前言的所有页面。
\phantomsection
在每个条目前放置一个。- 使用
\addcontentsline{toc}{chapter}{Table of Contents blabla}
创建目录条目。 - 添加前言章节(摘要或致谢,通过、 、
\include
或\tableofcontents
其他方式)\listoffigures
\listoftables
- 使用
\mtcaddchapter
以使 minitoc 不同步(否则它们稍后会被放置在错误的章节中)。 - 让我们
\cleardoublepage
来看一下每个章节。
对于我来说,这种方式效果很好,页码和超链接都没问题。
例子:
\phantomsection
\addcontentsline{toc}{chapter}{Table of Contents}
\mtcaddchapter
\tableofcontents
\cleardoublepage
对前言的每一章重复此循环。
\cleardoublepage
就我的情况而言,由于目录长达 3 页,因此缺少的内容会导致错误的超链接指向 2 页之外的页面。