如何使用 tcolorbox 内的 longtable 在每一页上重复第一个表格行?

如何使用 tcolorbox 内的 longtable 在每一页上重复第一个表格行?

我正在使用\endfirstheadand \endhead,但出于某种原因,第一行没有重复。这是我的一段代码,我将不胜感激任何帮助。

\documentclass[12pt]{article}
\linespread{1.2}
\usepackage{longtable}
\usepackage[table]{xcolor}
\usepackage{tcolorbox}
\tcbuselibrary{breakable,skins}
\cellcolor[gray]{0.95}

\begin{document}

\begin{tcolorbox}[%%
  breakable, 
  ]
\begin{longtable}{b{0.35cm}|b{2cm}||c|c|}
C. & HEADER    & {CSF1} & {CSF2}      \\\hline\hline\endfirsthead
C. & HEADER    & {CSF1} & {CSF2}      \\\hline\hline\endhead
P1 & Vyroba    & OK     & OK          \\\hline
P2 & Nakup     &        & OK          \\\hline
P3 & Prodej    & OK     & OK          \\\hline
P4 & Logistika &        &             \\\hline
P5 & Sklad     & OK     & OK          \\\hline
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
P6 & Inventura & OK     & OK          \\
% the table continues
\end{longtable}
\end{tcolorbox}
\end{document}

答案1

我还没有用 tcolorbox 解决,但正如我在评论中提到的,你可以使用以下 MWE 获得类似的外观(没有圆角桌面角):

\documentclass[12pt]{article}
    \usepackage[utf8]{inputenc}
    \usepackage[left=3.5cm,right=2.5cm,top=2.5cm,bottom=15cm]{geometry}

    \usepackage[table]{xcolor}
    \usepackage{longtable}
    \usepackage{makecell}
\renewcommand\theadfont{\large\bfseries}

    \usepackage{rotating}
\newcommand*\rot{\rotatebox{90}}
    \usepackage{amssymb}
\newcommand*\OK{$\checkmark$}

\newcolumntype{R}{>{\raggedright\arraybackslash}b}
\newcolumntype{C}{>{\centering\arraybackslash}b}

    \begin{document}
    \rowcolors{1}{gray!10}{gray!5}
\begin{longtable}{|R{\dimexpr 0.055\linewidth-2\tabcolsep}|
                   R{\dimexpr 0.521\linewidth-2\tabcolsep}||
                  *{10}{C{\dimexpr 0.04\linewidth-2\tabcolsep}|}}
    \hline
\rowcolor{gray!30}
\multicolumn{12}{|c|}{\large\textbf{Tabulka procesů}}  \\
    \hline
\rowcolor{gray!10}
Č. & Proces & \rot{CSF1} & \rot{CSF2} & \rot{CSF3} & \rot{CSF4} & \rot{CSF5} & \rot{CSF6} & \rot{Suma} & \rot{Kvalita} & \rot{Význam IT} & \rot{Technická kvalita~}\\
\hline\hline
\endfirsthead
    \hline
Č. & Proces & \rot{CSF1} & \rot{CSF2} & \rot{CSF3} & \rot{CSF4} & \rot{CSF5} & \rot{CSF6} & \rot{Suma} & \rot{Kvalita} & \rot{Význam IT} & \rot{Technická kvalita~}  \\
\hline\hline
\endhead
% telo tabele
P1 & Výroba                     & \OK   & \OK   &       &       & \OK   &       & 3 & B & A & B  \\ \hline
P2 & Nákup                      &       & \OK   &       &       & \OK   & \OK   & 3 & B & B & B  \\ \hline
P3 & Prodej                     & \OK   & \OK   & \OK   & \OK   & \OK   &       & 5 & B & B & B  \\ \hline
P4 & Logistika                  &       &       & \OK   & \OK   &       &       & 2 & B & B & C  \\ \hline
P5 & Sklad                      & \OK   & \OK   &       &       & \OK   & \OK   & 4 & B & B & B  \\ \hline
P6 & Inventura                  & \OK   & \OK   &       &       &       & \OK   & 3 & B & B & B  \\  \hline

P1 & Výroba                     & \OK   & \OK   &       &       & \OK   &       & 3 & B & A & B  \\ \hline
P2 & Nákup                      &       & \OK   &       &       & \OK   & \OK   & 3 & B & B & B  \\ \hline
P3 & Prodej                     & \OK   & \OK   & \OK   & \OK   & \OK   &       & 5 & B & B & B  \\ \hline
P4 & Logistika                  &       &       & \OK   & \OK   &       &       & 2 & B & B & C  \\ \hline
P5 & Sklad                      & \OK   & \OK   &       &       & \OK   & \OK   & 4 & B & B & B  \\ \hline
P6 & Inventura                  & \OK   & \OK   &       &       &       & \OK   & 3 & B & B & B  \\  \hline

% the table continuing on the next page

P1 & Výroba                     & \OK   & \OK   &       &       & \OK   &       & 3 & B & A & B  \\ \hline
P2 & Nákup                      &       & \OK   &       &       & \OK   & \OK   & 3 & B & B & B  \\ \hline
P3 & Prodej                     & \OK   & \OK   & \OK   & \OK   & \OK   &       & 5 & B & B & B  \\ \hline
P4 & Logistika                  &       &       & \OK   & \OK   &       &       & 2 & B & B & C  \\ \hline
P5 & Sklad                      & \OK   & \OK   &       &       & \OK   & \OK   & 4 & B & B & B  \\ \hline
P6 & Inventura                  & \OK   & \OK   &       &       &       & \OK   & 3 & B & B & B  \\  \hline
\end{longtable}
    \end{document}

它基于您的第一个 MWE。我省略了所有不必要的包和快捷方式,这些包和快捷方式会干扰表格观察,但在使用时是必需的tcolorbox,并添加了新的包和快捷方式,它们可以帮助我设计表格(rotatingmakecelamssymb)嗯,它不像tcolorbox……那么花哨,但它对奇数行和偶数行有不同的颜色(如果您不喜欢,只需放入相同的颜色\rowcolors{1}{gray!10}{gray!5}:-) )

第一页: 在此处输入图片描述

第二页: 在此处输入图片描述

更新: 过了一会儿,我发现用于标题的第一行颜色不正确。我怀疑,原因是软件包makecell和之间不完全兼容[table]{xcolor}(实际上激活了colortab)。这证实了@egre 对我的问题的回答http://tex.stackexchange.com/questions/246889/how-to-color-column-heads-determined-width-makecell,并为这种不匹配提供了解决方案。您只需替换 ma MWE 中的行

    \usepackage{makecell}
\renewcommand\theadfont{\large\bfseries}
...
    \rowcolors{1}{gray!10}{gray!5}
\begin{longtable}{|R{\dimexpr 0.055\linewidth-2\tabcolsep}|
                   R{\dimexpr 0.521\linewidth-2\tabcolsep}||
                  *{10}{C{\dimexpr 0.04\linewidth-2\tabcolsep}|}}
    \hline
\rowcolor{gray!30}
\multicolumn{12}{|c|}{\large\textbf{Tabulka procesů}}  \\

宽度:

\newcommand{\thead}[1]{%
  \bfseries
  \begin{tabular}{@{}c@{}}
  \vrule height 1.2\ht\strutbox width 0pt\ignorespaces
  #1
  \unskip\vrule depth 1.2\dp\strutbox width 0pt
  \end{tabular}%
}
...
    \begin{longtable}{|R{\dimexpr 0.055\linewidth-2\tabcolsep}|
                   R{\dimexpr 0.521\linewidth-2\tabcolsep}||
                  *{10}{C{\dimexpr 0.04\linewidth-2\tabcolsep}|}}
    \hline
\multicolumn{12}{|c|}{\thead{Tabulka procesů}}  \\
    \hline

表格的第一行看起来应该与第一行一样。我用新图像替换了第一幅图像。

相关内容