章节标题格式的规则,类似于 \hrulefill,但从基线凸起

章节标题格式的规则,类似于 \hrulefill,但从基线凸起

我正在尝试自定义 \chapter 格式。我想要的是类似\hrulefill但允许我控制线条从基线升高多少以及规则的粗细的东西。例如,使用\rule命令,我可以设置选项,\rule[raise from baseline]{length}{width}这样我就可以进行所有可能的组合,即使用命令,如果我想要与=\textwidth相同的结果。\hrulefill\rule{\textwidth}

现在我的问题是,我不希望规则与文本宽度一样长,但是只要规则遇到一个单词,在我的情况下是“章节的章节编号”。

我已经写了代码

\titleformat{\chapter}[display]
    {\bfseries\Huge} % 
    {\flushright \rule[15pt]{280pt}{5pt} %here I want to change 280pt with something like \textwidth
        \textsuperscript{\fontsize{30}{60}\selectfont{Chapter}}%
        {\fontsize{70}{60}\selectfont\thechapter}} % 
    {10 pt}%
    {\bfseries\fontsize{25}{20}\selectfont}%
\titlespacing*{\chapter}{3pt}{-5ex}{0ex}

这给了我输出

示例1

当然,这不符合我的意图,因为规则的长度是固定的(280pt),可能不适用于其他数字更大的章节。否则,如果我用\textwidth固定长度代替,我的输出将变成

示例 2

使章节低于规则。现在,是否有一个命令可以用规则填充文本宽度,但在找到行的第一个单词时停止?我知道有类似的问题,但没有人以这种方式专门解决这个问题,我想保留这种格式,以便代码更改尽可能少。
提前致谢。

编辑:也许我解释得不太清楚。事实上,我想要的是与第一幅图像(规则与章节标志对齐)更相似的东西,而不是第二幅图像,但它填充了整个文本宽度(而您可以在第一个例子看到规则的开头并不与文本对齐)。

答案1

这里有一个解决方案。我更改了最后一个参数的值\titlespacing(0pt),导致章节标题与以下文本太接近。但也许你不是想有章节标题,而只是标签?

\documentclass[12pt, a4paper]{book}% http://ctan.org/pkg/amsproc
\usepackage[english]{babel} 
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{microtype}
\SetTracking[no ligatures={f}]{encoding=*}{100}
\usepackage{lipsum}

\usepackage{titlesec}%
\usepackage{tabularx} 

\titleformat{\chapter}[display]
{\bfseries\Huge} %
{\begin{tabularx}{\linewidth}{@{}Xl@{}}
\raisebox{3ex}{\rule[-1.8ex]{\linewidth}{5pt}}%\vspace{1.5ex}%
 & \textsuperscript{\fontsize{30}{60}\selectfont{Chapter}}%
{\fontsize{70}{60}\selectfont\thechapter}\end{tabularx}} %
{10 pt}%
{\bfseries\fontsize{25}{20}\selectfont}%
\titlespacing*{\chapter}{3pt}{-0.7ex}{10ex}

\begin{document}

\chapter{Test chapter}%}{Example chapter}
\lipsum[1]

\end{document} 

输出如下所示:

在此处输入图片描述

相关内容