
Например, в командной строке bash я могу ввести символ δ, используя клавишу Compose и специальный ~/.XCompose
файл, но если я попытаюсь сделать то же самое в Gnuplot, то получу следующее:
13:48 boffi@debian:~ $ δ
bash: δ: command not found
13:48 boffi@debian:~ $ gnuplot
G N U P L O T
Version 5.2 patchlevel 6 last modified 2019-01-01
Copyright (C) 1986-1993, 1998, 2004, 2007-2018
Thomas Williams, Colin Kelley and many others
gnuplot home: http://www.gnuplot.info
faq, bugs, etc: type "help FAQ"
immediate help: type "help" (plot window: hit 'h')
Terminal type is now 'qt'
gnuplot> δ
Лучший ответ научит меня, как заставить Gnuplot принимать символы Unicode, хороший ответ объяснит, почему Gnuplot не принимает символы Unicode.
13:53 boffi@debian:~ $ env | grep LANG
LANG=C.UTF-8
решение1
Gnuplot в Debian собран с editline
библиотекой для обработки истории в командной строке Gnuplot, которая не поддерживает UTF-8; на самом деле, в configure
скрипте об этом упоминается:
--with-readline=builtin use the built-in readline
--with-readline=gnu use the GNU readline library (default if present)
--with-readline=bsd use the NetBSD editline library (NB: does not handle UTF-8!)
В этом поведении есть ошибка 15-летней давности,#273002, с соответствующим запросом функции gnuplot,#265(которая закрыта, предположительно, потому, что была исправлена добавлением внутренней реализации readline
).
Fedora использует встроенную функцию readline
и не страдает от этой ошибки. (Однако она страдает от других ошибок — попробуйте ввести «δ», а затем нажать клавишу Backspace.)
Чтобы исправить это, пересоберите пакет Debian:
cd /tmp
apt source gnuplot
cd gnuplot-5.0.5+dfsg1
sed -i 's/readline=bsd/readline=builtin/' debian/rules
sudo apt install devscripts equivs
mk-build-deps debian/control
sudo apt install ./gnuplot-build-deps_5.0.5+dfsg1-6+deb9u1_all.deb
mv ./gnuplot-build-deps_5.0.5+dfsg1-6+deb9u1_all.deb ..
dch -n "Use built-in readline."
dch -r ignored
dpkg-buildpackage -us -uc
sudo apt purge gnuplot-build-deps
Это создаст пакеты gnuplot в родительском каталоге, которые вы можете установить с помощью sudo dpkg -i
.