我试图创建一个复杂的表来定义许多概念,这些概念可以有自己的定义的子概念。
现在,我的问题是控制表的每一列的宽度。因为定义使用了多行,而且可以得到相当长的长度,所以LaTeX不会像我在普通表中所做的那样打破这一行。为此,我倾向于使用p{0.X\列宽度}而不是l/c/r,但在这里它似乎不起作用。
目前,本表要实现的目标是:
break);
)
下面是一个已经建立的小例子:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
\begin{document}
\begin{table}[]
\begin{tabular}{p{0.1\columnwidth}p{0.1\columnwidth}p{0.1\columnwidth}p{0.5\columnwidth}}
\hline
\multirow{11}{*}{A} & \multicolumn{3}{l}{Definition of A} \\ \cline{2-4}
& \multirow{5}{*}{A1} & \multicolumn{2}{l}{Definition of A1} \\ \cline{3-4}
& & A11 & Definition of A11 \\ \cline{3-4}
& & A12 & Definition of A12 \\ \cline{3-4}
& & A13 & Definition of A13 \\ \cline{3-4}
& & A14 & Definition of A14 \\ \cline{2-4}
& A2 & \multicolumn{2}{l}{Definition of A2} \\ \cline{2-4}
& \multirow{4}{*}{A3} & \multicolumn{2}{l}{Definition of A3} \\ \cline{3-4}
& & A31 & Definition of A31 \\ \cline{3-4}
& & A32 & Definition of A32 \\ \cline{3-4}
& & A33 & Definition of A33 \\ \hline
\multirow{4}{*}{B} & \multicolumn{3}{l}{Definition of B} \\ \cline{2-4}
& B1 & \multicolumn{2}{l}{Definition of B1} \\ \cline{2-4}
& B2 & \multicolumn{2}{l}{Definition of B2} \\ \cline{2-4}
& B3 & \multicolumn{2}{l}{Definition of B3} \\ \hline
\multirow{3}{*}{C} & \multicolumn{3}{l}{Definition of C} \\ \cline{2-4}
& C1 & \multicolumn{2}{l}{Definition of C1} \\ \cline{2-4}
& C2 & \multicolumn{2}{l}{Definition of C1} \\ \hline
\end{tabular}
\end{table}
\end{document}
发布于 2022-01-05 14:01:40
不幸的是,multirow
不能很好地处理这类表,因为它无法获得关于表单元格高度的LaTeX的tabular
信息。所以你必须计算单元格占据的实际行数,这是很烦人的。
这类表使用tabularray
包要容易得多,它有自己的表机制实现,该机制确实具有此类信息。实际上,只要用\usepackage{tabularray}
替换\usepackage{tabular}
,用tblr
替换tabular
环境,就可以使用大部分代码。但是,尽管\multirow
的位置是正确的,但是您将无法获得tabularray
的全部功能,例如,条目不会以水平为中心。此外,对\multirow
和\multicolumn
在tabularray
中的支持将在未来的版本中消失。因此,我重写了它,以使用tabularray
在这些情况下使用\SetCell
的语法。首先要说几句话:
tabular
您可以使用像0.7\textwidth+2\tabcolsep
这样的表达式来计算\multicolumn
的宽度。然而,tabularray
不使用\tabcolsep
。相反,它有leftsep
和rightsep
参数。它们可以在单元格内作为\leftsep
和\rightsep
使用,但不幸的是,它们没有在单元格之外设置,例如在宽度规范中。因此,I(Ab)在宽度计算中使用了\tabcolsep
,并设置了colsep=\tabcolsep
(它同时设置了leftsep
和p
列),但是对于标准的LaTeX定义,这使得连字符非常困难。因此,我使用了ragged2e
包来获得更好的定义。它必须包括在之前, tabularray
才能正常工作。\multicolumn{2}
和{3}
单元定义了命令\Mdois
和\Mtres
。我包括了\justifying
命令(来自ragged2e
包),以获得完全正确的文本。如果不希望文本是对齐的,可以忽略这一点。cells={c,m}
,默认情况下可以使单元格以水平和垂直的方式居中。我还使用m{}
类型列说明符对较大的文本列进行垂直居中。rowsep=1pt
使行更接近彼此。尽管如此,我还是不得不使用\small
来使页面上的所有内容都适合。实际上,该表被粘贴到页脚中,因此您可能不得不使用更小的字体大小,比如\footnotesize
.\hspace{0pt}
的内容。我为此做了一个宏\HH
,并把它放在"Confidencialidade“这样的大单词前面。如果你想的话,你实际上可以把它放在列的定义中。\multirow
或\multicolumn
中的文本--仍然有大括号,尽管这不再是必要的(它们不是\SetCell
、\Mdois
或\Mtres
的参数)。我认为移除它们的工作量太大了,而且它们并不会造成伤害。--这就是解决办法。我把它降到了桌子所需的最低限度。
\documentclass[sigplan]{acmart}
\usepackage[portuguese]{babel}
\usepackage{calc}
\usepackage[newcommands]{ragged2e}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\begin{document}
\begin{table*}[tbp]
\newcommand\HH{\hspace{0pt}}
\NewTableCommand{\Mdois}{\SetCell[c=2]{preto=\justifying,wd=0.7\textwidth+2\tabcolsep}}
\NewTableCommand{\Mtres}{\SetCell[c=3]{preto=\justifying,wd=0.8\textwidth+4\tabcolsep}}
\SetTblrInner{rowsep=1pt}
\small
\centering
\caption{Especificação das Métricas do CVSS}
\label{tab:metricas-cvss}
\begin{tblr}{colspec={ m{0.1\textwidth} m{0.1\textwidth} m{0.1\textwidth} Q[preto=\justifying,wd={0.6\textwidth}] },colsep=\tabcolsep,cells={c,m}}
\toprule
\SetCell[r=11]{c}{\textbf{Métricas de Base}} & \Mtres {Todas as métricas que servem de base para o cálculo da vulnerabilidade, de forma preliminar.} \\ \cline{2-4}
& \SetCell[r=5]{c}{\textbf{Métricas de Explorabilidade}} & \Mdois {As métricas de explorabilidade refletem valores relativos ao componente afetado, bem como propriedades de uma vulnerabilidade que leve a cabo um ataque bem-sucedido.} & \\ \cline{3-4}
& & \SetCell[r=1]{c,m}\textbf{Vetor de Ataque (AV)} & \SetCell[r=1]{c,m}
Contexto pela qual a exploração da vulnerabilidade é possível - o valor será tanto maior quanto mais um atacante conseguir atingir (lógica e fisicamente) para explorar o componente vulnerável. \\ \cline{3-4}
& & \HH\textbf{Complexidade do Ataque (AC)} & Condições para além do controlo do atacante que devem existir para explorar a vulnerabilidade. \\ \cline{3-4}
& & \textbf{Privilégios Necessários (PR)} & Nível de privilégios que um atacante deve possuir antes de explorar a vulnerabilidade com sucesso – quantos menos privilégios forem necessários, mais alta será a pontuação. \\ \cline{3-4}
& & \textbf{Interação do Utilizador (UI)} & Captura a necessidade de um utilizador humano, diferente do atacante, participar no comprometimento bem-sucedido do componente vulnerável \\ \cline{2-4}
& \textbf{Contexto (S)} & \Mdois {Captura se uma vulnerabilidade num componente vulnerável afeta os recursos noutros componentes para além do seu contexto de segurança.} \\ \cline{2-4}
& \SetCell[r=4]{c}{\textbf{Métricas de Impacto}} & \Mdois {Capturam os efeitos de uma vulnerabilidade explorada com sucesso no componente que sofre o pior resultado que está mais direta e previsivelmente associado ao ataque.} \\ \cline{3-4}
& & \HH\textbf{Confidencialidade (C)} & Mede o impacto sobre a confidencialidade dos recursos de informação geridos por um componente de software graças a uma vulnerabilidade explorada com sucesso – a classificação é maior quando a perda para o componente afetado é maior. \\ \cline{3-4}
& & \textbf{Integridade (I)} & Mede o impacto na integridade de uma vulnerabilidade explorada com sucesso – a classificação é maior quando a consequência para o componente afetado é maior. \\ \cline{3-4}
& & \HH\textbf{Disponibilidade (A)} & Mede o impacto na disponibilidade do componente afetado resultante de uma vulnerabilidade explorada com sucesso. Como a disponibilidade se refere à acessibilidade dos recursos de informação, os ataques que consomem largura de banda da rede, ciclos do processador ou espaço em disco impactam a disponibilidade do componente afetado – a classificação é maior quando a consequência para o componente impactado é maior. \\ \hline
\SetCell[r=4]{c}{\textbf{Métricas Temporais}} & \Mtres {As métricas temporais medem o estado atual das técnicas de exploração ou disponibilidade de código, a existência de \textit{patches} ou uma solução de recurso (comumente designado em inglês por \textit{workaround}), ou a certeza da descrição da vulnerabilidade} \\ \cline{2-4}
& \textbf{Exploração da Maturidade do Código (E)} & \Mdois {Mede a probabilidade de a vulnerabilidade ser atacada e é normalmente baseada no estado atual das técnicas de exploração, disponibilidade de código de exploração ou exploração ativa \textit{in-the-wild}.} \\ \cline{2-4}
& \textbf{Nível de Remediação (RL)} & \Mdois {É um fator importante para a priorização - quanto menos oficial EXPLICAR O QUE É OFICIAL?! e permanente for uma correção, maior será a pontuação de uma vulnerabilidade.} \\ \cline{2-4}
& \textbf{Confiança no Reporte (RC)} & \Mdois {Mede o grau de confiança na existência da vulnerabilidade e na credibilidade dos detalhes técnicos conhecidos - quanto mais uma vulnerabilidade é validada pelo fornecedor ou outras fontes confiáveis, maior será a pontuação.} \\ \hline
\SetCell[r=3]{c}{\textbf{Métricas Ambientais}} & \Mtres {As métricas ambientais permitem a personalização da pontuação do CVSS, dependendo da importância do ativo de TI afetado para a organização de um utilizador, medida em termos de controlos de segurança complementares e/ou alternativos implementados, confidencialidade, integridade e disponibilidade.} \\ \cline{2-4}
& \textbf{Requisitos de Segurança (CR, IR, AR)} & \Mdois {Permitem que o analista personalize a pontuação CVSS, dependendo da importância do ativo de TI afetado para a organização de um utilizador, medida em termos de confidencialidade, integridade ou disponibilidade - cada requisito de segurança tem três valores possíveis: Baixo, Médio ou Alto.} \\ \cline{2-4}
& \textbf{Métricas de Base Modificadas} & \Mdois {Permitem que o analista substitua as métricas básicas individuais com base em características específicas do ambiente de um utilizador; delas fazem parte a Modified Attack Vector (MAV), Modified Attack Complexity (MAC), Modified Privileges Required (MPR), Modified User Interaction (MUI), Modified Scope (MS), Modified Confidentiality (MC), Modified Integrity (MI) ou Modified Availability (MA).} \\
\bottomrule
\end{tblr}
\end{table*}
\end{document}
https://stackoverflow.com/questions/70569480
复制相似问题