У меня есть этот код в файле orgmode Emacs:
#+begin_src gnuplot :exports results :file images/sinecosine.png
reset
set terminal png size 360, 360 enhanced
# Line styles
set border linewidth 1
set style line 1 linecolor rgb '#0060ad' linetype 1 linewidth 1 # blue
set style line 2 linecolor rgb '#dd181f' linetype 1 linewidth 1 # red
# Legend
set key at 6.1,1.3
# Axes label
set xlabel 'x'
set ylabel 'y'
set xzeroaxis linetype 2 linewidth 1
set yzeroaxis linetype 2 linewidth 1
# Axis ranges
set xrange[-2*pi:2*pi]
set yrange[-1.5:1.5]
# Axis labels
set xtics ("-2{/Symbol P}" -2*pi, "-{/Symbol P}" -pi, 0, "{/Symbol P}" pi, "2{/Symbol P}" 2*pi)
set ytics 1
set tics scale 0.75
# Functions to plot
a = 0.9
f(x) = a * sin(x)
g(x) = a * cos(x)
# Plot
plot f(x) title 'sin(x)' with lines ls 1, \
g(x) notitle with lines ls 2
#+end_src
и он дает gnuplot (3.7) без правильного символа пи - как в этом и этом посте. Да, я могу заставить эту версию eps работать, но не эту версию png (или svg), которая необходима для экспорта в HTML. Есть новые идеи?
Обновление
Вот автономный код, который я пробовал - успешно:
reset
set encoding utf8
set terminal svg enhanced fname 'Times New Roman' rounded dashed standalone
set output "gp-test4-output.svg"
# Line styles
set border linewidth 1
set style line 1 linecolor rgb '#0060ad' linetype 1 linewidth 1 # blue
set style line 2 linecolor rgb '#dd181f' linetype 1 linewidth 1 # red
# Legend
set key at 6.1,1.3
# Axes label
set xlabel 'x'
set ylabel 'y'
set xzeroaxis linetype 2 linewidth 1
set yzeroaxis linetype 2 linewidth 1
# Axis ranges
set xrange[-2*pi:2*pi]
set yrange[-1.5:1.5]
# Axis labels
set xtics ("-2Π" -2*pi, "-Π" -pi, 0, "Π" pi, "2Π" 2*pi)
set ytics 1
set tics scale 0.75
# Functions to plot
a = 0.9
f(x) = a * sin(x)
g(x) = a * cos(x)
# Plot
plot f(x) title 'sin(x)' with lines ls 1, \
g(x) notitle with lines ls 2
Я поменял {/Symbol P}
на Π. Из командной строки терминала я получил его на работу и производить просто отлично. Репозиторий Ubuntu установил самый последний из лучших gnuplot (gnuplot 5.2 patchlevel 6). Таким образом, снова проводя эксперимент, когда я C-c C-c
в кодовом блоке режима org получаю
gnuplot-mode 0.7-beta (gnuplot 3.7) -- report bugs with "C-c C-u"
и та же ошибка: мусор вместо Π. (Не уверен, что представляет собой gnuplot 3.7.) Запуск вышеуказанного кодового блока, BTW, запускает REPL для gnuplot, и он говорит, что это самый последний самый большой gnuplot. Но когда вышеприведенный автономный код в Emacs (с gnuplot-mode) называется «отправлять буфер в gnuplot» (Emacs gnuplot REPL), он выдает ошибку, НО, когда я «отправляю file в gnuplot ", он производит Π без ошибок. Совершенно странно, ИМХО.
Вот мои подписки:
(setq package-archives '(("ELPA" . "http://tromey.com/elpa/")
("gnu" . "http://elpa.gnu.org/packages/")
("melpa" . "https://melpa.org/packages/")
("org" . "https://orgmode.org/elpa/")))
, что дает два предложения для режимов gnuplot:
gnuplot 20141231.2137 available melpa drive gnuplot from within emacs
и затем это:
gnuplot-mode 20171013.1616 installed Major mode for editing gnuplot scripts
Итак, я удалил Emacs gnuplot
(20141231.2137), затем установил gnuplot-mode
(20171013.1616). Это решило проблему gnuplot-run-buffer
, но кодовый блок режима org теперь выдает эту ошибку:
executing Gnuplot code block...
org-babel-execute:gnuplot: Cannot open load file: No such file or directory, gnuplot
Поиск customize
Я нахожу только четыре переменные, связанные с gnuplot, одна из которых - программа Gnuplot, которая у меня есть как /usr/bin/gnuplot
. Я в последней версии Emacs и org-mode в Ubuntu 19.04. Как мне лучше сказать орг-бабелу, где найти Гнуплот? Я подозреваю, что этот более новый режим не предназначен для Emacs org-mode; однако в старом режиме в режиме org греческие буквы выполняются неправильно.