我正在写一份报告,其中我生成并包含了几张 TikZ 图片,我也想在我的 Beamer 演示文稿中使用这些图片。但是,报告中适合的部分图片(但不是全部)对于幻灯片来说太大了。因此,我想知道是否有任何包或宏可以在图片太大时将其缩小,但如果图片已经适合,则保留它。
如果答案仅适用于 TikZ,那也没关系。我不介意将文本和线条与整个图形一起缩小。
答案1
这adjustbox
包可用于缩放(或以其他方式调整)图像或任何其他内容,例如tikzpicture
以多种方式缩放。您需要选项max size={<width>}{<height>}
,它可以完全满足您的要求,即仅当内容大于给定的宽度和/或高度时才缩小内容。它始终保持纵横比。
\usepackage{adjustbox}
% ..
\begin{adjustbox}{max size={.95\textwidth}{.8\textheight}}
\begin{tikzpicture}
% ..
\end{tikzpicture}
\end{adjustbox}
这也适用于图像。此处可以使用相同的键\adjustimage
:
\adjustimage{max size={..}{..}}{<imagefilename>}
它\includegraphics
在内部使用,但将其包装在\adjustbox
宏中。
答案2
也适用于错误地设置为宽度大于文本宽度的图像:
\documentclass{minimal}
\usepackage{graphicx}
\newsavebox\IBox
\let\Includegrfx\includegraphics
\renewcommand\includegraphics[2][]{%
\sbox\IBox{\Includegrfx[#1]{#2}}%
\ifdim\wd\IBox>\textwidth\resizebox{\textwidth}{!}{\usebox\IBox}\else
\usebox\IBox\fi}
\parindent=0pt % for demo
\begin{document}
\rule{\textwidth}{1pt}
\includegraphics[width=3\textwidth]{tiger}
\end{document}