gnuplotでコマンドラインから日本語入力したい場合の対処方法
日本語入力しようとすると何故か文字化け
以前のブログ記事の後半で、gnuplotのコマンドラインに日本語入力すると何故か文字化けしてしまうという件に触れました。環境はUbuntu18.04LTSのGNOME Terminal(それとGuakeでも試してます)。上の動画で試しているように、GNOME Terminal自体では問題なく日本語を入力することが出来ています。しかし、gnuplotを起動するとそちらのコマンドライン上では日本語入力すると文字化けしてしまいました。gnuplot自体はGNOME Terminal上で動いているわけで、何故に文字の扱いが異なってしまうのかちょっと分からず。まぁこういう解決方法にたどり着くまでに時間がかかりそうな件はとりあえず一時的な対処方法を考えた方がいいでしょう。
対処方法
以前のブログにも書いたようにスクリプトファイルとして読み込めば日本語は扱えるわけですが、ちょっとしたグラフをプロットするのに一々スクリプトファイルを作って書くのはめんどうです。そして、なるべく手間を減らしてコマンドラインのみで完結させる方法として、gnuplotのコマンドラインに入らずにプロットを実行するという手段があります。これはGNOME Terminalからのgnuplot実行時にプロット命令を全て渡してしまうという方法です。
簡単な書き方は以下のようになります。
gnuplot -persist -e "set title \"あめんぼあかいな\" ; plot sin(x)"
gnuplotは「-eオプション」でそのまま引数を命令として渡すことが出来ます(命令文自体は""で閉じておきます)。命令文が複数あるときは「;」で区切ります。「set title」などテキストを渡す時に「""」を使ってしまうと引数で使っているダブルクォートとかち合ってしまうのでうまく回避させましょう(上の例ではバックスラッシュを使うことで回避)。また「-persist」オプション(-pと省略可)は実行後にも出力ウィンドウを残すという指定です。ただこれだとgnuplot自体は終了するので、出力ウィンドウで3Dグラフを操作するということは出来ないようです。
出力ウィンドウで操作をしたいという場合は
gnuplot -e "set title \"あめんぼあかいな\" ;splot sin(x) ; pause -1"
のように「-persist」ではなく、命令文に「pause -1」を付けるといいでしょう。これでgnuplotが起動したままとなるのでグラフの操作が出来ることになります。終了させるときは何かしらのキーを押すと終了します。
GNOME Terminalでは日本語入力は出来るわけで、それとgnuplotの起動オプションを組み合わせることでコマンドラインのみで日本語入力が出来ました。まぁ解決方法ではなくて対処方法なのでいささか回りくどい方法ですが、こういった方法もあるということを覚えておくと役に立つかと思います。
コマンドを見やすく書いていく方法(過去ブログより)
なお命令文がいくつもあって「;」で連結していくとコマンド文自体が分かりにくくなってしまいます。そういうときは以前にブログで紹介したという方法を用いると分かりやすく書いていくことが出来ます。詳細はブログ記事を確認して下さい。
gnuplot関連のまとめページ
gnuplot関連のブログ記事Amazon gnuplot関連書籍など
通りがかりの者ですが,以下のような記事がありました。
返信削除Ubuntu:コマンドライン日本語入力字化け対策として gnuplot 5.4 をソースから make
https://home.hirosaki-u.ac.jp/heroic-2020/1209/