LaTeX中表格默认在页面中置顶怎么取消?
表格。图都默认在这一页置顶,已尝试过以下方法均不行:
1.[htbp]调节方式,无论如何调节没有任何变化
2.\usepackage{float} + [H]固定方法,无效
3.\usepackage{stfloats}无效
4.强制图表section内浮动,它仍然是在每一页的顶端,只不过没有超出section范围的顶,原来会超出范围
5.makeatletter + caption 无效
作者:总一副不开心样子
链接:https://www.zhihu.com/question/532950201/answer/2554393398
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
这个模板示例(cas-sc-template.tex)没有给出浮动体的参数示例,我觉得写的挺烂。为什么的部分?cas-common.sty 重定义了 table 环境
\RenewDocumentEnvironment { table } { O{} }
{
\__reset_tbl:
\bool_gset_false:N \g_tbl_full_bool
\dim_set:Nn \l_tbl_width_dim { \linewidth }
\keys_set:nn { cas / tbl } { #1 }
\csxdef{fps@table}{\l_tbl_pos_tl}
\csgdef{tblwidth}{\dim_use:N \l_tbl_width_dim}
\cs_set_eq:NN \@makecaption \__make_tbl_caption:nn
\@float{table}
\l_tbl_align_tl
\sffamily\small
}
{
\end@float
}
可以发现参数去到了 \keys_set:nn { cas / tbl } { #1 } 里, 接下来找到
\keys_define:nn { cas / tbl }
{
width .dim_set:N = \l_tbl_width_dim ,
pos .tl_set:N = \l_tbl_pos_tl ,
cols .tl_set:N = \l_tbl_cols_tl ,
align .tl_set:N = \l_tbl_align_tl,
abovecap .skip_set:N = \l_tbl_abovecap_skip ,
belowcap .skip_set:N = \l_tbl_belowcap_skip ,
abovetbl .skip_set:N = \l_tbl_abovetbl_skip ,
belowtbl .skip_set:N = \l_tbl_belowtbl_skip ,
full .bool_gset:N = \g_tbl_full_bool ,
unknown .code:n = {
\ifstrempty { #1 }
{
\tl_set:Nn \l_fig_pos_tl { \l_keys_key_tl }
}
{
\l_keys_key_tl=#1
}
}
}
发现是键值输入方式,因此需要输入 pos=xx 才能调整浮动体的参数,接下来找到 pos 的默认值\cs_set:Npn __reset_tbl:
{
\tl_set:Nx \l_tbl_pos_tl { t }
\tl_set:Nx \l_tbl_cols_tl { 1 }
\tl_set:Nn \l_tbl_align_tl { \centering }
\skip_set:Nn \l_tbl_abovecap_skip { 6pt }
\skip_set:Nn \l_tbl_belowcap_skip { 0pt }
\skip_set:Nn \l_tbl_abovetbl_skip { 6pt }
\skip_set:Nn \l_tbl_belowtbl_skip { 6pt }
}