使用 tabu 自动对表格进行分页

使用 tabu 自动对表格进行分页

我有一张带有禁忌的桌子。我有两个问题:

  • 如何让tabu在页面结束后中断表格并从下一页开始?
  • 我该如何固定列的大小?第一列应该短一点,第二列稍宽一点,最后一列应该与剩余列宽相适应。

最小工作示例:

\documentclass{article}
\usepackage{tabu}
\usepackage{blindtext}
\begin{document}
\begin{table}[H]
    \centering
    \resizebox{\textwidth}{!}{\begin{minipage}{\textwidth}
            \caption{Minibeispiel}
            \[\tabulinesep=10pt
            \begin{tabu} to \textwidth {XXX}
            \hline
            Short & Long & Explanation\\
            \hline
            SMS & Small Message Service & \blindtext[10]\\
            DPD & Data Package Data & \begin{itemize}
            \item Please
            \item Help
            \item Me
            \end{itemize}
            \hline
            \end{tabu}
            \]
    \end{minipage}}
\end{table}
\end{document}

答案1

请查看以下示例是否适合您的需求:

在以下所有示例中,我都使用了xltabular而不是tabu。为了在表格中启用分页符,我删除了\begin{table}[H]原始表格周围的 、\resizebox{\textwidth}{!}\begin{minipage}{\textwidth}。我还使用了以便在第二页和(后续)页面上重复列标题。\[\endhead

在第一个例子中,我l对前两列使用了两种类型列:

在此处输入图片描述

在第二个例子中,我l对第一列使用了类型列, p对第二列使用了固定宽度类型列:

在此处输入图片描述

在最后一个例子中,我将表格旋转为横向。如果第三列中的文本特别长,这将很有用,并且可以节省空间:

在此处输入图片描述

\documentclass{article}
\usepackage{xltabular}
\usepackage{lipsum}
\usepackage{booktabs}

\usepackage{pdflscape}
\begin{document}
            \begin{xltabular}{\linewidth}{llX}
            \caption{Minibeispiel}\\
            \toprule
            Short & Long & Explanation\\
            \midrule
            \endfirsthead
            \toprule
            Short & Long & Explanation\\
            \midrule
            \endhead
            \bottomrule
            \endfoot
            SMS & Small Message Service & \lipsum[4]\\
            SMS & Small Message Service & \lipsum[4]\\
            SMS & Small Message Service & \lipsum[4]\\
            SMS & Small Message Service & \lipsum[4]\\
            DPD & Data Package Data & \begin{itemize}
            \item Please
            \item Help
            \item Me
            \end{itemize}\\
            \end{xltabular}

\newpage

            \begin{xltabular}{\linewidth}{l>{\raggedright\arraybackslash}p{1.5cm}X}
            \caption{Minibeispiel}\\
            \toprule
            Short & Long & Explanation\\
            \midrule
            \endfirsthead
            \toprule
            Short & Long & Explanation\\
            \midrule
            \endhead
            \bottomrule
            \endfoot
            SMS & Small Message Service & \lipsum[4]\\
            SMS & Small Message Service & \lipsum[4]\\
            SMS & Small Message Service & \lipsum[4]\\
            SMS & Small Message Service & \lipsum[4]\\
            DPD & Data Package Data & \begin{itemize}
            \item Please
            \item Help
            \item Me
            \end{itemize}\\
            \end{xltabular}

\begin{landscape}
            \begin{xltabular}{\linewidth}{l>{\raggedright\arraybackslash}p{1.5cm}X}
            \caption{Minibeispiel}\\
            \toprule
            Short & Long & Explanation\\
            \midrule
            \endfirsthead
            \toprule
            Short & Long & Explanation\\
            \midrule
            \endhead
            \bottomrule
            \endfoot
            SMS & Small Message Service & \lipsum[4]\\
            SMS & Small Message Service & \lipsum[4]\\
            SMS & Small Message Service & \lipsum[4]\\
            SMS & Small Message Service & \lipsum[4]\\
            DPD & Data Package Data & \begin{itemize}
            \item Please
            \item Help
            \item Me
            \end{itemize}\\
            \end{xltabular}
\end{landscape}
\end{document}

相关内容