答案1
您的问题似乎与页码有关。您可能应该在首页使用罗马数字,在论文真正开始的地方使用阿拉伯数字。如果是这样,您可以使用\frontmatter
和\mainmatter
命令。第一个命令之后和第二个命令之前的页面将使用小写罗马数字编号。然后,\mainmatter
将重新启动页面计数器并将样式更改为阿拉伯数字。
以下是 MWE:
\documentclass[11pt, twoside, a4paper]{book}
\usepackage{lipsum}
\usepackage[utf8]{inputenc}
\begin{document}
\frontmatter
\addcontentsline{toc}{chapter}{Foreword}
\lipsum[1-3]
\tableofcontents
\mainmatter
\chapter*{Introduction}
\addcontentsline{toc}{chapter}{Introduction}
\lipsum[1-2]
\chapter{My research plan}
\lipsum[3-4]
\chapter{Methodology}
\lipsum[5-6]
\end{document}
这将创建下面的内容表:
答案2
问题源于\chapter*
在开始时执行introduction.tex
,但你只发出\addcontentsline
后全部内容introduction.tex
已读完。
以下代码尝试通过重新定义来规避所有这些问题\chapter
,以便\addcontentsline
在适当的时间发出,从而使您的 ToC 条目正确无误。
的重新定义\chapter
允许您将带星号的版本与可选参数和强制参数一起使用。可选参数将用于 ToC 条目,即使您将它与 一起使用\chapter*
:
\documentclass{book}
% Create a dummy introduction.tex
\usepackage{filecontents,lipsum}
\begin{filecontents*}{introduction.tex}
\chapter*{Introduction}
\sloppy\lipsum[1-50]
\end{filecontents*}
\usepackage{xparse}
\let\oldchapter\chapter
\RenewDocumentCommand{\chapter}{s o m}{%
\IfBooleanTF{#1}
{% \chapter*
\oldchapter*{#3}%
\IfValueTF{#2}
{% \chapter*[.]{..}
\addcontentsline{toc}{chapter}{#2}%
}{% \chapter*{..}
\addcontentsline{toc}{chapter}{#3}%
}%
}{% \chapter
\IfValueTF{#2}
{% \chapter[.]{..}
\oldchapter[#2]{#3}%
}{% \chapter{..}
\oldchapter{#3}%
}%
}%
}
\let\oldtableofcontents\tableofcontents
\renewcommand{\tableofcontents}{{%
\let\chapter\oldchapter
\oldtableofcontents
}}
\begin{document}
\tableofcontents
\input{introduction}
\end{document}