두 개의 열이 LaTeX인 경우

두 개의 열이 LaTeX인 경우

LaTeX로 논문을 쓰고 있습니다. 1열 버전과 2열 버전의 논문이 모두 필요합니다. 이를 위해서는 두 문서의 그림 크기/구성이 달라야 합니다. 다음과 같은 명령을 찾고 있습니다 \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}
}

이 방법은 전체 문서가 하나 또는 두 개의 열이고 전환되지 않는다고 가정합니다.

관련 정보