我正在使用 titlesec 来格式化文档中的标题。我花了大约一个小时试图画一条线以下标题横跨页面上文本块的整个宽度。到目前为止,我已经做到了这一点:
\titleformat*{\subsection}
{\large\bfseries
\titlerule[0.8pt]%
\bfseries}
\let\stdsubsection\subsection
\renewcommand\subsection{\newpage\stdsubsection}
使用此 cdoe,绘制线条多于标题。我尝试了很多不同的方法来解决这个问题,但都没有成功。我能找到的所有例子都没有使用我出于必要而使用的重新定义子节命令,为每个子节获取一个新页面。
它看起来是这样的:
答案1
您必须使用 的扩展语法titlesec
,如果您希望子部分开始新页面,请将子部分的类(通常为straight
)更改为top
,就像章节一样。水平规则是使用 的最后一个(可选)参数获得的\titleformat
:
\documentclass[a4paper, 11pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\usepackage{titlesec}
\titleformat{\subsection}{\large\bfseries}{\arabic{subsection}.}{0.5em}{}[\titlerule]
\titlespacing{\subsection}{0pt}{-3ex}{4ex}
\titleclass{\subsection}{top}
\usepackage{lipsum}
\begin{document}
\lipsum[1-4]
\subsection{Consider the consequences}
\lipsum[5]
\end{document}