LaTeX 中的不规则表格

LaTeX 中的不规则表格

是否可以创建一个具有这样的布局的表格?

在此处输入图片描述

如果是,我应该使用什么包?

答案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 节点)。

上述代码的输出

相关内容