我正在用 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}
}
此方法確實假設整個文件是一列或兩列並且不會切換。