获取图形宽度

获取图形宽度

我希望有一个命令用于在图形中插入图像,其宽度由原始图像的尺寸或文本宽度(以较小者为准)决定。我希望避免图像过大,但又避免页面过满。不幸的是,手动操作不是一种选择。我在插入图形之前寻找了一种方法来获取图形的宽度,但目前还没有找到。类似于以下内容。

\usepackage{graphicx}

\newcommand{\newfigure}[1]{\begin{figure}[htbp]
    \centering
    \includegraphics[width=\ifnum\value{figwidth}<\textwidth {figwidth} \else {\textwidth}\fi]{#1}
\end{figure}}

答案1

adjustbox这可以通过(加载)来完成graphicx。该命令\maxsizebox允许您对内容的尺寸设置上限。具体来说,

\maxsizebox{\textwidth}{!}{...}

保持宽度不变,除非它超出了\textwidth,在这种情况下它会缩小到\textwidth

\documentclass{article}
\usepackage{adjustbox}
\begin{document}
\noindent
\maxsizebox{\textwidth}{!}{\includegraphics{example-image-duck}}\par
\bigskip

\noindent
\maxsizebox{\textwidth}{!}{\includegraphics[width=20cm]{example-image-duck}}\par
\end{document}

在此处输入图片描述

答案2

您可以使用adjustboxexport选项。示例使用 A5 纸,因此第一幅图像必须缩小。第三幅图像显示第二幅图像没有缩放。

如果图像非常大,您可能还需要使用max heightkeepaspectratio

\documentclass{article}
\usepackage[a5paper,showframe]{geometry}
\usepackage{graphicx}
\usepackage[export]{adjustbox}

\begin{document}

\begin{center}
\includegraphics[max width=\textwidth]{example-image}
\end{center}

\begin{center}
\includegraphics[max width=\textwidth]{example-image-1x1}
\end{center}

\begin{center}
\includegraphics{example-image-1x1}
\end{center}

\end{document}

在此处输入图片描述

相关内容