
다음은 간단한 예입니다.
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{colortbl}
\usepackage{multirow, makecell}
\begin{document}
\begin{tabular}{c}
longer text\\
\cellcolor{teal}\\
\cellcolor{teal}\multirowcell{-2}[0ex][r]{short\\short}
% \cellcolor{teal}\multirow{-2}*{short} % is ok but can't break line or set alignment
\end{tabular}
\end{document}
다중 행 셀의 텍스트가 위 셀의 텍스트보다 짧은 경우 셀 색상이 잘 지정되지 않습니다. multirow
괜찮습니다. 하지만 셀 내부의 줄을 끊고 정렬을 설정하고 싶습니다.
코드는 Python에 의해 생성되며 열의 너비는 프로그램에서 액세스할 수 없고 적절한 값으로 설정할 수 없기 때문에 , in 또는 in과 같은 옵션 p
은 w
고려 array
되지 X
않습니다 tabularx
.
답변1
사용하면 w{c}{...}
열 유형이 간단해집니다.
\documentclass{article}
\usepackage[table]{xcolor} % it load colortbl
\usepackage{makecell}
\begin{document}
\begin{tabular}{w{c}{5em}}
longer text \\
\rowcolor{teal}
\makecell{short\\short}
\end{tabular}
\end{document}
부록:
또한 새 패키지를 사용하면 간단합니다 tabularray
.
\documentclass{article}
\usepackage{tabularray}
\usepackage{xcolor} % with tabularray the colortbl is not needed
\begin{document}
\begin{tblr}{c}
longer text \\
\SetRow{cyan!30}
{short\\short}
\end{tblr}
\end{document}
또는
\documentclass{article}
\usepackage{tabularray}
\usepackage{xcolor}
\begin{document}
\begin{tblr}{row{2}={cyan!30,c}, c}
longer text \\
{short\\short}
\end{tblr}
\end{document}
두 경우 모두 결과는 동일합니다.
답변2
패키지 (≥ 4.0)는 및 nicematrix
호환되는 방식으로 셀, 행 및 열을 색칠하는 도구를 제공합니다 .multirow
makecell
\documentclass{article}
\usepackage{xcolor}
\usepackage{multirow, makecell}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{c}[code-before = \rowcolor{teal!75}{2,3}]
longer text\\
\\
\multirowcell{-2}[0ex][r]{shorter \\ short}
\end{NiceTabular}
\end{document}
일부 확대/축소 수준에서는 일부 PDF 뷰어에 표시되는 얇은 흰색 선이 없습니다(예: Bernard의 답변 참조).
답변3
Makecell은 테이블의 색상 셀에 문제가 있을 수 있습니다. 해결 방법 \Centerstack
으로 stackengine
일반 \multirow
. 관련 없음: xcolor
옵션을 사용하여 로드하면 전자가 자동으로 수행하므로 [table]
로드할 필요가 없습니다 .colortbl
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{multirow, makecell}
\usepackage[usestackEOL]{stackengine}
\begin{document}
\begin{tabular}{c}
longer text\\
\cellcolor{teal!75}\\
\cellcolor{teal!75}\multirowcell{-2}[0ex][r]{shorter \\ short}
% \cellcolor{teal}\multirow{-2}*{short} % is ok but can't break line or set alignment
\end{tabular}
\qquad
\begin{tabular}{c}
longer text\\
\cellcolor{teal!75}\\
\cellcolor{teal!75}\multirow{-2}{*}{\Centerstack[r]{shorter \\ short}}
\end{tabular}
\end{document}
답변4
David의 솔루션
중첩된 표를 사용하세요
\newcommand{\minitab}[2][l]{\begin{tabular}{@{}#1@{}}#2\end{tabular}}
\cellcolor{teal}\multirow{-2}*{\minitab[r]{short\\short}