# -*- mode: Perl -*-
# /=====================================================================\ #
# |  preview                                                            | #
# | 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.     | #
# |---------------------------------------------------------------------| #
# | 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;

#======================================================================
# What this should do is, when active (\ifPreview) it should ONLY output
# the objects named by certain options or contained in {preview} environment;
# Everything else should Disappear!
# I don't really see how this would be that useful with LaTeXML, but...
#
# The only practical implementation strategy that occurs to me would
# be to process the document as usual, possibly seeding elements with
# an attribute that says whether to preview them, but then make a pass
# over the resulting xml tree, removing all unwanted elements....
# and ending up with an invalid document!
#
# For the meantime, this stub will hopefully allow processing without error.
#======================================================================

DefConditional('\ifPreview');
foreach my $option (qw(
  noconfig delayed
  psfixbb dvips pdftex xetex auctex lyx
  showlabels tightpage counters tracingall showbox)) {
  DeclareOption($option, undef); }

foreach my $option (qw(displaymath textmath graphics floats sections footnotes)) {
  DeclareOption($option, sub { PushValue('preview_environments', ToString($option)); }); }

DeclareOption('active', sub { Digest(T_CS('\Previewtrue')); });
# DeclareOption(undef, sub{ input if file exists "pr" \CurrentOption .def;

DefMacro('\PreviewMacro OptionalMatch:* []{}',            '');
DefMacro('\PreviewEnvironment OptionalMatch:* []{}',      '');
DefMacro('\PreviewSnarfEnvironment OptionalMatch:* []{}', '');
DefMacro('\PreviewOpen OptionalMatch:* []{}',             '');
DefMacro('\PreviewClose OptionalMatch:* []{}',            '');

DefEnvironment('{preview}', '#body');

# should throw this away, ifPreview is active.
DefEnvironment('{nopreview}', '#body');

# ????
DefRegister('\PreviewBorder' => Dimension(0));

#**********************************************************************
1;
