如何创建包含大量文本的大型矩阵表

如何创建包含大量文本的大型矩阵表

我对 LaTeX 还比较陌生,但过去几个月我一直在成功地使用它。现在,我正在与来自四个不同国家的人合作撰写一本书的章节。这是我改用 LaTeX 和 Overleaf 的原因之一:不再需要来回发送 Word 文件,也不需要等待某人的贡献才能保留自己的工作。当然,我可以使用 Google Docs 或类似的东西,但我确信我不需要为 LaTeX 辩护,因为它是这里的最佳选择,呵呵。

因此,我尝试用 LaTeX 重建我们的章节,几乎一切都进行得很顺利。我下载了 Springer 书籍章节模板,因为他们将出版这本书,然后创建包含所有图像、表格和其他所需内容的文件。问题是,在章节结束时,我有一个附件,其中包含四个长表格和大量文本,我似乎找不到让它工作的方法。通常,我可以在 Stackexchange 上找到大多数疑问的答案,但有一个问题很难解决:创建长而宽的表格,其中包含大量文本。

每个表的结构如下:

表格示例

以下是实现此功能所需的最小工作代码:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{longtable}

\begin{document}

\begin{longtable}[c]{@{}|l|l|l|l|l|@{}}
\caption{My table caption here}
\label{tab:table1}\\
\toprule
 &
  Category 1 &
  Category 2 &
  Category 3 &
  Category 4 \\* \midrule
\endfirsthead
%
\endhead
%
\begin{tabular}[c]{@{}l@{}}First \\ Subcategory\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\\ Topic 3\\ Topic 4\\ Topic 5\\ Topic 6\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\\ Topic 3\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\end{tabular} &
  \multirow{5}{*}{Topic 1} \\* \cmidrule(r){1-4}
\begin{tabular}[c]{@{}l@{}}Second\\ Subcategory\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\\ Topic 3\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\\ Topic 3\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\end{tabular} &
   \\* \cmidrule(r){1-4}
\begin{tabular}[c]{@{}l@{}}Third\\ Subcategory\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\\ Topic 3\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\end{tabular} &
   \\* \cmidrule(r){1-4}
\begin{tabular}[c]{@{}l@{}}Fourth\\ Subcategory\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\\ Topic 3\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\\ Topic 3\\ Topic 4\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\end{tabular} &
   \\* \cmidrule(r){1-4}
\begin{tabular}[c]{@{}l@{}}Fifth\\ Subcategory\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\\ Topic 3\\ Topic 4\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Topic 1\\ Topic 2\\ Topic 3\\ Topic 4\\ Topic 5\\ Topic 6\end{tabular} &
   \\* \bottomrule
\end{longtable}
\footnotesize{Here I have a table footnote, of about 50 words}
\end{document}

问题是,每个“主题”都是一个 15 到 30 个单词的句子。因此,在我原来的 Word 文档中,每个表格占用两页(纵向),但我尝试了很多方法让它在 LaTeX 中工作,但没有成功:横向环境、制作单元格、制表符、调整框大小等。

以下是最小工作代码,其句子大小与最终版本大致相同:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{longtable}

\begin{document}

\begin{longtable}[c]{@{}|l|l|l|l|l|@{}}
\caption{My table caption here}
\label{tab:table1}\\
\toprule
 &
  Category 1 &
  Category 2 &
  Category 3 &
  Category 4 \\* \midrule
\endfirsthead
%
\endhead
%
\begin{tabular}[c]{@{}l@{}}First \\ Subcategory\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  4\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  5\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  6\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\end{tabular} &
  \multirow{5}{*}{Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1} \\* \cmidrule(r){1-4}
\begin{tabular}[c]{@{}l@{}}Second\\ Subcategory\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\end{tabular} &
   \\* \cmidrule(r){1-4}
\begin{tabular}[c]{@{}l@{}}Third\\ Subcategory\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\end{tabular} &
   \\* \cmidrule(r){1-4}
\begin{tabular}[c]{@{}l@{}}Fourth\\ Subcategory\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  4\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\end{tabular} &
   \\* \cmidrule(r){1-4}
\begin{tabular}[c]{@{}l@{}}Fifth\\ Subcategory\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  4\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\end{tabular} &
  \begin{tabular}[c]{@{}l@{}}Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  4\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  5\\ Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  6\end{tabular} &
   \\* \bottomrule
\end{longtable}
\footnotesize{Sed volutpat erat eget sem eleifend imperdiet. Integer convallis iaculis pretium. Aenean sed dui nec libero rhoncus ultricies at a ex. Nulla facilisi. Phasellus non dui ultrices, viverra lacus vel, pharetra massa. Vivamus quis hendrerit justo, sed vestibulum felis. Suspendisse sit amet lacinia sapien. Nunc mi felis, tristique eu volutpat.}
\end{document}

因此,任何帮助都将不胜感激。最直接的方法是使用 LaTeX 复制我在 word 中的内容(纵向的两页表格),但我也可以使用横向、单页等。事实上,我不仅欢迎任何关于如何编写所需表格的建议,也欢迎任何关于在 LaTeX 中更好地呈现此类信息的其他方法的建议(考虑到每个表格实际上都是一个矩阵)。

提前致谢,

安德烈·布拉西尔

答案1

作为起点:

\documentclass{article}
\usepackage{geometry}
\usepackage{microtype}
\usepackage{ragged2e}
\usepackage{booktabs, multirow, xltabular}
\newcolumntype{L}{>{\RaggedRight}X}

\begin{document}

\footnotesize
\setlength\tabcolsep{4pt}
\begin{xltabular}{\linewidth}{@{} *{3}{ L} l @{}}
    \caption{My table caption here}
    \label{tab:table1}\\
    \toprule
Category 1
    &   Category 2
        &   Category 3
            &   Category 4      \\*
    \midrule
\endfirsthead
%
\endhead
%
\multicolumn{4}{l}{\textbf{First Subcategory}}   \\
    \addlinespace
Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu  efficitur nisi. Pellentesque elementum quis urna  1 

Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna   2 
 Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3 

Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  4
 Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  5 

Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  6
    &   Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1
  
  Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2
  
  Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3
        &   Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1
  
            Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2
            &   \multirow{55}{*}{Topic 1}\\
  \cmidrule(r){1-3}
\multicolumn{4}{l}{\textbf{Second Subcategory}}   \\
    \addlinespace
Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1

Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2

Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3
    &   Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1

        Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2

        Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3 
        &   Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  1

        Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  2

        Praesent egestas feugiat odio, quis tempor libero sodales vitae. Integer in feugiat augue, eu efficitur nisi. Pellentesque elementum quis urna  3  
            &   \\
  \cmidrule(r){1-3}
\end{xltabular}
\end{document}

在此处输入图片描述

您可以考虑以横向旋转桌子。

相关内容