并排的图形调整为具有相同的高度

并排的图形调整为具有相同的高度

我有两个不同尺寸的图形,我想将它们并排放入我的文档中,以便:

  1. 两个图形的比例被调整为具有相同的高度。
  2. 这两个图形占据了整个文本宽度。

我见过迷你页面并排显示图片的方法,但你必须提前声明迷你页面的大小。这在这里行不通。

答案1

在此处输入图片描述

\documentclass{article}

\usepackage{graphicx}

\begin{document}

\begin{center}
X\dotfill X

\resizebox{\textwidth}{!}{%
\includegraphics[height=1cm]{example-image}
\includegraphics[height=1cm]{example-image-4x3}}
\end{center}

\end{document}

初始1cm高度是任意的,然后将组合对缩放到文本宽度。

答案2

这是一种方法(我首先用 4 个数字显示它,然后在答案中用 2 个数字显示它)。这需要一些工作,但至少不必手动计算minipages 的宽度。在我的 MWE 中,我显示的内容超出了需要的范围,只是为了解释目的。我将我的 4 个数字(\figa\figd)显示为不同颜色的简单\rule框。

然后我用我的\scalerel包把它们的高度都设置成一样,figd并展示结果。我展示了一个宽度规则\textwidth来说明所需的整体宽度。

然后,我计算比例(使用fp包)以获得要填充的图片的总行,\textwidth-3ex其中 3ex 是图片之间要引入的总间隙。

我将该比例应用于每个图像,并放置在临时的 box0 中,以便我可以将该宽度用于minipage。一旦位于顶部对齐 中minipage,我就可以重新使用临时框并\captionof在其下方放置标题。

\documentclass{article}
\usepackage{scalerel}
\usepackage{fp}
\usepackage{caption}
\usepackage{xcolor}
\parindent 0pt
\begin{document}
\def\figa{\color{blue}\rule{.7in}{.7in}}
\def\figb{\color{red}\rule{.7in}{.3in}}
\def\figc{\color{green}\rule{.5in}{.5in}}
\def\figd{\color{black}\rule{1.in}{.8in}}

Figures as is:

\figa\figb\figc\figd % REMOVE THIS TO SUPPRESS "Figures as is"

figures scaled to height of figd

\newsavebox\x
\sbox\x{\scalerel{$\figc$}{$\figd$}}
\sbox\x{\scalerel{$\figb$}{\usebox{\x}}}
\sbox\x{\scalerel{$\figa$}{\usebox{\x}}}
\usebox{\x}% REMOVE THIS TO SUPPRESS "Figures scaled to height of figd"

textwidth rule

\rule[1ex]{\textwidth}{.1ex}

\newcount\figwidthc
\newcount\textwidthc
\figwidthc=\wd\x
\textwidthc=\dimexpr\textwidth-3ex
\FPdiv\scaleratio{\the\textwidthc}{\the\figwidthc}

individual figures scaled to textwidth (-3ex, allowing for 1ex gap)

\setbox0=\hbox{\scalebox{\scaleratio}{\scalerel*{$\figa$}{$\figd$}}}
\begin{minipage}[t]{\wd0}
  \box0
  \captionof{figure}{The first figure}
\end{minipage}\kern1ex%
\setbox0=\hbox{\scalebox{\scaleratio}{\scalerel*{$\figb$}{$\figd$}}}%
\begin{minipage}[t]{\wd0}
  \box0
  \captionof{figure}{The next figure}
\end{minipage}\kern1ex%
\setbox0=\hbox{\scalebox{\scaleratio}{\scalerel*{$\figc$}{$\figd$}}}%
\begin{minipage}[t]{\wd0}
  \box0
  \captionof{figure}{The third figure}
\end{minipage}\kern1ex%
\setbox0=\hbox{\scalebox{\scaleratio}{\figd}}%
\begin{minipage}[t]{\wd0}
  \box0
  \captionof{figure}{The last figure}
\end{minipage}%

\end{document} 

在此处输入图片描述

以下仅针对两种人物进行量身定制:

\documentclass{article}
\usepackage{scalerel,fp,caption,xcolor}
\parindent 0pt
\newsavebox\x
\newcount\figwidthc
\newcount\textwidthc
\begin{document}
textwidth rule\par
\rule[1ex]{\textwidth}{.1ex}

\def\figc{\color{green}\rule{.5in}{.5in}}
\def\figd{\color{black}\rule{1.in}{.8in}}
\sbox\x{\scalerel{$\figc$}{$\figd$}}
\figwidthc=\wd\x
\textwidthc=\dimexpr\textwidth-3ex
\FPdiv\scaleratio{\the\textwidthc}{\the\figwidthc}
individual figures scaled to textwidth (-3ex, allowing for 3ex gap)

\setbox0=\hbox{\scalebox{\scaleratio}{\scalerel*{$\figc$}{$\figd$}}}%
\begin{minipage}[t]{\wd0}
  \box0
  \captionof{figure}{The first figure}
\end{minipage}\kern3ex%
\setbox0=\hbox{\scalebox{\scaleratio}{\figd}}%
\begin{minipage}[t]{\wd0}
  \box0
  \captionof{figure}{The last figure}
\end{minipage}%
\end{document} 

在此处输入图片描述

相关内容