gnuplot - PDF终端 - 设置Unicode字符(太阳质量符号/odot)

8
我试图在gnuplot (4.6.0)的pdf终端中设置LaTeX符号\odot。这个符号的确切语法是什么?
gnuplot FAQ 提供了一些线索,但我应该输入{/Symbol \2299}{/utf8 \2299}或其他一些变体,如\/#等?或者我应该使用set encoding utf8命令?直接粘贴符号似乎不起作用。
我应该使用pdf还是pdfcairo作为终端?后者会以无法忍受的方式影响我的图表。

为什么你不能只使用 $\odot$? - ev-br
因为据我所知,gnuplot的pdf终端不支持LaTeX语法。 - jtlz2
你需要使用PDF驱动程序吗?你可以使用LaTeX终端,带有LaTeX格式的图形,然后使用pdflatex创建最终图形...(可能有更简单的方法--你刚刚发现了我以前从未使用过的gnuplot角落) - mgilson
请注意,根据您需要的精度和字体选择,您可以使用带有“.”的普通O重叠--类似于(打开增强文本)~O{.35.}可能有效(您可能需要调整高度(.35)以使其看起来符合您的要求)。 - mgilson
2个回答

5

这里有一种使用epslatex终端的方法。在gnuplot或gnuplot脚本中运行以下命令:

set terminal epslatex standalone color
set output 'plot.tex'

set xlabel '$\odot$ is a \LaTeX symbol.'
plot sin(x)

然后你可以在生成的plot.tex上运行pdflatex,或者先用latex然后再用dvipdf。如果你不介意将LaTeX作为图中所有文本的解释器,这样做就没问题了。如果你只想包含\odot符号,我不确定该怎么做。

非常感谢 - 这似乎是一个非常有用的解决方法。但它会引起其他问题,例如在这种情况下,密钥现在太大了(不仅仅是字体 - 行之间的间距也很大)。您有任何关于如何重新缩小它的想法吗?再次感谢! - jtlz2
在LaTeX中调整字体大小可能有些棘手。您可以尝试将字体X添加到终端规范行中,其中X是字体大小。这样,您就可以在全局范围内缩小字体。或者您可以增加画布的大小(例如,在终端规范行中添加size 10,6),这将减小相对字体大小。 - andyras
嗨@andyras - 我怎样可以减小关键字中的行的大小,而不仅仅是附带文字的大小?谢谢! - jtlz2
我认为@mgilson已经在另一个问题中为您处理了这个问题。 - andyras

3
很简单。首先你需要选择支持Unicode的终端,然后就可以直接粘贴Unicode字符了。旧版pdf终端不支持Unicode,正如你发现的那样,但是更新的pdfcairo支持。你说它会破坏你的图表,但是怎么破坏的呢?我发现它产生的结果是一样的,但是质量更好(线条更平滑、抗锯齿和Unicode!)。
每个人安装的终端不同。在你的系统上可能支持Unicode的其他终端是pngcairo和svg。后者是一种矢量格式,就像pdf一样。如果你需要pdf作为最终文件,而pdfcairo对你不起作用,那么请使用其他能处理Unicode并转换文件的工具。如果你想要优秀的标签和数学装饰效果,那么LaTeX解决方案是最好的,但是为了控制输出,你需要熟练掌握LaTeX。

谢谢@Lee,这正是我在寻找的 - 知道标准PDF终端无法胜任很有帮助。我同意pdfcairo看起来更好,但它确实会导致问题;其中一个主要问题是关键字太大了 - 我该如何减小关键字的大小(例如,减小字体大小并不会减小线条的大小)??不过,我还是很喜欢epslatex路线 - 没有掌握LaTeX的问题;) - jtlz2
有许多参数可以设置来调整键的大小和间距;你需要调整哪个参数取决于键过大的具体情况。从你目前的描述中,我不确定,但我认为你可能想尝试这些:set key spacing xset key samplen y,其中你将尝试不同的x和y值。有关所有详细信息,请在gnuplot交互式图中键入help set key(如果您安装了帮助系统)。 - Lee Phillips

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接