将自定义 \section 格式转换为 titlesec

将自定义 \section 格式转换为 titlesec

我有一些\section带有水平线的自定义格式,我试图通过使用titlesec来定义默认格式选项来使我的代码 DRY。但我无法准确重现不使用时发生的情况titlesec。以下是一个例子:

\documentclass{article}
\usepackage[explicit]{titlesec}
\usepackage{xhfill}

\begin{document}

% Plain xrfill:
\section*{\large\normalfont First Section \xrfill[0.6ex]{0.4pt}}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

% Via titlesec:
\titleformat{\section}[runin]{\large}{\thetitle}{1em}{#1 \xrfill[0.6ex]{0.4pt}}
\section*{Second Section (\texttt{titlesec})}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

% Titlesec with a \\ at the end:
\titleformat{\section}[runin]{\large}{\thetitle}{1em}{#1 \xrfill[0.6ex]{0.4pt}\\}
\section*{Third Section (line break)}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\end{document}

请注意,使用titlesec不会将以下文本放入新段落中。我尝试用 来解决这个问题,\\但也没有用。我该怎么做才能让它像没有 一样工作titlesec

答案1

使用[display]样式而不是样式[runin]

\titleformat{\section}[display]{\large}{\thetitle}{1em}{#1\space\xrfill[0.6ex]{0.4pt}}
\section*{Second Section (\texttt{titlesec})}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.

在此处输入图片描述

相关内容