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}
}
이 방법은 전체 문서가 하나 또는 두 개의 열이고 전환되지 않는다고 가정합니다.