我想从当前页面的左边距到居中文本的末尾绘制一条水平线。例如,如果我将“Hello, world!”写为居中文本,我希望一条线延伸到“!”符号,就像下划线一样。
我想避免使用tikz
。此外,这应该适用于不同的文本(而不仅仅是“Hello, world!”),所以我想避免对长度进行硬编码或将其作为参数传递。
我怎样才能做到这一点?
提前感谢您的回答!
答案1
调用\ulcenterline
会产生一个新段落。这样可以吗?或者如果左边距已经有文本,则在同一行上发生?该行\usepackage[showframe,pass]{geometry}
只是为了显示页面文本区域的框架。
\documentclass{article}
\usepackage[showframe,pass]{geometry}
\newcommand\ulcenterline[1]{%
\par\noindent
\rlap{\underline{\vphantom{#1}\rule{.5\linewidth}{0pt}}}%
\centerline{\underline{#1}}%
}
\begin{document}
\ulcenterline{Hello World!}
\ulcenterline{This is a bigger test!!}
\end{document}
如果您需要它在不添加的情况下工作\par
,即使在行的左端已经有文本,那么在我的 MWE 中,用 替换\par
,\tabto*{0pt}
确保\usepackage{tabto}
:
\documentclass{article}
\usepackage{tabto}
\newcommand\ulcenterline[1]{%
\tabto*{0pt}\noindent
\rlap{\underline{\vphantom{#1}\rule{.5\linewidth}{0pt}}}%
\centerline{\underline{#1}}%
}
\begin{document}
xxx\ulcenterline{Hello World!}
text already on line\ulcenterline{This is a bigger test!!}
\end{document}