cuando hago esto:
\begin{tabularx}{\textwidth}{|p{5cm}|p{5cm}|}
\toprule
\textbf{KPI} & \textbf{Description} \endhead
\toprule
\rowcolor{darkgrey} \textbf{The percentage of health and safety trained managers and employees in the workplace} & \begin{itemize}
\item The percentage of trained managers for occupational health and safety in the institute.
\item The percentage of trained employees for occupational health and safety in the institute.
\end{itemize} \\
\midrule
\textbf{Frequency of health and safety committee meetings} & \begin{itemize}\item The number of health and safety committee short meetings per month.
\item The number of health and safety committee general meetings per year.
\end{itemize} \\
\midrule
\rowcolor{darkgrey} \textbf{Frequency of inspection} & \begin{itemize}
\item Number of inspections per year.
\item Frequency of observation of unsafe behaviors.
\end{itemize} \\
\midrule
\textbf{Frequency of auditing} &
\begin{itemize}
\item Number of health and safety management system auditing per year.
\end{itemize} \\
\midrule
\rowcolor{darkgrey} \textbf{Health and safety management team members commitments} &
\begin{itemize}
\item Number of deliverables per team member.
\item Number of participants in the committee meetings.
\end{itemize} \\
\midrule
\textbf{Number of precaution procedures} &
\begin{itemize}
\item Frequency of early warnings.
\item Number of first aid kits and fire drills.
\item Number of trained employees for first aid kits and fire drills.
\end{itemize} \\
\bottomrule
\end{tabularx}
entiendo esto
! LaTeX Error: Something's wrong--perhaps a missing \item.See the LaTeX manual or LaTeX Companion for explanation.Type H <return> for immediate help.... \end{tabularx}
Como puedo resolver esto ? Estoy usando
\usepackage{booktabs,tabularx}
Respuesta1
Sugiero un diseño ligeramente diferente de su tabular. Como puede ver en su ejemplo, el texto en el primer y segundocolumnano está en la misma línea de base, lo que se considera mala tipografía. Además, todas las reglas verticales y horizontales son innecesarias cuando utilizas sombreado. Además, aparecen líneas blancas dispersas porque ni \rowcolor
las booktabs
reglas y ni booktabs
las reglas verticales son compatibles. Si su tabular es parte de un documento, el texto no se alineará en el margen izquierdo y derecho, lo cual no es muy agradable.
El código para cancelar el espacio encima de los elementos de la lista está adaptado del código de David Carlisle enesta respuesta.
Aquí te dejo mi sugerencia, y si te interesa te puedo explicar los diferentes pasos.
\documentclass{article}
\usepackage{array,booktabs}
\usepackage[table]{xcolor}
\usepackage{enumitem}
\definecolor{darkgrey}{cmyk}{0,0,0,.15}
\usepackage{lmodern, microtype}
\newcolumntype{P}{p{\dimexpr(0.5\linewidth-1em-2\tabcolsep)}}
\newcolumntype{Z}{p{\dimexpr(2em-2\tabcolsep)}}
\newcommand{\listbox}[1]{\parbox[t]{\dimexpr(\linewidth-\tabcolsep)}{\mbox{}\vspace{-\normalbaselineskip\relax}\begin{itemize}[nosep, leftmargin=1em,]#1\end{itemize}}}
\newcommand{\rowspace}{\addlinespace[0.5\normalbaselineskip]}
\setlength{\arrayrulewidth}{3pt}
%%---------------- show page layout. don't use in a real document!
%\usepackage{showframe}
%\renewcommand\ShowFrameLinethickness{0.15pt}
%\renewcommand*\ShowFrameColor{\color{red}}
%%---------------------------------------------------------------%
\begin{document}
\setlength{\tabcolsep}{1pt}
\noindent\begin{tabular}{>{\bfseries}PZP}
KPI && \textbf{Description} \\
\addlinespace[0.25\normalbaselineskip]\toprule
\arrayrulecolor{darkgrey}\hline
\rowcolor{darkgrey}
The percentage of health and safety trained managers and employees in the workplace & &
\listbox{\item The percentage of trained managers for occupational health and safety in the institute
\item The percentage of trained employees for occupational health and safety in the institute} \par\\
\rowspace
Frequency o health and safety committee meetings &&
\listbox{\item The number of health and safety committee short meetings per month
\item The number of health and safety committee general meetings per year} \par\\
\arrayrulecolor{darkgrey}\hline
\rowcolor{darkgrey}Frequency of inspection & &
\listbox{\item Number of inspections per year
\item Frequency of observation of unsafe behaviors} \par\\
\arrayrulecolor{darkgrey}\hline
\rowspace
Frequency of auditing & &
\listbox{\item Number of health and safety management system auditing per year} \par\\
\arrayrulecolor{darkgrey}\hline
\rowcolor{darkgrey}Health and safety management team members commitments & &
\listbox{\item Number of deliverables per team member
\item Number of participants in the committee meetings} \par\\
\arrayrulecolor{darkgrey}\hline
\rowspace
Number of precaution procedures & &
\listbox{\item Frequency of early warnings
\item Number of first aid kits and fire drills
\item Number of trained employees for first aid kits and fire drills} \par\\
\bottomrule[2pt]
\end{tabular}
\end{document}
Respuesta2
Una posible solución más...
- con el uso de
enumitem
yetoolbox
las listas de paquetesitemize
dentro de las tablas se adaptan para su uso en tablas - para las reglas horizontales en la tabla se utilizan líneas definidas en el
boldline
paquete - para la columna con listas se define un nuevo tipo de columna
I
(consulte MWE a continuación)
Editar:
- Se logran más espacios verticales superiores en las celdas mediante el uso del
cellspace
paquete y en la parte inferior con la configuración deitemize
la tabla. - eliminados, no se utilizan fragmentos de código y definiciones de tipos de columnas corregidas
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{ragged2e}
\usepackage{boldline,
cellspace,
tabularx}
\setlength\cellspacetoplimit{5pt}
\usepackage{enumitem}
\usepackage{etoolbox}
\AtBeginEnvironment{table}{%
\setlist[itemize]{nosep, % <-- new list setup
leftmargin=*,
label=\textbullet,%% <===
after=\vspace{-0.8\baselineskip} %% <===
}
}% end of AtBeginEnvironment
\newcolumntype{I}{>{\csname @minipagetrue\endcsname%
\RaggedRight\itemize}X<{\enditemize}
}
\begin{document}
\begin{table}[ht]
\rowcolors{1}{white}{gray!15}
\begin{tabularx}{\linewidth}{>{\bfseries\RaggedRight}S{p{48mm}} I}%% <===
\hlineB{2}
KPI & \multicolumn{1}{>{\bfseries}l}{Description} \\
\hlineB{1.5}
The percentage of health and safety trained managers and employees in the workplace
& \item The percentage of trained managers for occupational health and safety in the institute.
\item The percentage of trained employees for occupational health and safety in the institute.
\\
Frequency of health and safety committee meetings
& \item The number of health and safety committee short meetings per month.
\item The number of health and safety committee general meetings per year.
\\
Frequency of inspection
& \item Number of inspections per year.
\item Frequency of observation of unsafe behaviors.
\\
Frequency of auditing
& \item Number of health and safety management system auditing per year.
\\
Health and safety management team members commitments
& \item Number of deliverables per team member.
\item Number of participants in the committee meetings.
\\
Number of precaution procedures
& \item Frequency of early warnings.
\item Number of first aid kits and fire drills.
\item Number of trained employees for first aid kits and fire drills.
\\
\hlineB{2}
\end{tabularx}
\end{table}
\end{document}
El resultado es:
Respuesta3
Al cambiar su \endhead
y \\
agregar los paquetes necesarios (además de cambiar un tipo de columna para X
permitir que tabularx "funcione"), este error desaparece:
\documentclass{article}
\usepackage{tabularx,booktabs,colortbl}
%\usepackage{xcolor}
\definecolor{darkgrey}{cmyk}{0,0,0,.4}
\begin{document}
\begin{tabularx}{\textwidth}{|p{5cm}|X|}
\toprule
\textbf{KPI} & \textbf{Description} \\
\toprule
\rowcolor{darkgrey} \textbf{The percentage of health and safety trained managers and employees in the workplace} & \begin{itemize}
\item The percentage of trained managers for occupational health and safety in the institute.
\item The percentage of trained employees for occupational health and safety in the institute.
\end{itemize} \\
\midrule
\textbf{Frequency of health and safety committee meetings} & \begin{itemize}\item The number of health and safety committee short meetings per month.
\item The number of health and safety committee general meetings per year.
\end{itemize} \\
\midrule
\rowcolor{darkgrey} \textbf{Frequency of inspection} & \begin{itemize}
\item Number of inspections per year.
\item Frequency of observation of unsafe behaviors.
\end{itemize} \\
\midrule
\textbf{Frequency of auditing} &
\begin{itemize}
\item Number of health and safety management system auditing per year.
\end{itemize} \\
\midrule
\rowcolor{darkgrey} \textbf{Health and safety management team members commitments} &
\begin{itemize}
\item Number of deliverables per team member.
\item Number of participants in the committee meetings.
\end{itemize} \\
\midrule
\textbf{Number of precaution procedures} &
\begin{itemize}
\item Frequency of early warnings.
\item Number of first aid kits and fire drills.
\item Number of trained employees for first aid kits and fire drills.
\end{itemize} \\
\bottomrule
\end{tabularx}
\end{document}