Gnuplot epslatex 终端无法显示埃符号 Å,如何解决?
先去掉 \AA 外面的 $...$,让埃符号在 LaTeX 文本模式下排版:
set xlabel 'Wavelength, (\AA)'
原代码在 Gnuplot 双引号字符串中已经使用双反斜杠转义,首先需要调整的是 \AA 所处的排版模式。由于没有提供 LaTeX 编译日志,暂时无法确认是否还存在字体或编译环境方面的问题。
为什么原写法会出问题?
epslatex 将图形和文字分别输出,文字交给 LaTeX 排版,标签中的命令因此需要符合 LaTeX 的使用规则。Gnuplot epslatex 文档
LaTeX 中的 \AA 用于生成 Å,内核将它定义为 \r A,属于文本重音字符的写法。原标签中的 ${\\AA}$ 经过 Gnuplot 转义处理后,会将 \AA 放进 LaTeX 数学模式;直接这样使用可能引发命令在数学模式下无效的错误。外层花括号不能切换排版模式。LaTeX 内核定义
如何修改标签?
标签没有数学公式时,直接使用文本模式即可。以下两种 Gnuplot 写法等价,任选一种:
# 单引号字符串:保留一个反斜杠
set xlabel 'Wavelength, (\AA)'
# 双引号字符串:反斜杠需要转义
set xlabel "Wavelength, (\\AA)"
Gnuplot 对单引号和双引号字符串中的反斜杠处理不同,使用单引号书写这类 LaTeX 命令更方便。Gnuplot 字符串引号规则
如果标签确实需要数学模式,可以用 \textrm{...} 包住文本符号:
set xlabel 'Wavelength, ($\textrm{\AA}$)'
如何检查完整输出?
可以用下面的最小示例生成独立 LaTeX 文件,其中的函数只用于演示标签:
set term epslatex standalone color colortext
set output 'angstrom.tex'
set xlabel 'Wavelength, (\AA)'
plot [0:1] x notitle
set output
在具备 LaTeX 和 PostScript 工具链的环境中,可以运行:
latex angstrom.tex
dvips -o angstrom.ps angstrom.dvi
应查看编译后的完整图形。epslatex 的文字保存在 .tex 文件中,单独打开生成的 EPS 文件无法检查最终标签。Gnuplot epslatex 输出说明
如果仍无法显示,先检查生成的 .tex 文件,确认标签包含 Wavelength, (\AA),再查看 LaTeX 日志中的首个错误。如果命令已正确写入,但编译仍报字体或编码错误,就根据具体日志检查字体配置。现有信息不足以认定这是 Gnuplot 5.4 patchlevel 3 的版本缺陷。
备注:内容仅供参考。
