Я хочу использовать \mathsection
в chapter
содержании, как я уже сказал, и Гонсало Медина придумал для меняИспользование \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). В качестве примера возьмем следующий документ, который создает ваше форматирование (как в документе, так и в ToC) с минимальными усилиями, а также включает некоторые настройки стилиста из 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}