从http://tug.ctan.org/macros/latex/contrib/ltablex/ltablex.pdf
另一个已添加的功能是,如果表格内容允许这样做且不超过表格的指定宽度,则将 X 列视为“l”列。换句话说,指定的宽度被视为允许的最大值,而不是表格的确切宽度。此功能是默认的,但可以使用 \keepXColumns(或 \convertXColumns)禁用(或启用)。
从https://en.wikibooks.org/wiki/LaTeX/Tables
l
左对齐列...新的列说明符 X(大写)。使用此说明符指定的列将被拉伸以使表格宽度达到指定宽度,从而大大简化表格的创建。
似乎我可以使用 禁用该功能\keepXColumns
,然后稍后使用 启用它\convertXColumns
。我为什么要这样做:to treat the X columns like ‘l’ columns
?
我找不到使用的示例\keepXColumns
,是否有关于这两个设置用法的示例表?如果使用或,\convertXColumns
表格会是什么样子?\keepXColumns
\convertXColumns
答案1
tabularx
我认为使用过度了,如果你正在编写特定文档(例如书籍或论文),那么花一些时间选择合适的列宽是值得的。
然而,在工作流程中您需要排版大量包含不同内容的表格数据,并且需要一个通用的解决方案来产生可接受的输出而无需手动调整每个表格并且tabularx
可以在那里使用。
但请注意,tabularx
旨在调整换行在文本列中实现规定的总表格宽度,如以下第一个块中的两个示例所示。但这并不能阻止人们像在第二个块中一样将其用于数字表格。但在这里,您确实想指定一个最大限度宽度,这样表格就可以保持在页面内,但在数据非常小的情况下强制表格过宽应该不是目的,这只会使表格难以阅读,因为您的眼睛无法轻松扫描行。tabulary
在这种情况下,包会忽略指定的最大宽度,但默认情况下包tabularx
没有该功能,但保留 X 列功能添加了该功能,如下面的第三个块所示。
尽管在实践中我根本不会使用tabularx
这样的数据表,但最好使用或的tabular
十进制对齐列。dcolumn
siunitx
\documentclass{article}
\usepackage{ltablex}
\begin{document}
\begin{tabularx}{\textwidth}{XXX}
one two three four five six seven&
red yellow blue green&
apple orange pear banana\\
sixteen seventeen eighteen&
black white&
grape cherry
\end{tabularx}
\begin{tabularx}{.5\textwidth}{XXX}
one two three four five six seven&
red yellow blue green&
apple orange pear banana\\
sixteen seventeen eighteen&
black white&
grape cherry
\end{tabularx}
\bigskip\hrule\bigskip
\keepXColumns
\begin{tabularx}{\textwidth}{XXX}
10.1&20.2&30.3\\
11&12&13
\end{tabularx}
\begin{tabularx}{.5\textwidth}{XXX}
10.1&20.2&30.3\\
11&12&13
\end{tabularx}
\bigskip\hrule\bigskip
\convertXColumns
\begin{tabularx}{\textwidth}{XXX}
10.1&20.2&30.3\\
11&12&13
\end{tabularx}
\begin{tabularx}{.5\textwidth}{XXX}
10.1&20.2&30.3\\
11&12&13
\end{tabularx}
\end{document}