1# -*- mode: Perl -*- 2# /=====================================================================\ # 3# | tabulary | # 4# | Implementation for LaTeXML | # 5# |=====================================================================| # 6# | Part of LaTeXML: | # 7# | Public domain software, produced as part of work done by the | # 8# | United States Government & not subject to copyright in the US. | # 9# |---------------------------------------------------------------------| # 10# | Bruce Miller <bruce.miller@nist.gov> #_# | # 11# | http://dlmf.nist.gov/LaTeXML/ (o o) | # 12# \=========================================================ooo==U==ooo=/ # 13package LaTeXML::Package::Pool; 14use strict; 15use warnings; 16use LaTeXML::Package; 17 18RequirePackage('array'); 19 20# \tabularx{Dimension}[]{} 21DefMacro('\tabulary{}[]{}', 22 '\@tabular@bindings{#3}[vattach=#2,width=#1]\@@tabulary{#1}[#2]{#3}\@start@alignment'); 23DefMacro('\endtabulary', 24 '\@finish@alignment\@end@tabulary'); 25DefPrimitive('\@end@tabulary', sub { $_[0]->egroup; }); 26DefConstructor('\@@tabulary{Dimension}[] Undigested DigestedBody', 27 '#4', 28 reversion => '\begin{tabulary}{#1}[#2]{#3}#4\end{tabulary}', 29 beforeDigest => sub { $_[0]->bgroup; }, 30 mode => 'text'); 31 32# Like l,c,r,j, but set like p w/o explicit width... 33DefColumnType('L', sub { 34 $LaTeXML::BUILD_TEMPLATE->addColumn(before => Tokens(T_CS('\vtop'), T_BEGIN), 35 after => Tokens(T_END), 36 align => 'left'); return; }); 37DefColumnType('C', sub { 38 $LaTeXML::BUILD_TEMPLATE->addColumn(before => Tokens(T_CS('\vtop'), T_BEGIN), 39 after => Tokens(T_END), 40 align => 'center'); return; }); 41DefColumnType('R', sub { 42 $LaTeXML::BUILD_TEMPLATE->addColumn(before => Tokens(T_CS('\vtop'), T_BEGIN), 43 after => Tokens(T_END), 44 align => 'right'); return; }); 45DefColumnType('J', sub { 46 $LaTeXML::BUILD_TEMPLATE->addColumn(before => Tokens(T_CS('\vtop'), T_BEGIN), 47 after => Tokens(T_END), 48 align => 'justify'); return; }); 49 501; 51