可以根据文本长度(MWE 中的文本 aab)设置线条的宽度。文本 aab + 线条的总长度应该相等。而且我还需要“内部文本”与“文本 aab”的高度相同。这可能比使用数学模式更简单。
\documentclass[]{article}
\usepackage[]{amsmath}
\usepackage{calc}
\newcommand\tline[3]{$\overset{\text{{\normalsize #2}}}{\underset{\text{#1}}{\text{\underline{\hspace{#3}}}}}$}
\begin{document}
Text aab \tline{(full name)}{Text inside}{0.5\linewidth - \widthof{Text aab} }
Text aaabbb \tline{(full name)}{Text inside}{0.5\linewidth - \widthof{Text aaabbb} }
Text aaabbbccc \tline{(full name)}{Text inside}{0.5\linewidth - \widthof{Text aaabbbccc} }
\end{document}
答案1
该\signature
宏有五个参数(在代码中列出);由于不清楚将“里面的文本”放在哪里,我添加了一个参数来告诉人们这个文本的中心距离右端有多远。
\documentclass{article}
\newcommand{\signature}[5]{%
% #1 = total width
% #2 = padding on the right
% #3 = text on the left
% #4 = text above the rule
% #5 = text below the rule
\par\noindent
\makebox[#1][s]{#3\ \lowrule{\fill}\makebox[0pt]{#4}\lowrule{#2}}\\*
\makebox[#1][s]{\hphantom{#3}\ \hfill\makebox[0pt]{\scriptsize#5}\hspace{#2}}%
}
\newcommand{\lowrule}[1]{%
\leaders\hrule height \dimexpr-\dp\strutbox+0.4pt\relax depth \dp\strutbox\hskip#1\relax
}
\begin{document}
\signature{10cm}{4cm}{Text aab}{Text inside}{(full name)}
\medskip
\signature{10cm}{4cm}{Text aaabbb}{Text inside}{(full name)}
\medskip
\signature{10cm}{4cm}{Text aaabbbccc}{Text inside}{(full name)}
\end{document}