高级图像布局

高级图像布局

我正在尝试以这种方式显示一组图像:

————————————————————
|  img1   |        |
|—————————|  img4  |
|img2|img3|        |
————————————————————

然而我只得到

———————————
|  img1   |
|—————————|
|img2|img3|
|—————————|
|  img4   |
———————————

这是我的代码:

\placefigure[none]{}
\startcombination[2*1]
{
  \startcombination[1*2]
  {\externalfigure[img1]}{}
  {
    \startcombination[2*1]
    {\externalfigure[img2]}{}
    {\externalfigure[img3]}{}
    \stopcombination
  }{}
  \stopcombination
}{}
{\externalfigure[img4]}{}
\stopcombination

我是否遗漏了什么?

答案1

使用表格进行此类对齐是可以的。但是,使用组合也应该能得到正确的输出。你使用的是哪个版本的上下文。使用2015.09.13 MkIV,我得到了以下输出:

在此处输入图片描述

你可能会觉得布局很乱,但事实并非如此。如果你添加

\showboxes

输出是

在此处输入图片描述

这表明布局是正确的,只是图像是底部对齐(默认选项)而不是中间对齐。您可以使用 键更改它location=middle,或者使用正确尺寸的图像。

以下是一个例子:

\useMPlibrary[dum]

\definecombination[grid][inbetween=,distance=0pt,before=,after=]

\starttext
\placefigure[none]{}
\startcombination[grid][2*1]
{
  \startcombination[grid][1*2]
  {\externalfigure[img1][width=8cm,height=3cm]}{}
  {\startcombination[grid][2*1]
    {\externalfigure[img2][width=4cm,height=3cm]}{}
    {\externalfigure[img3][width=4cm,height=3cm]}{}
    \stopcombination}{}
  \stopcombination}{}
{\externalfigure[img4][width=3cm,height=6cm]}{}
\stopcombination
\stoptext

这使

在此处输入图片描述

当然,这是展示\placekitten宏:

\def\externalkitten[#1]%
  {\getparameters[kitten][width=10pt, height=10pt, #1]%
   \externalfigure
      [\ctxlua{context("http://placekitten.com/\letterpercent0.0f/\letterpercent0.0f",
                \withoutpt{\the\dimexpr\kittenwidth},
                \withoutpt{\the\dimexpr\kittenheight})}]
      [#1, method=jpg]}

\definecombination[grid][inbetween=,distance=0pt,before=,after=]

\starttext
\placefigure[none]{}
\startcombination[grid][2*1]
{
  \startcombination[grid][1*2]
  {\externalkitten[width=240pt,height=90pt]}{}
  {\startcombination[grid][2*1]
    {\externalkitten[width=110pt,height=90pt]}{}
    {\externalkitten[width=130pt,height=90pt]}{}
    \stopcombination}{}
  \stopcombination}{}
{\externalkitten[width=90pt,height=180pt]}{}
\stopcombination
\stoptext

这使

在此处输入图片描述

答案2

不确定这是否是正确的方法,但我使用以下方法实现了我的目标:

\startTABLE[frame=off]
  \NC[nx=2] \externalfigure[img1]
  \NC[ny=2] \externalfigure[img4]
  \NC\NR
  \NC \externalfigure[img2][width=2cm]
  \NC \externalfigure[img3][width=2cm]
  \NC\NR
\stopTABLE

[nx=2][ny=2]允许合并单元格(分别为 colspan 和 rowspan)。

根据记录,以前的版本使用“旧表语法”:

\bTABLE[frame=off]
  \bTR
      \bTD[nx=2] \externalfigure[img1] \eTD
      \bTD[ny=2] \externalfigure[img4] \eTD
  \eTR
  \bTR
      \bTD \externalfigure[img2][width=2cm] \eTD
      \bTD \externalfigure[img3][width=2cm] \eTD
  \eTR
\eTABLE

相关内容