强制将多个图像放在一个页面上,且最大尺寸

强制将多个图像放在一个页面上,且最大尺寸

我想创建一个包含两张图片和一些文本的页面。这些图片会不时重新创建,这可能会导致不同的图片大小。我不想每次重新创建这些图片时都手动在我的 Latex 文档中设置它们的最大高度和宽度 - 那么有没有办法强制这些图片以最大可能的尺寸显示(因此两张图片都是其原始尺寸的 150% 或仅为其原始尺寸的 90%)

我尝试将它们放置在一个图形环境中,并设置它们的宽度和高度width=\textwidth,height=\textheight并设置keepaspectratio属性。

\newpage
\begin{figure}[ht]
\textbf{Title of the first image} \vspace*{10pt} \\ 
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{tmp/first.png} 
\textbf{Title of the second imate} \vspace*{10pt} \\ 
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{tmp/second.png}
\end{figure}

这导致它被强制放在一页上,但第二张图片太大并在底部被切断

有没有办法让 Latex 自动处理图像的大小?

答案1

我把两张图片都做得尽可能宽,如果太高就缩小。棘手的是决定每张图片缩小多少。

\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{showframe,duckuments}% MWE only
\begin{document}
\begin{figure}[p]
\centering
\sbox0{\includegraphics[width=\textwidth]{example-image-duck}}
\sbox1{\includegraphics[width=\textwidth]{example-image-duck}}
\dimen0=\dimexpr 2\baselineskip+20pt\relax% height of text
\ifdim\textheight>\dimexpr \dimen0+\ht0+\ht1\relax% max width fits
  \textbf{Title of the first image}\\[10pt]
  \usebox0\par
  \textbf{Title of the second image}\\[10pt]
  \usebox1
\else
  \dimen1=\dimexpr \dimen0+\ht0+\ht1-\textheight\relax% excess height
  \ifdim\ht0>\dimexpr\ht1+\dimen1\relax% sbox0 is HUGE!
    \textbf{Title of the first image}\\[10pt]
    \resizebox{!}{\dimexpr \ht0-\dimen1}{\usebox0}\par
    \textbf{Title of the second image}\\[10pt]
    \usebox1
  \else
    \ifdim\ht1>\dimexpr\ht0+\dimen1\relax% sbox1 is HUGE!
      \textbf{Title of the first image}\\[10pt]
      \usebox0\par
      \textbf{Title of the second image}\\[10pt]
      \resizebox{!}{\dimexpr \ht1-\dimen1}{\usebox1}
    \else% scale images proportionally
      \dimen1=\dimexpr \textheight-\dimen0\relax
      \dimen2=\dimexpr \ht0+\ht1\relax
      \textbf{Title of the first image}\\[10pt]
      \resizebox{!}{\dimexpr \dimen1*\ht0/\dimen2}{\usebox0}\par
      \textbf{Title of the second image}\\[10pt]
      \resizebox{!}{\dimexpr \dimen1*\ht1/\dimen2}{\usebox1}
    \fi
  \fi
\fi
\end{figure}
\end{document}

这使用具有不同纵横比的图像文件。

完整页面

相关内容