# -*- mode: Perl -*-
# /=====================================================================\ #
# |  revtex.cls                                                         | #
# | Implementation for LaTeXML                                          | #
# |=====================================================================| #
# | Part of LaTeXML:                                                    | #
# |  Public domain software, produced as part of work done by the       | #
# |  United States Government & not subject to copyright in the US.     | #
# |---------------------------------------------------------------------| #
# | Thanks to the arXMLiv group for initial implementation              | #
# |    http://arxmliv.kwarc.info/                                       | #
# | Released to the Public Domain                                       | #
# |---------------------------------------------------------------------| #
# | Bruce Miller <bruce.miller@nist.gov>                        #_#     | #
# | http://dlmf.nist.gov/LaTeXML/                              (o o)    | #
# \=========================================================ooo==U==ooo=/ #
package LaTeXML::Package::Pool;
use strict;
use warnings;
use LaTeXML::Package;

foreach my $option (qw(manuscript eqsecnum preprint tighten floats)) {
  DeclareOption($option, undef); }

# The following specify sub-styles; I'll assume they're irrelevant for now.
foreach my $substyle (qw(aps osa aip pra prb prc prd prl rmp seg)) {
  DeclareOption($substyle, undef); }

# Options that load packages; but DO NOT load them yet!!
my @revtex_toload = ();
foreach my $pkg (qw(amsfonts amssymb)) {
  DeclareOption($pkg, sub { push(@revtex_toload, $pkg); return; });
  DeclareOption("no$pkg", sub {
      @revtex_toload = grep { $_ ne $pkg } @revtex_toload;
      return; }); }

# Anything else is for article.
DeclareOption(undef, sub {
    PassOptions('article', 'cls', ToString(Expand(T_CS('\CurrentOption')))); });

ProcessOptions();
LoadClass('article');
RequirePackage('natbib', options => ['numbers']);    # Preload w/numbers option!
RequirePackage('revtex3_support');
map { RequirePackage($_) } @revtex_toload;

1;