如何让一张图片占用最大空间?

如何让一张图片占用最大空间?

\includegraphics要将导入的宽度大于高度的图片扩展至文本块的宽度,只需执行以下操作:

\includegraphics[width=\textwidth]{ ... }

当它们的高度大于宽度时,您可以对文本高度执行几乎相同的操作:

\includegraphics[height=\textheight]{ ... }

但是由于图片经常包含在浮动中,因此有一个标题。此标题具有一定的高度,并使\includegraphics[height=\textheight]{ ... }图形溢出边缘。

这导致以下结果:

  1. 有没有办法告诉\includegraphics图片的高度必须是\textheight和标题高度之间的差值(当然周围还需要有空间)?
  2. 如何将这种行为概括为同一“行”或“列”中存在多个浮点数或子浮点数的情况,例如\includegraphics“占用最大允许空间”?

我认为它可以更通用,也许其他人可以扩展或精确地说明这一点。


daleif 建议使用adjustbox包。它非常有趣,可以访问图片的最大尺寸。

我尝试了两件有趣的事情:

  1. 在环境\adjincludegraphics内部使用:\includegraphicsfigure

    \begin{figure}
      \adjincludegraphics[max height=\textheight]{ ... }
    \caption{Some text}
    

    我也尝试过max totalheight,但是我没有看到任何区别(手册中没有提到这一点。)这不起作用:图片被缩放但标题仍然在边距之外。

  2. 要使用adjustbox可以模拟浮点数的环境:

    \begin{adjustbox}{float=figure,caption={Some text}, max height=\textheight}
      \includegraphics{ ... }
    \end{adjustbox}
    

    除非我删除,否则这不起作用float=figure(然后就没有标题了。)figure(单独)选项也不起作用。有了float=figure,就有绝对地文档中除了一张空白页外什么也没有出现。

我认为第二种解决方案更好,但我无法使其正常工作。

答案1

查看adjustbox包,它可以添加功能\includegraphics,包括max width/max height可能对您有用的选项。

答案2

所用键的顺序很重要。创建浮点数时,必须事先调整大小,即max height首先,然后定义caption,最后告诉adjustbox您想要一个图形(figure键或)。如果在之后float=figure使用键,那就太晚了。之后将在内部创建一个不起作用的环境。captionfiguremax heightfigurefigure\resizebox

您应该使用\textheight-\baselineskip最大高度,因为您仍然需要用于标题的空间(2\baselineskip如果您有两行标题,则增加高度,依此类推)。

请注意,这还可以\adjustimage减少代码量。

\documentclass{article}

\usepackage{adjustbox}
\usepackage{mwe}% for example text and image only

\begin{document}
\blindtext

\begin{adjustbox}{max height=\textheight-\baselineskip,center,caption={Some text},float=figure}
  \includegraphics{example-image-a3}
\end{adjustbox}
% or just
%\adjustimage{max height=\textheight-\baselineskip,center,caption={Some %text},float=figure}{example-image-a3}

\blindtext

\end{document}

相关内容