我有这个MWE:
\documentclass[a4paper,12pt]{article}
\usepackage{color}
\usepackage{colortbl}
\usepackage{longtable}
\usepackage{tabularx}
\usepackage[table]{xcolor}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{array}
\begin{document}
\begin{longtable}{|p{.3\textwidth}|>{\raggedright\arraybackslash}p{.7\textwidth}|}
\hline
\cellcolor{gray!30}Donnée & \cellcolor{gray!30}Définition \\
\hline
\multicolumn{2}{|p{\textwidth}|}{\cellcolor{green!30} \centering \bfseries Semis} \\
\hline
text & text
\end{longtable}
\end{document}
以下是我得到的结果:
为什么第二行不是完全为绿色?如何解决?
第二个问题:如何居中垂直我的文字在列里面吗?
答案1
只需替换p
说明符\multicolumn
即可获得更简单的代码和问题的解决方案。
顺便说一句,由于您加载了longtable
和tabularx
,因此您可以考虑加载:它会加载前者并将 longtable 的可能性扩展到 tabularx 环境(本质上不会更改其语法)。此外,如果您加载 ,则ltablex
无需加载。color
xcolor
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{colortbl}
\usepackage{ltablex}
\usepackage[table]{xcolor}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{array}
\begin{document}
\begin{longtable}{|p{.3\textwidth}|>{\raggedright\arraybackslash}p{.7\textwidth}|}
\hline
\rowcolor{gray!30}Donnée & Définition \\
\hline
\multicolumn{2}{|c|}{\cellcolor{green!30}\bfseries Semis} \\
\hline
text & text\\
\hline
\end{longtable}
\end{document}
对于垂直居中的单元格内容,最简单的方法是使用tabularx
,将X
列类型重新定义为m{…}
而不是p{…}
。cellspace
或makecell
包允许在单元格中有较不紧密的垂直间距,不幸的是,它们都不能与表格中的颜色命令一起使用 — 不过,cellspace 可以与l
、c
或c
类型一起使用,如下例中间行所示:
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{colortbl}
\usepackage{ltablex}
\renewcommand{\tabularxcolumn}[1]{>{\raggedright\arraybackslash}m{#1}}
\newcolumntype{Y}{ >{\hsize=0.3\hsize}X}
\newcolumntype{Z}{ >{\hsize=0.7\hsize}X}
\usepackage[table]{xcolor}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{cellspace}
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{6pt}
\addparagraphcolumntypes{X, Y, Z}
\begin{document}
\begin{tabularx}{\linewidth}{|Y|Z|}
\hline
\rowcolor{gray!30}Donnée & Définition : Text text text text text text text text text text text text text text text text text \\
\hline
\multicolumn{2}{|Sc|}{\cellcolor{green!30}\bfseries Semis} \\
\hline
text & Text with descenders: gjpqy gjpqy gjpqy gjpqy gjpqy gjpqy gjpqy gjpqy gjpqy gjpqy gjpqy gjpqy gjpqy gjpqy gjpqy gjpqy\\
\hline
\end{tabularx}
\end{document}
答案2
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[table]{xcolor}
\usepackage{ltablex,ragged2e}
\renewcommand{\tabularxcolumn}[1]{m{#1}}% or {>{\RaggedRight}m{#1}}
\usepackage{booktabs}
\usepackage{blindtext}
\begin{document}
\begin{tabularx}{\linewidth}{| p{0.3\textwidth} | X |}\hline
\rowcolor{gray!30}Donnée & Définition : Text text text text text text text text text text text text text text text text text\\\hline
\multicolumn{2}{|c|}{\cellcolor{green!30}\bfseries Semis} \\\hline
text & \blindtext\\
\hline
\end{tabularx}
\end{document}
输出中缺少的行只是 pdf 查看器和放大功能的问题。