\vbox 和 tabularx 图形排列过满的问题

\vbox 和 tabularx 图形排列过满的问题

你好,我正在寻找一种巧妙的方式来呈现五个数字LaTex。我发现了这个邮政我相信这对我来说非常有用,因为我可以为其中一个分布提供一个扩大的版本,并使用它来概括其他分布的特征,尽管这些分布不同,但使用相同的信息代码。下面举个例子:

在此处输入图片描述

和代码

\documentclass[12pt]{report}

\usepackage{calc}
\usepackage{graphicx}
\usepackage{multirow,tabularx}
\usepackage[export]{adjustbox}
\usepackage{caption, subcaption}

\newsavebox{\twofigures}

\begin{document}

\begin{figure}
\savebox{\twofigures}{\begin{tabularx}{0.3\textwidth}{X}
                        \includegraphics[width=\hsize]{example-image}
                        \caption*{}         \\
                        \includegraphics[width=\hsize]{example-image}
                      \end{tabularx}}

\begin{tabularx}{\textwidth}{@{}cXX@{}}
\multirow{2}{0.4\textwidth}{%
    \includegraphics[width=\hsize,%
                     height=\ht\twofigures+\dp\twofigures,%
                     valign=T]{example-image}
                     \caption*{HG002}}
                     
    &   \includegraphics[width=\hsize,valign=T]{example-image} 
        \caption*{HG00514} 
        &   \includegraphics[width=\hsize,valign=T]{example-image}
            \caption*{HG00733}                                      \\
    &   \includegraphics[width=\hsize,valign=T]{example-image}
        \caption*{HG03942}
        &   \includegraphics[width=\hsize,valign=T]{example-image}
            \caption*{NA19240}                                      
\end{tabularx}
\caption{Enter Caption} \label{figure:merqury}
\end{figure}

\end{document}

不幸的是,由于某种原因,第二个tabularx导致我溢出 \vbox我无法弄清楚如何抑制的警告...任何帮助都将非常有帮助,提前致谢!

PS:任何具有类似风格并展示相同内容的替代方案也将受到接受和欢迎!

答案1

首先,tabularx这样做毫无用处,因为您已经知道图片应该有多宽。我认为,过满是由于\multirow,但您也误用了这个工具(根据我的经验,它很少有用)。

您想测量四个数字的块,但您不需要\caption*,这只会使事情变得复杂。为什么?因为您想缩放图片以匹配该部分的大小,而不是相反。

缩放图片的高度计算为块的高度减去\normalbaselineskip,以考虑底线中的标签。

几个底部对齐的tabular构造可以完成这项工作;使用临时长度来避免一遍又一遍地重复计算。我\tabcolsep从中减去四次\textwidth,因此列之间的间距将相同。

\documentclass[12pt]{report}

\usepackage{graphicx}
\usepackage{caption}

\newlength{\figuretemp}
\newsavebox{\twofigures}

\begin{document}

\begin{figure}

% first we set \figuretemp to \textwidth minus 4 times \tabcolsep
\setlength{\figuretemp}{\dimeval{\textwidth-4\tabcolsep}}

\sbox{\twofigures}{%
  \begin{tabular}[b]{@{}cc@{}}
  \includegraphics[width=0.3\figuretemp]{example-image} & % top left
  \includegraphics[width=0.3\figuretemp]{example-image} \\ % top right
  HG00514 & HG00733 \\[2ex]
  \includegraphics[width=0.3\figuretemp]{example-image} & % bottom left
  \includegraphics[width=0.3\figuretemp]{example-image} \\ % bottom right
  HG03942 & NA19240
  \end{tabular}}

\begin{tabular}[b]{@{}c@{}}
\includegraphics[
  width=0.4\figuretemp,
  height=\dimeval{\ht\twofigures-\normalbaselineskip}
]{example-image} \\
HG002
\end{tabular}\hfill % <--- will insert 2\tabcolsep
\usebox{\twofigures}

\caption{Enter Caption} \label{figure:merqury}

\end{figure}

\end{document}

在此处输入图片描述

相关内容