使用 minipage 和 stackunder 对齐图形和表格的基线

使用 minipage 和 stackunder 对齐图形和表格的基线

我试图将图形和表格并排放置,以便两者的基线(而不是标题)对齐:

答案这个问题使用 minipages 来实现这一点\stackunder,但使用带有底部标题的表格。我修改了代码,但似乎无法正确使用 minipage [b]s 和[t]s。我希望表格底部正好位于图像底部:

1

以下是生成上述图像的代码:

\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{stackengine}

\begin{document}
\stackunder{
    \begin{minipage}[b]{0.49\textwidth}\vspace{0pt}
      \centering
      \includegraphics[width=\textwidth]{example-image-a.pdf}
    \end{minipage}
}
{
    \begin{minipage}[]{0.49\textwidth}\vspace{0pt}
    \captionof{figure}{A figure with a long caption. A figure with a long caption. A figure with a long caption.}
    \end{minipage}
}
\hfill
\stackunder{
    \begin{minipage}[b]{0.49\textwidth}\vspace{0pt}
    \captionof{table}{A table with a long caption. A table with a long caption. A table with a long caption.
    A table with a long caption. A table with a long caption. A table with a long caption. }
    \end{minipage}
}
{
    \begin{minipage}[]{0.49\textwidth}\vspace{0pt}
    \centering
    \begin{tabular}[b]{|c|c|c|}\hline
        a & b & c\\\hline
        1 & 2 & 3\\
        4 & 5 & 6\\
        7 & 8 & 9\\\hline                 
    \end{tabular}
    \end{minipage}
}
\end{document}

答案1

MWE 只需要进行少量更改。对于表格,您使用了\stackunder{<caption>}{<tabular}将整体基线与 关联起来的<caption>。相反,使用\stackon{<tabular>}{<caption>}以便表格与基线相关联。然后,为了获得 的正确基线对齐tabular,您需要使用 选项使周围的minipage底部对齐[b]

\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{stackengine}

\begin{document}
\stackunder{
    \begin{minipage}[b]{0.49\textwidth}\vspace{0pt}
      \centering
      \includegraphics[width=\textwidth]{example-image-a.pdf}
    \end{minipage}
}
{
    \begin{minipage}[]{0.49\textwidth}\vspace{0pt}
    \captionof{figure}{A figure with a long caption. A figure with a long caption. A figure with a long caption.}
    \end{minipage}
}
\hfill
\stackon{
    \begin{minipage}[b]{0.49\textwidth}\vspace{0pt}
    \centering
    \begin{tabular}[b]{|c|c|c|}\hline
        a & b & c\\\hline
        1 & 2 & 3\\
        4 & 5 & 6\\
        7 & 8 & 9\\\hline                 
    \end{tabular}
    \end{minipage}
}{    \begin{minipage}[b]{0.49\textwidth}\vspace{0pt}
    \captionof{table}{A table with a long caption. A table with a long caption. A table with a long caption.
    A table with a long caption. A table with a long caption. A table with a long caption. }
    \end{minipage}
}

\end{document}

在此处输入图片描述

答案2

这是一种基于包的方法xcoffins

它是一个包,旨在以非常简单但精确的方式帮助精确布局页面上的内容:文本、表格、图像、图形等。零猜测。

方便根据规格构建封面和标题页。

有三个步骤:

(1)\Figurex在 4 个特殊框( 、 \Tablex和)中填写内容。请注意\CaptionTablex\CaptionFigurex所使用的内容与您使用的完全一致。

你可以把它们看作是迷你页面,它们的优点是许多预定义的点互相依附。

(2)将盒子组装在一起。在这个简单的情况下,只需将一个盒子的左/右上角/下角与前一个盒子的左/右上角/下角组装在一起即可。(第一个盒子是空盒子\Framex)。

例如\JoinCoffins\Framex[\Figurex-r,\Figurex-b]\Tablex[l,b](1em,0pt)将图形的右下角与表格的左下角连接起来(作为指定) 并附加 1em 的 x 偏移量。

(3)排版整套。

https://tex.stackexchange.com/a/576386/161015以获得更广泛的解释。

A

\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}

\usepackage{xcoffins} % added  <<<<

\NewCoffin\Framex
\NewCoffin\Figurex
\NewCoffin\Tablex
\NewCoffin\CaptionTablex
\NewCoffin\CaptionFigurex

\begin{document}

% Set the content in boxes  
\SetVerticalCoffin\Figurex{0.48\textwidth}{%
\noindent\includegraphics[width=0.48\textwidth]{example-image-a.pdf}    
}   

\SetVerticalCoffin\Tablex{0.48\textwidth}{%
\centering\begin{tabular}[b]{|c|c|c|}\hline
    a & b & c\\\hline
    1 & 2 & 3\\
    4 & 5 & 6\\
    7 & 8 & 9\\\hline                 
\end{tabular}
}   

\SetVerticalCoffin\CaptionTablex{0.48\textwidth}{%  
    \captionof{table}{A table with a long caption. A table with a long caption. A table with a long caption.
    A table with a long caption. A table with a long caption. A table with a long caption. }    
}

\SetVerticalCoffin\CaptionFigurex{0.48\textwidth}{%
\captionof{figure}{A figure with a long caption. A figure with a long caption. A figure with a long caption.}
}   

% Join the boxes
\JoinCoffins\Framex[l,t]\Figurex[l,t]
\JoinCoffins\Framex[\Figurex-r,\Figurex-b]\Tablex[l,b](1em,0pt)% x offset = 1em to the right
\JoinCoffins\Framex[\Figurex-l,\Figurex-b]\CaptionFigurex[l,t](0pt, -2ex) %y offset = 2ex down
\JoinCoffins\Framex[\Tablex-l, \Tablex-t]\CaptionTablex[l,b]

% Typeset the assembly
\noindent\TypesetCoffin\Framex

\end{document}

相关内容