longtblr 在表格内不中断的问题

longtblr 在表格内不中断的问题

正如你可能已经注意到的帖子中,我无法调整tblr以适应页面宽度。Zarko 建议这可能是一个错误,并建议改用tabularx。我尝试将 放在tabular里面longtblr,但遇到了一个问题:longtblr不会在 里面中断tabular,这会在第二行和第三行之间产生大量垂直空间,如图所示。

Zarko 还建议我提供有关图片大小的信息。但是,我的图片是 PDF 格式,因此我不确定宽度和高度的概念是否适用。我想继续将该longtblr包用于我的桌子,因为这是一张长桌子,目前我没有足够的时间切换到新包。

在此处输入图片描述

\documentclass[journal]{IEEEtran}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{tabularray}
\usepackage{amsmath}
\usepackage[export]{adjustbox}
\usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf,labelformat=simple]{subfig}
\usepackage{booktabs}

\usepackage{colortbl}
   \usepackage{cellspace,   % for adding vertical space around cells' contents
                tabularx}
    \setlength\cellspacetoplimit{0pt}
    \setlength\cellspacebottomlimit{1pt}
\newcommand\mcxx[1]{\multicolumn{2}{>{\hsize=\dimexpr2\hsize+2\tabcolsep\linewidth=\hsize}X @{}}{#1}}
\newlength\colwidth

\begin{document}
\lipsum[]
\adjustboxset{width=\linewidth, valign=M}

\onecolumn
\begin{longtblr}{
  width=\textwidth,
  cells = {c},
  hlines,
  colspec= {|c| X[c,m]}
}
1 & X \\
2 & y \\
3 & {\setkeys{Gin}{width=\linewidth}
\settowidth\colwidth{Coefficient}
\begin{tabularx}{\linewidth}{@{} >{\centering}p{\colwidth} *{2}{SX} @{}}
    \toprule
C1 & C2 & C3\\
    \midrule
Normalized Coefficient 
    & \includegraphics[valign=m]{example-image-a}   & \includegraphics[valign=m]{example-image-b} \\
   \midrule
$A$ & \mcxx{\includegraphics[valign=m]{example-image}}  \\
   \midrule
$B$ & \mcxx{\includegraphics[valign=m]{example-image}}  \\
   \arrayrulecolor{blue}
   \bottomrule[3pt]
\end{tabularx}}

\end{longtblr}


\end{document}

更新:

我尝试了@Jasper Habicht 使用不同数据的解决方案,但没有效果。

在此处输入图片描述

\documentclass[journal]{IEEEtran}
\usepackage{graphicx}
\usepackage[export]{adjustbox}
\usepackage{tabularray}
\usepackage{xcolor}

\newlength\colwidth
\settowidth\colwidth{Coefficient}

\begin{document}
\onecolumn

\begin{longtblr}{
  colspec = { c Q[c,wd=\colwidth] *{2}{X[c,m]} },
  width = \textwidth,
  hlines,
  vlines,
  cell{1-2}{2} = {c=3}{},
  cell{3}{1} = {r=4}{},
  cell{5-Z}{3} = {c=2}{},
}
1 & X & & \\
2 & y & & \\
3 & C1 & C2 & C3 \\
  & Normalized Coefficient 
    & \begin{tblr}{colspec={Q[l]Q[c]Q[r]},rowspec={|Q[t]|Q[m]|Q[b]|}}
{Alpha \\ Alpha} & Beta & Gamma \\
 Delta & Epsilon & {Zeta \\ Zeta} \\
 Eta & {Theta \\ Theta} & Iota \\
\end{tblr}
    &\includegraphics[valign=m]{example-image-a}  \\
  & $A$ 
    & \includegraphics[valign=m]{example-image-b} & \\
  & $B$ 
    &  & \\
\end{longtblr}

\end{document}

答案1

如果不嵌套不同的表格环境,事情会不会简单得多,例如像这样:

\documentclass[journal]{IEEEtran}
\usepackage{graphicx}
\usepackage[export]{adjustbox}
\usepackage{tabularray}

\newlength\colwidth
\settowidth\colwidth{Coefficient}

\begin{document}
\onecolumn

\begin{longtblr}{
  colspec = { c Q[c,wd=\colwidth] *{2}{X[c,m]} },
  width = \textwidth,
  hlines,
  vlines,
  cell{1-2}{2} = {c=3}{},
  cell{3}{1} = {r=4}{},
  cell{5-Z}{3} = {c=2}{},
}
1 & X & & \\
2 & y & & \\
3 & C1 & C2 & C3 \\
  & Normalized Coefficient 
    & \includegraphics[valign=m, width=\linewidth]{example-image-a}
    & \includegraphics[valign=m, width=\linewidth]{example-image-b} \\
  & $A$ 
    & \includegraphics[valign=m]{example-image} & \\
  & $B$ 
    & \includegraphics[valign=m]{example-image} & \\
\end{longtblr}

\end{document}

在此处输入图片描述

在此处输入图片描述


在您的编辑中,您发现了一个我至今还不知道的功能:嵌套表格的最后一列的列类型似乎会影响此表格在其父单元格中的位置。我目前不知道这是为什么,但(作为一种可能有点老套的解决方法)您可以\hfill在嵌套表格之前和之后添加,以使嵌套表格在其单元格中居中。

另外,为了简化列宽的计算,我建议您不要X对右侧两列使用列,而是使用固定宽度。这样,您(和包)可以更轻松地计算跨越单元格的宽度:

\documentclass[journal]{IEEEtran}
\usepackage{graphicx}
\usepackage[export]{adjustbox}
\usepackage{tabularray}
\usepackage{xcolor}

\newlength\colwidth
\settowidth\colwidth{Coefficient}

\begin{document}
\onecolumn

\begin{longtblr}{
  colspec = { X Q[c,wd=\colwidth] *{2}{Q[c,m,wd=7.25cm]} },
  width = \linewidth,
  hlines,
  vlines,
  cell{1-2}{2} = {c=3}{},
  cell{3}{1} = {r=4}{},
  cell{5-Z}{3} = {c=2}{},
}
1 & X & & \\
2 & y & & \\
3 & C1 & C2 & C3 \\
  & Normalized Coefficient & 
\hfill \begin{tblr}{colspec={Q[l]Q[c]Q[r]}, rowspec={|Q[t]|Q[m]|Q[b]|}}
{Alpha \\ Alpha} & Beta & Gamma \\
 Delta & Epsilon & {Zeta \\ Zeta} \\
 Eta & {Theta \\ Theta} & Iota \\
\end{tblr} \hfill
    &\includegraphics[valign=m,width=\linewidth]{example-image-a} \\
  & $A$ 
    & \includegraphics[valign=m,width={\dimexpr14.5cm+2\tabcolsep}]{example-image-b} & \\
  & $B$ 
    & \includegraphics[valign=m,width={\dimexpr14.5cm+2\tabcolsep}]{example-image-b} & \\
\end{longtblr}

\end{document}

在此处输入图片描述

相关内容