包括图形最大宽度

包括图形最大宽度

\includegraphics可以给出结果图像的宽度(将被缩放)。

我如何给出图像的最大宽度?也就是说,如果原始图像小于 X,我想保留较小的图像,如果图像大于 X,则图像宽度应为 X。

使用pdflatex/ graphicx

答案1

对于更奇特的要求adjustboxresizebox有用,但你实际上并不需要任何额外的命令(除了本地命令只是为了@更轻松地访问命令)

\documentclass{article}

\usepackage{graphicx}
\makeatletter
\def\maxwidth#1{\ifdim\Gin@nat@width>#1 #1\else\Gin@nat@width\fi}
\makeatother

\begin{document}

\includegraphics[width=\maxwidth{1in}]{image}

\includegraphics[width=\maxwidth{1cm}]{image}

\end{document}

答案2

提供adjustbox了一个max width密钥,专门用于此目的。如果软件包中加载了该export选项,则此密钥和大多数其他密钥也可用于\includegraphics

这里,只有当前内容的大小大于给定宽度时,才会调整内容的大小。它的工作方式与 David Carlisle 的答案中的代码基本相同。如果\adjincludegraphics使用宏,则可以直接将原始宽度作为 访问\width。请注意,该选项未启用此功能。但是,可以\includegraphics通过在加载后使用而不是使用export来实现。\includegraphics\adjincludegraphics\let\includegraphics\adjincludegraphicsadjustbox

\documentclass{article}

\usepackage{mwe}% just for the example images
\setlength{\parindent}{0pt}

\usepackage[export]{adjustbox}% 'export' allows adjustbox keys in \includegraphics

\begin{document}

\hrule% to see \linewidth

\includegraphics[max width=\linewidth]{example-image-1x1}

\includegraphics[max width=\linewidth]{example-image-a4}

% With \adjincludegraphics (or \adjustimage) you can also use the original width as \width:
\adjincludegraphics[width=\ifdim\width>\linewidth \linewidth\else\width\fi]{example-image}

\end{document}

答案3

\documentclass{article}
\usepackage[demo]{graphicx}
\newlength\MaxWidth \newsavebox\IBox
\MaxWidth=100pt

\newcommand*\IncludeGraphics[2][]{%
  \sbox\IBox{\includegraphics[#1]{#2}}%
  \ifdim\wd\IBox>\MaxWidth \resizebox{\MaxWidth}{!}{\usebox\IBox}%
  \else\usebox\IBox\fi}

\begin{document}

\includegraphics{image}

\IncludeGraphics{image}

\IncludeGraphics[width=50pt]{image}

\end{document}

在此处输入图片描述

相关内容