![使用 tabu 自动对表格进行分页](https://linux22.com/image/401608/%E4%BD%BF%E7%94%A8%20tabu%20%E8%87%AA%E5%8A%A8%E5%AF%B9%E8%A1%A8%E6%A0%BC%E8%BF%9B%E8%A1%8C%E5%88%86%E9%A1%B5.png)
我有一张带有禁忌的桌子。我有两个问题:
- 如何让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}