# -*- CPERL -*-
# /=====================================================================\ #
# |  tabularx                                                           | #
# | 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 LaTeXML::Package;
use LaTeXML::Util::Alignment;

RequirePackage('array');

DefMacro('\tabularx[]{Dimension}{}',
	 '\@alignment@bindings{#3}[text]\@@tabularx[#1]{#2}{#3}\@start@alignment');
DefMacro('\endtabularx',
	 '\@finish@alignment\@end@tabularx');
DefPrimitive('\@end@tabularx',sub{ $_[0]->egroup; });
DefConstructor('\@@tabularx[]{Dimension} Undigested DigestedBody',
	       sub { my($document,$pos,$width,$pat,$body,%props)=@_;
		     constructAlignment($document,$body,
					attributes=>{vattach=>translateAttachment($pos),
						     width=>$width->valueOf},
					guess_headers=>1); },
	       reversion=>'\begin{tabularx}[#1]{#2}{#3}#4\end{tabularx}',
	       beforeDigest=>sub { $_[0]->bgroup; },
	       mode=>'text');

# Like p, but w/o explicit width...
DefColumnType('X',sub {
  $LaTeXML::BUILD_TEMPLATE->addColumn(before=>Tokens(T_CS('\hbox'),T_BEGIN),
				      after=>Tokens(T_END),
				      align=>'justify'); return; });

1;
