当改变列数时我应该改变所有图形的大小吗?

当改变列数时我应该改变所有图形的大小吗?

我通常使用如下图形

\begin{figure}[!t}
\subfigure[subcap1]{
    \includegraphics[width=.9\linewidth]{filename.eps}
    \label{lab1}
}\\\subfigure[subcap2]{
    \includegraphics[width=.9\linewidth]{filename.eps}
    \label{lab2}
}\\\subfigure[subcap3]{
    \includegraphics[width=.9\linewidth]{filename.eps}
    \label{lab3}
}\caption{cap}
\end{figure}

但是当我将纸张类型从2列改为1列时,数字会变得太大。 有没有像下面这样的方法?

  • 当我使用 2 列纸时,宽度为 .9\linewidth。
  • 当我使用 1 列纸时,宽度是 .4\linewidth?

我的输出是: 在此处输入图片描述

答案1

您可以使用类提供的方法来对维度进行条件设置\ifCLASSOPTIONonecolumn

\includegraphics
  [width = \ifCLASSOPTIONonecolumn .4\linewidth\else.9\linewidth\fi]
  {example-image}

使用onecolumn选项集\CLASSOPTIONonecolumntrue,否则为\CLASSOPTIONonecolumnfalse。有一个twocolumn补集,但它们是互斥的,因此您可以使用一个。

答案2

软件包subfigure已过时。其取代版本是subfig。使用它的语法是:

\documentclass{IEEEtran}
\usepackage{subfig}
\usepackage[demo]{graphicx}

\begin{document}
\begin{figure}[ht]
\subfloat[subcap1]{\includegraphics[width=.9\linewidth]{filename}
    \label{lab1}}\\
\subfloat[subcap2]{\includegraphics[width=.9\linewidth]{filename}
    \label{lab1}}\\
\subfloat[subcap2]{\includegraphics[width=.9\linewidth]{filename}
    \label{lab1}}
\caption{cap}
\end{figure}
\end{document}

甚至更好,subcaption但它的语法更加不同:

\documentclass{IEEEtran}
\usepackage[demo]{graphicx}
\usepackage{subcaption}

\begin{document}
\begin{figure}[ht]
\begin{subfigure}{0.9\linewidth}
    \includegraphics[width=\linewidth]{filename}
    \caption{subcap1}
    \label{lab1}
\end{subfigure}

\begin{subfigure}{0.9\linewidth}
    \includegraphics[width=\linewidth]{filename}
    \caption{subcap3}
    \label{lab2}
\end{subfigure}

\begin{subfigure}{0.9\linewidth}
    \includegraphics[width=\linewidth]{filename}
    \caption{subcap3}
    \label{lab3}
\end{subfigure}
\caption{cap}
\end{figure}
\end{document}

在两种情况下,图形的宽度都将适应列的宽度。

相关内容