« 2007年06月10日 | メイン | 2007年09月01日 »

2007年07月08日

●inklatex -前編

TeXの数式を inkscapeの図中に貼り付ける,ステキプラグイン・inklatexを 試した.意外と苦労したのでメモ.

(1)とりあえず指示どおりにインストール.
% mkdir -p ~/.inkscape/extensions
% cd ~/.inkscape/extensions
% tar xvzf ink_latex_20070214.tar.gz
% mv ink_latex/* .
% cd ~
% inkscape
→ しかし,「ファイル>インポート」も拡張されないし,「エフェクト>LaTeX Text」もあらわれない.
→ 「エフェクト」メニューには沢山の項目があるが,ほとんどの項目はエラーが出たり,選択しても無反応だったりで使えない.
→ extension (標準+inklatex) の読み込みでコケてるんじゃねーかな.

(2)ログファイル (らしきもの) を見る
% lv ~/.inkscape/extension-errors.log
    :
エクステンション "Text Input"のロードに失敗しました、理由: (プログラムの)依存関係が満たされませんでした。
Dependency:
  タイプ: executable
  場所: path
  文字列: perl
     :
エクステンション "GIMP XCF"のロードに失敗しました、理由: (プログラムの)依存関係が満たされませんでした。
Dependency:
  タイプ: executable
  場所: path
  文字列: gimp
   :
エクステンション "DXF Input"のロードに失敗しました、理由: (プログラムの)依存関係が満たされませんでした。
Dependency:
  タイプ: executable
  場所: path
  文字列: dxf2svg
  記述: dxf2svg may come with Inkscape, but is also at http://dxf-svg-convert.sourceforge.net/

エクステンション "Sketch Input"のロードに失敗しました、理由: (プログラムの)依存関係が満たされませんでした。
Dependency:
  タイプ: executable
  場所: path
  文字列: skconvert
→ LaTeX関連のはおいておくとしても,やはり標準添付 (っぽい) extensionのロードに軒並み失敗している.しかもその原因は,必要な外部プログラムが見つからないためらしい.
→ しかし,perlが見つからないなんてあり得ない.もちろん入っている.その他のプログラムに関しても,aptitudeでインストールしている.
% which perl
/usr/bin/perl
→ "場所: path"ってこれだよな...んー.
% echo ${PATH}
/home/leona/bin:/home/leona/scripts:/usr/local/teTeX/bin::/usr/local/bin:/usr/bin:/bin:/net/usr/bin
→ inkscapeが本当に${PATH}を探しに行っているのか,ソースを読もうとしたのだが,pythonという言語で書かれており,分からなかった.

(3) 試しに,後輩の計算機 (Feisty) で同じ事をやってみる.
→ まったく同様のエラーが出る.

(4)Feistyをクリーンインストールしたばかりの計算機があったので,同じ事をやってみる.
→ できた.「ファイル>インポート」に"LaTeX File"が追加された.「エフェクト>LaTeX Text」が表れた.
→ あれ.どちらを選んでもエラーダイアログが出て,期待される数式は出力されないな.
→ まあいいや.とりあえず一歩前進.私&後輩の環境と,この環境の違いはなんだろう.
→ 多すぎて分からん.

(5)自分の計算機に戻ってゴソゴソ.
  • シェルか? → No. bashでも shでもダメ.
  • 変なユーザ設定が残ってるのか?
    % mv ~/.inkscape ~/dot.inkscape
    % inkscape
    
    → ダメ.変化なし.
  • さらに変なユーザ設定が残ってるのか?
    % sudo /usr/sbin/useradd tmpuser
    % su - tmpuser
    tmpuser % inkscape
    
    → できた.(4) の状態と同じになった.

どっかにこっそり設定ファイルがあって,それがおかしくなってる or 環境変数が変なのかな.
% su - tmpuser
tmpuser % export
declare -x HISTCONTROL="ignoreboth"
declare -x HOME="/localhome/tmpuser"
declare -x LANG="ja_JP.UTF-8"
declare -x LD_LIBRARY_PATH="/usr/lib"
declare -x LESSCLOSE="/usr/bin/lesspipe %s %s"
declare -x LESSOPEN="| /usr/bin/lesspipe %s"
declare -x LOGNAME="tmpuser"
declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.flac=01;35:*.mp3=01;35:*.mpc=01;35:*.ogg=01;35:*.wav=01;35:"
declare -x MAIL="/var/mail/tmpuser"
declare -x OLDPWD
declare -x PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games"
declare -x PWD="/localhome/tmpuser"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x TERM="xterm"
declare -x USER="tmpuser"

tmpuser % exit
% export
ARCHI=linux
BSTINPUTS=.:/net/usr/share/texstyle//:/usr/share/texmf/jbibtex/bst//:
COLORTERM=gnome-terminal
DBUS_SESSION_BUS_ADDRESS='unix:abstract=/tmp/dbus-iB4S57E9ij,guid=e79fb1fc6b5e996653549e0046889b4a'
DESKTOP_SESSION=default
DESKTOP_STARTUP_ID=''
DISPLAY=:0.0
GDMSESSION=default
GDM_LANG=ja_JP.UTF-8
GDM_XSERVER_LOCATION=local
GNOME_DESKTOP_SESSION_ID=Default
GNOME_KEYRING_SOCKET=/tmp/keyring-X0SuUV/socket
GTK_IMMODULE=scim
GTK_IM_MODULE=scim-bridge
GTK_RC_FILES=/etc/gtk/gtkrc:/home/leona/.gtkrc-1.2-gnome2
HOME=/home/leona
LANG=ja_JP.UTF-8
LANGUAGE=ja_JP:ja:en_GB:en
LC_ALL=ja_JP.UTF-8
LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/lib
LOGNAME=leona
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.flac=01;35:*.mp3=01;35:*.mpc=01;35:*.ogg=01;35:*.wav=01;35:'
OLDPWD=/home/leona
PATH=/home/leona/bin:/home/leona/scripts:/usr/local/teTeX/bin::/usr/local/bin:/usr/bin:/bin:/net/usr/bin
PWD=/home/leona
QT_IM_MODULE=scim
SESSION_MANAGER=local/awabi:/tmp/.ICE-unix/7050
SHELL=/bin/bash
SHLVL=1
SSH_AGENT_PID=7098
SSH_AUTH_SOCK=/tmp/ssh-jNQVik7050/agent.7050
TERM=xterm
TEXINPUTS=.:/net/usr/share/texstyle//:/usr/share/texmf/ptex/platex//:
TZ=Japan
USER=leona
WINDOWID=52441245
XAUTHORITY=/home/leona/.Xauthority
XMODIFIERS='@im=SCIM'
ZDOTDIR=/home/leona/.zsh

じーっ.やっぱり怪しいのはpathだよな...じーっ....ハッ.
PATH=/home/leona/bin:/home/leona/scripts:/usr/local/teTeX/bin<font color="red">::</font>/usr/local/bin:/usr/bin:/bin:/net/usr/bin
コロンが重複してるな.修正してみよう.
% export PATH=/home/leona/bin:/home/leona/scripts:/usr/local/teTeX/bin:/usr/local/bin:/usr/bin:/bin:/net/usr/bin
% inkscape
→ できたー.(4) の状態と同じになった.

(6)ここまでの結論
  • 環境変数 ${PATH}に,余分なコロンが含まれていると,inkscape 0.45.1はその先をPATHとして扱ってくれない.
  • シェル (bash, zsh) は余分なコロンを無視して,良いように扱ってくれるようだ.
  • 後輩は私の ~/,zshrc をコピーして使っていたので,同じ問題にはまった.
  • この問題については,inkscape本家に報告しておいた.
  • ${HOME}/.bashrcとかで,
    PATH="${PATH}:/usr/local/bin"
    とかやってると,コロンが重複することもあるよね.
  • (2)あたりでちゃんとinkscapeのソースを読んでいれば早期解決できたはず.パッチも書けただろうし.
  • でも pythonわかんね.

(7)これからの問題点
(4)で述べた通り,メニューにLaTeX Textは出てきたが,その機能はちゃんと果たせていない.後編ではこれを解決する.