答案1
解决方案1)最简单的方法是 \usepackage{titlesec}
及其命令命令。\titleformat
\titlespacing
选项1如果您想要一个硬编码的数字,您将必须使用带星号的分段命令版本,并且 MWE 是:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[vmargin=25mm,right=25mm,left=50mm,verbose=false]{geometry}
\usepackage{blindtext} % for demonstration only
\usepackage{titlesec}
\titlespacing*{\section}{-5em}{3.5ex plus -1ex minus -.2ex}{2.3ex plus .2ex}
\titlespacing*{\subsection}{-3em}{3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}
\titlespacing*{\subsubsection}{-1em}{3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}
\begin{document}
\section*{Header one}
\blindtext
\subsection*{Header two}
\blindtext
\subsubsection*{Header three}
\blindtext
\end{document}
其中使用的长度是article
类的默认值。
选项 2相反,如果您想要一个可变的标题和一个自动递增的数字,您也可以使用(i)explicit
包的选项,(ii)一个额外的计数器(iii)\titleformat
将此数字放在标题后面,
代码变成:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[vmargin=25mm,right=25mm,left=50mm,verbose=false]{geometry}
\usepackage{blindtext} % for demonstration only
\usepackage[explicit]{titlesec}
\newcounter{flatnum}
\titleformat{\section}[hang]{\normalfont\bfseries\Large}{\relax}{0pt}{\stepcounter{flatnum} #1 \theflatnum}
\titleformat{\subsection}[hang]{\normalfont\bfseries\large}{\relax}{0pt}{\stepcounter{flatnum} #1 \theflatnum}
\titleformat{\subsubsection}[hang]{\normalfont\bfseries\normalsize}{\relax}{0pt}{\stepcounter{flatnum} #1 \theflatnum}
\titlespacing*{\section}{-5em}{3.5ex plus -1ex minus -.2ex}{2.3ex plus .2ex}
\titlespacing*{\subsection}{-3em}{3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}
\titlespacing*{\subsubsection}{-1em}{3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}
\begin{document}
\section{Section}
\phantomsection
\blindtext
\subsection{Subsection}
\blindtext
\subsubsection{Subsubsection}
\blindtext
\end{document}
其中使用的样式和长度是article
类的默认值。
解决方案2)一个更复杂但更兼容的解决方案是使用\usepackage{etoolbox}
及其命令\patchcmd
来更改相应 -s 中的间距\@startsection
。要知道哪个是默认设置,请查看latex.tex
(或.ltx
),或者更简单地在正文中输入\meaning\section
和 \meaning\subsection
等。有关此命令的解释,请参阅已接受的答案这个问题