GMT 入门
GMT 实例
GMT 进阶
- 基础知识
- 表数据
- 网格文件
- 颜色表 CPT
- 标准选项
- 地图投影
- -JX: Linear, logarithmic, power, and time
- -JP: Polar/Cylindrical
- -JA: Lambert azimuthal equal area
- -JB: Albers conic equal area
- -JC: Cassini cylindrical
- -JCyl_stere: Cylindrical stereographic
- -JD: Equidistant conic
- -JE: Azimuthal equidistant
- -JF: Azimuthal gnomonic
- -JG: Azimuthal orthographic/General perspective
- -JH: Hammer equal area
- -JI: Sinusoidal equal area
- -JJ: Miller cylindrical
- -JK: Eckert equal area
- -JL: Lambert conic conformal
- -JM: Mercator cylindrical
- -JN: Robinson
- -JO: Oblique Mercator
- -JPoly: (American) polyconic
- -JQ: Equidistant cylindrical
- -JR: Winkel Tripel
- -JS: General stereographic
- -JT: Transverse Mercator
- -JU: Universal Transverse Mercator (UTM)
- -JV: Van der Grinten
- -JW: Mollweide
- -JY: Cylindrical equal area
- 配置参数
- 地学数据集
- 中国地理空间数据集
- 中文支持
- API
- 模块手册
- basemap
- begin
- clear
- clip
- coast
- colorbar
- contour
- coupe
- end
- figure
- filter1d
- fitcircle
- gmt
- gmt-config
- gmtbinstats
- gmtconnect
- gmtdefaults
- gmtget
- gmtinfo
- gmtlogo
- gmtmath
- gmtselect
- gmtset
- gmtsimplify
- gmtspatial
- gmtsplit
- gmtvector
- gmtwhich
- grd2cpt
- grd2xyz
- grdblend
- grdclip
- grdcontour
- grdconvert
- grdcut
- grdedit
- grdfill
- grdimage
- grdinfo
- grdlandmask
- grdmask
- grdmath
- grdpaste
- grdproject
- grdsample
- grdtrack
- grdtrend
- grdvector
- grdview
- grdvolume
- gshhg
- histogram
- image
- img2google
- img2grd
- kml2gmt
- makecpt
- mapproject
- mask
- meca
- nearneighbor
- plot
- polar
- project
- psconvert
- rose
- sac
- sample1d
- solar
- spectrum1d
- sph2grd
- sphdistance
- sphinterpolate
- sphtriangulate
- surface
- ternary
- text
- triangiulate
- velo
- wiggle
- x2sys_binlist
- x2sys_cross
- x2sys_datalist
- x2sys_get
- x2sys_init
- x2sys_list
- x2sys_merge
- x2sys_put
- x2sys_report
- x2sys_solve
- xyz2grd
- mgd77manage
- mgd77convert
- mgd77header
- mgd77info
- mgd77list
- mgd77magref
- mgd77path
- mgd77sniffer
- mgd77track
- legend
- docs
- subplot
- inset
附录
其他
LaTeX 表达式
- 贡献者
绘图过程中,用户可能会需要特殊字符标注或者显示公式。GMT 已经可以实现打印简单的特殊字符和转义序列,但如果想实现更加复杂的特殊字符和公式,则需要借助功能强大的 LaTeX。
语法
GMT 自 6.2 开始支持在文本字符串中嵌入 LaTeX 表达式,这些文本字符串包括使用 -B 选项 在标题、子标题或标签中指定的字符串,也包括通过 text 模块添加的单行文本。GMT 中 LaTeX 表达式可以用两种不同的写法表示:
使用
@[ ... @[
,如Plotting @[\Delta \sigma_{xx}^2@[
使用
<math> ... </math>
,如Plotting <math>\Delta \sigma_{xx}^2</math>
备注
若要在 GMT 6.2 以前的版本使用 LaTeX,请参考 https://blog.seisman.info/gmt-latex/
LaTeX 数学符号可参考:《一份(不太)简短的 LaTeX2ε 介绍》 中的符号表章节
下面展示了一个在 GMT 中使用 LaTeX 表达式的例子
#!/usr/bin/env bash gmt begin GMT_latex gmt basemap -R-200/200/0/50 -JX15c/4c \ -BSwen+t"Use <math>\Delta g = 2\pi\rho Gh</math>" \ -Bxaf+l"@[\nabla^4 \psi - \Delta \sigma_{xx}^2@[ (MPa)" gmt text -F+f15p << EOF 0 15 Newton's integral: <math>V = \int_{v} \frac{\mathrm{d}m}{l}</math> 0 30 Euler's formula: @[e^{ix} = \cos x + i \sin x@[ EOF gmt end show
在轴标签、标题以及 text 模块中使用 LaTeX 表达式
LaTeX 是一个庞大且复杂的排版系统,有许多可选包,用户安装的 LaTeX 需包括所有 GMT 必须的包。通过包管理器安装 LaTeX 的方法请见 GMT Wiki。其中,GMT 必须的包和字体包括:
必需包:fontenc 和 inputenc
必需字体:helvet、mathptmx、courier、symbol、avantgar、bookman、newcent、mathpazo、zapfchan 和 zapfding
上述必需包已经默认包含在所有的 LaTeX 发行版中,必需字体则可以在终端中执行如下命令安装:
tlmgr install collection-fontsrecommended
上述字体列表中的字体均可以匹配 GMT 中的字体。因此,如果用户通过 FONT_TITLE 修改了标题默认的字体,GMT 将在后台生成的 LaTeX 脚本中把该字体设置为默认字体。这种设置可以确保标题最终渲染的字体和用户设置的字体一致。
技术细节
GMT 中显示 LaTeX 表达式的原理:如果在文本字符串中发现特殊标识(即 @[
对或 <math> </math>
对),GMT 将使用 latex
和 dvips
命令(需提前安装 LaTeX 环境)把整行转换为 EPS 文件。然后,将该 EPS 文件放置在对应的位置。
这里通过一个实例来帮助用户排查 LaTeX 安装中可能存在的问题。假设用户使用 basemap 制作的图的标题为 -B+t"Use @[\Delta g = 2\pi\rho Gh@["
。GMT 会为该 LaTeX 表达式创建一个临时目录,其中包含一个名为 gmt_eq.tex
的文件:
\documentclass{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{helvet} \begin{document} \thispagestyle{empty} \fontfamily{phv}\selectfont Use $\Delta g = 2\pi\rho Gh$ \end{document}
由于 FONT_TITLE 设置为 Helvetica,LaTeX 文件将默认字体修改为 Helvetica( helvet 包, 代码为 phv ),该 tex 文件会被转换为 DVI 文件:
latex -interaction=nonstopmode gmt_eq.tex > /dev/null
接着,进一步将结果转换为 EPS 文件:
dvips -q -E gmt_eq.dvi -o equation.eps
这两个命令通过 gmt_eq.sh
脚本(在 windows 下为 gmt_eq.bat
)执行。如果命令成功执行,GMT 将读取 EPS 文件 equation.eps
并放置在标题的位置。如果脚本由于某些原因执行失败,GMT 将报错并指导用户在临时目录中进行进一步排查。此时,用户可以运行 latex
命令来查看报错信息(但要去除重定向 > /dev/null
)。通常情况下,报错信息会显示问题出现的原因,即缺少某种字体或其他信息。如果用户不能独立解决报错,请在 GMT 官方 GitHub 上提 issue 并提供 LaTeX 脚本和报错信息。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论