如何在 ConTeXt 中将两个(或多个)图形以相同的高度放在一行中?

如何在 ConTeXt 中将两个(或多个)图形以相同的高度放在一行中?

我需要使用 将具有不同纵横比的多个图形排成一行ConTeXt。我还需要它们的高度相等,但图片的总宽度为\textwidth。图片的高度必须自动计算,图片必须精确地左右粘贴。

喜欢

-----------------------------
|pic1|   wide pic2   | pic3 |
----------------------------- 
|        \textwidth         |
|<------------------------->| 

如何 ?

答案1

您可以使用combination和(来自注释)\scale。请注意,如果您为每个图像添加标题,如下面的代码所示,此文本也会缩放。

在此处输入图片描述

\setupcombination[distance=0mm]
\starttext
\input knuth

\scale[width=\textwidth]{\startcombination[3*1]
{\externalfigure[example-image.pdf][height=3cm]}{text}
{\externalfigure[example-image-10x16.pdf][height=3cm]}{under}
{\externalfigure[example-image-16x10.pdf][height=3cm]}{image}
\stopcombination}

\input knuth

\stoptext

答案2

解决方案可以分两步实现:

  1. 创建一个框,其中所有图像的高度都相同(无论这个高度是多少)
  2. 缩放框使得其宽度等于文本宽度。

以下是一个例子:

% Example images
\useexternalfigure[kitten1][http://placekitten.com/g/200/300][method=jpg]
\useexternalfigure[kitten2][http://placekitten.com/g/200/400][method=jpg]
\useexternalfigure[kitten3][http://placekitten.com/g/200/500][method=jpg]


\starttext

\subject{Images without any scaling}

\dontleavehmode
\externalfigure[kitten1]\externalfigure[kitten2]\externalfigure[kitten3]

\subject{Images scaled to textwidth}

\scale[width=\textwidth]
  {\externalfigure[kitten1][height=1cm]%
   \externalfigure[kitten2][height=1cm]%
   \externalfigure[kitten3][height=1cm]}

\stoptext

这使

在此处输入图片描述

相关内容