我正在嘗試建立一個兩列的簽名區域,因此簽署文件的人員會列在左列或右列中,並且有足夠的行來容納每個人的簽名。在每個簽名行下,我想列印他們的姓名和可選的標題/公司名稱(如果適用),並且我想從變數中提取名稱/標題/公司名稱,以便我可以輕鬆更改它們。
我在這方面遇到了困難,因為 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}
}%
}
這是我最初的方法,它可以很好地在一個列中列出每個人,並且它依賴比上面顯示的更扁平的成員:
\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}