如何更改在 tabularx 环境中定义的表的边距?

如何更改在 tabularx 环境中定义的表的边距?

我想移动我的桌子

\documentclass[a4paper, 12pt]{article}
\usepackage[top=2.5cm,bottom=2.5cm,left=3.5cm,right=2.5cm]{geometry}
\usepackage{ltablex}

\begin{document}
\begin{tabularx}{\linewidth}{llllllllllllllllllllllll}
\caption{Numbers}\\\hline
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
\end{tabularx}

\end{document}

向左和向上。您能帮我更改在 tabularx 环境中定义的表格的边距吗?

答案1

根据以下情况尝试以下操作这个答案作者:大卫·卡莱尔:

\documentclass[a4paper, 12pt]{article}
\usepackage[top=2.5cm,bottom=2.5cm,left=3.5cm,right=2.5cm]{geometry}
\usepackage{ltablex}

\begin{document}

\section{Text before with original margins}
some text here

\setlength\LTleft{-2cm} % adjust these to your liking
\setlength\LTright{-2cm}

\begin{tabularx}{\linewidth}{llllllllllllllllllllllll}
\caption{Numbers}\\\hline
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
\end{tabularx}

\noindent More text with original margins

\end{document}

输出结果如下:

在此处输入图片描述

答案2

  • 你真的需要多页表格吗?
  • 至少tabularx有一列必须属于以下类型X
  • tabular*在文本区域中使用标准适合表:

在此处输入图片描述

(红线表示文本区域的边界)

    \documentclass[a4paper, 12pt]{article}
    \usepackage[top=2.5cm,bottom=2.5cm,left=3.5cm,right=2.5cm]{geometry}
    % \usepackage{ltablex}

    \begin{document}

    \begin{table}[htb]
    \setlength\tabcolsep{0pt}
    \caption{Numbers}
    \noindent\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}} *{24}{l}}
    \hline
    1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
    1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
    1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
    1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
    \end{tabular*}
    \end{table}
    \end{document}

解决方案正如您所问的那样,即考虑ltablex并在本地扩展文本宽度(但是,表格不应超过一页):

在此处输入图片描述

(红线表示页面布局的边框)

    \documentclass[a4paper, 12pt]{article}

    \usepackage[vmargin=2.5cm,left=3.5cm,right=2.5cm]{geometry}
    \usepackage{ltablex}
    \keepXColumns

    \usepackage[strict]{changepage}
    \begin{document}

    \begin{adjustwidth*}{}{-1.5cm}
    \setlength\tabcolsep{3pt}
    \begin{tabularx}{\linewidth}{*{24}{X} }
    \caption{Numbers}   \\
    \hline
    1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
    1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
    1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\
    1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 
    \end{tabularx}
    \end{adjustwidth*}
    \end{document}

附录: 从您下面的评论中,我得出结论,您在问题中提供的 mwe 具有误导性,因此问题根本不清楚。一旦您声称您的表有 200 行长并且只有 9 列,另一方面它没有 200 行......

如果您希望表格宽度等于文本宽度,并且希望表格使用环境tabularx重新定义ltablex为等宽单元格,那么您需要在 mwe 中进行两处更改:

  • 用以下项替换c列说明符X
  • 在序言中添加命令\keepXColumns,这将确保X列的行为与标准相同tabularx(您是否知道使用ltablex更改标准功能tabularx?)

    \documentclass[a4paper, 12pt]{article}
    \usepackage[vmargin=2.5cm,left=3.5cm,right=2.5cm]{geometry}
    \usepackage{ltablex}
    \keepXColumns
    
    \begin{document}
    \begin{tabularx}{\linewidth}{*{9}{X} }
    \caption{Numbers}   \\
    \hline
    1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\
    1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\
    \end{tabularx}
    \end{document}
    

在此处输入图片描述

(红线表示页面布局的边框)

这就是你要找的吗?

相关内容