彩色长桌

彩色长桌

我正在编写 LaTeX 代码以使用 longtable 包生成长表,并且我希望第一列颜色为灰色

这是我的代码:

\documentclass[a4paper,11pt,english]{report}

\usepackage{longtable}
 \usepackage{multirow}
 \usepackage{graphicx}
 \usepackage[table,xcdraw]{xcolor}
\usepackage{lipsum} % just for dummy text- not needed for a longtable

\begin{document}
\lipsum[1]
\lipsum[1]
\lipsum[1]

\definecolor{lightgray}{HTML}{EFEFEF}

\begin{longtable}[H]{|
>{\columncolor{lightgray}}p{0.2\linewidth} | p{0.175\linewidth} |}
\hline
foo & bar \\ \hline 
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
\caption{Your caption here} % needs to go inside longtable environment
\label{tab:myfirstlongtable}
\end{longtable} 

Table \ref{tab:myfirstlongtable} shows my first longtable.
\end{document}

生成的表格的问题在于,彩色区域中没有出现水平线。这是我的输出:在此处输入图片描述

我知道问题与 pdf 查看器有关,并且我的代码可以与其他 pdf 查看器配合使用,但我必须使用此 pdf 查看器

注意:我之前使用 NiceTabular 在其他表中解决了这个问题,但是 NiceTabular 与长表不兼容,所以我不知道如何在长表环境中解决这个问题

有什么帮助吗?

答案1

这是一个longtblr环境的解决方案tabularray包装:水平线不会被彩色单元格覆盖。

最好在长表格前加上标题。

\documentclass[a4paper,11pt,english]{report}

\usepackage{lipsum}
\usepackage{xcolor}
\usepackage{tabularray}

\begin{document}

\lipsum[1]
\lipsum[1]
\lipsum[1]

\begin{longtblr}[
  caption = {Your caption here},
  label = {tab:myfirstlongtable},
]{
  colspec = {|Q[0.25\linewidth,gray9]|Q[0.25\linewidth]|},
  hlines,
}
  foo & bar \\ 
  foo & bar \\
  foo & bar \\
  foo & bar \\
  foo & bar \\
  foo & bar \\
  foo & bar \\
  foo & bar \\
  foo & bar \\
  foo & bar \\
  foo & bar \\
\end{longtblr} 

Table \ref{tab:myfirstlongtable} shows my first longtable.

\end{document}

在此处输入图片描述

答案2

很难确定,因为效果取决于 pdf 阅读器,但你可以安排 hlines 位于彩色面板上方而不是旁边,也可以让它们更厚,你可能需要尝试精确的间距

在此处输入图片描述

\documentclass[a4paper,11pt,english]{report}

\usepackage{longtable}
 \usepackage{multirow}
 \usepackage{graphicx}
 \usepackage[table,xcdraw]{xcolor}
\usepackage{lipsum} % just for dummy text- not needed for a longtable

\begin{document}
\lipsum[1]
\lipsum[1]
\lipsum[1]

\definecolor{lightgray}{HTML}{EFEFEF}
\setlength\arrayrulewidth{.5pt}
\begin{longtable}{|
>{\columncolor{lightgray}}p{0.2\linewidth} | p{0.175\linewidth} |}
\hline
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
\caption{Your caption here} % needs to go inside longtable environment
\label{tab:myfirstlongtable}
\end{longtable} 

Table \ref{tab:myfirstlongtable} shows my first longtable.
\end{document}

答案3

\endfirsthead,\endhead使用和部分,我可以使用正确的代码,这没有问题\endfoot, \endlastfoot。通常,我使用加载包的彩色单元格来解决问题hhline

请注意,传统上,表格顶部都有标题,专门用于表格分布在多页上的情况。

\documentclass[a4paper,11pt,english]{report}
\usepackage{babel}
\usepackage{longtable}
 \usepackage{multirow}
 \usepackage{graphicx}
 \usepackage[table,xcdraw]{xcolor}
\usepackage{hhline} 
\usepackage{lipsum} % just for dummy text- not needed for a longtable

\begin{document}

\lipsum[1]
\lipsum[1]
\lipsum[1]

\definecolor{lightgray}{HTML}{EFEFEF}

\begin{longtable}{|>{\columncolor{lightgray}}p{0.2\linewidth} | p{0.175\linewidth} |}
\caption{Your caption here}% needs to go inside longtable environment
\label{tab:myfirstlongtable}
\endfirsthead
\caption{Your caption here (continued)}\\
\hhline{|--|}
\endhead
\multicolumn{2}{r@{}}{\scriptsize (to be continued)}
\endfoot 
\hhline{|--|}
 \endlastfoot
\hhline{|--|}
foo & bar \\ \hhline{|--|}
foo & bar \\ \hhline{|--|}
foo & bar \\ \hhline{|--|}
foo & bar \\ \hhline{|--|}
foo & bar \\ \hhline{|--|}
foo & bar \\ \hhline{|--|}
foo & bar \\ \hhline{|--|}
foo & bar \\ \hhline{|--|}
foo & bar \\ \hhline{|--|}
foo & bar \\ \hhline{|--|}
foo & bar \\
\end{longtable}

Table \ref{tab:myfirstlongtable} shows my first longtable.
\end{document} 

在此处输入图片描述

相关内容