Estoy escribiendo un artículo en LaTeX. Necesitaré tanto la versión de una columna como la de dos columnas del artículo. Para ello, los tamaños/configuraciones de las figuras deben ser diferentes en los dos documentos. ¡Estoy buscando un comando como \iftwocolumn
! ¿Sabes si existe y si no, cómo puedo definirlo y utilizarlo?
Necesitaría algo como:
\begin{figure}[tb]
\iftwocolumn\includegraphics[width=0.7\linewidth]{FiguresDouble/figure.eps}
\else\includegraphics[width=0.5\linewidth]{FiguresSingle/figure.eps}
\fi
Respuesta1
\linewidth
o \columnwidth
debería funcionar, ya que un no twocolumn
documento técnicamente consta de una sola columna (de ancho \columnwidth
).
Sin embargo, si estás usando el twocolumn
modo tradicional de (digamos)article
, la condición \if@twocolumn
está disponible para pruebas/ramificación.
Aquí hay un breve ejemplo que muestra la diferencia:
\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}
Tenga en cuenta que necesita el uso de un par \makeatletter
... \makeatother
, ya que la definición de comando del condicional contiene @
. Ver¿Qué hacer \makeatletter
y \makeatother
hacer?
Respuesta2
Así es como hice un condicional para hacer cosas diferentes con una o dos columnas:
\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}
Cuando esto esté definido, puede hacer la pregunta original como:
\whencolumns{
\includegraphics[width=0.5\linewidth]{FiguresSingle/figure.eps}
}{
\includegraphics[width=0.7\linewidth]{FiguresDouble/figure.eps}
}
Este método supone que todo el documento tiene una o dos columnas y no cambia.