Gnuplot epslatex终端下不改变图像尺寸调整坐标轴与图例字体大小
问题根因
epslatex终端的设计逻辑是将所有文本内容(刻度标签、坐标轴标签、图例等)完全交由后续的LaTeX编译流程渲染,终端配置中的font参数仅对Gnuplot自身渲染文本的终端(如wxt、pngcairo等)生效,对epslatex终端会被直接忽略,这就是此前添加font '20'配置后没有任何效果的原因。
注意:epslatex终端下
set key font、set xtics font这类Gnuplot内置的字体大小配置同样不会生效,所有字体大小的调整必须通过LaTeX渲染环节的命令实现。
符合需求的配置方法
以下配置完全保留原有7.0in固定输出尺寸、绘图区比例设置,仅针对x/y轴刻度标签、图例区域调大字体,不会改变最终输出图像的物理大小:
- 首先移除终端语句中无效的
font '20'参数,保留原有颜色、尺寸、standalone配置不变:set terminal epslatex color size 7.0in,7.00in standalone - 单独调整x、y轴刻度标签字号:利用epslatex会将刻度格式字符串原样传给LaTeX渲染的特性,在刻度格式中嵌入LaTeX字号命令。如果需要使用此前尝试的20pt字号,配置如下:
set xtics format "$\\fontsize{20pt}{24pt}\\selectfont %g$" set ytics format "$\\fontsize{20pt}{24pt}\\selectfont %g$" - 调整图例(key)区域的字体大小:将plot命令中图例对应的title文本中嵌入同样的LaTeX字号命令即可,示例配置:
plot f(x) w l lw 2.0 title "{\\fontsize{20pt}{24pt}\\selectfont Initial condition}" - 原脚本中控制绘图区比例的
set size ratio 1.25配置完全保留,不会改动总输出尺寸。
补充说明
- 以上操作的尺寸稳定性:Gnuplot会在固定的画布范围内自动调整绘图区边距,为放大的文本预留足够空间,严格保持你预设的7.0in总输出尺寸,不会因为文本放大导致整体图像尺寸变化。
- 全局字号调整方案:如果需要一次性统一调整所有文本(包括坐标轴标签)的字号,不需要单独给刻度、图例添加字号命令,可以在终端配置的
header参数中传入全局LaTeX字号设置,示例:set terminal epslatex color size 7.0in,7.00in standalone header "\\fontsize{20pt}{24pt}\\selectfont"
内容的提问来源于stack exchange,提问作者newstudent
相关产品推荐
相关产品推荐

