我怎样才能制作一个填满整行的标题格式?就像这样:
«计数器» «名称» « ------ 规则填充 --------»
普通文本....
我设法使用 runin 类型来完成此操作,但是它存在几个问题:
\newcommand{\crulefill}{\leavevmode\leaders\hrule 高度 0.7ex 深度\dimexpr 0.5pt-0.7ex\hfill\kern 0pt}
\titleformat{\section}[runin] {\bfseries\Large} {\fboxrule=0.5pt\fcolorbox{black}{white!0}{{\color{black}\thesection.}}\rule[.7ex]{10pt}{.5pt}\ } {0pt} {\upshape\bfseries\Large} [\ \crulefill\vspace*{1.5ex}~\\hspace*{6pt}]
- \vspace 定义普通文本和部分之间的分隔。
- \hspace 定义正常文本第一行的分隔(缩进)
- 当节与小节之间没有文字时,空间太大,但当有文字时,空间就可以了。
答案1
具有默认hang
样式的解决方案,以及explicit
选项:
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[svgnames]{xcolor}
\usepackage{lipsum}
\usepackage[explicit]{titlesec}
\newcommand{\crulefill}{\leavevmode\leaders\hrule height 0.7ex depth\dimexpr 0.5pt-0.7ex\hfill\kern 0pt}
\titleformat{\section}{\bfseries\Large} {\fboxrule=0.5pt\fcolorbox{black}{white!0}{{\color{black}\thesection.}}\rule[.7ex]{10pt}{.5pt} } {0pt} {\upshape\bfseries\Large#1 \ \crulefill}%
\titleformat{\subsection}{\bfseries\large} {\thesubsection.\enspace\color{LightSteelBlue}\vrule}{0.6em} {#1}
\begin{document}
\setcounter{chapter}{1}
\section{Sección}
\subsection{Subsection}
\lipsum[11]
\section{Sección}
\lipsum[12]
\subsection{Subsection}
\lipsum[13]
\end{document}