如何填写 titlesec 部分

如何填写 titlesec 部分

我怎样才能制作一个填满整行的标题格式?就像这样:

«计数器» «名称» « ------ 规则填充 --------»

普通文本....

我设法使用 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}]

  1. \vspace 定义普通文本和部分之间的分隔。
  2. \hspace 定义正常文本第一行的分隔(缩进)
  3. 当节与小节之间没有文字时,空间太大,但当有文字时,空间就可以了。

注意 1.1 和 1.1.1 之间没有文字时的空格

答案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} 

在此处输入图片描述

相关内容