來自定義的佈局/範本的表格用於輸入

來自定義的佈局/範本的表格用於輸入

我正在做一個項目,我需要在整個文件中多次複製表格。表的基本結構是相同的,但是一些輸入需要更改。我想知道是否可以定義一個基本佈局(或某種模板),我只需要填寫變數數據,而不需要再次設定整個表格。

我的問題是,在複製貼上表格並稍後更改它們時,很可能會出現人為錯誤。

讓我們舉一個我想要的例子。首先是一個表定義:

\begin{table}[h]
\makebox[\linewidth]
{
    \begin{tabular}{|l|l|l|}
    \hline
    [static]            & [static]  & [static]  \\ \hline
    [static]            & [DYNAMIC] & [DYNAMIC] \\ \hline
    [static]            & [DYNAMIC] & [DYNAMIC] \\ \hline
    [static]            & [DYNAMIC] & [DYNAMIC] \\ \hline
    \end{tabular}
}
\caption{[DYNAMIC}
\label{[DYNAMIC]}
\end{table}

我正在尋找一種複製表的方法,其中每當複製表時,不應更改標記為 [static] 的內容,但是,應在每個表中更改標記為 [DYNAMIC] 的內容。因此,我正在尋找某種方法來定義基本佈局,以便輕鬆「貼上」需要更改的資料。

我一直在谷歌上搜尋這個,但沒有運氣,所以現在我想知道這是否可以用乳膠實現,如果可以的話,正確的方法是什麼?

謝謝 :)

答案1

您可以使用鍵值系統,例如expl3.

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\archietable}{m}
 {
  \begin{table}[htp]
  \centering
  \keys_set:nn { archie/table } { #1 }
  \begin{tabular}{|l|l|l|}
  \hline
  STATIC & STATIC & STATIC \\ \hline
  STATIC & \l_archie_table_XA_tl & \l_archie_table_YA_tl \\ \hline
  STATIC & \l_archie_table_XB_tl & \l_archie_table_YB_tl \\ \hline
  STATIC & \l_archie_table_XC_tl & \l_archie_table_YC_tl \\ \hline
  STATIC & \l_archie_table_XD_tl & \l_archie_table_YD_tl \\ \hline
  \end{tabular}
  \caption{\l_archie_table_caption_tl}
  \label{\l_archie_table_label_tl}
  \end{table}
 }

\keys_define:nn { archie/table }
 {
  XA      .tl_set:N = \l_archie_table_XA_tl,
  XB      .tl_set:N = \l_archie_table_XB_tl,
  XC      .tl_set:N = \l_archie_table_XC_tl,
  XD      .tl_set:N = \l_archie_table_XD_tl,
  YA      .tl_set:N = \l_archie_table_YA_tl,
  YB      .tl_set:N = \l_archie_table_YB_tl,
  YC      .tl_set:N = \l_archie_table_YC_tl,
  YD      .tl_set:N = \l_archie_table_YD_tl,
  caption .tl_set:N = \l_archie_table_caption_tl,
  label   .tl_set:N = \l_archie_table_label_tl,
 }

\ExplSyntaxOff

\begin{document}

\archietable{
  XA = foo,
  XB = bar,
  XC = baz,
  XD = foobar,
  YA = gnu,
  YB = gnat,
  YC = gnocco,
  YD = whatever,
  caption=First caption,
  label=flabel,
}

\archietable{
  XA = 1,
  XB = 2,
  XC = 3,
  XD = 4,
  YA = 5,
  YB = 6,
  YC = 7,
  YD = 8,
  caption=Second caption,
  label=slabel,
}

\end{document}

改變STATIC數值;請記住,定義中文字中的空格\archietable應插入為~

您指定鍵的順序並不重要。

在此輸入影像描述

相關內容