我有不同长宽比的图片。我想在插入的每张图片中保留长宽比。
作为一个选择,\includegraphics
我会有
height = 0.6\textheight
如果调用\textwidth
该选项时图像的宽度大于 0.7* ,并且height = 0.6\textheight
width = 0.7\textwidth
如果调用\textwidth
该选项时图像的宽度小于或等于 0.7* 。height = 0.6\textheight
有可能得到自动地?
PS我希望我的问题有意义。
答案1
进行必要的测试以确保不超出文本宽度:
\documentclass{article}
\usepackage{graphicx}
\newsavebox{\svendbox}
\newcommand{\svendincludegraphics}[2][]{%
\sbox{\svendbox}{\includegraphics[height=0.6\textheight,#1]{#2}}%
\ifdim\wd\svendbox>0.7\textwidth
\ifdim\wd\svendbox>\textwidth
\resizebox{\textwidth}{!}{\usebox{\svendbox}}%
\else
\usebox{\svendbox}%
\fi
\else
\resizebox{0.7\textwidth}{!}{\usebox{\svendbox}}%
\fi
}
\begin{document}
\noindent
\svendincludegraphics{example-image}
\noindent
\svendincludegraphics[angle=90]{example-image}
\end{document}
如您所见,您还可以为指定附加键\includegraphics
。
答案2
这是一个解决方案。它实现了 Zarko 在其评论中所建议的功能。
\newbox\mybox
\def\myincludegraphics#1{
\setbox\mybox\hbox{\includegraphics{#1}
\ifdim\wd\mybox>0.7\textwidth\relax
\includegraphics[height=0.6\textheight]{#1}
\else
\includegraphics[width=0.7\textwidth]{#1}
\fi
}
答案3
我的回答晚了,但无论如何,让我详细说明一下我的评论。这比其他的更粗鲁,但我们在这里:
\documentclass{article}
\usepackage{graphicx}
\newsavebox\imagesize
\newlength\imagewidth
\newlength\widthtreshold
\setlength\widthtreshold{0.7\textwidth}
\begin{document}
\sbox\imagesize{\includegraphics[width=0.5\textwidth]{example-image}}
\settowidth\imagewidth{\usebox{\imagesize}}
\ifdim\imagewidth<\widthtreshold
\includegraphics{example-image-a}
\else
\includegraphics{example-image-b}
\fi
\medskip
\sbox\imagesize{\includegraphics[width=0.31\textwidth]{example-image}}
\settowidth\imagewidth{\usebox{\imagesize}}
\ifdim\imagewidth<\widthtreshold
\includegraphics{example-image-a}
\else
\includegraphics{example-image-b}
\fi
\end{document}
我没有向图像添加图像的大小(它们保持很小)。如果图像宽度短于0.7\textwidth
显示的图像 A,否则显示图像 B。