【问题标题】:Octave: saving figure with greek letters and subscriptsOctave:用希腊字母和下标保存数字
【发布时间】:2015-01-31 11:59:36
【问题描述】:

我目前正在尝试使用 Octave 保存应力与应变曲线。在此图上,我想包含显示用于计算工程应力和工程应变的方程式的文本。这两个都需要希腊字母(分别为 \sigma 和 \epsilon)以及公式的下标。

目前,使用带有 -deps、-dpng 或任何其他设备的 print,它会创建一个文件,但是希腊字母显示为单词“sigma”和“epsilon”,以及任何有下标的地方,例如 0 ,它只是显示为“_0”。这看起来很不专业。

由于我要生成大约 25 个图表,我不想为每个图表都做一个屏幕截图。 octave 是否支持将生成的图形保存为显示?我打算稍后在 LaTeX 文档中使用生成的文件(最好是 png,这样我也可以单独通过电子邮件发送它们)。

我也尝试在 fltk 和 gnuplot 之间更改“graphics_toolkit”选项,但似乎没有帮助。

附在这篇文章中的是期望结果和实际结果的屏幕截图。

我目前“不允许”发布图片,所以我将它们链接起来: http://i.imgur.com/Tjt5Ecn.png(截图,想要的结果)和http://i.imgur.com/SP3hekd.png(直接保存,实际结果)

有没有人知道从 Octave 打印标题中包含希腊字符和下标的图形的好方法?

【问题讨论】:

标签: save special-characters octave figure


【解决方案1】:

由于您计划在 Latex 文档中使用图表,因此使用 -depslatex 生成图表并将其转换为 pdf 是一个好主意。 (结果看起来比直接 -dpdflatex 稍好)。 使用 -depslatex,您可以在图形中包含 Latex 代码,这些代码将写入单独的 tex 文件。 请注意,您需要使用双反斜杠\\ 来导出单个反斜杠。

graphics_toolkit("gnuplot");
...
legend("$\\varepsilon$");
print(sprintf("graph%s_%d.eps", name, type), '-depslatex', '-S200,270', '-F:9');
system(sprintf("epstopdf graph%s_%d.eps", name, type));

在 Latex 方面,您然后 \input Octave 生成​​的 tex 文件。从好的方面来说,由于您需要 25 张图,因此您可以在 Octave 和 Latex 两侧自动执行此过程。

\newcommand{\mygraph}[1]{%
\graphicspath{{./figures/}}
\resizebox{0.495\linewidth}{!}{\relscale{1.0}\small%
\input{./figures/#1.tex} 
}%
}
\mygraph{graph1_1}

在这里,Latex 命令\mygraph 被定义为缩放并包含位于子文件夹中的图形。

(我在 Ubuntu 12 上使用 Octave 4.0.0 和 gnuplot 4.4)

【讨论】:

    猜你喜欢
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 2014-06-20
    • 1970-01-01
    • 2021-07-16
    • 2021-07-02
    相关资源
    最近更新 更多