LaTeX longtblr表格内插入图片无法全部居中如何解决
问题原因
当前longtblr配置仅为第1、2、3行设置了水平居中规则,第4行及之后的行未匹配到居中属性,同时第三列的列定义也没有指定默认水平对齐,因此会出现部分图片居中、部分默认左对齐的错位情况。
效果参考截图:
longtblr表格图片错位效果
可行解决方案
推荐直接在列定义层面统一设置第三列的对齐规则,无需逐行配置,稳定性更高:
- 修改列配置:将
colspec中第三列的定义从Q[valign=h]改为Q[valign=h, halign=c],指定第三列全局水平居中、垂直保持原对齐方式 - 清理冗余配置:删除原来逐行设置的
row{2}= {halign=C}、row{3}= {halign=C}规则,仅保留表头行的居中配置即可 - 移除重复的hline:你已经开启了全局
hlines、vlines,不需要在每行末尾手动加\hline,否则容易出现行间距异常问题
如果不想修改列全局配置,也可以通过行范围规则统一设置所有数据行居中:将零散的单行居中配置替换为row{2-Z}={halign=c}即可,其中Z是tabularray包内置的指代表格最后一行的参数,会自动覆盖表头下的所有数据行,不需要手动逐行写行号。
修正后的完整可运行代码如下:
\begin{longtblr}{ colspec={Q[valign=b]Q[valign=b]Q[valign=h, halign=c]}, row{1}={halign=c}, vlines, hlines } \textbf{Id} & \textbf{Name} & \textbf{Figure} \\ 1 & Press an imaginary button & \includegraphics[scale=0.25]{gesture/Button1.png}\\ 2 & Double press an imaginary button & \includegraphics[scale=0.25]{gesture/test.png}\\ 3 & Close the fist & \includegraphics[scale=0.25]{gesture/closeFist.PNG} \\ 4 & Open the fist & \includegraphics[scale=0.25]{gesture/openFist.PNG} \\ 5 & Touch the ring & \includegraphics[scale=0.25]{gesture/test.PNG} \\ 6 & Touch 2 times the ring & \includegraphics[scale=0.15]{gesture/touchRing2.PNG} \\ \end{longtblr}
补充说明:如果图片本身存在透明边距导致视觉上看起来没居中,可以在
\includegraphics里加trim参数裁掉多余白边,再配合scale调整大小即可。
内容的提问来源于stack exchange,提问作者Arnaudontour
相关产品推荐
相关产品推荐

