更好的方法:将给定长度的文本置于上划线下方

更好的方法:将给定长度的文本置于上划线下方

我需要创建签名行。我需要 3 行签名行,每行下面都有不同的文本,但我希望每行的长度都相同,文本居中。
带有 s 的表格\hline使水平放置变得容易,但垂直放置行的效果不如\overline

以下代码实现了将文本置于长度为的(上)线下方的居中xDatum/Unterschrift Ausbildungsleiterx,但问题是:有没有更好的方法来做到这一点,因为这感觉像是一个非常“奇怪”的解决方案。

\documentclass{article}
\usepackage{calc}
\newcommand{\strich}[1]{%
  \makebox[\width][c]{%
    \makebox[0pt][l]{%
      \makebox[\widthof{xDatum/Unterschrift\ Ausbildungsleiterx}]{%
        #1%
      }%
    }%
    \makebox{%
      \ensuremath{%
        \overline{%
          \phantom{%
            \mathrm{xDatum/Unterschrift\ Ausbildungsleiterx}%
          }%
        }%
      }%
    }%
  }%
}

\begin{document}
    \begin{center}
    \footnotesize{\strich{Datum/Unterschrift\ Auszubildender}}
    \vspace{2.5cm}\\
    \footnotesize{\strich{Datum/Unterschrift\ Betreuer}\hfill\strich{Datum/Unterschrift\ Ausbildungsleiter}}
    \end{center}
\end{document}

请注意,这Datum/Unterschrift Ausbildungsleiter是我需要放在签名栏下的 3 段文本中最长的一段。

答案1

您可以创建\parbox并插入\rule

\documentclass{article}
\usepackage{calc}

%Specify the longest signaturekey here:
\newcommand{\sigwidth}{\widthof{\footnotesize xDatum/Unterschrift\ Ausbildungsleiterx}}
%Define a signaturbox of 2.5 cm in height with a mandatory argument of the signature
\newcommand{\signaturehere}[1]{%
\parbox[b][2.5cm][b]{\sigwidth}{%
\footnotesize%Everything in footnotesize
\centering% 
\rule[-3pt]{\linewidth}{0.4pt}\\[0ex]%
{#1}%
}}

\begin{document}
\begin{center}
\signaturehere{Datum/Unterschrift\ Auszubildender}\\
\signaturehere{Datum/Unterschrift\ Betreuer}\hfill%
\signaturehere{Datum/Unterschrift\ Ausbildungsleiter}
\end{center}

\end{document}

在此处输入图片描述

答案2

您还可以自动计算最大的文本:

\documentclass{article}
\usepackage{calc}

\newlength{\signaturelength}
\newcommand{\signatures}[3]{%
  \begin{center}\footnotesize % all is \footnotesize
  % compute the maximum width
  \setlength{\signaturelength}{\maxof{\widthof{#1}}{\widthof{#2}}}%
  \setlength{\signaturelength}{\maxof{\signaturelength}{\widthof{#3}}}%
  \addtolength{\signaturelength}{2em}% Add some space
  % print the three lines with their caption
  \strich{#1}\\[2.5cm]
  \strich{#2}\hfill
  \strich{#3}
  \end{center}
}

\newcommand{\strich}[1]{% The line and its caption
  \parbox[t]{\signaturelength}{\footnotesize % \parbox does \normalsize
    \centering\hrule\vspace{.5ex}\strut#1}}

\begin{document}

\signatures{Datum/Unterschrift Ausbildungsleiter}
  {Datum/Unterschrift Betreuer}
  {Datum/Unterschrift Ausbildungsleiter}

\end{document}

在此处输入图片描述

(感谢 Heiko 发现规则的不一致。

相关内容