测试 revtex 是否处于重印模式或预印模式

测试 revtex 是否处于重印模式或预印模式

我正在编写一个 revtex 文档,该文档要求根据我是处于单列模式preprint还是双列reprint模式对某些方程式进行不同的排版。有没有办法根据模式指定单独的方程式?

这类似于这个问题但是那里提出的解决方案似乎不适用于 revtex:

\documentclass[aip,jcp,reprint,citeautoscript,longbibliography]{revtex4-1}
\begin{document}

\makeatletter
\if@twocolumn
\newcommand{\whencolumns}[2]{
#2
}
\else
\newcommand{\whencolumns}[2]{
#1
}
\fi
\makeatother

\whencolumns{One Column}{Two Columns}
\end{document}

reprint这会在和模式下生成文本“One Column” preprint

答案1

该班级有

\DeclareOption{preprint}{%
 \@booleantrue\preprintsty@sw
 \ExecuteOptions{12pt}%
}
\DeclareOption{reprint}{%
 \@booleanfalse\preprintsty@sw
 \@booleantrue\twocolumn@sw
 \ExecuteOptions{10pt}%
}

所以你可以

\makeatletter
\newcommand{\whencolumns}[2]{\preprintsty@sw{#1}{#2}}
\makeatother

完整示例:

\documentclass[% Try both options
  preprint,
  %reprint,
]{revtex4-1}

\makeatletter
\newcommand{\whencolumns}[2]{\preprintsty@sw{#1}{#2}}
\makeatother

\begin{document}

\whencolumns{Preprint}{Reprint}

\end{document}

答案2

我从回答中了解到这个问题测试类选项是否设置非常容易:

\documentclass[preprint]{revtex4-1}

\makeatletter
\newif\ifpreprintoption
\@ifclasswith{revtex4-1}{preprint}{\preprintoptiontrue}{\preprintoptionfalse}
\makeatother
\newcommand{\ifpreprint}[2]{\ifpreprintoption #1\else #2\fi}

\begin{document}

\ifpreprint{Preprint}{Reprint}

\end{document}

如果设置了预印选项,则打印“预印”,否则打印“重印”。

相关内容