居中图形,包含带有自定义 \includegraphics 的 \subfigure

居中图形,包含带有自定义 \includegraphics 的 \subfigure

我的问题:我希望我的 Latex 文档中的所有图像的高度和宽度都合适。确切地说,我希望纵向和横向图像在文档中获得预定义的大小。我通过以下样式实现了此目的:

\RequirePackage{ifthen,graphicx}
\newlength{\widthW}
\newlength{\heightH}
\newcommand\includegraphicsJustified[1]{
    \settowidth{\widthW}{\includegraphics{#1}}
    \settoheight{\heightH}{\includegraphics{#1}}
    \ifthenelse{\lengthtest{\widthW > \heightH}}{
        \includegraphics[width=0.40\textwidth]{#1}\\
    }{
        \includegraphics[height=0.35\textheight]{#1}\\
    }
}

第二件事是,我想在 \subfigure 中使用它,因为我有很多必须并排放置的图像。

问题是,一切都运行良好,但当我尝试将这些图像置于中心时,我得到了:

!LaTeX 错误:出现错误 — — 可能缺少 \item。

这是我的代码:

\begin{figure}
\centering
\subfigure[comment]{\includegraphicsJustified{images/img1.png}  }
\subfigure[comment]{\includegraphicsJustified{images/img2.png}  }
\caption{whole comment}
\end{figure}

再次注意:没有 \centering 命令它也可以工作。

我尝试将其添加到我的样式中,以自动将所有图形元素置于中心:

\makeatletter
\let\oldfigure\figure
\def\figure{\@ifnextchar[\figure@i \figure@ii}
\def\figure@i[#1]{\oldfigure[#1]\centering}
\def\figure@ii{\oldfigure\centering}
\makeatother

这很好用,但是当我使用 \subfigure 时则不行:

!LaTeX 错误:出现错误 — — 可能缺少 \item。

没有 \subfigure 我可以使用 \includegraphicsJustified{} 命令,它就会居中。另请注意:当我将 subfigure 与普通 \includegraphics{} 一起使用时,它可以正常工作!

有谁可以解释这一点或者能提供更好的解决方案吗?

答案1

尝试将子图放入小页面中,如下所示,

\begin{figure}
\centering
\begin{minipage}{0.5\textwidth}
\subfigure[comment]{\includegraphicsJustified{images/img1.png} }
\subfigure[comment]{\includegraphicsJustified{images/img2.png} }
\end{minipage}
\caption{whole comment}
\end{figure}

我坚信你能完成剩下的微调工作。

更多详情,请参阅https://texfaq.org/FAQ-errmissitem

希望这可以帮助。

相关内容