我想在行首有一个单词的整行下划线。我试过了
\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
给出不同的值直到您满意为止。