Unicode в терминале Gnuplot

Unicode в терминале Gnuplot

Например, в командной строке 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.

Связанный контент