\mathsection
我想在内容中使用chapter
,正如我所说,Gonzalo Medina 为我弄清楚了在章节中使用 \mathsection。
但是,当我使用他的解决方案时,目录就出错了,如下所示:
这是我的模板的代码:
\documentclass[11pt,a4paper]{amsbook}
\usepackage{bbold,amscd,amsmath,amssymb,amsfonts,ifthen,amsthm}
\usepackage[utf8]{vietnam}
\usepackage{titlesec}
\usepackage[all]{xypic}
\usepackage{kpfonts}`
%%%%% FOR SEARCHING LABELS AND REFS %%%%%%%%%%%%%%%
\usepackage{color}
\usepackage[color,notref,notcite]{showkeys}
\definecolor{refkey}{rgb}{0,0,0}
\definecolor{labelkey}{rgb}{0,0,1}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{newcent}
%\usepackage[unicode]{hyperref}
\usepackage{cmap}
%%%%%MARGIN %%%%%%%%%%%%%%%%%%%
\oddsidemargin 2cm %0.3cm
\evensidemargin 2cm % 3cm
\topmargin2cm
\textwidth12cm %15
\textheight18.5cm %22
\headheight3ex
\headsep5ex
\topskip3ex
%% FOR TYPESETTING VIETNAMESE WITH AMSART %%%%%%
\def\firstofone#1{#1}
\let\uppercase\firstofone
\let\MakeUppercase\firstofone
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%STYLE%%%%%%%%%%%
\def\thepart{\Roman{part}}
\def\thechapter{\arabic{chapter}}
\def\thesection{\arabic{section}}
\def\labelenumi{\roman{enumi})}
%\numberwithin{thm}{section}
\numberwithin{equation}{section}
\titleformat{\chapter}[display]
{\normalfont\huge\filcenter\scshape}{\chaptertitlename\ \thechapter}{0.2pt}{}
\titleformat{\section}
{\normalfont\Large\bfseries}{\S\thesection.}{0.1em}{}
%THEOREM%%%%%%%%%%%%%%%%
\theoremstyle{plain}
\newtheorem{thm}{Theorem}[section]
\newtheorem{dl}[thm]{Định lý}
\newtheorem{bd}[thm]{Bổ đề}
\newtheorem{hq}[thm]{Hệ quả}
\newtheorem{md}[thm]{Mệnh đề}
\theoremstyle{definition}
\newtheorem{nx}[thm]{Nhận xét}
\newtheorem{chuy}[thm]{Chú ý}
\newtheorem{dn}[thm]{Định nghĩa}
\newtheorem{vidu}[thm]{Ví dụ}
\newtheorem{bt}{}[section]
% miscellaneous
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagestyle{myheadings}
\begin{document}
\parskip4pt
\renewcommand{\baselinestretch}{1.1}
\frontmatter
\tableofcontents
\normalsize
\chapter*{Lời nói đầu}
Thử xem thế nào.\\
Let's try it.\\
\chapter*{Các ký hiệu}
\markleft{\sc Các ký hiệu}
\markright{\sc Các ký hiệu}
Ta sẽ dùng các ký hiệu sau \\
We will use these following notations.\\
\mainmatter
\pagenumbering{arabic}
\markleft{\hfill \sc Nguyễn Minh Hà}
\chapter{Hướng của đoạn thẳng}
\markright{\sc Hướng của đoạn thẳng\hfill\ }
\section{Hình thang và hình bình hành}
We define the following figure.\\
\section{Đoạn thẳng}
We define the following arc.\\
\backmatter
\begin{thebibliography}{99}
\end{thebibliography}
\end{document}
那么,我该如何修复我的模板以获取正确的内容\mathsection
、部分数量、部分名称和页数?
答案1
由于您的文档类是amsbook
,而不是标准类之一,最好不要使用titlesec
;以下代码包含部分单元的必要重新定义,并且还会在目录中的数字前面添加符号:
\documentclass[11pt,a4paper]{amsbook}
\usepackage{bbold,amscd,amsmath,amssymb,amsfonts,ifthen,amsthm}
\usepackage[utf8]{vietnam}
\usepackage[all]{xypic}
\usepackage{kpfonts}
%%%%% FOR SEARCHING LABELS AND REFS %%%%%%%%%%%%%%%
\usepackage{color}
\usepackage[color,notref,notcite]{showkeys}
\definecolor{refkey}{rgb}{0,0,0}
\definecolor{labelkey}{rgb}{0,0,1}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{newcent}
%\usepackage[unicode]{hyperref}
\usepackage{cmap}
%%%%%MARGIN %%%%%%%%%%%%%%%%%%%
\oddsidemargin 2cm %0.3cm
\evensidemargin 2cm % 3cm
\topmargin2cm
\textwidth12cm %15
\textheight18.5cm %22
\headheight3ex
\headsep5ex
\topskip3ex
%% FOR TYPESETTING VIETNAMESE WITH AMSART %%%%%%
\def\firstofone#1{#1}
\let\uppercase\firstofone
\let\MakeUppercase\firstofone
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%STYLE%%%%%%%%%%%
\def\thepart{\Roman{part}}
\def\thechapter{\arabic{chapter}}
\def\thesection{\arabic{section}}
\def\labelenumi{\roman{enumi})}
%\numberwithin{thm}{section}
\numberwithin{equation}{section}
%THEOREM%%%%%%%%%%%%%%%%
\theoremstyle{plain}
\newtheorem{thm}{Theorem}[section]
\newtheorem{dl}[thm]{Định lý}
\newtheorem{bd}[thm]{Bổ đề}
\newtheorem{hq}[thm]{Hệ quả}
\newtheorem{md}[thm]{Mệnh đề}
\theoremstyle{definition}
\newtheorem{nx}[thm]{Nhận xét}
\newtheorem{chuy}[thm]{Chú ý}
\newtheorem{dn}[thm]{Định nghĩa}
\newtheorem{vidu}[thm]{Ví dụ}
\newtheorem{bt}{}[section]
% miscellaneous
% Chapter and section headings
\makeatletter
\def\@makechapterhead#1{\global\topskip 5.5pc\relax
\begingroup
\fontsize{\@xivpt}{18}\bfseries\centering
\ifnum\c@secnumdepth>\m@ne
\leavevmode \hskip-\leftskip
\rlap{\vbox to\z@{\vss
\centerline{\normalsize\mdseries
\@xp{\scshape{\chaptername}}\enspace\thechapter}
\vskip 2pc}}\hskip\leftskip\fi
\normalfont\scshape#1\par \endgroup
\skip@34\p@ \advance\skip@-\normalbaselineskip
\vskip\skip@ }
\def\@makeschapterhead#1{\global\topskip 7.5pc\relax
\begingroup
\fontsize{\@xivpt}{18}\normalfont\scshape\centering
#1\par \endgroup
\skip@34\p@ \advance\skip@-\normalbaselineskip
\vskip\skip@ }
\def\@sect#1#2#3#4#5#6[#7]#8{%
\edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}%
\ifnum #2>\c@secnumdepth \let\@secnumber\@empty
\else \@xp\let\@xp\@secnumber\csname the#1\endcsname\fi
\ifnum#2=1 \def\@secnumber{\S\thesection}\fi
\ifnum #2>\c@secnumdepth
\let\@svsec\@empty
\else
\refstepcounter{#1}%
\edef\@svsec{\ifnum#2<\@m
\@ifundefined{#1name}{}{%
\ignorespaces\csname #1name\endcsname\space}\fi
\@nx\textup{%
\csname the#1\endcsname.}\enspace
}%
\fi
\@tempskipa #5\relax
\ifdim \@tempskipa>\z@ % then this is not a run-in section heading
\begingroup\ifnum#2=1\relax\noindent\textbf{\S}\fi #6\relax% NEW
\@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty\@M #8\par}%
\endgroup
\csname #1mark\endcsname{#7}%
\ifnum#2>\@m \else \@tocwrite{#1}{#8}\fi
\else
\def\@svsechd{#6\hskip #3\@svsec
\@ifnotempty{#8}{\ignorespaces#8\unskip
ñññ\@addpunct.}%
\ifnum#2>\@m \else \@tocwrite{#1}{#8}\fi
}%
\fi
\global\@nobreaktrue
\@xsect{#5}}
\def\section{\@startsection{section}{1}%
\z@{.7\linespacing\@plus\linespacing}{.5\linespacing}%
{\normalfont\bfseries}}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagestyle{myheadings}
\begin{document}
\parskip4pt
\renewcommand{\baselinestretch}{1.1}
\frontmatter
\tableofcontents
\normalsize
\chapter*{Lời nói đầu}
Thử xem thế nào.\\
Let's try it.\\
\chapter*{Các ký hiệu}
\markleft{\sc Các ký hiệu}
\markright{\sc Các ký hiệu}
Ta sẽ dùng các ký hiệu sau \\
We will use these following notations.\\
\mainmatter
\pagenumbering{arabic}
\markleft{\hfill \sc Nguyễn Minh Hà}
\chapter{Hướng của đoạn thẳng}
\markright{\sc Hướng của đoạn thẳng\hfill\ }
\section{Hình thang và hình bình hành}
We define the following figure.\\
\section{Đoạn thẳng}
We define the following arc.\\
\backmatter
\begin{thebibliography}{99}
\end{thebibliography}
\end{document}
\documentclass[11pt,a4paper]{amsbook}
\begin{document}
\chapter{Test Chapter}
\section{Test Numbered Section}
\section*{Test Unnumbered Section}
\end{document}
我还更改了链接问题中的答案,不再使用titlesec
。
最后说明一下:AMS 文档类别是为提交给 AMS 而设计的,因此它们具有非常具体的设置,正如您所见,可能很难覆盖。
如果您不必使用 AMS 类之一,我建议您切换到另一个文档类;这样做可能是一个不错的选择,因为现在可以使用现有包(与 AMS 类不兼容)轻松更改格式。例如,以以下文档为例,它以最小的努力生成您的格式(在文档和目录中),并且还结合了来自的一些样式设置amsbook
:
\documentclass{book}
\usepackage[compact]{titlesec}
\usepackage[titles]{tocloft}
\usepackage{chngcntr}
\counterwithout{section}{chapter}
\newlength\mylen
\renewcommand\cftchappresnum{\chaptername~}
\renewcommand\cftchapaftersnum{.}
\renewcommand\cftchapfont{\normalfont}
\renewcommand\cftchappagefont{\normalfont}
\settowidth\mylen{\cftchappresnum\cftchapaftersnum} % extra space
\addtolength\cftchapnumwidth{\mylen}
\renewcommand\cftsecdotsep{\cftnodots}
\renewcommand\cftsecpresnum{\S}
\renewcommand\cftsecaftersnum{.}
\titleformat{\chapter}[display]
{\normalfont\LARGE\scshape\filcenter}{\chaptertitlename\ \thechapter}{15pt}{}
\titleformat{\section}
{\normalfont\Large\bfseries}{\S\thesection.}{0.5em}{}
\begin{document}
\tableofcontents
\frontmatter
\chapter{Test Chapter}
\chapter{Test Chapter}
\mainmatter
\chapter{Test Chapter}
\section{Test Section}
\section{Test Section}
\chapter{Test Chapter}
\section{Test Section}
\section{Test Section}
\end{document}