为什么这个修改小节的 titlesec 代码会在节上给出错误?

为什么这个修改小节的 titlesec 代码会在节上给出错误?

根据下面卡莱尔的评论进行了更正。

我想更改子节标题,使其不缩进。我以为这段代码可以做到这一点,但编译时我得到了未定义的控制序列@secnumpunct。我假设这与编号或编号标点有关,但我没有更改任何有关编号的内容,至少我认为我没有更改。

\documentclass{amsbook}
\usepackage{titlesec}
\titleformat{\subsection}
  {\normalfont\large\bfseries}{\thesubsection}{1em}{}
  [\vspace{-1em}\leftmargin=0pt]

\begin{document}
\chapter{Chapter 1}
    \section{Section 1}
        \subsection{Subsection 1}
\end{document}

答案1

该包titlesec不能与 一起使用amsbook,因为此类重新定义了\@startsection

只要看看课堂上的情况

\def\subsection{\@startsection{subsection}{2}%
  \normalparindent{.5\linespacing\@plus.7\linespacing}{-.5em}%
  {\normalfont\bfseries}}

\normalparindent变成{0pt}

\documentclass{amsbook}
\usepackage{lipsum}

\makeatletter
\def\subsection{\@startsection{subsection}{2}%
  {0pt}{.5\linespacing\@plus.7\linespacing}{-.5em}%
  {\normalfont\bfseries}}
\makeatother

\begin{document}

\chapter{Chapter 1}

\section{Section 1}

\subsection{Subsection 1}

\lipsum[1][1-3]

\lipsum[2][1-3]

\end{document}

在此处输入图片描述

相关内容