macOS 下的 GMT 中文支持¶
本文介紹如何讓 GMT 在 macOS 下支持中文。
ghostscript的中文支持¶
首先需要使 ghostscript 支持中文,這可以通過 cjk-gs-support 項目提供的腳本 cjk-gs-integrate.pl 實現。
下載腳本 cjk-gs-integrate.pl
cjk-gs-integrate.pl
腳本的執行依賴於命令kpsewhich
,該命令由 TeXLive 提供。執行kpsewhich --version
檢查kpsewhich
這個命令是否存在。若不存在,則需要單獨安裝。使用homebrew安裝 basictex 或 mactex-no-gui:# 以下二選一即可,第一個更小,第二個更完整 brew cask install basictex brew cask install mactex-no-gui
執行腳本:
$ sudo perl cjk-gs-integrate.pl
該腳本會自動搜索系統中自帶的中文字體,並生成gs支持中文所需的配置文件。
GMT的中文支持¶
在 ~/.gmt
(若無該文件夾,請自行新建)下創建字體配置文件:
$ touch ~/.gmt/PSL_custom_fonts.txt
$ open ~/.gmt/PSL_custom_fonts.txt
打開 GMT 字體配置文件,在文件中加入如下語句:
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
STSong-Light--UniGB-UTF8-V 0.700 1
STFangsong-Light--UniGB-UTF8-V 0.700 1
STHeiti-Regular--UniGB-UTF8-V 0.700 1
STKaiti-Regular--UniGB-UTF8-V 0.700 1
這幾句話分別添加了宋體、仿宋、黑體和楷體四種字體的橫排和豎排兩種方式。
用 gmt text -L
命令查看 GMT 當前的字體配置:
$ gmt text -L
Font # Font Name
------------------------------------
0 Helvetica
1 Helvetica-Bold
... ......
39 STSong-Light--UniGB-UTF8-H
40 STFangsong-Light--UniGB-UTF8-H
41 STHeiti-Regular--UniGB-UTF8-H
42 STKaiti-Regular--UniGB-UTF8-H
43 STSong-Light--UniGB-UTF8-V
44 STFangsong-Light--UniGB-UTF8-V
45 STHeiti-Regular--UniGB-UTF8-V
46 STKaiti-Regular--UniGB-UTF8-V
其中 39-46 號字體爲新添加的中文字體。以後要用中文字體時,需要用這些編號來指定字體,也許你的機器上的編號和這裏不同。
GMT 中文測試¶
注解
請自行確認你的中文字體編號。如果編號不是39到46,請自行修改以下測試腳本。
#!/bin/bash
gmt begin GMT_Chinese pdf,png
gmt set FONT_TITLE 25p,41,black
gmt set FONT_LABEL 15p,39,black
gmt text -R0/8/0/4 -JX12c/4c -Bxaf+l"X轴" -Byaf+l"Y轴" -BWSen+t"中文标题" -F+f << EOF
2 3.5 25p,39,black 中文宋体
2 2.5 25p,40,blue 中文仿宋
2 1.5 25p,41,red 中文黑体
2 0.5 25p,42,green 中文楷体
4 3.5 25p,43,black 中文宋体
5 3.5 25p,44,blue 中文仿宋
6 3.5 25p,45,red 中文黑体
7 3.5 25p,46,green 中文楷体
EOF
gmt end
成圖效果如下:
注解
生成的 PNG、JPG格式的圖片中可直接顯示中文,而生成的 PDF 文件用 macOS 自帶的 PDF 預覽工具打開無法顯示中文,使用 Adobe Reader 打開則可以正常顯示中文。