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;