部分名称左右两侧的线

部分名称左右两侧的线

我希望每个部分名称的左右两侧都有线条。有点像但我不想只用一点文本并添加线条来填充文本宽度,而是希望部分名称保持在原来的位置,但在边距中留有线条,并且如果可能的话还填充剩余空间。

margin              text                   margin
<-----> <-------------------------------> <------>

        I'd like it to look like this:

------- 1 - This section                  --------

        Normal text is from here to there
        and then it gets on a new line.

        Or (even better) like that:

------- 2 - That section -------------------------

        Normal text is from here to there
        and then it gets on a new line.

我尝试使用链接问题中的代码,但显然,来自各个部分的文本是神奇的,你不能把它放在任何一个解决方案中。

答案1

请注意,在这种方法中,您始终需要使用可选的短节名称 (toc)。您可以始终定义一个\mysection来同时处理两者。

\documentclass[oneside]{article}
\usepackage{showframe}
\usepackage{mwe}

\makeatletter
\newcommand{\linetitle}[1]% #1 = section title text
{\settowidth{\@tempdimb}{\@svsec}% section number is variable width
 \llap{\rule{\marginparwidth}{1pt}\hspace{\marginparsep}\hspace{\@tempdimb}}% left margin
 \parbox[t]{\dimexpr \textwidth-\@tempdimb}{#1}%
 \rlap{\hspace{\marginparsep}\rule{\marginparwidth}{1pt}}}
\makeatother

\begin{document}

\section[Section Name]{\linetitle{Section Name}}
\setcounter{section}{21}
\section[Test]{\linetitle{\blindtext}}
\end{document}

完整页面

相关内容