我正在编写一个 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}
如果设置了预印选项,则打印“预印”,否则打印“重印”。