我正在尝试创建一个文档,该文档会根据 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}
两者都将产生:
编辑:
- 添加
\UseTblrLibrary{booktabs}
命令以支持booktabs
带有 的命令tblr
。 booktabs
在表代码中添加规则并更改输出截图。