我的文档中有多个表格,有些表格比较长,但所有表格都使用 定义tabularx
。有那么一刻,我决定我需要一种方法来跨页面拆分表格,所以我找到了ltablex
。对于大表格,它工作得很好,但对于较小的表格,如下所示:
\begin{tabularx}{\textwidth}{|>{\hsize=0.2\hsize}X| >{\hsize=2.9\hsize}X | >{\hsize=0.2\hsize}X| >{\hsize=0.7\hsize}X |}
\hline
\rowcolor{Snow2}
\textbf{Nº} & \textbf{Nombre de la unidad} & \textbf{\%} & \textbf{Duración} \\
\hline
UT11 & Utilización de frameworks arquitectónicos en cliente & 5 & 5 sesiones \\
\hline
\end{tabularx}
它不会填满整个宽度,而是根据内容调整宽度。我移除ltablex
包后,它就可以正常工作(但我失去了分页功能)。
有什么需要做的吗?
另外,为什么它会在元素之间留下那些垂直分隔?
答案1
ltablex
如果我在使用您的代码片段时有几何包,我就能重现您在加载时提到的问题。
或者使用 KOMA 脚本\documentclass{scrartcl}
来设置页面的几何形状。
两种情况都可以用命令来控制\keepXColumns
。手册中写道:
添加的另一个功能是将 X 列视为“l”列(如果表格内容允许这样做且不超过表格的指定宽度)。
换句话说,指定的宽度被视为允许的最大值,而不是表格的确切宽度。此功能是默认的,但可以使用 (或 )禁用(或启用
\keepXColumns
)\convertXColumns
。
几何 + tabularx
几何 + ltablex(表格宽度为 411pt)
几何 + ltablex +\keepXColumns
(表格宽度为 483.6pt = 至\texwidth
)
仅限 ltablex(未加载几何图形和文章类)
仅限 tabularx(未加载几何图形和文章类)
最后两个结果是相同的,因为ltables
使用tabulax
,但请注意在表格前添加的垂直空间ltablex
。
\documentclass[12pt,a4paper]{article}
\usepackage[left=2.00cm, right=2.00cm, top=2.00cm, bottom=2.00cm]{geometry}
\usepackage{ltablex}
%\usepackage{tabularx}
\usepackage[table,x11names]{xcolor}
\usepackage{showframe}
\begin{document}
\keepXColumns % used with ltablex and geometry
\noindent \begin{tabularx}{\textwidth}{|>{\hsize=0.2\hsize}X| >{\hsize=2.9\hsize}X | >{\hsize=0.2\hsize}X| >{\hsize=0.7\hsize}X |}
\hline
\rowcolor{Snow2}
\textbf{Nº} & \textbf{Nombre de la unidad} & \textbf{\%} & \textbf{Duración} \\
\hline
UT11 & Utilización de frameworks arquitectónicos en cliente & 5 & 5 sesiones \\
\hline
\end{tabularx}
\end{document}
答案2
不清楚你的问题是什么。如果我稍微修正一下你对列宽的选择(这样它们的内容就不会重叠),结果就很好了:
\documentclass{article}
\usepackage[table,x11names]{xcolor}
\usepackage{ltablex}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\setlength\extrarowheight{2pt}
\begin{document}
\begin{tabularx}{\textwidth}{|l| % <--- changed column type
>{\hsize=1.3\hsize}L|
c| % <--- changed column type
>{\hsize=0.7\hsize}L|}
\caption{Used is \texttt{ltablex} table environment}
\label{my-label} \\
\hline
\rowcolor{Snow2}
\textbf{Nº} & \textbf{Nombre de la unidad}
& \textbf{\%} & \textbf{Duración} \\
\hline
UT11 & Utilización de frameworks arquitectónicos en cliente
& 5 & 5 sesiones \\
\hline
\end{tabularx}
\end{document}