在我的文字编辑工作中,我经常需要调整图形大小以使其适合页面宽度(删除“Overfull \hbox...”)。我总是尝试保持作者的布局和图形之间的比例。
以下是 MWE:
\documentclass[11pt]{article}
\usepackage{amsmath}
\pagestyle{empty}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{blindtext}
\overfullrule=1mm
\begin{document}
\begin{figure}
\subfigure[]{\includegraphics[scale=.55]{example-image-a}}\subfigure[]{\includegraphics[scale=.6]{example-image-b}}
\caption{Image.}
\end{figure}
\blindtext
\end{document}
下面我将发布我想到的快速处理这些情况的解决方案。我愿意接受其他提示和解决方案。
澄清。我开始怀疑我的问题不够清楚(可能是因为我的英语不好)。我的解决方案是保持所有图像大小之间的比例(而不是单个图像中高度和宽度的比例)。我需要尽快将所有图形缩放到相同的值。
在没有“子图”的情况下,在这个特殊情况下,我的解决方案将是:
\begin{figure}
\resizebox*{1\textwidth}{!}{\includegraphics[scale=.55]{example-image-a}}\subfigure[]{\includegraphics[scale=.6]{example-image-b}}
\caption{Image.}
\end{figure}
答案1
这规模图形文件的“自然宽度”或“自然宽度”可能与文件创建时有关。例如,可能已选择比例以使图像适合文件创建者控制的显示器上的某个窗口。除此之外,我认为比例对于图像的其他用户或查看者没有直接关系。
scale
因此,我不会修改语句的参数,而是\includegraphics
专注于width
参数本身。例如,如果目标是将两个等宽的图像并排放置,我会替换
\subfigure[]{\includegraphics[scale=.6]{example-image-a}}%
\subfigure[]{\includegraphics[scale=.6]{example-image-b}}
和
\subfigure[]{\includegraphics[width=0.5\textwidth]{example-image-a}}%
\subfigure[]{\includegraphics[width=0.5\textwidth]{example-image-b}}
0.05\textwidth
或者,如果我还想在图像之间插入一些空白,我可能会运行
\subfigure[]{\includegraphics[width=0.475\textwidth]{example-image-a}}\hfill
\subfigure[]{\includegraphics[width=0.475\textwidth]{example-image-b}}
答案2
我的想法是重新定义环境\includegraphics
内的命令figure
:
\documentclass[11pt]{article}
\usepackage{amsmath}
\pagestyle{empty}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{blindtext}
\overfullrule=1mm
\begin{document}
\begin{figure}
\centering
\let\oldincludegraphics\includegraphics
\def\includegraphics#1#{\includegraphicsaux{#1}}
\newcommand*\includegraphicsaux[2]{{\scalebox{.78}{\oldincludegraphics#1{#2}}}}
\subfigure[]{\includegraphics[scale=.55]{example-image-a}}\subfigure[]{\includegraphics[scale=.6]{example-image-b}}
\caption{Image.}
\end{figure}
\blindtext
\end{document}
您需要尝试一些方法来找到正确的比例值...但这是我找到的最佳值。