我正在尝试在 LaTex 中创建一个如下所示的多列表格:
不幸的是,我尝试了几乎所有的多行和多列表的代码,但看起来一点也不相似。我的主要问题是将时间顺序放在两个名字上。
我尝试的最后一个代码是:
\documentclass[11pt]{article}
\begin{document}
\begin{left}
\begin{tabular}{|lc|ll|l|ll|}
\hline
{\bfseries Bronze Age} & {} & {\bfseries Iron Age} & {} &{\bfseries Hellenistic} & {\bfseries Roman}\\
\hline
\multirow {Kilise Tepe & Ephesos & Kilise Tepe & Ephesos & Gordion & Ephesos& Sagalassos}\\
\hline
\end{tabular}
\end{left}
\end{document}
有人可以给我指明正确的方向吗?
先感谢您。
答案1
您的表格似乎太宽了,在纵向模式下无法适应页面宽度,否则会降低可读性。因此,我建议使用包sidewaystable
中的环境将表格旋转 90 度rotating
。
\documentclass[11pt]{article}
\usepackage{rotating}
\begin{document}
\begin{sidewaystable}[!htb]\small\centering
\begin{tabular}{|l|*7{c|}} \hline
&\multicolumn{2}{|c|}{\bfseries Bronze Age} & \multicolumn{2}{|c|}{\bfseries Iron Age} & {\bfseries Hellenistic}&\multicolumn{2}{|c|}{\bfseries Roman}\\ \cline{2-8}
& Kilise Tepe & Ephesos & Kilise Tepe & Ephesos & Gordion & Ephesos & Sagalassos\\ \hline
\textbf{Presence of fish (no species ID)}&&&&&&& \\ \hline
\textbf{Marine Species}&&&&&&&\\ \hline
% .............. continue the same way
\end{tabular}
\end{sidewaystable}
\end{document}
答案2
这是一个解决方案tabularx, array, makecell
。您不需要multirow, but the
geometry` 包有助于获得合理的边距。
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[showframe]{geometry}
\usepackage{array, makecell, ltablex}
\renewcommand\theadfont{\bfseries}
\begin{document}
\sffamily\small\setlength\tabcolsep{3pt}\renewcommand\arraystretch{1.2}
\noindent
\begin{tabularx}{\linewidth}{| >{\itshape}l|ccccccc|}
\hline
& \multicolumn{2}{c|}{\bfseries Bronze Age} & \multicolumn{2}{|c|}{\bfseries Iron Age} & \multicolumn{1}{|c|}{\bfseries Hellenistic} & \multicolumn{2}{|c|}{\bfseries Roman}\\
\cline{2-8}
& \multicolumn{1}{c|}{Kilise Tepe} & \multicolumn{1}{|c|}{Gordion} & \multicolumn{1}{|c|}{Kilise Tepe} & \multicolumn{1}{|c|}{Gordion} & \multicolumn{1}{|c|}{Ephesos} & \multicolumn{1}{|c|}{Ephesos} & \multicolumn{1}{|c|}{Sagalassos} \\
\hline
\thead{Presence of fish & & & & & & & \\ (no species ID)} & & + & & + & & & \\
\cline{1-1}
\thead{Marine species} & & & & & & & \\
\cline{1-1}
Sardina pilchardus & & & & & & & + \\
\cline{1-1}
Euthynnus alletteratus & & & & & & & + \\
\cline{1-1}
Auxis rochei & & & & & & & + \\
\cline{1-1}
Sarda sarda & & & & & & & + \\
\cline{1-1}
Scomber japonicas & & & & & & & + \\
\cline{1-1}
Epinephelus & & & & & & & \\
\cline{1-1}
Carcharhinus & & & & & & & \\
\cline{1-1}
Alosa fallax & + & & & & & & \\
\cline{1-1}
Sparidae & + & & & & & + & \\
\hline
\end{tabularx}
\end{document}
答案3
为了合并两列或多列,您需要该\multicolumn
命令,该命令需要三个输入:
\multicolumn{<number of columns you want to merge>}{<text alignement>}{<text>}
使用以下代码可以获取所需的表:
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{tabular}{|l|c|c|c|c|c|c|c|}
\hline
\multirow{2}{*}{} & \multicolumn{2}{c|}{Bronze Age} & \multicolumn{2}{c|}{Iron Age} & Hellenistic & \multicolumn{2}{c|}{Roman}\\
& \textbf{Kilise Tepe} & \textbf{Gordion} & \textbf{Kilise Tepe} & \textbf{Gordion} & \textbf{Ephesos} & \textbf{Ephesos} & \textbf{Salagassos}\\
\hline
\textbf{Presence of fish} & & + & & + & & & \\
\cline{1-1}
\multicolumn{1}{|c|}{\textbf{Marine species}} & & & & & & & \\
\cline{1-1}
\textit{Sardina pilcardus} & & & & & & & + \\
\cline{1-1}
\textit{Euthynnus alletteratus} & & & & & & & + \\
\hline
\end{tabular}
\end{document}
但是,正如 AboAmmar 在他的回答中指出的那样,它可能对页面来说太宽了。作为包的替代方案rotating
,您可以考虑使用首字母缩略词来减小每列的宽度,并添加图例(再次使用命令\multicolumn
)。例如:
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{tabular}{|l|c|c|c|c|c|c|c|}
\hline
\multirow{2}{*}{} & \multicolumn{2}{c|}{Bronze Age} & \multicolumn{2}{c|}{Iron Age} & Hellenistic & \multicolumn{2}{c|}{Roman}\\
& \textbf{K. T.} & \textbf{G.} & \textbf{K. T.} & \textbf{G.} & \textbf{E.} & \textbf{E.} & \textbf{S.}\\
\hline
\textbf{Presence of fish} & & + & & + & & & \\
\cline{1-1}
\multicolumn{1}{|c|}{\textbf{Marine species}} & & & & & & & \\
\cline{1-1}
\textit{Sardina pilcardus} & & & & & & & + \\
\cline{1-1}
\textit{Euthynnus alletteratus} & & & & & & & + \\
\hline
\multicolumn{8}{l}{\textbf{K. T.}: Kilise Tepe}\\
\multicolumn{8}{l}{\textbf{G.}: Gordon}\\
\multicolumn{8}{l}{\textbf{E.}: Ephesos}\\
\multicolumn{8}{l}{\textbf{S.}: Salagassos}\\
\end{tabular}
\end{document}
最后,您可能需要查看一下booktabs
包,并从表中删除一些行:
\documentclass{article}
\usepackage{multirow}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lccccccc}
\toprule
\multirow{2}{*}{} & \multicolumn{2}{c}{Bronze Age} & \multicolumn{2}{c}{Iron Age} & Hellenistic & \multicolumn{2}{c}{Roman}\\
& \textbf{K. T.} & \textbf{G.} & \textbf{K. T.} & \textbf{G.} & \textbf{E.} & \textbf{E.} & \textbf{S.}\\
\midrule
\textbf{Presence of fish} & & + & & + & & & \\
\cmidrule{1-1}
\multicolumn{1}{c}{\textbf{Marine species}} & & & & & & & \\
\cmidrule{1-1}
\textit{Sardina pilcardus} & & & & & & & + \\
\textit{Euthynnus alletteratus} & & & & & & & + \\
\bottomrule
\end{tabular}
\end{document}