package LaTeXML::Package::Pool;
use strict;
use LaTeXML::Package;
use Cwd qw(cwd abs_path);
DeclareOption('report','');
DeclareOption('book','');
DeclareOption('chapter','');
DeclareOption('part','');
DeclareOption('showignores','');
DeclareOption('extrefs','');
RequirePackage('sref');
RequirePackage('xspace');
RequirePackage('omtext');
DefEnvironment('{omgroup} OptionalKeyVals:omgroup {}',
"\n"
. "#2\n"
. "#body\n"
. "");
DefConstructor('\printindex','');
DefConstructor('\tableofcontents',"");
DefConstructor('\bibliography{}',"");
DefKeyVal('ignore','type','Semiverbatim');
DefKeyVal('ignore','comment','Semiverbatim');
DefEnvironment('{ignore} OptionalKeyVals:ignore',
"#body");
DefConstructor('\STRlabel{}{}', sub {
my($document,$label,$object)=@_;
$document->absorb($object);
$document->addAttribute('xml:id'=>ToString($label)) if $label; });
DefConstructor('\STRcopy{}',"");
DefConstructor('\STRsemantics[]{}{}', sub {
my($document,$label,$ignore,$object)=@_;
$document->absorb($object);
$document->addAttribute('xml:id'=>ToString($label)) if $label; });
DefMacro('\STRlabeldef{}{}', "");
sub omdocColorMacro {
my ($color, @args) = @_;
my $tok_color = TokenizeInternal($color);
(T_BEGIN, T_CS('\@omdoc@color'), T_BEGIN, $tok_color->unlist,
T_END, T_CS('\@omdoc@color@content'), T_OTHER('['), $tok_color->unlist, T_OTHER(']'),
T_BEGIN, $args[1]->unlist, T_END, T_END); }
DefMacro('\@omdoc@color{}', sub { MergeFont(color=>$_[1]->toString); return; });#$
DefConstructor('\@omdoc@color@content[]{}',
"?#isMath(#2)(#2)");
foreach my $color(qw(black gray blue red green cyan magenta brown yellow orange)) {
DefMacro("\\".$color.'{}', sub { omdocColorMacro($color, @_); }); }#$
DefConstructor('\newpage','');
Tag('omdoc:ignore',afterOpen=>\&numberIt,afterClose=>\&locateIt);
Tag('omdoc:ref',afterOpen=>\&numberIt,afterClose=>\&locateIt);
DefConstructor('\hateq',"\x{2259}");
DefConstructor('\hatequiv',"\x{2A6F}");
DefConstructor('\textleadsto',"\x{219D}");
DefMacro('\baseURI []Semiverbatim', sub {
if (LookupValue('SOURCEFILE')!~/^(\w+):\/\//) {
my $baselocal = ToString(Expand($_[1]));
$baselocal = abs_path($baselocal) unless $baselocal=~/^(\w+):\/\//;
AssignValue('baselocal'=>$baselocal);
AssignValue('baseuri'=>ToString(Expand($_[2])));}
else {
AssignValue('baselocal'=>undef);
AssignValue('baseuri'=>ToString(Expand($_[2])));
}});
DefConstructor('\url Semiverbatim',"#1");
DefConstructor('\href Semiverbatim {}',"#2");
1;