如何使用规则将文本的一部分居中,但不将文本的左侧或右侧居中

如何使用规则将文本的一部分居中,但不将文本的左侧或右侧居中

其实我已经找到了答案居中文本左/中/右问题

最大的问题是如何在文本部分之间添加填充规则。我尝试了以下方法,但遇到了规则与文本重叠的问题:

\noindent \Large \makebox[0pt][l]{Number}%
\makebox[\textwidth][c]{\hrulefill Title \hrulefill}%
\makebox[0pt][r]{}

如何正确修复它?

答案1

两种方法:

明确计算比对

{\Large \setbox0=\hbox{Title}
 \setbox1=\hbox{Number}
 \dimen0=\hsize \advance\dimen0 by-\wd0
 \divide\dimen0 by 2
 \dimen1=\dimen0 \advance\dimen1 by-\wd1
 \hbox to\hsize{\box1\leaders\hrule\hskip\dimen1 plus1fil
  \box0\leaders\hrule\hskip\dimen0plus 1fil}}

为了克服舍入误差,通过添加使得引线可拉伸plus 1fil

采用 TeX 的排版算法(首选)

给第一个规则填充(在Number和之间Title)一个最小宽度零,加上 1fill 的可拉伸性。但让第二个规则填充(在 之后Title)至少与文本 一样宽Number,再加上 1fill 的可拉伸性。然后 TeX 对两个规则填充使用相同的可拉伸性,但为第二个规则填充添加最小宽度,使其宽度增加Number,这正是所需的。

\hbox to\hsize{\Large
 \setbox0=\hbox{Number}\dimen0=\wd0
 \box0 \leaders\hrule\hfill
 Title\leaders\hrule\hskip\dimen0 plus 1fill}

相关内容