Estou escrevendo um artigo em LaTeX. Precisarei das versões de uma coluna e de duas colunas do artigo. Para isso, os tamanhos/configurações das figuras precisam ser diferentes nos dois documentos. Estou procurando um comando como \iftwocolumn
! Você sabe se existe e se não, como posso defini-lo e usá-lo?
Eu precisaria de algo como:
\begin{figure}[tb]
\iftwocolumn\includegraphics[width=0.7\linewidth]{FiguresDouble/figure.eps}
\else\includegraphics[width=0.5\linewidth]{FiguresSingle/figure.eps}
\fi
Responder1
\linewidth
ou \columnwidth
deveria funcionar, já que um não- twocolumn
documento consiste tecnicamente em uma única coluna (de largura \columnwidth
).
No entanto, se você estiver usando o twocolumn
modo tradicional de (digamos)article
, a condição \if@twocolumn
estará disponível para teste/ramificação.
Aqui está um pequeno exemplo mostrando a diferença:
\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}
Observe que você precisa do uso de um par \makeatletter
... \makeatother
, pois a definição do comando da condicional contém @
. VerO que fazer \makeatletter
e \makeatother
fazer?
Responder2
Aqui está como criei uma condicional para fazer coisas diferentes com uma ou duas colunas:
\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}
Quando isso for definido, você pode fazer a pergunta original como:
\whencolumns{
\includegraphics[width=0.5\linewidth]{FiguresSingle/figure.eps}
}{
\includegraphics[width=0.7\linewidth]{FiguresDouble/figure.eps}
}
Este método pressupõe que o documento inteiro tenha uma ou duas colunas e não esteja alternando.