对多行进行着色

对多行进行着色

我目前在 LaTeX 中有这个代码

\begin{footnotesize}
\begin{center}
\begin{longtable}[c]{ll}
\caption[API da listagem de um docente]{API da listagem de um docente.}  \label{relStruct}\\
\begin{tabular}{|l|l|l|}
\hline
\multicolumn{1}{|c|}{\textcolor{WhiteC}{\textbf{URL}} \cellcolor{GreenC}} &
\multicolumn{2}{|c|}{http://di76.di.fct.unl.pt:3007/people} \\ \hline
\multicolumn{1}{|c|}{\textcolor{WhiteC}{\textbf{Method}} \cellcolor{GreenC}} &  
\multicolumn{2}{|c|}{GET} \\ \hline
\multirow{2}*{\textcolor{WhiteC}{\textbf{QueryString}} \cellcolor{GreenC}} & 
start= & The number of the first person to return \\  &  end= & The number of the last person to return \\ \hline
\multirow{2}{*}{\textcolor{WhiteC}{\textbf{Returns}} \cellcolor{GreenC}} &
\multicolumn{2}{|c|}{200 OK \& XML (people/people+xml)} \\ &
\multicolumn{2}{|c|}{404 Not Found} \\ \hline
\end{tabular}
%\end{center}
\end{longtable}
\end{center}
\end{footnotesize}

这段代码的输出是一张表格,其中 2 个多行部分未完全绘制,只有行的顶部被绘制。有人能告诉我如何修复这些问题以便完全绘制吗?

答案1

最好的解决方案是\colorcolumn在表格格式中将 用作第一列。另请注意,我将其更改\mulrirow{2}{*}{...}为,\mulrirow{-2}{*}{...}以避免文本被颜色覆盖的问题。

\documentclass{book}
\usepackage{longtable,multirow,array}
\usepackage[table]{xcolor}
\usepackage{lipsum}% just to generate some text

\colorlet{WhiteC}{white}% to make the example compilable
\colorlet{GreenC}{blue!60}% to make the example compilable

\begin{document}

\begingroup
\footnotesize
\begin{longtable}[c]{|>{\columncolor{GreenC}}l|l|l|}
  \caption[API da listagem de um docente]{API da listagem de um docente.}  \label{relStruct}\\
  \hline
  \multicolumn{1}{|c|}{\cellcolor{GreenC}\textcolor{WhiteC}{\textbf{URL}}}  & \multicolumn{2}{c|}{http://di76.di.fct.unl.pt:3007/people} \\ \hline
  \multicolumn{1}{|c|}{\cellcolor{GreenC}\textcolor{WhiteC}{\textbf{Method}}} 
    & \multicolumn{2}{c|}{GET} \\ \hline
  & start= & The number of the first person to return \\ 
  \multirow{-2}{*}{\textcolor{WhiteC}{\textbf{QueryString}}} & end= 
    & The number of the last person to return \\ \hline
  & \multicolumn{2}{c|}{200 OK \& XML (people/people+xml)} \\ 
  \multirow{-2}{*}{\textcolor{WhiteC}{\textbf{Returns}}} 
    & \multicolumn{2}{c|}{404 Not Found} \\ \hline
\end{longtable}
\endgroup

\end{document}

没有footnotesize环境;\footnotesize是一个开关。我不明白为什么你要tabular在;中使用环境,如果你的表格允许分页符,则longtable使用;否则。我重新定义了颜色,并使我的代码可供所有人编译。longtabletabularGreenCWhiteC

答案2

多行当需要为单元格着色时,存在一些已知问题。我会在序言中定义,

\newcommand{\mycell}[2][c]{\begin{tabular}{@{}#1@{}}#2\end{tabular}}
\newcommand{\greencell}[1]{\textcolor{WhiteC}{\bfseries #1}\cellcolor{GreenC}}

并将表格写为

\begin{table}
\centering
\caption[API da listagem de um docente]{API da listagem de um docente.}  \label{relStruct}
\medskip
\footnotesize

\begin{tabular}{|c|c|}
\hline
\greencell{URL} & http://di76.di.fct.unl.pt:3007/people \\
\hline
\greencell{Method}&  GET \\
\hline
\greencell{QueryString} &
\mycell[l|l]{%
  start= & The number of the first person to return \\
  end= & The number of the last person to return} \\
\hline
\greencell{Returns} &
\mycell{200 OK \& XML (people/people+xml) \\
  404 Not Found} \\
\hline
\end{tabular}
\end{table}

双行单元格作为 的参数输入\mycell,它可以接收可选参数来表达您需要的“子表”类型。

您是否喜欢这种方法或\multirowGonzalo 解决方案中的方法取决于您的个人喜好。

答案3

\multirow{-n}{*}{...}在第 n 行和每第 i 行(i=1..n)上使用。这解决了使用时不为后续行着色\rowcolor{color}的问题。\rowcolor\multirow

答案4

我遇到了类似的问题,但\multirow{-n}{*}{...}对我来说不起作用。这-n是主要部分。但是我使用了类似的格式来回答:

\begin{tabular}{  m{9cm} m{9cm} >{\columncolor{mygreen}}m{7.3cm}  }

然后,对于多行,我将其放在最后一行,并能够使用下面的选项成功将文本向上移动。 表示内部文本的宽度为3多少行。表示要将其向上移动多少。您可能不需要像 这么高的数字。2.835em35

\multirow{3}{2.8in}[35em]{lots of text...}

相关内容