如何将章节、节、小节与父项对齐?

如何将章节、节、小节与父项对齐?

有办法解决这个问题吗?

?

多谢!

答案1

是的,这是可能的;章节编号是由宏排版的\@seccntformat,只需给它一个合适的重新定义:在固定宽度的框中排版数字。

\documentclass{article}
\usepackage{indentfirst}
\usepackage{lipsum}

\makeatletter
\renewcommand{\@seccntformat}[1]{%
  \protect\makebox[\parindent][l]{\csname the#1\endcsname}%
}
\makeatother

\setlength\parindent{2.5pc}

\begin{document}

\section{Lorem ipsum}

\subsection{Aliquam vestibulum}

\lipsum[2]

\subsubsection{Aliquam vestibulum}

\lipsum[2]

\end{document}

在此处输入图片描述


minitoc加载 时(我不推荐,我觉得这会分散注意力并且没什么用),会发生一件奇怪的事情:不幸的是,该包重新定义了一个键宏而没有使用\@seccntformat,这是完全错误的。不过,您可以修补它,恢复正确的行为。

\documentclass{article}
\usepackage{indentfirst}
\usepackage{minitoc}
\usepackage{etoolbox} % for \patchcmd
\usepackage{lipsum}

\makeatletter
\renewcommand{\@seccntformat}[1]{%
  \protect\makebox[2.5pc][l]{\csname the#1\endcsname}%
}
% patch the wrong definition of `\stc@sect`
\patchcmd{\stc@sect}
  {\edef\@svsec{\csname the#1\endcsname\hskip1em}}
  {\protected@edef\@svsec{\@seccntformat{#1}\relax}}
  {}{}
\makeatother

\setlength\parindent{2.5pc}

\begin{document}

\section{Lorem ipsum}

\subsection{Aliquam vestibulum}

\lipsum[2]

\subsubsection{Aliquam vestibulum}

\lipsum[2]

\end{document}

相关内容