我将在这里插入两条水平线作为示例:
-------
Foo
-------
我已经使用过hrulefill
但是该行的长度与页面的长度相同。
答案1
你可以使用
\begin{tabular}{c}
\hline
Foo \\
\hline
\end{tabular}
\tabcolsep
这应该会在 的两边留下长度的水平规则的重叠Foo
。其他可能更粗略的获取此类输出的方法包括
$\overline{\mbox{\underline{\ Foo\ }}}$
当然,无论选择哪种方式,如果这是经常使用的东西,请考虑制作一个宏:
\newcommand{\ouline}[1]{%
\begin{tabular}{c}
\hline
#1 \\
\hline
\end{tabular}}
答案2
您可以length
为您的栏创建一个,然后将其宽度设置为与文本相同的宽度,例如:
\newlength{\foorulewidth}
\settowidth{\foorulewidth}{Foo}
稍后你可以创建一个命令来完成整个操作。例如:
\makeatletter
\newcommand{\ruledtext}[1]{
\newlength{\ruledtextwidth}
\settowidth{\ruledtextwidth}{#1}
\rule[.2\baselineskip]{\ruledtextwidth}{.3pt}\par
#1\par
\rule[.2\baselineskip]{\ruledtextwidth}{.3pt}
\let\ruledtextwidth\@undefined % This is needed to be able to use the same length later
}
\makeatother
以下是 MWE:
\documentclass[12pt]{article}
\makeatletter
\newcommand{\ruledtext}[1]{
\newlength{\ruledtextwidth}
\settowidth{\ruledtextwidth}{#1}
\rule[.2\baselineskip]{\ruledtextwidth}{.3pt}\par
#1\par
\rule[.2\baselineskip]{\ruledtextwidth}{.3pt}
\let\ruledtextwidth\@undefined % This is needed to be able to use the same length later
}
\makeatother
\begin{document}
\ruledtext{Foo}
\ruledtext{Bar}
\ruledtext{create a horizonal line having the length of the text}
\end{document}