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