为开头带有短文本的整行加下划线

为开头带有短文本的整行加下划线

我想在行首有一个单词的整行下划线。我试过了

\underline{\textsc{HOMEWORK}\hrulefill}}

但这只会给单词“HOMEWORK”加下划线,而其余部分则不加下划线。

还有其他建议吗?

答案1

最简单的方法是创建一个宏来执行此操作,它可以测量文本的长度,然后\hspace为剩余空间生成一个:

\documentclass{article}
\usepackage{calc}

\newlength{\remaining}
\newcommand{\titleline}[1]{%
\setlength{\remaining}{\textwidth-\widthof{\textsc{#1}}}
\noindent\underline{\textsc{#1}\hspace*{\remaining}}\par}
\begin{document}

\titleline{homework}

\end{document}

答案2

这是一个老问题,但答案让我不满意,我花了无数个小时绞尽脑汁。我最终得出的结论来自\uline这个ulem包。这允许包含一个\hfill将线延伸到页面末尾,从而允许下划线从左边缘以外的某个地方开始。

\documentclass{article}
\usepackage[normalem]{ulem}

\hspace{10em}\uline{\textsc{HOMEWORK}\hfill}

只是\hspace为了表明它不必从左边距开始。

答案3

\hrulefill告诉 TeX 用规则填充可用空间,但在您的情况下没有:\underline{...}创建一个与内部文本一样宽的框。

你可能想要的是“家庭作业”单独排成一行,后面跟着一条横线,横跨整个页面。然后

\par\hbox{HOMEWORK\strut}\hrule

应该做你需要做的事。

如果你觉得间距太大,别介意。:) 下划线在排版中是被反对的。不过,你可以尝试以下方法调整间距:

\par\hbox{\scshape homework}\kern1pt\hrule\kern3pt

给出不同的值直到您满意为止。

相关内容