LaTeX长表格末列与前一列间距过大问题求助
解决LaTeX longtable末列与前一列间距过大的问题
问题分析
你的longtable列格式定义为{c cc},LaTeX会自动分配列间距,再加上sn-jnl文档类的默认设置,导致末列出现不必要的大空白。同时代码中重复加载了booktabs包,属于冗余操作。
解决方案
- 调整列格式:通过固定列宽或手动控制列间距,避免LaTeX自动分配的过大空白;
- 规范表格线用法:使用
booktabs提供的专业规则线替代原生\hline,优化排版; - 优化multirow写法:删除多余空格,让内容适配列宽。
修改后的代码示例
\documentclass[sn-mathphys-num]{sn-jnl}% Math and Physical \usepackage{graphicx} \usepackage{multirow} \usepackage{amsmath,amssymb,amsfonts} \usepackage{amsthm} \usepackage{mathrsfs} \usepackage[title]{appendix} \usepackage{xcolor} \usepackage{textcomp} \usepackage{manyfoot} \usepackage{booktabs} \usepackage{algorithm} \usepackage{algorithmicx} \usepackage{algpseudocode} \usepackage{listings} \usepackage{flexisym} \usepackage{longtable} \begin{document} \begin{longtable}{@{}p{3cm} p{4cm} p{4cm}@{}} \caption{Graph embedding techniques: types, used models and algorithms \cite{cai2018comprehensive}.\label{long}}\\ \toprule Graph Embedding Technique & Model Type & Algorithm\\ \midrule \multirow{11}{=}{Matrix factorization} & \multirow{6}{=}{Graph Laplacian Eigenmaps} & Isomap\\ & & ARE \cite{lin2005semantic}\\ & & LPP \cite{he2003locality}\\ & & SLE \cite{gong2014signed}\\ & & HSL \cite{sun2008hypergraph}\\ & & Diffusion maps\\\cmidrule(lr){2-3} & \multirow{7}{=}{Node proximity matrix factorization} & LLE \cite{roweis2000nonlinear}\\ & & CMF \cite{}\\ & & GraRep \cite{cao2015grarep}\\ & & ULGE \cite{nie2017unsupervised}\\ & & FONPE \cite{pang2017flexible}\\ & & SPE \cite{shaw2009structure}\\ % 补充剩余表格内容 \bottomrule \end{longtable} \end{document}
关键改动说明
- 列格式改为
@{}p{3cm} p{4cm} p{4cm}@{}:@{}消除表格左右两侧默认边距,p{宽度}指定固定列宽,彻底避免间距失控; multirow使用{=}选项:让内容自动换行适配列宽,替代原有的*(强制内容不换行易导致列宽异常);- 替换规则线:用
\toprule、\midrule、\cmidrule(lr)(左右缩进)、\bottomrule替代\hline,排版更专业且避免线与内容间距过大; - 清理重复加载的
booktabs包。
若不想用固定宽度列,也可手动控制列间距,比如将列格式改为{c@{\hspace{0.5em}}c@{\hspace{0.5em}}c},同样能解决末列空白过大的问题。
内容的提问来源于stack exchange,提问作者Elika
相关产品推荐
相关产品推荐

