署名用の 2 列の領域を作成しようとしています。これにより、文書に署名する人が左の列または右の列にリストされ、全員の署名を収容するのに十分な行が確保されます。各署名行の下に、名前と、必要に応じて役職/会社名を印刷し、名前/役職/会社を変数から取得して簡単に変更できるようにします。
foreach ループではすべてが同一になりますが、左側と右側では異なるコマンドが必要になる可能性があるため、これには困難があります。
ここに全員の名前が入った変数があります。レイアウト方法は柔軟です。
\def\members{
{
{Name1, Title1, CompanyName1},
{Name2, Title2, CompanyName2}
}, {
{Name3},
{Name4, Title4, CompanyName4}
}, {
{Name5, Title5, CompanyName5},
{Name6}
}, {
{Name7, Title7, CompanyName7},
{Name8, Title8, CompanyName8}
}, {
{Name9, Title9, CompanyName9},
{Name10, Title10, CompanyName10}
}%
}
以下は、全員を 1 つの列にリストするのにうまく機能した元のコードです。これは、メンバーが上記よりもフラットであることを前提としていました。
\foreach \x in \members {
\ \\[8ex]
\makebox[2.5in]{\hrulefill} \\
\foreach \y in \x {
\y \\[1ex]
}
}
私が今やろうとしているのは、左/右の列を持つテーブルを組み込むことです。
\begin{tabular}{ l l }
\begin{tabular}{@{}l@{}} \ \\[8ex] \makebox[2.5in]{\hrulefill} \\
Name1 \\
Title1 \\
CompanyName1 \end{tabular}
& \begin{tabular}{@{}l@{}} \ \\[8ex] \makebox[2.5in]{\hrulefill} \\
Name1 \\
Title1 \\
CompanyName1 \end{tabular} \\
\end{tabular}
答え1
@marmot のコメントが役に立ちました。 でループする代わりに\foreach
、マクロのペアを使用しました。 思ったほどきちんと分離して保存することはできませんでしたが、これで十分でしょう。
\newcommand{\sigblock}[3]{
\makebox[2.5in]{\hrulefill} \\
\ #1 \\
\ #2 \\
\ #3
}
\newcommand{\sigpair}[2]{%
\begin{tabular}{@{}l@{}} \ \\[8ex] \sigblock #1 \end{tabular} &
\begin{tabular}{@{}l@{}} \ \\[8ex] \sigblock #2 \end{tabular}
}
\begin{tabular}{ l l }
\sigpair{{Name1}{Title1}{CompanyName1}}{{Name2}{Title2}{CompanyName2}} \\
\sigpair{{Name3}{}{}}{{Name4}{Title4}{CompanyName4}} \\
\sigpair{{Name5}{Title5}{CompanyName5}}{{Name6}{Title6}{CompanyName6}} \\
\sigpair{{Name7{}Title7}{CompanyName7}}{{Name8}{}{}} \\
\sigpair{{Name9}{Title9}{CompanyName9}}{{Name10}{Title10}{CompanyName10}}
\end{tabular}