#!/usr/bin/perl use strict; use Skel::Data; skinit(); my @h=qw(batata cebola peras tomates); my @v=qw(vinho cerveja rum leite sumo ); my $m=[ map {my $x=$_; [ map { length($_ . $x)} @h ] } @v ]; my %p=( tabdecl => join("|",map {'@{}c@{}'} @h), tabheadh => join("&",map { sprintf('\rr{%s}',$_)} @h), hh => \@v, mat => sub { my $m2= [map { join("&",@$_)} @$m]; sk('MAT', skzipl(\@v,$m2)) } ); pdfcroped( sk('MATRIX',\%p)); print sk('MAT',[333,444]); print sk('MAT',[333,444],{1=>666,2=>777}); print sk('MAT',[333,444],{1=>sub{3*666},2=>777}); sub pdfcroped{ my $t=shift; open(F,">","_tmp.tex"); print F $t; close F; system("pdflatex _tmp.tex") ==0 or die("pdflatex\n"); system("pdfcrop.pl _tmp.pdf") ==0 or die("pdfcrop\n"); system("xpdf _tmp-crop.pdf")==0 or die("xpdf\n"); } __DATA__ __MATRIX__ \documentclass[portuges,a4paper]{article} \usepackage{babel} %\usepackage{ucs} \usepackage[mathletters]{ucs} \usepackage[utf8x]{inputenc} \usepackage[T1]{fontenc} \usepackage{rotating} \usepackage{dcolumn} \begin{document} \thispagestyle{empty} \newcolumntype{K}[1]{% >{\begin{turn}{90}\begin{minipage}{#1}% \raggedright\hspace{0pt}}c% <{\end{minipage}\end{turn}}% } \newcolumntype{R}[0]{>{\begin{turn}{90}}c<{\end{turn}}} \def\rr#1{\begin{turn}{90}\rule[-2pt]{0pt}{15pt}#1\end{turn}} \def\hh#1{\rule{0pt}{12pt}#1} \begin{tabular}{r|[% tabdecl %]|} & [% tabheadh %] \\ \hline [% mat %] \end{tabular} \rule{0pt}{25pt}\\[3mm] «fim» %% ☾e mais fim☽ → ↑ ↓ ← \end{document} __MAT__ \hh{[% 1 %]}& [% 2 %]\\ \hline __END__ =head1 NAME =head1 SYNOPSIS =head1 DESCRIPTION =head2 Language =head3 Metadata section =head3 Entries =head1 AUTHOR J.Joao Almeida, jj@di.uminho.pt =head1 SEE ALSO =cut