定义文档的表格模板

定义文档的表格模板

我正在尝试创建一个文档,该文档会根据 Python 代码的输出自动更新某些值。从这个 Python 代码中,它会生成一个看起来非常基本的乳胶表。但是,我必须将此表与文档模板集成,以便它与文档中其余预先编写的表格相匹配。

表格的文档模板由以下机构提供:


\begin{table}[H] \centering
    \caption{Nominal Skirt Annulus}
    \label{tab:nomskirtannulus}
    \begin{tabular}  {p{2cm}p{3cm}}
        \rowcolor{blue}{\textcolor{white}{Skirt Thickness} } & {\textcolor{white}{Nominal Annulus} } \\ 
        
    10 & 11 \\
        
        
        \hline          
    \end{tabular}   
\end{table} 

在这个模板中,列数和行数是可变的。

python 生成的 latex 表如下所示:

\begin{table}
\centering
\caption{bleh}
\label{tab:bleh}
\begin{tabular}{ppp}
\toprule
             Tolerance & Bottom &  Lowest Can Weld \\
\midrule
       Annulus nominal &        0.098000 &                 0.098000 \\
     MP flange ovality &        0.001000 &                 0.001000 \\
     
\bottomrule
\end{tabular}
\end{table}

此表应根据模板自动格式化(包括行颜色、文本颜色等)。有没有办法在 Latex 中做到这一点?

谢谢。

答案1

我强烈推荐的安全版本如下:

\documentclass{article}
\usepackage{xcolor}
\usepackage{booktabs}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\NewDocumentEnvironment{ mytbl }{ O{} m +b }{%
  \begin{tblr}{%
      colspec={#2},%
      row{1}={%
        bg={blue},%
        fg={white},%
        font={\bfseries}% 
      },%
    }%
    #3%
  \end{tblr}%
}{}

\begin{document}
\begin{mytbl}{clr}
  \toprule
  abcd&efgh&ijkl\\
  \midrule
  abcd&efgh&ijkl\\
  abcd&efgh&ijkl\\
  \bottomrule
\end{mytbl}
\end{document}

这将要求您将所有生成的tabular环境重命名为mytbl。也许有某种方法可以让 Python 生成mytbl而不是tabular直接生成。这将使所有其他tabular的 不受影响且安全。如果您出于某种目的使用任何包tabular,该表格也将保持安全。

如果你是绝对地确保您(和您使用的包)只需要tabular这种特定类型,那么以下内容可能会有用。

\documentclass{article}
\usepackage{xcolor}
\usepackage{booktabs}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\RenewDocumentEnvironment{tabular}{ O{} m +b }{%
  \begin{tblr}{%
      colspec={#2},%
      row{1}={%
        bg={blue},%
        fg={white},%
        font={\bfseries}%
      },%
    }%
    #3%
  \end{tblr}%
}{}

\begin{document}
\begin{tabular}{clr}
  \toprule
  abcd&efgh&ijkl\\
  \midrule
  abcd&efgh&ijkl\\
  abcd&efgh&ijkl\\
  \bottomrule
\end{tabular}
\end{document}

两者都将产生:

1


编辑:

  1. 添加\UseTblrLibrary{booktabs}命令以支持booktabs带有 的命令tblr
  2. booktabs在表代码中添加规则并更改输出截图。

相关内容