3

I would like to put a color-filled frame (for example with tcolorbox package) around the caption of a longtable, which I put into \endlastfoot. I used the answer to this question: Boxed caption and figure, with colored caption for my other figures/tables, but cannot make it work in the longtable-environment. I have used the answer to this question Color a longtable to try to color the caption-multirow, but cannot make it look nice and framed.

\documentclass[a4paper, 12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english,ngerman]{babel}
\usepackage[margin=2cm]{geometry}
\setlength{\parindent}{5mm}

%Tabels:
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{caption}

%Adjusted Command to color the caption from https://tex.stackexchange.com/questions/345589/color-a-longtable/345602#345602
\definecolor{lightGray}{gray}{0.95}
\def\ColorTabelHeader{lightGray}

\newcommand*{\BeginHeadcolor}{%
  \arrayrulecolor{gray}\toprule[0.7pt]
  \rowcolor{\ColorTabelHeader}%
  \noalign{%
    \kern-\belowrulesep
    \begingroup
      \color{\ColorTabelHeader}\hrule height\belowrulesep
    \endgroup
  }%
}
\newcommand*{\EndHeadcolor}{%
  \noalign{%
    \begingroup
      \color{\ColorTabelHeader}%
      \hrule height\aboverulesep
    \endgroup
    \kern-\aboverulesep
  }%
  \toprule[0.7pt] \arrayrulecolor{black}
}
\makeatletter
\newcommand*{\LTBeginHeadcolor}{%
  \arrayrulecolor{gray}\toprule[0.7pt]
    \vadjust pre{\kern-\belowrulesep}%
    \begingroup
      \color{\ColorTabelHeader}%
      \leaders\hrule height\belowrulesep\hfill
    \endgroup
  \cr
  \rowcolor{\ColorTabelHeader}%
}
\newcommand*{\LTEndHeadcolor}{%
  \multispan\LT@cols
    \begingroup
      \color{\ColorTabelHeader}%
      \leaders\hrule height\aboverulesep\hfill
    \endgroup
  \cr
  \noalign{%
    \kern-\aboverulesep
  }%
 \toprule[0.7pt] \arrayrulecolor{black}
}
\makeatother


% Settings for Longtable
\setlength\LTleft{0pt} 
\setlength\LTright{0pt}
\setlength{\LTcapwidth}{\columnwidth}
% To make it load faster
\setcounter{LTchunksize}{50}

\begin{document}

\renewcommand\arraystretch{0.8}
\begin{longtable}{c|c >{\columncolor[gray]{.9}}c c >{\columncolor[gray]{.9}}c c}
\LTBeginHeadcolor
\caption[]{\textbf{Caption:}
some information describing the content}\\
\LTEndHeadcolor \endfoot
\LTBeginHeadcolor
\caption[]{\textbf{Caption:}
this is a very long caption with some additional information regarding the parameters.\label{tab:Sample}}\\*
\rowcolor{\ColorTabelHeader}
\multicolumn{6}{c}{\parbox{\LTcapwidth}{{\footnotesize This Information is so long, that I had to put it in an extra paragraph with a smaller font}}}\\
\LTEndHeadcolor
\endlastfoot 
    \toprule
   \multirow{2}[2]{*}[2mm]{\textbf{Parameter}} &      & \textbf{BLH} & \textbf{0h} & \textbf{4h} & \textbf{8h} \\
          &       & Median (SD) & Median (SD) & Median (SD) & Median (SD) \\
    \midrule  \endfirsthead
     \toprule    
   \multirow{2}[2]{*}[2mm]{\textbf{Parameter}} &      & \textbf{BLH} & \textbf{0h} & \textbf{4h} & \textbf{8h} \\
          &       & Median (SD) & Median (SD) & Median (SD) & Median (SD) \\
    \midrule     \endhead
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \\[0,3cm]    
    \bottomrule
\end{longtable}%%


\end{document}
4

Thanks to Axel I found a possible solution for my problem. Since I am relatively new to Latex and not really used to Macros, please tell me about any mistakes I made or just edit my answer:

The code for the color-filled framed LTcaptionbox:

\usepackage[many]{tcolorbox}

    \makeatletter
    \newtcolorbox{LTcaptionbox}[7][]{enhanced, colframe=gray, colback=gray!30, arc=0pt, outer arc=0pt, boxrule=0.7pt, before={}, #1}
    \DeclareCaptionOption{stuffforbox}{\def\caption@stuffforbox{#1}}

    \DeclareCaptionBox{myLTbox}{%
      \begin{LTcaptionbox}[code={\pgfkeysalsofrom{\caption@stuffforbox}}]
        #2%
      \end{LTcaptionbox}%
    }
    \makeatother
    \captionsetup[longtable]{stuffforbox={}, box={myLTbox}, slc=off}

And my edited table (I added the 'tabu' package to fill the whole page and adjust '\bottomrule' and the LTCaptionbox to the same width)

\documentclass[a4paper, 12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english,ngerman]{babel}
\usepackage[margin=2cm]{geometry}
\setlength{\parindent}{5mm}

%Tabels:
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{caption}
\usepackage{tabu}


\usepackage[many]{tcolorbox}

\makeatletter
\newtcolorbox{LTcaptionbox}[7][]{enhanced, colframe=gray, colback=gray!30, arc=0pt, outer arc=0pt, boxrule=0.7pt, before={}, #1}
\DeclareCaptionOption{stuffforbox}{\def\caption@stuffforbox{#1}}

\DeclareCaptionBox{myLTbox}{%
  \begin{LTcaptionbox}[code={\pgfkeysalsofrom{\caption@stuffforbox}}]
    #2%
  \end{LTcaptionbox}%
}
\makeatother
\captionsetup[longtable]{stuffforbox={}, box={myLTbox}, slc=off}

% Settings for Longtable
\setlength\LTleft{0pt} 
\setlength\LTright{0pt}
\setlength{\LTcapwidth}{\glueexpr(\textwidth-10mm-1,4pt)\relax} % minus Distance text- to outer edge of the bounding-box on both sides
% To make it load faster
\setcounter{LTchunksize}{50}

\begin{document}



\begin{longtabu}{X|X X X X X}
\caption[]{\textbf{Caption:} some information describing the content}\endfoot
\caption[CaptionLOT]{\textbf{Caption:} this is a very long caption with some additional information regarding the parameters.\label{tab:Sample}\\*
{\footnotesize This Information is so long, that I had to put it in an extra paragraph with a smaller font}}
\endlastfoot 
    \toprule
   \multirow{2}[2]{*}[2mm]{\textbf{Parameter}} &      & \textbf{BLH} & \textbf{0h} & \textbf{4h} & \textbf{8h} \\
          &       & Median (SD) & Median (SD) & Median (SD) & Median (SD) \\
    \midrule  \endfirsthead
     \toprule    
   \multirow{2}[2]{*}[2mm]{\textbf{Parameter}} &      & \textbf{BLH} & \textbf{0h} & \textbf{4h} & \textbf{8h} \\
          &       & Median (SD) & Median (SD) & Median (SD) & Median (SD) \\
    \midrule     \endhead
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\
    Parameter & Group1 & 1 & 2 & 3 & 4 \\*
    {[unit]} & Group2 & 1 & 2 & 3 & 4 \vspace{0,3cm}\\    
    \bottomrule \addlinespace[1pt]
\end{longtabu}%%


\end{document}

PS: I could not use '\columncolor' with the X columns of 'Longtabu'. Does anyone know a possible solution for this problem?
If you want to keep the 'Longtable'-Environment, you can just use:

\newlength\q
\setlength\q{\dimexpr 0.166\textwidth -2\tabcolsep\relax}

and

\begin{longtable}{p{\q}|p{\q} >{\columncolor[gray]{.95}\centering\arraybackslash}p{\q} >{\centering\arraybackslash}p{\q} >{\columncolor[gray]{.95}\centering\arraybackslash}p{\q} >{\centering\arraybackslash}p{\q}}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.