xfig 3.2.9a (Debian Ver13 trixie)

trixie上でxfigに日本語入力できなくなってしまった。でも無理やりこれを使うためにしたことのメモ

Aug 25 2025

1 xfigとは

 ベクトル系の描画ソフト。defaultの拡張子はfig というのがつく。
(LinuxではWindowsのような拡張子の強い依存はなく、ファイル形式はファイルの中に定義されているらしいが)

 epsファイルにexportできるのでlatexに取り込むのに便利。

 レイヤーはDepthで指定できるがdefaultは50,最大999。
  複数の図形をグループ化するにはGLUE Objects into COMPOUND object というアイコンをクリックしてから
 マウスの中央ボタンを押しながらドラッグして範囲指定する。範囲を指定したら右クリックすると範囲内の図形が
グループ化される。
 図形の線の太さや色、線種、等のプロパティを変更するにはupdate アイコンをクリックして画面下の該当の箇所を設定してから
ターゲットの図形をクリックすると変更できる。

2 日本語の入力

 起動時に-international を指定する。

 xfig  -international
とDebian Ver12 bookwormまでは、文字化けして何を入力したのだかわからないが、化けた文字が入力できた。
そしてepsファイルとしてexportしてから次節の処理をするとちゃんと日本語が読めるようになった。
しかし、Ver13 trixieになったら入力できない。
 mozcが日本語に切り替わらずまったく入力できない。しかし、半角文字なら入力できる。
 そこで フォントをTimes-Roman+明朝にして、アルファベットで入力する。
 なるべく、矩形などでどこまで文字を入れたか、あるいは入れたいのか目印を入れておく

 次にファイルを*.fig形式でいったん保存して終了する。
 *.figファイルをエディタで開いてアルファベット入力した文字列を探して、全角の漢字やかなに書き換えて
 すっとぼけて保存してそれをまたxfig -international *.figで開く。
 漢字やひらがなにした部分は表示されないが、なにもしないでexportでeps形式に出力する。
 次節で、epsファイルを変換すると漢字やかなが読めるようになる。

3 epsファイルの文字化け対策

(文字コードは utf-8が前提 )
以前作成した*.figのファイルは、trixieのxfig 3.2.9aで開いたのち、espにexportし、テキストエディタで開いて文字列を次のようにすべて置換する。

   検索する文字列 /Times-Roman-UTF-8 ff
   置換後の文字列 /Ryumin-Light-UniJIS-UTF8-H ff

Ryumin-Light はフォント名、UniJIS-UTF8 は文字コード、Hは横書き という意味

しかし、毎回エディタを開くのは面倒なのでsedを使って次のようなシェルスクリプトで一発変換できるようにした。
sedはストリーム エディタの略

スクリプト名 eps_cnv

#!/bin/bash
#Debian wheezyバージョンのxfigでexportしたepsファイルの
#日本語フォントの文字化けを修正するシェルスクリプト
#  使い方 ./eps_cnv  document.eps
#  入力ファイルdocument.epsの文字化けが修正される
cp $1 $1.bak
cat $1.bak | sed -e "s/Times-Roman-UTF-8 ff/Ryumin-Light-UniJIS-UTF8-H ff/" > $1

eps_cnv を
 chmod 755 eps_cnv
で実行形式にして 次のように実行する。

./eps_cnv   document.eps

めんどくさいから使ったことないけどinkscapeに乗り換えたほうがいいかな?