Если два столбца 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}
}

Этот метод предполагает, что весь документ состоит из одного или двух столбцов и не переключается.

Связанный контент