如何在gnuplot创建的png文件中添加希腊字符

时间:2013-09-11 23:57:00

标签: fonts gnuplot freebsd

我正在使用没有root帐户的FreeBSD系统的商业服务器。我用我的帐户安装gnuplot。但是,我无法设置字体。因此,我复制了我的主目录中的字体文件,例如〜/ usr / fonts

然后,我在gnuplot文件中使用了以下脚本:

set term png enhanced font '/home/Tom/usr/fonts/truetype/msttcorefonts/verdana.ttf'
set out 'xrd.png'
set xlabel '2 {/Symbol q}'; 
set ylabel 'Count'; 
set xrange [:];
set yrange [:];
unset key;
set border lw 1;
plot './data.txt' using 1:2 with l linetype 1 linewidth 1;
set term xterm;
set out ;

但是,运行脚本时出现以下错误:

gdImageStringFT: Could not find/open font while printing string q with font Symbol
gdImageStringFT: Could not find/open font while printing string q with font Symbol

这可能是因为我使用的字体'verdana.ttf'不正确。 但是,我可以使用Debian系统在我自己的PC上使用这种字体。

3 个答案:

答案 0 :(得分:4)

请勿使用/Symbol。那将不会使用Verdana字体。

根据this page,Verdana字体包含希腊字母。

通过将set encoding utf8添加到您的gnuplot文件来使用UTF-8编码。然后使用您喜欢的文本编辑器将unicode符号(根据this page:θ,希腊小写字母theta,U + 03B8)插入标签字符串。

答案 1 :(得分:0)

您可以使用“/符号”。只需在文件中添加“set encoding utf8”行 至少,它适用于arial字体。

答案 2 :(得分:0)

绘图定义文件本身需要以UTF-8编码。

以下是使用gnuplot打印UTF-8字符的所有先决条件:

  • 该文件需要包含一行set encoding utf8
  • 选项enhanced必须可用并为所选终端类型设置:set terminal … enhanced …
  • UTF-8字符的字形必须以所选字体提供。
  • 地图定义文件本身需要以UTF-8编码。

未能观察到最后一点,导致以下gnuplot错误:

Unable to convert "…�…": the sequence is invalid in the current charset (UTF-8),
falling back to iso_8859_1

将绘图文件从Microsoft Windows™传输到GNU / Linux时,可能会出现这种情况。

可以使用以下GNU / Linux命令检查绘图定义文件的字符编码:

$ file -bi bad.plt
text/plain; charset=iso-8859-1

要更正绘图定义文件的字符编码,请使用以下命令:

$ iconv -f iso-8859-1 -t utf-8 -o good.plt bad.plt