我尝试将目录写入我的书中,但遇到了问题,因为它打印了“Sisältö”,但没有目录。我犯了什么错误?
\documentclass[11pt,a5paper,twosided,margin=3in]{amsart}
\usepackage[utf8]{inputenc}
\usepackage[finnish]{babel}
\usepackage{amsmath}
\usepackage[top=0.5in, bottom=0.8in, left=1in, right=1in]{geometry}
\usepackage{fancyhdr}
\fancyfoot{}
\fancyhead[RO,LE]{\thepage}
\fancyhead[LO]{\leftmark}
\fancyhead[RE]{\rightmark}
\cfoot{}
\setlength{\oddsidemargin}{5mm}
\setlength{\evensidemargin}{-5mm}
\linespread{1.5}
\vbadness=20000
\usepackage{titlesec}
\titlespacing{\section}{0pt}{36pt plus 4pt minus 2pt}{0pt plus 2pt minus 2pt}
\titlespacing{\subsection}{0pt}{36pt plus 4pt minus 2pt}{0pt plus 2pt minus 2pt}
\pagestyle{fancy}
\begin{document}
\tableofcontents
\title{title}
\newpage
\section*{Beginning}
Some text.
\subsection*{Start}
\hspace{1em}
Some text.
\end{document}
答案1
默认情况下,amsart
(与标准类别book
、report
、不同article
)在目录中包含带星号的标题;这里的问题是 AMS 类别和titlesec
不兼容。即使是简单的文档
\documentclass{amsart}
\usepackage{titlesec}
\begin{document}
\section{Test section}
\end{document}
产生错误
! Undefined control sequence.
<argument> ...on\endcsname \protect \@secnumpunct
l.6 \section{Test section}
?
教训是:不titlesec
与 AMS 类一起使用。amsart
是根据美国数学学会期刊的设计量身定制的。如果您要修改 AMS 类的某些设置,则需要使用“AMS 方式”进行修改;例如,在您的例子中,您需要更改 和 的原始定义\section
,\subsection
这意味着您需要在文档中包含以下几行:
\makeatletter
\def\section{\@startsection{section}{1}%
\z@{.7\linespacing\@plus\linespacing}{.5\linespacing}%
{\normalfont\scshape\centering}}
\def\subsection{\@startsection{subsection}{2}%
\z@{.5\linespacing\@plus.7\linespacing}{-.5em}%
{\normalfont\bfseries}}
\makeatother
并在那里更改间距的值。另一个选择是,如果您不提交给 AMS,则根本不使用 AMS 类;切换到标准类article
;这样,您可以毫无问题地使用诸如 之类的包titlesec
来自定义部分单元标题,或者使用 memoir 或scrartcl
(来自 KOMA 包),它们提供内置的自定义机制。