Как создать поле подписи в LaTeX

Когда я пишу свои лабораторные отчеты в LaTeX, мне недавно пришлось создать поле подписи в форме.

                   Trondheim 4.september 2009


______________________         ___________________________
  Ivar Nesje                      Team mate name

Проблема заключалась в том, что я не мог найти простой способ сделать это, поэтому после большого поиска в сети я придумал это простое решение

\newcommand{\doubleSignature}[3]{
\begin{minipage}[c]{\textwidth}
\vspace{2cm}

\makebox[12cm][c]{
 #1, \today 
}
\vspace{3cm}

\makebox[12cm][c]{
\hfill \makebox[5cm][c] {\hrulefill} \hfill \makebox[5cm][c] {\hrulefill} \hfill
}
\makebox[12cm][c]{
\hfill #2 \hfill #3 \hfill
}
\vspace{1cm}
\end{minipage}
}

Это позволило мне ввести:

\doubleSignature{Trondheim}{Ivar Nesje}{Team mate name}

Чтобы достичь желаемого результата. Если у кого-то из вас есть другой способ сделать это, не используя класс документа letter, я был бы очень рад услышать ваши предложения.

Ответ 1

Я думаю, что работаю из \rule[<raise>]{<width>}{<thickness>}. Поскольку эталонная точка находится в нижнем левом углу, вам, вероятно, даже не нужен дополнительный аргумент для поднятия. Что-то вроде:

\newcommand{\doublesignature}[3][Ivar Nesje]{%
  \parbox{\textwidth}{
    \centering #3 \today\\
    \vspace{2cm}

    \parbox{7cm}{
      \centering
      \rule{6cm}{1pt}\\
       #1 
    }
    \hfill
    \parbox{7cm}{
      \centering
      \rule{6cm}{1pt}\\
      #2
    }
  }
}

Я переупорядочил ваши аргументы, чтобы сделать ваше имя необязательным.

Ответ 2

Предполагая, что нет дополнительных ограничений форматирования, я, вероятно, использовал бы tabular вместо полей, и я бы использовал \rule{length}{width} вместо \hrulefill:

\newcommand{\doubleSignature}[3]{
\vspace{2cm}

\begin{center}
    #1, \today
\end{center}
\vspace{3cm}

\noindent
\begin{tabular}{lcl}
    \rule{5cm}{1pt} & \hspace{2cm} & \rule{5cm}{1pt} \\
    #2 & & #3
\end{tabular}
\vspace{1cm}
}