Quiero generar las dos primeras filas de esta tabla de 5 columnas en LaTeX:
Como podéis ver es un tipo especial de tablas donde vemos:
- listas detalladas en el interior pero de manera inconsistente, es decir. En la columna 4, todas las filas tienen listas detalladas en su interior, las columnas 2, 3 y 5 tienen listas detalladas en algunas filas, pero no en todas, y la columna 1 no tiene ninguna lista detallada.
- la bonita alineación de la mesa
- la apariencia de ojos dulces así
booktabs
para qué se creó el paquete - es una mesa compacta que no contiene espacios desagradables
- las listas tienen viñetas cuadradas
Código:
\documentclass{scrartcl}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{array}
\usepackage{lscape}
\begin{document}
\begin{landscape}
\thispagestyle{empty} % hide page number
\begin{table}
\centering
\setlength{\belowcaptionskip}{\abovecaptionskip}% Correct skip for caption on top
\caption{Wide Itemized Mixed Table}
\label{tab:wide-item-tbl}
\begin{tabular}{lp{2in}p{2in}p{2in}p{2in}}
\toprule
\textbf{BSL} & \textbf{Agents} & \textbf{Practices} & \textbf{Primary barriers} & \textbf{Secondary barriers} \\
\midrule
1 & Not known to consistently cause diseases in healthy adults & standard microbiological practices & no primary barriers required, PPE & bench and sink required \\
2 & - Agents associated with human diseases - Routes of transmission include per-cutaneous injury, ingestion, mucous membrane exposure & BSL-1 practice plus: - limited access - Biohazard warning signs - ``Sharps'' precautions - Biosafety manual defining any needed waste decontamination or medical surveillance polices & Primary barriers: - BSCs or other physical containment devices used for all manipulations of agents that cause splashes or aerosols of infectious materials - PPE: Laboratory coats, gloves, face and eye protection, as needed & BSL-1 plus: - Autoclave available\\
\bottomrule
\end{tabular}%
\end{table}
\end{landscape}
\end{document}
La respuesta más cercana que encontré fueaquí, pero desafortunadamente esta respuesta supone que todas las filas tienen una lista detallada y no algunas de ellas, así que preste atención a este punto antes de etiquetar esta publicación como duplicada.
Respuesta1
La respuesta sería poner la lista dentro de una minipágina o parbox, pero eso no es realmente divertido. Aquí hay otra solución con enumitem
el uso de las teclas before
y after
y el comando \tablistcommand
: utilícela tabitemize
cuando tenga una celda solo con una lista y borre la before
clave con el texto que precede a la lista. Las líneas están correctamente alineadas.
\documentclass[landscape]{scrartcl}
\usepackage{booktabs,array,enumitem,ragged2e}
\newcommand{\tablistcommand}{%
\leavevmode\par\vspace{-\baselineskip}%
}
\newlist{tabitemize}{itemize}{1}
\setlist[tabitemize]{%
leftmargin = * ,
label = \textbullet ,
nosep ,
before = \tablistcommand ,
after = \tablistcommand
}
\begin{document}
\thispagestyle{empty}
\begin{table}
\centering
\caption{Wide Itemized Mixed Table}
\label{tab:wide-item-tbl}
\begin{tabular}{@{}l*{4}{>{\RaggedRight}p{2in}}@{}}
\toprule
\textbf{BSL} & \textbf{Agents} & \textbf{Practices}
& \textbf{Primary barriers} & \textbf{Secondary barriers} \\
\midrule
1 & Not known to consistently cause diseases in healthy adults
& standard microbiological practices
& \begin{tabitemize}
\item no primary barriers required,
\item PPE
\end{tabitemize}
& bench and sink required \tabularnewline
2 & \begin{tabitemize}
\item Agents associated with human diseases
\item Routes of transmission include per-cutaneous injury,
ingestion, mucous membrane exposure
\end{tabitemize}
& BSL-1 practice plus:
\begin{tabitemize}[before=]
\item limited access
\item Biohazard warning signs
\item ``Sharps'' precautions
\item Biosafety manual defining any needed waste
decontamination or medical surveillance polices
\end{tabitemize}
& Primary barriers:
\begin{tabitemize}[before=]
\item BSCs or other physical containment devices used for all
manipulations of agents that cause splashes or aerosols of
infectious materials
\item PPE: Laboratory coats, gloves, face and eye protection,
as needed
\end{tabitemize}
& BSL-1 plus:
\begin{tabitemize}[before=]
\item Autoclave available
\end{tabitemize}\tabularnewline
\bottomrule
\end{tabular}
\end{table}
\end{document}
EDITAR
Realmente depende de su caso de uso, pero probablemente haría una tabla como esta en un documento. Si tienes una mesa muy larga, tendría más sentido rotarla.
\documentclass[a4paper]{article}
\usepackage{%
booktabs,tabularx,enumitem,ragged2e,%
caption,lipsum,showframe,geometry}
\captionsetup[table]{%
format = plain ,
font = footnotesize ,
labelfont = bf ,
justification = centerlast ,
labelsep = period ,
position = top ,
aboveskip = 5pt ,
belowskip = 0pt
}
\newcommand{\tablistcommand}{%
\leavevmode\par\vspace{-\baselineskip}%
}
\newlist{tabitemize}{itemize}{1}
\setlist[tabitemize]{%
leftmargin = * ,
label = \textbullet ,
nosep ,
before = \tablistcommand ,
after = \tablistcommand
}
\begin{document}
\lipsum[1]
\begin{table}[!h]
\caption{Wide Itemized Mixed Table}
\label{tab:wide-item-tbl}
\footnotesize
\begin{tabularx}{\linewidth}{@{}l*{4}{>{\RaggedRight}X}@{}}
\toprule
\scriptsize BSL & \scriptsize Agents & \scriptsize Practices
& \scriptsize Primary barriers & \scriptsize Secondary barriers \\
\midrule
1 & Not known to consistently cause diseases in healthy adults
& standard microbiological practices
& \begin{tabitemize}
\item no primary barriers required,
\item PPE
\end{tabitemize}
& bench and sink required \tabularnewline\addlinespace
2 & \begin{tabitemize}
\item Agents associated with human diseases
\item Routes of transmission include per-cutaneous injury,
ingestion, mucous membrane exposure
\end{tabitemize}
& BSL-1 practice plus:
\begin{tabitemize}[before=]
\item limited access
\item Biohazard warning signs
\item ``Sharps'' precautions
\item Biosafety manual defining any needed waste
decontamination or medical surveillance polices
\end{tabitemize}
& Primary barriers:
\begin{tabitemize}[before=]
\item BSCs or other physical containment devices used for all
manipulations of agents that cause splashes or aerosols of
infectious materials
\item PPE: Laboratory coats, gloves, face and eye protection,
as needed
\end{tabitemize}
& BSL-1 plus:
\begin{tabitemize}[before=]
\item Autoclave available
\end{tabitemize}\tabularnewline
\bottomrule
\end{tabularx}
\end{table}
\lipsum[1]
\end{document}
Respuesta2
Aquí hay unenumitemversión:
Definí una tableitems
variante del itemize
entorno y la usé dentro de su mesa. Tenga en cuenta el truco desgarbado que se utiliza \vspace
para aquellas listas que no tienen un encabezado. Sin esto, hay una línea vacía en la lista.
Código
\documentclass{scrartcl}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{enumitem}
\usepackage{lscape}
\newlist{tableitems}{itemize}{1}
\usepackage{mathabx}% for \sqbullet
\setlist[tableitems]{nosep,
topsep=0pt,
partopsep=0pt,
leftmargin=1em,
label=$\sqbullet$
}
\begin{document}
\begin{landscape}
\thispagestyle{empty} % hide page number
\begin{table}
\centering
\setlength{\belowcaptionskip}{\abovecaptionskip}% Correct skip for caption on top
\caption{Wide Itemized Mixed Table}
\label{tab:wide-item-tbl}
\begin{tabular}{lp{2in}p{2in}p{2in}p{2in}}
\toprule
\textbf{BSL} & \textbf{Agents} & \textbf{Practices} & \textbf{Primary barriers} & \textbf{Secondary barriers} \\
\midrule
1 & Not known to consistently cause diseases in healthy adults
& standard microbiological practices
&\vspace{-1em}
\begin{tableitems}
\item No primary barriers required
\item PPE
\end{tableitems}
& bench and sink required
\\\midrule
2 & \vspace{-1ex}
\begin{tableitems}
\item Agents associated with human diseases
\item Routes of transmission include per-cutaneous injury,
ingestion, mucous membrane exposure
\end{tableitems}
& BSL-1 practice plus:
\begin{tableitems}
\item limited access
\item Biohazard warning signs
\item ``Sharps'' precautions
\item Biosafety manual defining any needed waste
decontamination or medical surveillance polices
\end{tableitems}
& Primary barriers:
\begin{tableitems}
\item BSCs or other physical containment devices used for all
manipulations of agents that cause splashes or aerosols of
infectious materials
\item PPE: Laboratory coats, gloves, face and eye protection, as needed
\end{tableitems}
& BSL-1 plus:
\begin{tableitems}
\item Autoclave available
\end{tableitems}
\\
\bottomrule
\end{tabular}%
\end{table}
\end{landscape}
\end{document}
Respuesta3
No es perfecto pero mira si es útil:
\documentclass{scrartcl}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{booktabs,makecell,tabularx}
\renewcommand\theadfont{\bfseries\sffamily}
\newcommand{\textblacksquare}{\rule[.2ex]{0.8ex}{0.8ex}}
\usepackage{paralist}
\usepackage{ragged2e}
\usepackage[margin=1in,showframe]{geometry}
\usepackage{rotating}
\begin{document}
\thispagestyle{empty} % hide page number
\begin{sidewaystable}
\centering
\small\sffamily
\caption{Wide Itemized Mixed Table}
\label{tab:wide-item-tbl}
\begin{tabularx}{\textheight}{c*{4}{>{\RaggedRight\arraybackslash}X}}
\toprule
\thead{BSL}
& \thead{Agents}
& \thead{Practices}
& \thead{Primary barriers}
& \thead{Secondary barriers} \\
\midrule
1 & Not known to consistently cause diseases in healthy adults
& standard microbiological practices
& \vspace{-2ex}
\begin{compactitem}[\textblacksquare]
\item No primary barriers required,
\item PPE
\end{compactitem}
& Laboratora bench and sink required \\
\midrule
2 & \vspace{-2ex}
\begin{compactitem}[\textblacksquare]
\item Agents associated with human diseases
\item Routes of transmission include per-cutaneous injury, ingestion, mucous membrane exposure
\end{compactitem}
& BSL-1 practice plus:
\begin{compactitem}[\textblacksquare]
\item limited access
\item Biohazard warning signs
\item ``Sharps'' precautions
\item Biosafety manual defining any needed waste decontamination or medical surveillance polices
\end{compactitem}
& Primary barriers:
\begin{compactitem}[\textblacksquare]
\item BSCs or other physical containment devices used for all manipulations of agents that cause splashes or aerosols of infectious materials
\item PPE: Laboratory coats, gloves, face and eye protection, as needed
\end{compactitem}
& BSL-1 plus:
\begin{compactitem}[\textblacksquare]
\item Autoclave available
\end{compactitem} \\
\bottomrule
\end{tabularx}
\end{sidewaystable}
\end{document}
En lugar de landscape
lo he usado sidewaystable
from paquete rotating
y for listas dentro de la tabla compactitem
del paquete paralist
. Puedes obtener un resultado similar con enumitem
el paquete (con el que estoy menos familiarizado). Para la tabla prefiero usar tabularx
el paquete mientras que para formatear uso \RaggedRight
el ragged2e
paquete.
Apéndice: Parece que la combinación de las tres respuestas dará la mejor solución :-). Entonces combino lo siguiente
$\sqbullet$
del paquete paquetemathabx
como propuso Andrew en su respuesta- la forma en que Arash Esbati usa el paquete
enumitem
en su respuesta tabularx
y alineación del texto, para los encabezadossidewaystable
de columnas como propongo en mi respuesta.RaggedRight
makecell
Con esto el código "común" pasa a ser:
\documentclass{scrartcl}
\usepackage{booktabs,makecell,tabularx}
\renewcommand\theadfont{\bfseries\sffamily}
\usepackage{ragged2e}
\usepackage[a4paper,margin=1in,showframe]{geometry}
\usepackage{rotating}
%
\usepackage{mathabx}% for \sqbullet
\usepackage{enumitem}% for nice list
\newcommand{\tablistcommand}{% <-- for eliminating vertical space
% before and after itemize
\leavevmode\par\vspace{-\baselineskip}
}
\newlist{tableitems}{itemize}{1}% <-- defined new list
\setlist[tableitems]{nosep, % <-- new list setup
topsep = 0pt ,
partopsep = 0pt ,
leftmargin = * ,
label = $\sqbullet$ ,
before = \tablistcommand ,
after = \tablistcommand
}
\begin{document}
\thispagestyle{empty}
%---------------------------------------------------------------%
\begin{sidewaystable}[h]%table
\centering
\small\sffamily
\caption{Wide Itemized Mixed Table}
\label{tab:wide-item-tbl}
\begin{tabularx}{\textwidth}{c*{4}{>{\RaggedRight\arraybackslash}X}}
\toprule
\thead{BSL}
& \thead{Agents}
& \thead{Practices}
& \thead{Primary barriers}
& \thead{Secondary barriers} \\
\midrule
1 & Not known to consistently cause diseases in healthy adults
& standard microbiological practices
& \begin{tableitems}
\item No primary barriers required,
\item PPE
\end{tableitems}
& Laboratory bench and sink required \\
\midrule
2 & \begin{tableitems}
\item Agents associated with human diseases
\item Routes of transmission include per-cutaneous injury, ingestion, mucous membrane exposure
\end{tableitems}
& BSL-1 practice plus:
\begin{tableitems}[before=]% <-- nullifying before skip
\item limited access
\item Biohazard warning signs
\item ``Sharps'' precautions
\item Biosafety manual defining any needed waste decontamination or medical surveillance polices
\end{tableitems}
& Primary barriers:
\begin{tableitems}[before=]% <-- nullifying before skip
\item BSCs or other physical containment devices used for all manipulations of agents that cause splashes or aerosols of infectious materials
\item PPE: Laboratory coats, gloves, face and eye protection, as needed
\end{tableitems}
& BSL-1 plus:
\begin{tableitems}[before=]% <-- nullifying before skip
\item Autoclave available
\end{tableitems} \\
\bottomrule
\end{tabularx}
\end{sidewaystable}%table
%---------------------------------------------------------------%
\end{document}
Con esto la tabla queda como se puede ver a continuación: