\includegraphics
要将导入的宽度大于高度的图片扩展至文本块的宽度,只需执行以下操作:
\includegraphics[width=\textwidth]{ ... }
当它们的高度大于宽度时,您可以对文本高度执行几乎相同的操作:
\includegraphics[height=\textheight]{ ... }
但是由于图片经常包含在浮动中,因此有一个标题。此标题具有一定的高度,并使\includegraphics[height=\textheight]{ ... }
图形溢出边缘。
这导致以下结果:
- 有没有办法告诉
\includegraphics
图片的高度必须是\textheight
和标题高度之间的差值(当然周围还需要有空间)? - 如何将这种行为概括为同一“行”或“列”中存在多个浮点数或子浮点数的情况,例如
\includegraphics
“占用最大允许空间”?
我认为它可以更通用,也许其他人可以扩展或精确地说明这一点。
daleif 建议使用adjustbox包。它非常有趣,可以访问图片的最大尺寸。
我尝试了两件有趣的事情:
在环境
\adjincludegraphics
内部使用:\includegraphics
figure
\begin{figure} \adjincludegraphics[max height=\textheight]{ ... } \caption{Some text}
我也尝试过
max totalheight
,但是我没有看到任何区别(手册中没有提到这一点。)这不起作用:图片被缩放但标题仍然在边距之外。要使用
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
使用键,那就太晚了。之后将在内部创建一个不起作用的环境。caption
figure
max height
figure
figure
\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}