希望对于可跨页的长表格排版中实现如下的类似效果:

具体要求有:
\adjustbox实现垂直居中目前原OP尝试的MWE为:
\documentclass{ctexart}
\usepackage[margin=1in,landscape]{geometry}
\usepackage{longtable}
\usepackage{array}
\usepackage{cellspace}
\usepackage{graphicx}
\usepackage[export]{adjustbox}
% \usepackage{tabularray}
% 全局定义表格列类型(兼容 longtable)
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
% 左对齐+垂直居中(必须指定宽度)
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
\section{我是一个章节章节章节}
\begin{longtable}{|C{1cm}|C{4cm}|C{5cm}|C{5.2cm}|}
\caption{画随点运动实时生成的正弦曲线} \label{tab:image_table} \\
\hline
% 表头设置(四列)
\textbf{序号} & \textbf{实验内容} & \textbf{按键操作} & \textbf{截屏显示} \\
\hline
\endfirsthead
% 续表头设置
\multicolumn{4}{c}%
{\tablename\ \thetable{} -- 续上页表格} \\
\hline
\textbf{序号} & \textbf{实验内容} & \textbf{按键操作} & \textbf{截屏显示} \\
\hline
\endhead
1 & 暂停动画并擦除几何跟踪痕迹&隐藏不需要展示的对象,播放动画,隐藏不需要展示的对象,播放动画,
&\adjustbox{valign=c, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image}}\\
\hline
2&测量点$M$ 的坐标 &隐藏不需要展示的对象,播放动画,
得到点$M$的横、纵坐标,隐藏不需要展示的对象,播放动画,
&\adjustbox{valign=c, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image}}\\
\hline
3&保存点$M$ 的横坐标 & 选择点$M$ 的横坐标,依次点击命名为$x_m$ ,或者 鼠标右键
&\adjustbox{valign=c, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image}}\\
\hline
4 & 绘制随点 $M$变化生成的正弦曲线 &隐藏不需要展示的对象,播放动画输入相应的表达式
&\adjustbox{valign=c, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image}} \\
\hline
\end{longtable}
\end{document}得到的效果是,\adjustbox与m列格式有一些冲突(如下图):

预期能有两个答案:
longtable的实现上做调整longtblr环境实现更好的内容与样式分离maybe related:
省流:
\adjustbox命令中valign的值改为m.首先,最后一列的对齐方式需要改为p型。原因未知。
然后:
在文字文本框内部的文字水平左对齐,且不缩进
既然如此,中间两列没必要再使用预设的C型(因为它用了\centering),而直接用m型即可。
从效果图来看,表头内容是居中对齐的。由于改用了m型,故对表头所在行单独做居中对齐处理:
\textbf{序号} & \centering\textbf{实验内容} & \centering\textbf{按键操作} & \makebox[5.2cm][c]{\textbf{截屏显示}}其中,最后一列在改用了p型的情况下用\centering会报错,所以改用盒子把它“撑开”。
\adjustbox命令中valign的值改为m.我翻了adjustbox宏包的手册,发现valign键的值只有T,M,B;t,t,m,b,但用c好像也没报错...我不懂看漏了什么,但还是顺便改成m了。
另外,valign的各值的效果图:
它的参考系有点诡异,可能与所在列不能用m型对齐的情况有关,但我看了很久没弄明白,交给有缘人了...
\documentclass{ctexart}
\usepackage[margin=1in,landscape]{geometry}
\usepackage{longtable}
\usepackage{array}
\usepackage{cellspace}
\usepackage{graphicx}
\usepackage[export]{adjustbox}
% \usepackage{tabularray}
% 全局定义表格列类型(兼容 longtable)
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
% 左对齐+垂直居中(必须指定宽度)
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
\section{我是一个章节章节章节}
\begin{longtable}{|C{1cm}|m{4cm}|m{5cm}|p{5.2cm}|}
\caption{画随点运动实时生成的正弦曲线} \label{tab:image_table} \\
\hline
% 表头设置(四列)
\textbf{序号} & \centering\textbf{实验内容} & \centering\textbf{按键操作} & \makebox[5.2cm][c]{\textbf{截屏显示}} \\
\hline
\endfirsthead
% 续表头设置
\multicolumn{4}{c}%
{\tablename\ \thetable{} -- 续上页表格} \\
\hline
\textbf{序号} & \centering\textbf{实验内容} & \centering\textbf{按键操作} & \makebox[5.2cm][c]{\textbf{截屏显示}} \\
\hline
\endhead
1 & 暂停动画并擦除几何跟踪痕迹&隐藏不需要展示的对象,播放动画,隐藏不需要展示的对象,播放动画,
&\adjustbox{valign=m, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image}}\\
\hline
2&测量点$M$ 的坐标 &隐藏不需要展示的对象,播放动画,
得到点$M$的横、纵坐标,隐藏不需要展示的对象,播放动画,
&\adjustbox{valign=m, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image}}\\
\hline
3&保存点$M$ 的横坐标 & 选择点$M$ 的横坐标,依次点击命名为$x_m$ ,或者 鼠标右键
&\adjustbox{valign=m, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image}}\\
\hline
4 & 绘制随点 $M$变化生成的正弦曲线 &隐藏不需要展示的对象,播放动画输入相应的表达式
&\adjustbox{valign=m, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image}} \\
\hline
\end{longtable}
\end{document}效果:
预期得到两份答案: 使用longtblr环境实现更好的内容与样式分离我基于tabularray的longtblr也做了一个尝试:
Q列格式可以让你直接摆脱longtable的列格式和array宏包和valign的混合指定,我也妹弄得很明白...header可以实现重复标题行的功能,且该设置位于longtable的环境外,适合移植批量配置表格样式row{1}={font=\bfseries}也可以避免使用四次\textbf的尴尬支持\adjustimage代替\adjustbox{\includegraphics{}}tabularray!优雅永不过时~\documentclass[fontset=fandol]{ctexart}
\usepackage[margin=1in,landscape]{geometry}
\usepackage{graphicx}
\usepackage{adjustbox}
\usepackage{tabularray}
\newcommand*{\inserttxt}{I can eat the glass and it doesn't hute me.}
\DeclareTblrTemplate{contfoot-text}{normal}{(见下页)}
\SetTblrTemplate{contfoot-text}{normal}
\DeclareTblrTemplate{conthead-text}{normal}{ -- 续上页表格}
\SetTblrTemplate{conthead-text}{normal}
\begin{document}
\section{我是一个章节章节章节}
\begin{longtblr}[
label = {tblr:a longtblr},
caption = {这是一个长长长长长长长长长长长长表格},
]{
colspec = {Q[c,m,1cm]Q[m,4cm]Q[m,5cm]Q[c,m,5.5cm]},vlines,hlines,
row{1} = {font=\large\bfseries,halign=c},
row{2-5} = {ht=4cm},
width = .6\linewidth,%自行控制
stretch = 0,
rowhead = 1,
}
No. & Content & Content & Graphs \\
1 & \inserttxt & \inserttxt & \adjustbox{valign=m, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image-A}} \\
2 & \inserttxt\inserttxt & \inserttxt\inserttxt & \adjustbox{valign=m, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image-B}} \\
3 & \inserttxt\inserttxt\inserttxt & \inserttxt\inserttxt\inserttxt & \adjustbox{valign=m, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image-C}} \\
4 & Alpha & Beta & \adjustimage{valign=m, margin=3pt 5pt,width=5cm}{example-image} \\
\end{longtblr}
\end{document}
谢谢您的耐心...昨天实在是没空折腾了...我先挑个软柿子捏
关于
adjustbox中valign=c的使用似乎是文档外的命令其中将
#1放到了\hbox{$\vcenter{\hbox{#1}}\m@th$}中....umm无论如何,对于非数学环境(图片)的排版,使用valign=c是不太合适的.关于以下三者:
longtable默认的列格式m{}(byarray),p{}还有自定义的L,C格式\adjustbox中的valign对齐的基线和对齐方式\centering等行为的互相作用探究...
太痛苦了,继续交给有缘人吧~
^_^