Commit 0cdd756d authored by unknown's avatar unknown

Various improvements to the colspec fixup script


Docs/Support/colspec-fix.pl:
  Various improvements, error checks and cleaning
   - Increased gutter size
   - Added check to ensure that total column % is not greater than 100%
   - Changed code to work with hacks to makeinfo
   - Ensure that total column width is less than max table width
   - Trim overly long end columns if needed
parent c88744d3
......@@ -9,7 +9,7 @@
use strict;
my $table_width = 12.75; # cm
my $gutter_width = 0.09; # cm
my $gutter_width = 0.55; # 2 mm
my $str = join '', <>;
......@@ -28,12 +28,17 @@ sub msg {
}
sub rel2abs {
my $str = shift;
my $colnum = 1;
my $str = shift;
my $colnum = 1;
my @widths = ();
my $total = 0;
my $output = '';
my @widths = ();
my $total = 0;
my $output = '';
my $gutters;
my $content_width;
my $total_width;
my @num_cache;
$str =~ /^(\s+)/;
my $ws = $1;
......@@ -43,12 +48,31 @@ sub rel2abs {
push @widths, $1;
}
my $unit = ($table_width - ($#widths * $gutter_width)) / ($total);
msg("!!! WARNING: Total Percent > 100%: $total%") if $total > 100;
if (! $total) {
die 'Something bad has happened - the script believes that there are no columns';
}
$gutters = $#widths * $gutter_width;
$content_width = $table_width - $gutters;
# Don't forget that $#... is the last offset not the count
foreach (@widths) {
$output .= $ws . '<colspec colnum="'. $colnum .'" colwidth="'. sprintf ("%0.2f", $_ * $unit) .'cm" />' . "\n";
my $temp = sprintf ("%0.2f", $_/100 * $content_width);
$total_width += $temp;
if ($total_width > $content_width) {
$temp -= $total_width - $content_width;
msg("!!! WARNING: Column width reduced from " .
($temp + ($total_width - $content_width)) . " to $temp !!!");
$total_width -= $total_width - $content_width;
}
$output .= $ws . '<colspec colnum="'. $colnum .'" colwidth="'. $temp .'cm" />' . "\n";
++$colnum;
push @num_cache, $temp;
}
return $output . "\n$ws";
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment