按比例缩小图像,但不按比例放大图像

时间:2020-03-06 14:36:44  来源:igfitidea点击:

我有一个包含includegraphics命令的命令,可以将图像传递给我的命令,在实际包含该图像之前,它将为我做一些标准格式化。我通过此命令包含的某些图像小于\ textwidth,而另一些则更大。我想将较大的图像缩小到\ textwidth,而不是将较小的图像放大到这,这意味着我不能做

\includegraphics[width=\textwidth]{img}

有没有办法指定最大宽度?或者,我可以以某种方式获得图像的宽度,这样我可以做类似的事情

\ifthenelse{\imagewidth > \textwidth}{%
    \includegraphics[width=\textwidth]{img}}{%
    \includegraphics{img}}

解决方案

经过几分钟的CTAN手册和Google搜索结果,我认为我可以肯定地说,我们想做的事情是不可能的,或者是很难的。我唯一的建议是我们有两个命令,一个用于小图像,一个用于大图像,或者一个带有选项的命令。

可能有办法,但我将其留给其他S.O. LaTeX向导提供了更好的答案。

编辑:我错了,见上文。

要获取图像的宽度,可以使用以下代码:

\newlength{\imgwidth}
\settowidth{\imgwidth}{\includegraphics{img}}

我们可以在文档序言中使用此命令创建一个新命令来自动设置宽度:

\usepackage{graphicx}
\usepackage{calc}

\newlength{\imgwidth}

\newcommand\scalegraphics[1]{%   
    \settowidth{\imgwidth}{\includegraphics{#1}}%
    \setlength{\imgwidth}{\minof{\imgwidth}{\textwidth}}%
    \includegraphics[width=\imgwidth]{#1}%
}

然后,在文档中:

\scalegraphics{img}

我希望这有帮助!