Я хочу создать первые две строки этой таблицы из 5 столбцов в LaTeX:
Как вы видите, это особый тип таблиц, в которых мы видим:
- внутри есть подробные списки, но они непоследовательны, например, во всех строках столбца 4 есть подробные списки, в столбцах 2, 3 и 5 есть подробные списки в некоторых, но не во всех строках, в столбце 1 вообще нет никаких детализированных списков.
- хорошее выравнивание таблицы
- такой привлекательный внешний вид,
booktabs
для которого был создан пакет - это компактный стол, не содержащий неприятных пространств
- списки имеют квадратные маркеры
Код:
\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}
Самый близкий ответ, который я нашел, былздесь, но, к сожалению, этот ответ предполагает, что все строки имеют подробный список, а не некоторые из них, поэтому, пожалуйста, обратите внимание на этот момент, прежде чем помечать этот пост как дубликат.
решение1
Ответом было бы поместить список в мини-страницу или parbox, но это не очень весело. Вот еще одно решение с enumitem
использованием клавиш before
и after
и команды \tablistcommand
: Используйте tabitemize
, когда у вас есть ячейка только со списком, и очистите клавишу before
с текстом, предшествующим списку. Строки правильно выровнены.
\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}
РЕДАКТИРОВАТЬ
Это действительно зависит от вашего варианта использования, но я бы, вероятно, сделал такую таблицу в документе. Если у вас очень длинная таблица, было бы разумнее повернуть ее.
\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}
решение2
Вотперечислятьверсия:
Я определил tableitems
вариант окружения itemize
и использовал его внутри вашей таблицы. Обратите внимание на неуклюжий хак, использующийся \vspace
для тех списков, у которых нет заголовка. Без этого в списке будет пустая строка.
Код
\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}
решение3
Не идеально, но посмотрите, может быть полезно:
\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}
Вместо этого landscape
я использовал sidewaystable
from package rotating
и для списков внутри таблицы compactitem
from package paralist
. Аналогичный результат вы можете получить с enumitem
package (с которым я менее знаком). Для таблицы я предпочитаю использовать tabularx
package , а для форматирования я использую \RaggedRight
from ragged2e
package .
Приложение: Кажется, что комбинация всех трех ответов даст лучшее решение :-). Поэтому я объединяю следующее
$\sqbullet$
из пакетаmathabx
package как предложил Эндрю в своем ответе- способ, которым Араш Эсбати использует пакет
enumitem
в своем ответе tabularx
и выравнивание текста для заголовков столбцов,sidewaystable
как я предлагаю в своем ответе.RaggedRight
makecell
При этом «общий» код становится следующим:
\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}
При этом таблица выглядит так, как показано ниже: