Provided by: liblatex-table-perl_1.0.6-4_all bug

NAME

       LaTeX::Table::Themes::ThemeI - Interface for LaTeX table themes.

SYNOPSIS

         package MyThemes::Custom;
         use Moose;

         with 'LaTeX::Table::Themes::ThemeI';

         sub _definition {
             return { CENTRALPARK =>
              {
                 'HEADER_FONT_STYLE'  => 'bf',
                 'HEADER_FONT_COLOR'  => 'white',
                 'HEADER_BG_COLOR'    => 'latextbl',
                 'DATA_BG_COLOR_ODD'  => 'latextbl!25',
                 'DATA_BG_COLOR_EVEN' => 'latextbl!10',
                 'DEFINE_COLORS'      => '\definecolor{latextbl}{RGB}{93,127,114}',
                 'HEADER_CENTERED'    => 1,
                 'VERTICAL_RULES'     => [ 1, 0, 0 ],
                 'HORIZONTAL_RULES'   => [ 1, 1, 0 ],
                 'BOOKTABS'           => 0,
                 'EXTRA_ROW_HEIGHT'   => '1pt',
             }};
         }

         1;

DESCRIPTION

       This is the theme interface (or Moose role), that all theme objects must use.

CREATING THEMES

       A theme is defined as an hash reference containing all options:

         # a very ugly theme...
         my $theme = {
                     'Duisburg' => {
                         'HEADER_FONT_STYLE'  => 'sc',
                         'HEADER_FONT_COLOR'  => 'white',
                         'HEADER_BG_COLOR'    => 'blue',
                         'HEADER_CENTERED'    => 1,
                         'DATA_BG_COLOR_ODD'  => 'blue!30',
                         'DATA_BG_COLOR_EVEN' => 'blue!10',
                         'CAPTION_FONT_STYLE' => 'sc',
                         'VERTICAL_RULES'     => [ 1, 2, 1 ],
                         'HORIZONTAL_RULES'   => [ 1, 2, 0 ],
                         'EXTRA_ROW_HEIGHT'   => '2pt',
                         'BOOKTABS'           => 0,
                     },
                 };

       Fonts
           "HEADER_FONT_STYLE", "CAPTION_FONT_STYLE". Valid values are bf (bold), it (italics), sc (caps) and tt
           (typewriter).  When this option is undef, then header (or caption, respectively) is written in normal
           font.

       Colors
           "HEADER_FONT_COLOR" can be used to specify a different  font  color  for  the  header.  Requires  the
           "xcolor" LaTeX package.

           Set   "HEADER_BG_COLOR"   to   use  a  background  color  in  the  header,  "DATA_BG_COLOR_EVEN"  and
           "DATA_BG_COLOR_ODD" for even and odd data rows.  Requires  the  "colortbl"  and  the  "xcolor"  LaTeX
           package.

           You can define colors with "DEFINE_COLORS", for example:

             'DEFINE_COLORS'      => '\definecolor{latextbl}{RGB}{78,130,190}',

       Rules
           "VERTICAL_RULES", "HORIZONTAL_RULES"
               A  reference  to  an array with three integers, e.g. "[ 1, 2, 0 ]". The first integer defines the
               number of outer rules. The second the number of rules  after  the  header  and  after  the  first
               column. The third is the number of inner rules. For example Dresden is defined as:

                 'Dresden' => {
                     ...
                     'VERTICAL_RULES'     => [ 1, 2, 1 ],
                     'HORIZONTAL_RULES'   => [ 1, 2, 0 ],
                 }

               The  first integers define one outer rule - vertical and horizontal. So a box is drawn around the
               table. The second integers define two rules between header  and  table  and  two  vertical  rules
               between first and second column. And finally the third integers define that columns are separated
               by a single vertical rule whereas rows are not separated by horizontal lines.

           "RULES_COLOR_GLOBAL"
               If  your  theme uses the "colortbl" LaTeX package, this command should handle the coloring of the
               rules. See the "colortbl" documentation.

                 'RULES_COLOR_GLOBAL' =>
                     '\arrayrulecolor{white}\doublerulesepcolor{black}',

           "RULES_WIDTH_GLOBAL"
               Code that controls the width of the rules. See for example the "colortbl" documentation.

                'RULES_WIDTH_GLOBAL' =>
                    '\setlength\arrayrulewidth{1pt}\setlength\doublerulesep{0pt}',

           "RULES_CMD"
               A reference to an array with four LaTeX commands for the top,  mid  (between  header  and  data),
               inner and bottom rules.

                 RULES_CMD => [ '\toprule', '\midrule', '\midrule', '\bottomrule' ];

           "BOOKTABS"
               Use  the  "booktabs"  LaTeX  package  for  "Publication  quality  tables".  Instead  of "\hline",
               "LaTeX::Table" then uses "\toprule", "\midrule" and "\bottomrule".  0 (don't use this package) or
               1 (use it). A shortcut for

                 RULES_CMD => [ '\toprule', '\midrule', '\midrule', '\bottomrule' ];

       Misc
           "EXTRA_ROW_HEIGHT"
               Will set "\extrarowheight" in the floating environment. Requires the "array" LaTeX package.

           "STUB_ALIGN"
               Defines how the left-hand column, the stub, is aligned. Default is 'l' (left aligned).

           "HEADER_CENTERED"
               This controls the alignment of the header  columns,  excluding  the  stub  when  "STUB_ALIGN"  is
               defined.  Valid  values  are  0  (not centered) or 1 (centered).  Typically, it is recommended to
               center headers, but sometimes this does not look right. In this case,  (left)  align  the  header
               manually.

       You can either quickly add themes after initiation of an LaTeX::Table:

         $table->set_custom_themes($theme);

       Or, you can build a "THEME MODULE" and extend the list of predefined themes.

THEME MODULE

       Now,  to build a theme that you can easily load, take the "SYNOPSIS" template, change it and then make it
       accessible in "LaTeX::Table" by saving it under the "LaTeX::Table::Themes::*" namespace.

       Alternatively, you can use the search_path() method to add custom paths. For example save the  "SYNOPSIS"
       module as "./MyThemes/Custom.pm" and then add "MyThemes" in the script that uses the new theme:

         # in ./script.pl
         $table->search_path( add => 'MyThemes');

       If your theme looks nice, please contribute it.

SEE ALSO

       LaTeX::Table

LICENSE AND COPYRIGHT

       Copyright (c) 2006-2010 "<limaone@cpan.org>"

       This  module  is  free  software;  you  can redistribute it and/or modify it under the same terms as Perl
       itself. See perlartistic.

perl v5.34.0                                       2022-06-15                  LaTeX::Table::Themes::ThemeI(3pm)