仅当图像宽度超出页面大小时才使用 \textwidth

仅当图像宽度超出页面大小时才使用 \textwidth

可能重复:
只在必要时缩小身材?

假设你有这个:

\includegraphics{some_image_in_pdf.pdf}

现在它将占据其原始宽度,但如果您希望它占据文本宽度的 100%,您可以这样做:

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

如果您想包含图像并在其适合时使用其原始大小,否则调整其大小,该怎么办?

在这个例子中,第二幅图像应该被获取,[width=\textwidth]因为它将超出文档的界限。

\includegraphics{some_image_in_pdf.pdf}
\includegraphics{some_image_in_pdf_that_is_too_wide.pdf}

答案1

adjustbox包裹提供了一个max width=\textwidth关键选项。因此,您可以使用

\usepackage[export]{adjustbox}% http://ctan.org/pkg/adjustbox
...
\includegraphics[max width=\textwidth]{some_image_in_pdf.pdf}
\includegraphics[max width=\textwidth]{some_image_in_pdf_that_is_too_wide.pdf}

答案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}

相关内容