입력을 위해 정의된 레이아웃/템플릿의 테이블

입력을 위해 정의된 레이아웃/템플릿의 테이블

문서 전체에 걸쳐 표를 여러 번 복사해야 하는 프로젝트를 진행하고 있습니다. 테이블의 기본 구조는 동일하지만 일부 입력을 변경해야 합니다. 전체 테이블을 다시 설정하지 않고 변수 데이터만 채우면 되는 기본 레이아웃(또는 일종의 템플릿)을 정의할 수 있는지 궁금합니다.

내 문제는 테이블을 복사하여 붙여 넣을 때 나중에 변경하기 위해 사람의 실수가 발생할 가능성이 크다는 것입니다.

내가 원하는 것에 대한 예를 들어 보겠습니다. 먼저 테이블 정의는 다음과 같습니다.

\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]으로 표시된 부분은 테이블마다 변경되어야 하는 방식입니다. 그래서 제가 찾고 있는 것은 변경해야 하는 데이터를 쉽게 "붙여넣기"할 수 있도록 기본 레이아웃을 정의하는 일종의 방법입니다.

나는 이것을 Google에서 검색했지만 운이 없었기 때문에 이것이 라텍스에서도 가능한지 궁금합니다. 그렇다면 이를 수행하는 올바른 방법은 무엇입니까?

감사합니다 :)

답변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로 삽입되어야 한다는 점을 기억하세요 ~.

키를 지정하는 순서는 중요하지 않습니다.

여기에 이미지 설명을 입력하세요

관련 정보