我是 Latex 新手,正在尝试绘制表格。以下是要查找的内容
我试图修复它,但就是找不到问题,这里是代码:
\documentclass{article}
%\usepackage[utf8]{inputenc}
\usepackage{multirow}
\usepackage{colortbl}
\usepackage[table,xcdraw]{xcolor}
\usepackage{makecell}
\usepackage{multirow}
\usepackage{hhline}
\usepackage{booktabs}
\usepackage{graphicx}
\begin{document}
\centering
\begin{table}[]
\caption{Les modules de la phase d'intervention}
\vspace{2cm}
\label{tab:my-table}
\begin{tabular}{l|p{4cm}|p{5cm}|} \cline{2-3}
{\color[HTML]{FFFFFF} \textbf{}} & \multicolumn{1}{|c|}{\cellcolor[HTML]{FFFFFF}\textbf{Modules}} & \multicolumn{1}{c|}{\textbf{Actions}} \\ \hline
\multicolumn{1}{|l|}{} & Vérification de la quarantaine & Valide la capacité du système à mettre en quarantaine l’accès au système en externe et les données en interne. \\ \cline{2-3}
\multicolumn{1}{|l|}{} & Vérification des privilèges & Evalue la capacité d’élévation des privilèges au sein du système. \\ \cline{2-3}
\multicolumn{1}{|l|}{} & Validation de survivabilité & Evalue la résistance du système à des situations excessives ou défavorables. \\ \cline{2-3}
\multicolumn{1}{|l|}{\multirow{-7}{*}{\textbf{Phase d’intervention}}} & Contrôle des alertes et des journaux & Evalue les activités de l’audit. \\ \hline
\end{tabular}
\end{table}
\end{document}
谢谢,
答案1
仅使用nicematrix
包即可解决所有问题。提供\Block
替换多列和多行的命令,允许使用\\
内部、对齐文本、为单元格着色等。
例如
\Block{4-1}
创建一个 4 行 x 1 列、垂直居中的单元格,同时
\Block[ fill = gray!30]{}
创建一个 1x1 单元格、彩色且居中。
此外,还有一些通用指令,例如hvlines
在表格中绘制所有垂直线和水平线。只需进行更改,
hvlines
即可hlines
获得如上图所示的表格。
最终的代码更加简单,更易于阅读和修改。
必须编译两次。
% !TeX TS-program = pdflatex
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[table,xcdraw]{xcolor}
\usepackage{caption}
\usepackage{nicematrix} % <<<<<<<<<<<<
\begin{document}
\begin{table}[ht]
\centering \small
\caption{Les modules de la phase d'intervention}\label{tab:my-table}
\setlength{\tabcolsep}{5pt}
\begin{NiceTabular}{ccc}[corners,hvlines, cell-space-top-limit=3pt]
\RowStyle{\bfseries} & Modules & Actions \\
\Block{4-1}<\bfseries>{Phase \\ d’intervention}
& \Block[fill=gray!10]{}{Vérification de la quarantaine}
& \Block[l]{}{Valide la capacité du système à \\mettre en quarantaine l’accès au \\ système en externe et les \\ données en interne.} \\
& \Block[fill=gray!10]{}{Vérification des privilèges}
& \Block[l]{}{Evalue la capacité d’élévation \\ des privilèges au sein du \\système.} \\
& \Block[fill=gray!10]{}{Validation de survivabilité}
& \Block[l]{}{Evalue la résistance du système \\ à des situations excessives \\ ou défavorables.} \\
& \Block[fill=gray!10]{}{Contrôle des alertes et des \\ journaux}
& \Block[l]{}{Evalue les activités de l’audit.} \\
\end{NiceTabular}
\end{table}
\end{document}
使用hlines
而不是hvlines
。
答案2
和tabularray
:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[xcdraw]{xcolor} % <---
\usepackage{caption}
\usepackage{tabularray} % <---
\begin{document}
\begin{table}[ht]
\centering \small
\caption{Les modules de la phase d'intervention}
\label{tab:my-table}
\begin{tblr}{hline{1}={2-Z}{solid}, hline{2-Z}={solid},
vline{1}={2-Z}{solid}, vline{2-Z}={solid},
colspec={X[1,c] X[2,c,m] X[2,l,m]},
column{1} = {font=\bfseries},
column{2} = {bg=gray!30},
row{1} = {font=\bfseries, bg={}}
}
& Modules & Actions \\
\SetCell[r=4]{c} Phase d’intervention
& Vérification de la quarantaine
& Valide la capacité du système à mettre en quarantaine l’accès au système en externe et les données en interne. \\
& Vérification des privilèges
& Evalue la capacité d’élévation des privilèges au sein du système. \\
& Validation de survivabilité
& Evalue la résistance du système à des situations excessives ou défavorables. \\
& Contrôle des alertes et des journaux
& Evalue les activités de l’audit. \\
\end{tblr}
\end{table}
\end{document}
编辑:
今天,我将以如下方式在 MWE 上进行写作:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{caption}
\usepackage{xcolor} % <---
\usepackage{tabularray} % <---
\begin{document}
\begin{table}[ht]
\centering
\small
\caption{Les modules de la phase d'intervention}
\label{tab:my-table}
\begin{tblr}{hline{1}={2-Z}{}, hline{2-Z},
vline{1}={2-Z}{}, vline{2-Z},
colspec = {X[1.1,c, font=\bfseries] X[2,l,m,bg=gray9] X[2,l,m]},
cell{2}{1} = {r=4}{},
row{1} = {c, font=\bfseries, bg={}} % <--- not colored
}
& Modules
& Actions \\
Phase d’intervention
& Vérification de la quarantaine
& Valide la capacité du système à mettre en quarantaine l’accès au système en externe et les données en interne. \\
& Vérification des privilèges
& Evalue la capacité d’élévation des privilèges au sein du système. \\
& Validation de survivabilité
& Evalue la résistance du système à des situations excessives ou défavorables. \\
& Contrôle des alertes et des journaux
& Evalue les activités de l’audit. \\
\end{tblr}
\end{table}
\end{document}
结果与之前相同。 两个 MWE 之间的主要区别是:
- 表格的规范与表格内容严格分离
- 表格的规范更加一致和简洁(更短)
- 在 MWE 测试中使用
tabularray
2023A 版软件包
答案3
正如@jsbibra 在评论中指出的那样,彩色单元格和列会产生各种干扰问题,尤其是对于\cline
类型水平规则。
我建议你不要直接对抗,而是利用这个机会简化和精简表格的整体“外观”,例如去掉所有垂直和大部分水平规则。我还会处理一些明显的问题,例如表格太宽而无法放入文本块。为了解决这个特定问题,我会使用一个tabularx
环境,并将第一列的宽度确定为残差。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{multirow}
\usepackage[table,x11names]{xcolor}
\usepackage{tabularx,ragged2e}
\newcolumntype{L}{>{\RaggedRight}X}
\newcolumntype{M}[1]{>{\RaggedRight}m{#1}}
\begin{document}
\begin{table}
\setlength{\extrarowheight}{3pt} % for a more open 'look'
\caption{Les modules de la phase d'intervention}
\label{tab:my-table}
\vspace{2mm} % why '2cm'?
\begin{tabularx}{\textwidth}{@{}
L
>{\columncolor{Snow2}}M{4cm}
M{5.25cm} @{}}
& \multicolumn{1}{c}{\cellcolor{Snow2}\textbf{Modules}}
& \multicolumn{1}{c}{\textbf{Actions}} \\
\hline
\multirow{7.5}{=}{\textbf{Phase d'intervention}}
& Vérification de la quarantaine
& Valide la capacité du système à mettre en quarantaine l'accès au système en externe et les données en interne. \\
& Vérification des privilèges
& Evalue la capacité d'élévation des privilèges au sein du système. \\
& Validation de survivabilité
& Evalue la résistance du système à des situations excessives ou défavorables. \\
& Contrôle des alertes et des journaux
& Evalue les activités de l'audit. \\
\hline
\end{tabularx}
\end{table}
\end{document}
答案4
含基本套餐。请注意,现在无需加载 utf8 输入编码,因为它是 latex 默认期望的编码。此外,使用xcolor
选项[table]
加载 `colortbl,因此您不必加载它。要垂直居中多行,请记住您可以使用带有小数部分的多个“行”。
\documentclass{article}
\usepackage{geometry}
\usepackage[table, svgnames, xcdraw]{xcolor}
\usepackage{makecell}
\usepackage{multirow}
\usepackage{hhline}
\usepackage{booktabs, caption}
\usepackage{graphicx}
\begin{document}
\begin{table}[]
\centering
\setlength{\extrarowheight}{2pt}
\caption{Les modules de la phase d'intervention}
\label{tab:my-table}
\begin{tabular}{|l|>{\columncolor{Gainsboro!60}}p{4cm}|p{5cm}|}
\hhline{~|--|}
\rowcolor{white}\multicolumn{1}{c|}{} & \textbf{Modules} & \textbf{Actions} \\ \hline
& Vérification de la quarantaine & Valide la capacité du système à mettre en quarantaine l’accès au système en externe et les données en interne. \\
\hhline{~|--|}
& Vérification des privilèges & Évalue la capacité d’élévation des privilèges au sein du système. \\
\hhline{~|--|}
& Validation de survivabilité & Évalue la résistance du système à des situations excessives ou défavorables. \\ \hhline{~|--|}
\multirow{-8.4}{*}{\textbf{Phase d’intervention}} & Contrôle des alertes et des journaux & Évalue les activités de l’audit. \\
\hline
\end{tabular}
\end{table}
\end{document}