# -*- mode: Perl -*-
# /=====================================================================\ #
# |  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 strict;
use warnings;
use LaTeXML::Package;

RequirePackage('array');

# \tabularx{Dimension}[]{}
DefMacro('\tabularx{}[]{}',
  '\@tabular@bindings{#3}[vattach=#2,width=#1]\@@tabularx{#1}[#2]{#3}\@start@alignment');
DefMacro('\endtabularx',
  '\@finish@alignment\@end@tabularx');
DefPrimitive('\@end@tabularx', sub { $_[0]->egroup; });
DefConstructor('\@@tabularx{Dimension}[] Undigested DigestedBody',
  '#4',
  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('\tabularcell@hbox'), T_BEGIN),
      after => Tokens(T_END),
      align => 'justify'); return; });

1;
