Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

gnuplot - pdf terminal - setting unicode character (solar mass symbol/odot)

I'm trying to set the LaTeX \odot symbol in the gnuplot (4.6.0) pdf terminal. What is the exact syntax for this?

The gnuplot FAQ gives some clues, but should I type {/Symbol \2299}, or {/utf8 \2299}, or some other variation on \, /, # etc.? Or should I do set encoding utf8? Pasting the symbol in directly does not seem to work.

Should I use pdf or pdfcairo for the terminal? The latter affects my plots in intolerable ways.

like image 497
jtlz2 Avatar asked May 27 '12 07:05

jtlz2


2 Answers

Here is a way using the epslatex terminal. Run these commands in gnuplot or a gnuplot script:

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

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

Then you can run pdflatex on the resulting plot.tex, or latex followed by dvipdf. This works fine if you don't mind having LaTeX for the interpreter for all the text in your plot. If you want just the \odot symbol included I'm not sure how to do it.

like image 94
andyras Avatar answered Oct 06 '22 04:10

andyras


It is pretty simple. First you need to select a terminal that supports Unicode; then you can indeed paste your Unicode characters in directly. The old pdf terminal does not support Unicode, as you've found out, but the more recent pdfcairo does. You say it messes up your graphs, but how? I've found that it produces the same result, but with better quality (smoother lines, antialiasing, and Unicode!).

Everyone has a different set of terminals installed. Other terminals that might support Unicode on your system are pngcairo and svg. The latter is a vector format, like pdf. If you need pdf as a final file and pdfcairo is not working for you, use something else that can handle Unicode and convert the file. The LaTeX solution is ultimately the best if you want excellent labels and mathematical adornments, but to control the output you will need to get good at LaTeX.

like image 44
Lee Phillips Avatar answered Oct 06 '22 03:10

Lee Phillips