# -*- mode: Perl -*-
# /=====================================================================\ #
# |  booktabs                                                           | #
# | 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;

# Adjust thickness of rules?
# Except for the encodings of hline as t (normal) or T (thin)
# there's currently no support for variable thickness.

# \toprule[thickness]  doubled
DefMacro('\toprule[Dimension]', '\hline\hline');
# \midrule[thickness]
DefMacro('\midrule[Dimension]', '\hline');
# \bottomrule[thickness] doubled
DefMacro('\bottomrule[Dimension]', '\hline\hline');

# \cmidrule[thickness](trim){col-col}
DefMacro('\@afterfi Until:\fi', '\fi#1');
DefMacro('\cmidrule[]',
  '\@ifnextchar({\ifx.#1.\expandafter\ltx@@cmidrule\else\@afterfi\ltx@@cmidrule[#1]\fi}'
    . '{\ifx.#1.\expandafter\ltx@cmidrule\else\@afterfi\ltx@cmidrule[#1]\fi}');

DefMacro('\ltx@@cmidrule[Dimension] SkipMatch:( Until:){}', '\cline{#3}');
DefMacro('\ltx@cmidrule[Dimension]{}',                      '\cline{#2}');

# add vspace
DefMacro('\addlinespace[Dimension]', '');

# adjust spacing to make double line
DefMacro('\morecmidrules', '');

# \specialrule{thickness}{above}{below}
DefMacro('\specialrule{Dimension}{Dimension}{Dimension}', '\hline');

RawTeX(<<'EoTeX');
\newdimen\heavyrulewidth
\newdimen\lightrulewidth
\newdimen\cmidrulewidth
\newdimen\belowrulesep
\newdimen\belowbottomsep
\newdimen\aboverulesep
\newdimen\abovetopsep
\newdimen\cmidrulesep
\newdimen\cmidrulekern
\newdimen\defaultaddspace
\heavyrulewidth=.08em
\lightrulewidth=.05em
\cmidrulewidth=.03em
\belowrulesep=.65ex
\belowbottomsep=0pt
\aboverulesep=.4ex
\abovetopsep=0pt
\cmidrulesep=\doublerulesep
\cmidrulekern=.5em
\defaultaddspace=.5em
\newcount\@cmidla
\newcount\@cmidlb
\newdimen\@aboverulesep
\newdimen\@belowrulesep
\newcount\@thisruleclass
\newcount\@lastruleclass
EoTeX
#======================================================================
1;