循環兩列簽名區塊

循環兩列簽名區塊

我正在嘗試建立一個兩列的簽名區域,因此簽署文件的人員會列在左列或右列中,並且有足夠的行來容納每個人的簽名。在每個簽名行下,我想列印他們的姓名和可選的標題/公司名稱(如果適用),並且我想從變數中提取名稱/標題/公司名稱,以便我可以輕鬆更改它們。

我在這方面遇到了困難,因為 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}

相關內容