[LON-CAPA-cvs] cvs: loncom / loncapa_apache.conf /xml lonplot.pm
albertel
lon-capa-cvs-allow@mail.lon-capa.org
Mon, 30 Jul 2007 21:50:29 -0000
This is a MIME encoded message
--albertel1185832229
Content-Type: text/plain
albertel Mon Jul 30 17:50:29 2007 EDT
Modified files:
/loncom loncapa_apache.conf
/loncom/xml lonplot.pm
Log:
- BUG#5234 give font face choices to plotting
- make capitalization of options the same
--albertel1185832229
Content-Type: text/plain
Content-Disposition: attachment; filename="albertel-20070730175029.txt"
Index: loncom/loncapa_apache.conf
diff -u loncom/loncapa_apache.conf:1.167 loncom/loncapa_apache.conf:1.168
--- loncom/loncapa_apache.conf:1.167 Wed Apr 25 20:59:32 2007
+++ loncom/loncapa_apache.conf Mon Jul 30 17:50:10 2007
@@ -1,7 +1,7 @@
##
## loncapa_apache.conf -- Apache HTTP LON-CAPA configuration file
##
-## $Id: loncapa_apache.conf,v 1.167 2007/04/26 00:59:32 banghart Exp $
+## $Id: loncapa_apache.conf,v 1.168 2007/07/30 21:50:10 albertel Exp $
##
#
@@ -1393,7 +1393,7 @@
PerlSetVar lonPrtDir /home/httpd/prtspool
PerlSetVar lonIncludes /home/httpd/html/res/adm/includes
PerlSetVar lonZipDir /home/httpd/zipspool
-
+PerlSetVar lonFontsDir /home/httpd/html/adm/fonts
# & separated list of : separated fields in order of
# - internal name to call it,
# - regexp that it should match (done case-insensitively)
@@ -1402,7 +1402,7 @@
# - a number that describes the minimum version that has mathml support
# - a number that describes the minimum number version that has unicode support
-PerlSetVar lonBrowsDet explorer:msie:netscape:msie\s(\d+\.\d+)\;:9999:9999&mozilla:mozilla\/[5-9]:msie:mozilla\/(\d+\.\d+)\s:9999:1&netscape:netscape:msie:netscape\/(\d+\.\d+):9999:7&netscape:netscape\/[7-9]:shouldnotmatch:netscape\/(\d+\.\d+):9999:7&amaya:amaya:mozilla:V(\d+\.\d+)\s:1:1&safari:safari:msie:safari\/([\d\.]+):9999:84
+PerlSetVar lonBrowsDet explorer:msie:netscape:msie\s(\d+\.\d+)\;:9999:9999&mozilla:mozilla\/[5-9]:msie:mozilla\/(\d+\.\d+)\s:9999:1&netscape:netscape:msie:netscape\/(\d+\.\d+):9999:7&netscape:netscape\/[7-9]:shouldnotmatch:netscape\/(\d+\.\d+):9999:7&amaya:amaya:mozilla:V(\d+\.\d+)\s:1:1&safari:safari:msie:safari\/(\d+)[\.\d+]:9999:84
PerlSetVar lonTextBrowsers windows\s+ce:lynx
PerlSetVar lonScansDir /home/httpd/scantron
Index: loncom/xml/lonplot.pm
diff -u loncom/xml/lonplot.pm:1.119 loncom/xml/lonplot.pm:1.120
--- loncom/xml/lonplot.pm:1.119 Mon Jun 18 21:15:24 2007
+++ loncom/xml/lonplot.pm Mon Jul 30 17:50:29 2007
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Dynamic plot
#
-# $Id: lonplot.pm,v 1.119 2007/06/19 01:15:24 albertel Exp $
+# $Id: lonplot.pm,v 1.120 2007/07/30 21:50:29 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -127,7 +127,7 @@
## ##
###################################################################
my @gnuplot_edit_order =
- qw/alttag bgcolor fgcolor height width font transparent grid samples
+ qw/alttag bgcolor fgcolor height width fontface font transparent grid samples
border align texwidth texfont plotcolor plottype gridtype lmargin rmargin
tmargin bmargin major_ticscale minor_ticscale boxwidth gridlayer fillstyle
pattern solid/;
@@ -139,35 +139,35 @@
alttag => {
default => 'dynamically generated plot',
test => $words_test,
- description => 'brief description of the plot',
+ description => 'Brief description of the plot',
edit_type => 'entry',
size => '40'
},
height => {
default => 300,
test => $int_test,
- description => 'height of image (pixels)',
+ description => 'Height of image (pixels)',
edit_type => 'entry',
size => '10'
},
width => {
default => 400,
test => $int_test,
- description => 'width of image (pixels)',
+ description => 'Width of image (pixels)',
edit_type => 'entry',
size => '10'
},
bgcolor => {
default => 'xffffff',
test => $color_test,
- description => 'background color of image (xffffff)',
+ description => 'Background color of image (xffffff)',
edit_type => 'entry',
size => '10'
},
fgcolor => {
default => 'x000000',
test => $color_test,
- description => 'foreground color of image (x000000)',
+ description => 'Foreground color of image (x000000)',
edit_type => 'entry',
size => '10'
},
@@ -209,6 +209,13 @@
edit_type => 'choice',
choices => [['5','5 (small)'],'7',['9','9 (medium)'],'10','12',['15','15 (large)']]
},
+ fontface => {
+ default => 'sans-serif',
+ test => sub {$_[0]=~/^(sans-serif|serif|classic)$/},
+ description => 'Type of font to use',
+ edit_type => 'choice',
+ choices => ['sans-serif','serif', 'classic']
+ },
samples => {
default => '100',
test => $int_test,
@@ -219,7 +226,7 @@
align => {
default => 'middle',
test => sub {$_[0]=~/^(left|right|middle|center)$/},
- description => 'alignment for image in html',
+ description => 'Alignment for image in HTML',
edit_type => 'choice',
choices => ['left','right','middle']
},
@@ -247,7 +254,7 @@
pattern => {
default => '',
test => $int_test,
- description => 'pattern value for boxes:',
+ description => 'Pattern value for boxes:',
edit_type => 'choice',
choices => [0,1,2,3,4,5,6]
},
@@ -310,7 +317,7 @@
boxwidth => {
default => '',
test => $real_test,
- description => 'width of boxes default auto',
+ description => 'Width of boxes, default is auto',
edit_type => 'entry',
size => '5'
},
@@ -348,7 +355,7 @@
pos => {
default => 'top right',
test => $key_pos_test,
- description => 'position of the key on the plot',
+ description => 'Position of the key on the plot',
edit_type => 'choice',
choices => ['top left','top right','bottom left','bottom right',
'outside','below']
@@ -360,14 +367,14 @@
xpos => {
default => 0,
test => $real_test,
- description => 'x position of label (graph coordinates)',
+ description => 'X position of label (graph coordinates)',
edit_type => 'entry',
size => '10'
},
ypos => {
default => 0,
test => $real_test,
- description => 'y position of label (graph coordinates)',
+ description => 'Y position of label (graph coordinates)',
edit_type => 'entry',
size => '10'
},
@@ -394,7 +401,7 @@
mirror => {
default => 'on',
test => $onoff_test,
- description => 'mirror tics on opposite axis?',
+ description => 'Mirror tics on opposite axis?',
edit_type => 'onoff'
},
start => {
@@ -433,35 +440,35 @@
color => {
default => 'x000000',
test => $color_test,
- description => 'color of grid lines (x000000)',
+ description => 'Color of grid lines (x000000)',
edit_type => 'entry',
size => '10'
},
xmin => {
default => '-10.0',
test => $real_test,
- description => 'minimum x-value shown in plot',
+ description => 'Minimum x-value shown in plot',
edit_type => 'entry',
size => '10'
},
xmax => {
default => ' 10.0',
test => $real_test,
- description => 'maximum x-value shown in plot',
+ description => 'Maximum x-value shown in plot',
edit_type => 'entry',
size => '10'
},
ymin => {
default => '-10.0',
test => $real_test,
- description => 'minimum y-value shown in plot',
+ description => 'Minimum y-value shown in plot',
edit_type => 'entry',
size => '10'
},
ymax => {
default => ' 10.0',
test => $real_test,
- description => 'maximum y-value shown in plot',
+ description => 'Maximum y-value shown in plot',
edit_type => 'entry',
size => '10'
}
@@ -474,14 +481,14 @@
color => {
default => 'x000000',
test => $color_test,
- description => 'color of curve (x000000)',
+ description => 'Color of curve (x000000)',
edit_type => 'entry',
size => '10'
},
name => {
default => '',
test => $words_test,
- description => 'name of curve to appear in key',
+ description => 'Name of curve to appear in key',
edit_type => 'entry',
size => '20'
},
@@ -502,21 +509,21 @@
pointsize => {
default => 1,
test => $pos_real_test,
- description => 'point size (may not apply to all line styles)',
+ description => 'Point size (may not apply to all line styles)',
edit_type => 'entry',
size => '5'
},
pointtype => {
default => 1,
test => $int_test,
- description => 'point type (may not apply to all line styles)',
+ description => 'Point type (may not apply to all line styles)',
edit_type => 'choice',
choices => [0,1,2,3,4,5,6]
},
limit => {
default => 'closed',
test => sub {$_[0]=~/^(closed|x1|x2|y1|y2)$/},
- description => 'point to fill -- for filledcurves',
+ description => 'Point to fill -- for filledcurves',
edit_type => 'choice',
choices => ['closed','x1','x2','y1','y2']
},
@@ -674,9 +681,30 @@
}
##-----------------------------------------------------------------font
+my %font_properties =
+ (
+ 'classic' => {
+ face => 'classic',
+ file => 'DejaVuSansMono-Bold',
+ printname => 'Helvetica',
+ },
+ 'sans-serif' => {
+ face => 'sans-serif',
+ file => 'DejaVuSans',
+ printname => 'DejaVuSans',
+ },
+ 'serif' => {
+ face => 'serif',
+ file => 'DejaVuSerif',
+ printname => 'DejaVuSerif',
+ },
+ );
+
sub get_font {
- my ($size);
+ my ($size, $selected_font);
+
if ( $Apache::lonplot::plot{'font'} =~ /^(small|medium|large)/) {
+ $selected_font = $font_properties{'classic'};
if ( $Apache::lonplot::plot{'font'} eq 'small') {
$size = '5';
} elsif ( $Apache::lonplot::plot{'font'} eq 'medium') {
@@ -687,9 +715,9 @@
$size = '9';
}
} else {
- $size = $Apache::lonplot::plot{'font'};
+ $selected_font = $font_properties{$Apache::lonplot::plot{'fontface'}};
}
- return ($size);
+ return ($size, $selected_font);
}
##----------------------------------------------------------------- key
@@ -1086,6 +1114,7 @@
##------------------------------------------------------- write_gnuplot_file
sub write_gnuplot_file {
my ($tmpdir,$filename,$target)= @_;
+ my ($fontsize, $font_properties) = &get_font();
my $gnuplot_input = '';
my $curve;
my $pt = $Apache::lonplot::plot{'texfont'};
@@ -1119,16 +1148,23 @@
}
# set term
if ($target eq 'web') {
- $gnuplot_input .= 'set term '.$weboutputformat .' enhanced ';
+ $gnuplot_input .= 'set terminal png enhanced nocrop ';
$gnuplot_input .= 'transparent ' if ($Apache::lonplot::plot{'transparent'} eq 'on');
- $gnuplot_input .= $Apache::lonplot::plot{'font'} . ' ';
- $gnuplot_input .= 'size '.$Apache::lonplot::plot{'width'}.','.$Apache::lonplot::plot{'height'}.' ';
+ $gnuplot_input .= 'font "'.$Apache::lonnet::perlvar{'lonFontsDir'}.
+ '/'.$font_properties->{'file'}.'.ttf" ';
+ $gnuplot_input .= $fontsize;
+ $gnuplot_input .= ' size '.$Apache::lonplot::plot{'width'}.','.$Apache::lonplot::plot{'height'}.' ';
$gnuplot_input .= "@Colors\n";
# set output
$gnuplot_input .= "set output\n";
} elsif ($target eq 'tex') {
- $gnuplot_input .= "set term postscript eps enhanced $Apache::lonplot::plot{'plotcolor'} solid \"Helvetica\" $pt \n";
- $gnuplot_input .= "set output \"/home/httpd/perl/tmp/".
+ $gnuplot_input .= "set term postscript eps enhanced $Apache::lonplot::plot{'plotcolor'} solid ";
+ $gnuplot_input .=
+ 'fontfile "'.$Apache::lonnet::perlvar{'lonFontsDir'}.
+ '/'.$font_properties->{'file'}.'.pfb" ';
+ $gnuplot_input .= ' "'.$font_properties->{'printname'}.'" ';
+ $gnuplot_input .= $fontsize;
+ $gnuplot_input .= "\nset output \"/home/httpd/perl/tmp/".
&unescape($filename).".eps\"\n";
}
# cartesian or polar plot?
@@ -1193,11 +1229,11 @@
# title, xlabel, ylabel
# titles
if ($target eq 'tex') {
- $gnuplot_input .= "set title \"$title\" font \"Helvetica,".$pt."pt\"\n" if (defined($title)) ;
- $gnuplot_input .= "set xlabel \"$xlabel\" font \"Helvetica,".$pt."pt\" \n" if (defined($xlabel));
- $gnuplot_input .= "set ylabel \"$ylabel\" font \"Helvetica,".$pt."pt\"\n" if (defined($ylabel));
+ $gnuplot_input .= "set title \"$title\" font \"".$font_properties->{'printname'}.",".$pt."pt\"\n" if (defined($title)) ;
+ $gnuplot_input .= "set xlabel \"$xlabel\" font \"".$font_properties->{'printname'}.",".$pt."pt\"\n" if (defined($xlabel));
+ $gnuplot_input .= "set ylabel \"$ylabel\" font \"".$font_properties->{'printname'}.",".$pt."pt\"\n" if (defined($ylabel));
} else {
- $gnuplot_input .= "set title \"$title\" \n" if (defined($title)) ;
+ $gnuplot_input .= "set title \"$title\" \n" if (defined($title)) ;
$gnuplot_input .= "set xlabel \"$xlabel\" \n" if (defined($xlabel));
$gnuplot_input .= "set ylabel \"$ylabel\" \n" if (defined($ylabel));
}
@@ -1243,14 +1279,14 @@
$gnuplot_input .= 'set label "'.$label->{'text'}.'" at '.
$label->{'xpos'}.','.$label->{'ypos'}.' '.$label->{'justify'};
if ($target eq 'tex') {
- $gnuplot_input .=' font "Helvetica,'.$pt.'pt"' ;
+ $gnuplot_input .=' font "'.$font_properties->{'printname'}.','.$pt.'pt"' ;
}
$gnuplot_input .= $/;
}
if ($target eq 'tex') {
$gnuplot_input .="set size 1,".$Apache::lonplot::plot{'height'}/$Apache::lonplot::plot{'width'}*1.38;
$gnuplot_input .="\n";
- }
+ }
# curves
$gnuplot_input .= 'plot ';
for (my $i = 0;$i<=$#curves;$i++) {
--albertel1185832229--