Linux下的GMT中文支持(2)

PS文件中的中文字体为CIDFont--CMap,这里CMap选择的是UniGB-UTF8-H,在Windows下似乎应该选择GB-EUC-H,尚不清楚原理;

使GMT支持中文

修改配置文件

打开GMT中文配置文件/opt/GMT-4.5.12/share/pslib/PS_font_info.d,在文件最后加入如下语句(以Windows字体为例):

STSong-Light--UniGB-UTF8-H 0.700 1 STFangsong-Light--UniGB-UTF8-H 0.700 1 STHeiti-Regular--UniGB-UTF8-H 0.700 1 STKaiti-Regular--UniGB-UTF8-H 0.700 1

第一列为字体名,第二列为字母A的高度,第三列与编码有关。

查看GMT当前支持的字体

用pstext -L命令查看GMT当前的字体配置:

1 2 3 4 5 6 7 8 9 10 11 12 13

 

$ pstext -L Font # Font Name ------------------------------------ 0 Helvetica 1 Helvetica-Bold ... ...... 32 Palatino-BoldItalic 33 ZapfChancery-MediumItalic 34 ZapfDingbats 35 STSong-Light--UniGB-UTF8-H 36 STFangsong-Light--UniGB-UTF8-H 37 STHeiti-Regular--UniGB-UTF8-H 38 STKaiti-Regular--UniGB-UTF8-H

 

其中0-34为GMT/gs默认支持的西文字体,35至38为新添加的中文字体。

GMT中文测试

GMT4测试脚本:

1 2 3 4 5 6 7 8 9 10 11

 

#!/bin/bash gmtset HEADER_FONT 35 pstext -R0/7/0/7 -JX6i/6i -B1/1:."GMT中文支持": -P > cn.ps <<EOF 1.5 5 35 0 35 LM GMT宋体 1.5 4 35 0 36 LM GMT仿宋 1.5 3 35 0 37 LM GMT黑体 1.5 2 35 0 38 LM GMT楷体 EOF rm .gmt*

 

成图效果如下

gmt4-chinese

GMT5测试脚本:

1 2 3 4 5 6 7 8 9 10 11

 

#!/bin/bash gmt gmtset FONT_TITLE 40p,35,black gmt pstext -R0/7/0/7 -JX6i/6i -Bafg -B+t"GMT中文支持" -F+a+c+f -P > gmt5_cn.ps << EOF 3.5 5 0 LM 45p,35,red GMT宋体 3.5 4 0 LM 45p,36,blue GMT仿宋 3.5 3 0 LM 45p,37,black GMT黑体 3.5 2 0 LM 45p,38,green GMT楷体 EOF rm gmt.*

 

成图效果如下

gmt5-chinese

可移植性的一些测试

本机:用vi打开PS文件,中文正常显示;

本机:gs查看正常;

本机:ps2raster转换为PDF,用evince、zathura查看正常;

本机:ps2pdf转换为PDF,用evince、zathura查看正常;

由于目前无其他机器可用,因而暂时不测试可移植性。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16155.html