使用 ltablex 时 tabularx 无法填充整个文本宽度

使用 ltablex 时 tabularx 无法填充整个文本宽度

我的文档中有多个表格,有些表格比较长,但所有表格都使用 定义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包后,它就可以正常工作(但我失去了分页功能)。

使用 ltablex

有什么需要做的吗?

另外,为什么它会在元素之间留下那些垂直分隔?

答案1

ltablex 如果我在使用您的代码片段时有几何包,我就能重现您在加载时提到的问题。

或者使用 KOMA 脚本\documentclass{scrartcl}来设置页面的几何形状。

两种情况都可以用命令来控制\keepXColumns。手册中写道:

添加的另一个功能是将 X 列视为“l”列(如果表格内容允许这样做且不超过表格的指定宽度)。

换句话说,指定的宽度被视为允许的最大值,而不是表格的确切宽度。此功能是默认的,但可以使用 (或 )禁用(或启用\keepXColumns\convertXColumns

几何 + tabularx

葡萄糖酸酶

几何 + ltablex(表格宽度为 411pt)

胃肠道疾病

几何 + ltablex +\keepXColumns(表格宽度为 483.6pt = 至\texwidth

葡萄糖转运蛋白

仅限 ltablex(未加载几何图形和文章类)

LT

仅限 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}

相关内容