如果有兩列 LaTeX

如果有兩列 LaTeX

我正在用 LaTeX 寫一篇論文。我需要該論文的一欄和兩欄版本。為此,兩個文件中的圖形尺寸/配置需要不同。我正在尋找類似的命令\iftwocolumn!你知道它是否存在嗎?

我需要類似的東西:

\begin{figure}[tb]
\iftwocolumn\includegraphics[width=0.7\linewidth]{FiguresDouble/figure.eps}
\else\includegraphics[width=0.5\linewidth]{FiguresSingle/figure.eps}
\fi

答案1

\linewidth\columnwidth應該可以工作,因為從twocolumn技術上講,非文件由單個列(寬度為\columnwidth)組成。

但是,如果您使用傳統twocolumn模式(例如)article,該條件\if@twocolumn可用於測試/分支。

這是一個顯示差異的簡短範例:

\documentclass{article}
\usepackage{graphicx,showframe}% http://ctan.org/pkg/{graphicx,showframe}
\begin{document}
\noindent
\makeatletter%
\if@twocolumn%
  \includegraphics[width=\columnwidth]{example-image-a}%
\else% \@twocolumnfalse
  \includegraphics[width=\columnwidth]{example-image-b}%
\fi
\makeatother
\end{document}

請注意,您需要使用\makeatletter...\makeatother對,因為條件的命令定義包含@.看做什麼\makeatletter\makeatother做什麼?

答案2

以下是我如何建立一個條件來對一列或兩列執行不同的操作:

\documentclass[onecolumn]{article}
\begin{document}

\makeatletter
\if@twocolumn
\newcommand{\whencolumns}[2]{
#2
}
\else
\newcommand{\whencolumns}[2]{
#1
}
\fi
\makeatother

\whencolumns{One Column}{Two Columns}
\end{document}

定義後,您可以執行原始問題,例如:

\whencolumns{
 \includegraphics[width=0.5\linewidth]{FiguresSingle/figure.eps}
}{
 \includegraphics[width=0.7\linewidth]{FiguresDouble/figure.eps}
}

此方法確實假設整個文件是一列或兩列並且不會切換。

相關內容