我想创建一个表格,其中longtable
除最后一列外,所有列的长度都是固定的,最后一列应占用所有剩余空间。表格本身应为整页宽度。
我尝试了以下操作longtable
,但是没有效果:
\documentclass{article}
\usepackage{longtable}
\usepackage{tabu}
\usepackage{array}
\usepackage{booktabs}
\setlength\parindent{0pt}
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\begin{document}
\begin{longtable}[h]{p{2cm}l@{\extracolsep{\fill}}}
\toprule
Icon & Description \\
\midrule
Icon 1 & Means this and that \\
Icon 2 & Means some other thing \\
\bottomrule
\end{longtable}
\end{document}
我tabu
可以实现如下目标:
\begin{tabu} to \textwidth {p{2cm}X}
这是一个在线示例:https://es.sharelatex.com/project/555e01773b14e98f7d55ed84
如何使用做同样的事情longtable
?
编辑:我知道我可以在其他环境中做到这一点。问题具体在于是否可以用来实现这一点longtable
。
答案1
您可以使用该包,它带来以下环境中ltablex
的功能:longtable
tabularx
\documentclass{article}
\usepackage[ nomarginpar]{geometry}%showframe,
\usepackage{ragged2e}
\usepackage{array}
\usepackage{ltablex}
\keepXColumns
\usepackage{booktabs}
\usepackage{lipsum}
\setlength\parindent{0pt}
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\raggedbottom
\begin{document}
\begin{tabularx}{\linewidth}{p{2cm}>{\arraybackslash}X}
\caption{A demo of the possibilities of \texttt{ltablex}}
\\ \toprule
Icon & Description\medskip
\endfirsthead
\midrule
Icon & Description\medskip% \
\endhead
\midrule
\endfoot
\bottomrule
\endlastfoot%\\
& \lipsum[1] \\
\midrule
Icon 1 & Means this and that \lipsum[2] \\
Icon 2 & Means some other thing\lipsum[3] \\
Icon 3 & Means this and that \lipsum[4] \\
Icon 4 & Means some other thing\lipsum[5]
\end{tabularx}
\end{document}
答案2
实现这一点的通常方法是ltxtable
使用长桌遇见 tabularx. 界面不同于tabu
,该命令\LTXtable
读取包含您的外部文件longtable
,例如
\documentclass{article}
\usepackage{longtable}
\usepackage{tabu}
\usepackage{array}
\usepackage{booktabs}
\usepackage{filecontents,ltxtable}
\setlength\parindent{0pt}
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\begin{document}
\begin{filecontents}{longtab.tex}
\begin{longtable}{@{}p{2cm}X@{}}
\toprule
Icon & Description \\
\midrule
Icon 1 & Means this and that \\
Icon 2 & Means some other thing \\
\bottomrule
\end{longtable}
\end{filecontents}
\LTXtable{1.0\linewidth}{longtab.tex}
\end{document}
ltablex
没有这个限制(参见 Bernard 的示例)。请注意,它会在内部加载longtable
和tabluarx
。
答案3
我找到了一种方法来实现我需要的功能,只需添加一个额外的“虚拟”列即可。只需更改此内容:
\begin{longtable}[h]{p{2cm}l@{\extracolsep{\fill}}}
更改为:
\begin{longtable}[h]{p{2cm}l@{\extracolsep{\fill}}l}
似乎可以解决问题。
例子: