--- loncom/xml/lonplot.pm 2008/05/26 10:51:42 1.142 +++ loncom/xml/lonplot.pm 2008/05/27 10:40:30 1.143 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Dynamic plot # -# $Id: lonplot.pm,v 1.142 2008/05/26 10:51:42 foxr Exp $ +# $Id: lonplot.pm,v 1.143 2008/05/27 10:40:30 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -819,6 +819,13 @@ sub parse_label { return $result; } +# +# Note that there are severe restrictions on font selection in the +# ps driver now. later in life Gnuplot is supposed to support +# utf-8 fonts in the posts script driver. When this happens, +# the tex entries with comments that include the word +# should be changed to print the correct glyphs rather than some +# approximation or fallback of what is intended. my %lookup = ( # Greek alphabet: @@ -888,31 +895,31 @@ my %lookup = '#134' => {'tex' => '{/Text \262}', 'web' => "\x{2020}"}, '#135' => {'tex' => '{/Text \263}', 'web' => "\x{2021}"}, '#136' => {'tex' => '\\\\^', 'web' => '\\\\^'}, - '#137' => {'tex' => '{/Text \275}', 'web' => "\x{2030}"}, - '#138' => {'tex' => 'S', 'web' => "\x{160}"}, # no S-caron in ps fonts. + '#137' => {'tex' => '%o', 'web' => "\x{2030}"}, # Per Mille + '#138' => {'tex' => 'S', 'web' => "\x{160}"}, # S-Caron '#139' => {'tex' => '<', 'web' => '<'}, - '#140' => {'tex' => '{/Text \352}', 'web' => "\x{152}"}, + '#140' => {'tex' => 'AE', 'web' => "\x{152}"}, # AE ligature '#145' => {'tex' => '\140', 'web' => "\x{2018}"}, '#146' => {'tex' => '\47', 'web' => "\x{2019}"}, - '#147' => {'tex' => '{/Text \252}', 'web' => "\x{201c}"}, - '#148' => {'tex' => '{/Text \315}', 'web' => '\\"'}, + '#147' => {'tex' => '\140\140', 'web' => "\x{201c}"}, # Left " + '#148' => {'tex' => '\47\47', 'web' => '\\"'}, # Right " '#149' => {'tex' => '{/Symbol \267}', 'web' => "\x{2022}"}, - '#150' => {'tex' => '{/Text \55}', 'web' => "\x{2013}"}, #Untested here en dash + '#150' => {'tex' => '{/Text \55}', 'web' => "\x{2013}"}, # en dash '#151' => {'tex' => '{/Symbol \55}', 'web' => "\x{2014}"}, # em dash - '#152' => {'tex' => '~', 'web' => '~'}, - '#153' => {'tex' => '{/Text \324}', 'web' => "\x{2122}"}, # trademark + '#152' => {'tex' => '\\\\~', 'web' => '\\\\~'}, + '#153' => {'tex' => '{/Symbol \324}', 'web' => "\x{2122}"}, # trademark # Accented letters, and other furreign language glyphs. '#154' => {'tex' => 's', 'web' => "\x{161}"}, # small s-caron no ps. '#155' => {'tex' => '>', 'web' => '\76'}, # > - '#156' => {'tex' => '{/Text \372}', 'web' => "\x{153}"}, # oe ligature. - '#159', => {'tex' => 'Y', 'web' => "\x{178}"}, # Y-umlaut - can't print + '#156' => {'tex' => '{/Text \366}', 'web' => "\x{153}"}, # oe ligature. + '#159', => {'tex' => 'Y', 'web' => "\x{178}"}, # Y-umlaut - can't print '(nbsp|#160)' => {'tex' => ' ', 'web' => ' '}, # non breaking space. '(iexcl|#161)' => {'tex' => '{/Text \241}', 'web' => "\x{a1}"}, # inverted ! '(cent|#162)' => {'tex' => '{/Text \242}', 'web' => "\x{a2}"}, # Cent currency. '(pound|#163)' => {'tex' => '{/Text \243}', 'web' => "\x{a3}"}, # GB Pound currency. - '(curren|#164)' => {'tex' => '{/Text \250}', 'web' => "\x{a4}"}, # Generic currency symb. + '(curren|#164)' => {'tex' => '{/ZapfDingbats \161}','web' => "\x{a4}"}, # Generic currency symb. '(yen|#165)' => {'tex' => '{/Text \245}', 'web' => "\x{a5}"}, # Yen currency. '(brvbar|#166)' => {'tex' => '{/Symbol \174}', 'web' => "\x{a6}"}, # Broken vert bar no print. '(sect|#167)' => {'tex' => '{\247}', 'web' => "\x{a7}"}, # Section symbol. @@ -921,20 +928,20 @@ my %lookup = '(ordf|#170)' => {'tex' => '{/Text \343}', 'web' => "\x{aa}"}, # Feminine ordinal. '(laquo|#171)' => {'tex' => '{/Text \253}', 'web' => "\x{ab}"}, # << quotes. '(not|#172)' => {'tex' => '\254', 'web' => "\x{ac}"}, # Logical not. - '(shy|#173)' => {'tex' => '-', 'web' => "\x{ad}"}, # soft hyphen. + '(shy|#173)' => {'tex' => '\255', 'web' => "\x{ad}"}, # soft hyphen. '(reg|#174)' => {'tex' => '{/Symbol \342}', 'web' => "\x{ae}"}, # Registered tm. - '(macr|#175)' => {'tex' => '^{-}', 'web' => "\x{af}"}, # 'naked' macron (overbar). - '(deg|#176)' => {'tex' => '{/Text \312}', 'web' => "\x{b0}"}, # Degree symbo.. + '(macr|#175)' => {'tex' => '^{\255}', 'web' => "\x{af}"}, # 'naked' macron (overbar). + '(deg|#176)' => {'tex' => '{/Text \260}', 'web' => "\x{b0}"}, # Degree symbo..` '(plusmn|#177)' => {'tex' => '{/Symbol \261}', 'web' => "\x{b1}"}, # +/- symbol. '(sup2|#178)' => {'tex' => '^2', 'web' => "\x{b2}"}, # Superscript 2. '(sup3|#179)' => {'tex' => '^3', 'web' => "\x{b3}"}, # Superscript 3. - '(acute|#180)' => {'tex' => '{/Text \302}', 'web' => "\x{b4}"}, # 'naked' acute accent. + '(acute|#180)' => {'tex' => '{/Text \222}', 'web' => "\x{b4}"}, # 'naked' acute accent. '(micro|#181)' => {'tex' => '{/Symbol \155}', 'web' => "\x{b5}"}, # Micro (small mu). '(para|#182)' => {'tex' => '{/Text \266}', 'web' => "\x{b6}"}, # Paragraph symbol. - '(middot|#183)' => {'tex' => '^.', 'web' => "\x{b7}"}, # middle dot (maybe text 267 is better)? + '(middot|#183)' => {'tex' => '\267', 'web' => "\x{b7}"}, # middle dot '(cedil|#184)' => {'tex' => '\233', 'web' => "\x{b8}"}, # 'naked' cedilla. '(sup1|#185)' => {'tex' => '^1', 'web' => "\x{b9}"}, # superscript 1. - '(ordm|#186)' => {'tex' => '\353', 'web' => "\x{ba}"}, # masculine ordinal. + '(ordm|#186)' => {'tex' => '{\260}', 'web' => "\x{ba}"}, # masculine ordinal. '(raquo|#187)', => {'tex' => '\273', 'web' => "\x{bb}"}, # Right angle quotes. '(frac14|#188)' => {'tex' => '\274', 'web' => "\x{bc}"}, # 1/4. '(frac12|#189)' => {'tex' => '\275', 'web' => "\x{bd}"}, # 1/2. @@ -992,7 +999,7 @@ my %lookup = '(ntilde|#241)' => {'tex' => '\361', 'web' => "\x{f1}"}, # n tilde. '(ograve|#242)' => {'tex' => '\362', 'web' => "\x{f2}"}, # o grave. '(oacute|#243)' => {'tex' => '\363', 'web' => "\x{f3}"}, # o acute. - '(ocirc'|#244)' => {'tex' => '\364', 'web' => "\x{f4}"}, # o circumflex. + '(ocirc|#244)' => {'tex' => '\364', 'web' => "\x{f4}"}, # o circumflex. '(otilde|#245)' => {'tex' => '\365', 'web' => "\x{f5}"}, # o tilde. '(ouml|#246)' => {'tex' => '\366', 'web' => "\x{f6}"}, # o umlaut. '(divide|#247)' => {'tex' => '\367', 'web' => "\x{f7}"}, # division symbol @@ -1007,15 +1014,15 @@ my %lookup = # Latin extended A entities: - '(OElig|#338)' => {'tex' => '{/Text \352}', 'web' => "\x{152}"}, # OE ligature. - '(oelig|#339)' => {'tex' => '{/Text \372}', 'web' => "\x{153}"}, # oe ligature. + '(OElig|#338)' => {'tex' => '{/Text \326}', 'web' => "\x{152}"}, # OE ligature. + '(oelig|#339)' => {'tex' => '{/Text \366}', 'web' => "\x{153}"}, # oe ligature. '(Scaron|#352)' => {'tex' => 'S', 'web' => "\x{160}"}, # S caron no printable. '(scaron|#353)' => {'tex' => 's', 'web' => "\x{161}"}, # s caron no printable. '(Yuml|#376)' => {'tex' => 'Y', 'web' => "\x{178}"}, # Y umlaut - no printable. # Latin extended B. - '(fnof|#402)' => {'tex' =>'{/Symbol 246}', 'web' => "\x{192}"}, # f with little hook. + '(fnof|#402)' => {'tex' =>'{/Symbol \246}', 'web' => "\x{192}"}, # f with little hook. # Standalone accents: @@ -1570,6 +1577,8 @@ sub write_gnuplot_file { $gnuplot_input .= $fontsize; $gnuplot_input .= "\nset output \"/home/httpd/perl/tmp/". &unescape($filename).".eps\"\n"; + $gnuplot_input .= "set encoding iso_8859_1\n"; # Get access to extended font. + } # cartesian or polar plot? if (lc($Apache::lonplot::plot{'plottype'}) eq 'polar') {