#!/usr/bin/perl -s

################################################################
# Fazedor da lista pra etaps
#
# Se nao funcionar, nao fui eu que fiz.
# Se funcionar, fui O:-) <rubenfonseca@di.uminho.pt>
################################################################

use strict;
use warnings;
use Text::CSV_XS;
use utf8;

my $csv = Text::CSV_XS->new({binary => 1});
my $file = shift or die "Need a CSV file";

# Preambulo
open G, ">out.tex";
print G <<EOF;
\\documentclass[a4paper]{article}
\\usepackage{a4wide}
\\usepackage{longtable}
\\usepackage[a4paper,top=1cm,left=1cm,right=1cm,bottom=2cm]{geometry}

\\begin{document}
\\sf
\\begin{longtable}{lll}
EOF

# Parse :D
open F, "<$file";
while(<F>) {
	if($csv->parse($_)) {
		my @fields = $csv->fields;

		# Protect some symbols LaTex doesn't like
		map { s!\\!\$\\backslash\$!g } @fields;
		map { s!([\{\}\_\^\$\#\%\&])!\\$1!g } @fields;

		if(length($fields[4]) > 40) {
			$fields[4] = substr($fields[4], 0, 40);
			$fields[4] .= '\\ldots';
		}

		print G <<EOF;
$fields[1] \& $fields[4] \& $fields[5] \\\\
EOF
	} else {
		die $_;
	}
}
close F;

print G <<EOF;
\\end{longtable}
\\end{document}
EOF

close G;
