创建多列表格时出现问题

创建多列表格时出现问题

我正在尝试在 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 thegeometry` 包有助于获得合理的边距。

\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}

相关内容