
例えば、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
Debian の gnuplot は、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
、このバグの影響を受けません。(ただし、他のバグは発生します。「δ」と入力してからバックスペースキーを押してみてください。)
これを修正するには、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
。