使用子浮点/子图进行缩放

使用子浮点/子图进行缩放

如何缩放多个子图/子浮点,使最大的图片与文本宽度正确匹配,而其他所有图片都按与最大图片相同的比例缩放。背景是所有图片都包含字体,并且要求所有子图片中的字体大小相等?

有没有一种优雅的方法,使用标准方式来表示最新的数字?

\begin{figure}[h]
    \centering
    \subfloat[]{\includegraphics[scale=1]{abb/1.pdf}} \\
    \subfloat[]{\includegraphics[scale=1]{abb/2.pdf}} \\
    \subfloat[]{\includegraphics[scale=1]{abb/3.pdf}} \\
    \subfloat[]{\includegraphics[scale=1]{abb/4.pdf}}
    \caption{}
    \label{UpDown}
\end{figure}

先感谢您!

答案1

该解决方案使用 saveboxes 来测量宽度,并使用 pgfmath 来计算比例。

\documentclass{article}
\usepackage[paperheight=30in, margin=1in]{geometry}% to fit images on page
\usepackage{subcaption}
\usepackage{graphicx}
\usepackage{adjustbox}
\usepackage{pgfmath}
\newlength{\maxwidth}
\begin{document}

\begin{figure}[htp]
  \sbox0{\includegraphics{example-image}}\maxwidth=\wd0
  \sbox1{\includegraphics{example-image-golden-upright}}\ifdim\wd1>\maxwidth \maxwidth=\wd1 \fi
  \sbox2{\includegraphics{example-image-10x16}}\ifdim\wd2>\maxwidth \maxwidth=\wd2 \fi
  \sbox3{\includegraphics{example-image-9x16}}\ifdim\wd3>\maxwidth \maxwidth=\wd3 \fi
  \pgfmathdivide{\linewidth}{\maxwidth}%
    \centering
    \subfloat[]{\scalebox{\pgfmathresult}{\usebox0}} \\
    \subfloat[]{\scalebox{\pgfmathresult}{\usebox1}} \\
    \subfloat[]{\scalebox{\pgfmathresult}{\usebox2}} \\
    \subfloat[]{\scalebox{\pgfmathresult}{\usebox3}}
    \caption{}
    \label{UpDown}
\end{figure}

\end{document}

相关内容