如何为该部分添加下划线至行末?

如何为该部分添加下划线至行末?

我使用以下取自网上的代码来强调章节标题

\makeatletter
\sectionfont{\ulemheading{\uuline}}
\let\oldsection\section
\def\section{\@ifstar\s@section\@section}
\newcommand{\@section}[2][\relax]{\oldsection{\llap{\rlap{\hspace{\textwidth}\llap{#1}}\protect\phantom{\thesection\quad}}#2}}
\newcommand{\s@section}[2][\relax]{\oldsection*{\llap{\rlap{\hspace{\textwidth}\llap{#1}}}#2}}
\makeatother

使用此代码后,\section我得到以下结果:

在此处输入图片描述

但是,我希望下划线到达行末,如下所示:

在此处输入图片描述

我尝试手动在章节标题中添加空格,但结果却很难调整,特别是因为我有太多章节。

我怎样才能让下划线移到页面边缘?

答案1

最好直接绘制规则,而不是使用\uuline。绘制延伸整个文本宽度的规则的一种简单方法是\hrule。例如:

\makeatletter
\let\oldsection\section
\def\section{\@ifstar\s@section\@section}
\newcommand{\@section}[2][\relax]{\oldsection[#1]{#2}\hrule\bigskip}
\newcommand{\s@section}[1]{\oldsection*{#1}\hrule\bigskip}
\makeatother

\vspace您可以通过在 周围添加正数或负数来微调线的位置\hrule

关于 MWE 的备注:

如果我理解正确的话,你的想法如下:

  1. 使用 来\sectionfont{\ulemheading{\uuline}}给章节名称加下划线。
  2. 将部分标题的宽度更改为文本宽度,以延长下划线。

虽然这可能在您的设置中起作用,但总的来说这不是一个好主意,因为这也会弄乱可能的目录。

我不完全理解您的 MWE 的作用(或它应该做什么),但在您的 MWE 中的定义之后,和都\section接受\section*一个可选参数,该参数排版向右对齐。这不是 LaTeX 的标准行为:通常,只\section应该接受一个可选参数,该参数应该是目录的章节标题的变体。 \section*不会向目录添加条目,因此不需要可选参数。因此,\@section应该有两个参数,其中#2是章节标题,并且\s@section应该有一个参数,即章节标题。

编辑:

  • 模仿 MWE,现在*和可选参数[]也起作用了。
  • 解释 MWE 的问题

相关内容