是否可以创建一个具有这样的布局的表格?
如果是,我应该使用什么包?
答案1
你可以使用TikZ
它。它的优点TikZ
是功能非常强大,因此只要你知道如何操作,你就可以制作出你想要的任何效果。
这是一些代码。
- 靠近顶部的线条
\def...
用于定制单元格的大小和颜色。 - 如果单元格中的数据太长,表格可能看起来不正确,因此您必须手动确保它
\cellwidth
足够大以满足您的需要。 - 表格中的数据格式有点奇怪,有很多
{
、}
和/
符号%
。输入自己的数据时,请务必遵循此模板,否则一切都会失败!
如果您需要任何澄清,请告诉我(在下面的评论中)。
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\def\cellwidth{40}
\def\bluecellwidth{10}
\def\cellheight{7}
\def\bluecellcolor{blue!20}
\def\yellowcellcolor{yellow}
\def\whitecellcolor{white}
\begin{tikzpicture}[%
x=1mm,%
y=-1mm,%
every node/.style={%
shape=rectangle,
anchor=north west,
outer sep=0mm,
draw=black},
bluecell/.style={%
fill=\bluecellcolor,
minimum height=\cellheight * 2 mm,
minimum width=\bluecellwidth mm},
yellowcell/.style={%
fill=\yellowcellcolor,
minimum height=\cellheight mm,
minimum width=\cellwidth mm},
whitecell/.style={%
fill=\whitecellcolor,
minimum height=\cellheight mm,
minimum width=\cellwidth mm}]
\def\y{0} % Vertical cursor
\foreach \header/\contents in {%
{123}/{%
{1339707619:``value''}/{1.1},
{1339707619:``value''}/{1.11},
{1339707619:``value''}/{0.87}
},%
{456}/{%
{1339707619:``value''}/{40},
{1339707619:``value''}/{111},
{1339707619:``value''}/{144},
{1339707619:``value''}/{222}
},%
{789}/{%
{1339707619:``value''}/{21.345}
}%
}{
\node[bluecell] at (0,\y) {\header};
\foreach [count=\i] \yellowtext/\whitetext in \contents {
\node[yellowcell] at ({\bluecellwidth+(\i-1)*\cellwidth},\y) {\yellowtext};
\node[whitecell] at ({\bluecellwidth+(\i-1)*\cellwidth},\y+\cellheight) {\whitetext};
}
\xdef\y{\y+2*\cellheight} % Move vertical cursor down one row
}
\end{tikzpicture}
\end{document}
答案2
据我所知,您的示例可以这样做,丢失花哨的格式,但保留所有信息。
\documentclass{scrartcl}
\usepackage{booktabs}
\begin{document}
\begin{table}
\centering
\begin{tabular}{lcccc}
\toprule
& 1339707619:``value'' & 1339817619:``value'' &
1369707619:``value'' & 1369707888:``value''\\
\midrule
123 & 1.1 & 1.11 & 0.87 & \\
456 & 40 & 111 & 144 & 222 \\
789 & 21.345 & & & \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案3
是的,您可以使用多行,这是一个例子:
\documentclass[border=5mm]{standalone}
\usepackage{multirow}
\begin{document}
\begin{tabular}{cc|c|c|c|c|l}
\cline{3-6}
& & \multicolumn{4}{ c| }{Primes} \\ \cline{3-6}
& & 2 & 3 & 5 & 7 \\ \cline{1-6}
\multicolumn{1}{ |c| }{\multirow{2}{*}{Powers} } &
\multicolumn{1}{ |c| }{504} & 3 & 2 & 0 & 1 & \\ \cline{2-6}
\multicolumn{1}{ |c }{} &
\multicolumn{1}{ |c| }{540} & 2 & 3 & 1 & 0 & \\ \cline{1-6}
\multicolumn{1}{ |c }{\multirow{2}{*}{Powers} } &
\multicolumn{1}{ |c| }{gcd} & 2 & 2 & 0 & 0 & min \\ \cline{2-6}
\multicolumn{1}{ |c }{} &
\multicolumn{1}{ |c| }{lcm} & 3 & 3 & 1 & 1 & max \\ \cline{1-6}
\end{tabular}
\end{document}
答案4
与。{NiceTabular}
nicematrix
\documentclass{article}
\usepackage{nicematrix}
\usepackage{geometry}
\geometry{left=1cm,right=1cm}
\begin{document}
\begin{NiceTabular}[corners={NE,SE},hvlines]{ccccc}
\CodeBefore
\rowcolor{yellow}{1,3,5}
\columncolor{blue!20}{1}
\Body
\Block{2-1}{123} & 1339707619:"value" & 1339707619:"value" & 1339707619:"value" \\
& 1.1 & 1.11 & 0.87 \\
\Block{2-1}{456} & 1339707619:"value" & 1339707619:"value" & 1339707619:"value" & 1339707619:"value" \\
& 40 & 111 & 144 & 222 \\
\Block{2-1}{789} & 1339707619:"value" \\
& 21.345
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。