始终位于页面顶部的表格

始终位于页面顶部的表格

我创建了一个命令来生成一个包含 7 个参数的表格,因为我需要用不同的内容重复多次。我遇到的问题是,当我创建使用此命令的表格,它始终位于页面顶部。我已经加载了 floats 包,我在表头中添加了 H,我也尝试了 !H,但它返回了一个错误...我找不到导致此 Latex 行为的原因,即表格相对于页面的位置。我添加了定义命令代码:

\newcommand{\PTgen}[7]{
\begin{table}[htbp]
    \extrarowheight = -0.5ex
    \renewcommand{\tabcolsep}{6pt}
    \renewcommand{\arraystretch}{3}
    \renewcommand {\tabcolsep}{3pt}
    \renewcommand{\arrayrulewidth}{3pt}
    \centering
    \begin{tabular}{ c |  c | c }
        $ #1 $ &$  #2 $ & \\ \hline
        $ #3 $ & $ #4 $ & \cellcolor[gray]{0.9} $ #5 $ \\ \hline
        & \cellcolor[gray]{0.9} $ #6 $ & \cellcolor[gray]{0.9} $ #7 $ \\
    \end{tabular}
\end{table} 
}

调用命令:

\PTgen{1} {2} {3} {4} {5} {6} {7}

我将非常感激任何能帮助我解决问题的建议。

答案1

[H]是一种特殊变体,应谨慎使用,并且必须单独使用,不能使用[!H]

这里无关,但即使使用正常的浮点参数,例如htbp你不应该例行添加!,因为这!意味着忽略此浮点数的文档指定约束. 忽视对每一个浮动:最好不要使用!并设置更合适的约束。

 \renewcommand {\tabcolsep}{3pt} %Ajusta espacio interior entre columnas
 \renewcommand{\arrayrulewidth}{3pt} %Ajusta el grueso de línea

这两个都是长度并且必须设置\setlength如果您将它们重新定义为宏,因为这里您将破坏 latex 的表格代码。

例如标准(非数组包)tabular

    \@addtopreamble{\hskip .5\arrayrulewidth}%

\arrayrulewidth长度为时,它会增加宽度的一半。按照你的定义,它会扩展为

    \@addtopreamble{\hskip .53pt}%

这恰好是有效长度,但不是 3pt/ 的一半的预期长度

相关内容