Gnuplot 終端機中的 Unicode

Gnuplot 終端機中的 Unicode

例如,在 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 年前的 bug,#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.

相關內容