byte-code: Symbol's value as variable is void: dbus-message-type-method-call

byte-code: Symbol's value as variable is void: dbus-message-type-method-call

- 匿 名 の投稿
返信数: 1
evince で inverse search を行なう設定を行ないたいのですが、ご教授下さい。

* 使用している環境

環境は以下のとおりです。

===
~ $ lsb_release -id
Distributor ID: Debian
Description: Debian GNU/Linux 7.2 (wheezy)
~ $ uplatex --version
e-upTeX 3.1415926-p3.3-u1.10-110825-2.4 (utf8.uptex) (TeX Live 2012/Debian)
kpathsea version 6.1.0
ptexenc 1.3.0
Copyright 2012 D.E. Knuth.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the e-upTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the e-upTeX source.
Primary author of e-upTeX: D.E. Knuth.
~ $ evince --version
GNOME ドキュメントビューアー 3.4.0
~ $ emacs --version
GNU Emacs 24.3.1
Copyright (C) 2013 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
~ $ python -V
Python 2.7.3
~ $ ruby --version
ruby 1.9.3p194 (2012-04-20 revision 35410) [i486-linux]
Welcome to the Emacs shell

~/tmp/textest $ cd
~ $ aptitude show ruby-dbus
パッケージ: ruby-dbus
状態: インストール済み
自動的にインストールされた: いいえ
バージョン: 0.7.2-1
...
===

yatex は 1.77 です。

* 【今どんなことで困っているか】の、簡単なまとめ

二点あります。

以下のリンクに従い設定したところ、emacs を起動すると

===
byte-code: Symbol's value as variable is void: dbus-message-type-method-call
===

が出力されること。

inverse search を使用しようとPDFを開き、Ctrl+左を押しても何も起きないこと。

http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?YaTeX#nec42ee2
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Evince%2Ffwdevince
http://ubutun.blogspot.jp/2012/05/synctex-emacsyatex-evince.html


* その状態に至るまでの操作

yatex を以下の手順でインストールしました。

===
cd ~/tmp
wget http://www.yatex.org/yatex1.77.tar.gz
tar xzvf yatex1.77.tar.gz
cp -r yatex1.77 ~/.emacs.d/
===

次に

http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?YaTeX#nec42ee2

にしたがい emacs の設定をしました。

上記サイトのもの(origsetting.el)と私の設定(mysetting.el)で異る点は以下のとおりです。

===
$ diff mysetting.el origsetting.el
5c5
< (add-to-list 'load-path "~/.emacs.d/yatex1.77")
---
> (add-to-list 'load-path "~/.emacs.d/site-lisp/yatex")
20c20
< ;; (setq tex-command "ptex2pdf -l -u -ot '-synctex=1'")
---
> (setq tex-command "ptex2pdf -l -u -ot '-synctex=1'")
26,27c26
< ;; (setq tex-command "latexmk -e '$latex=q/uplatex %O -synctex=1 %S/' -e '$bibtex=q/upbibtex %O %B/' -e '$makeindex=q/mendex %O -o %D %S/' -e '$dvipdf=q/dvipdfmx %O -o %D %S/' -norc -gg -pdfdvi")
< (setq tex-command "latexmk -e '$latex=q/uplatex %O -synctex=1 %S/' -e '$bibtex=q/upbibtex %O %B/' -e '$makeindex=q/mendex %O -o %D %S/' -e '$dvipdf=q/dvipdfmx %O -o %D %S/' -gg -pdfdvi")
---
> ;(setq tex-command "latexmk -e '$latex=q/uplatex %O -synctex=1 %S/' -e '$bibtex=q/upbibtex %O %B/' -e '$makeindex=q/mendex %O -o %D %S/' -e '$dvipdf=q/dvipdfmx %O -o %D %S/' -norc -gg -pdfdvi")
41,42c40,41
< ;; (setq dvi2-command "xdg-open")
< (setq dvi2-command "evince")
---
> (setq dvi2-command "xdg-open")
> ;(setq dvi2-command "evince")
74a74
>
===

変更した理由は

- yatex1.77 を展開した場所が違うため
- パッケージで提供されている texlive は 2012 で ptex2pdf が無く、tmglr も無いため, latexmk を使用するようするため
- evince を使用するようにするため
- latexmk で -norc がついているとタイプセット時に以下のエラーが出るため

===
Latexmk: -norc bad option

Latexmk: Bad options specified
Use
  latexmk -help
to get usage information

Fundamental exited abnormally with code 10 at Tue Dec 31 00:40:17 (0.28 secs)
====

です。

続いて
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Python#fwdevince
にしたがい fwdevince を ~/bin に実行属性をつけて作成しました。

emacs を起動すると

===
byte-code: Symbol's value as variable is void: dbus-message-type-method-call
===

が出力されました。

tex のファイルを開き C-c C-t j により正常にタイプセットができ、
M-x evince-forward-search が正常に動作する事を確認しました。
inverse search を使用しようとPDFを開き、Ctrl+左を押しても何も起きませんでした。

さらに、
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Ruby#fwdevince
にしたがい ruby 版も試してみましたが、状況は変わりませんでした。

以上になります。よろしくお願いいたします。
匿 名 への返信

Re: byte-code: Symbol's value as variable is void: dbus-message-type-method-call

- 匿 名 の投稿

Emacs と Evince の inverse search については
Emacs#Evince との連携#inverse search
を参照してください.
Evince の inverse search については Emacs の TeX mode, AUCTeX, YaTeX で共通の設定で動作するので
Emacs のページに記述しています.
AUCTeX は Evince の inverse search に対応しているので
設定する必要はありません.

byte-code: Symbol's value as variable is void: dbus-message-type-method-call については
私の Linux 環境 (Arch Linux, Linux Mint 16, Debian GNU/Linux sid, VineSeed) では発生しないのでよくわかりません.

latexmk で -norc オプションがついているとエラーになるのは Debian GNU/Linux の latexmk が古いためです.
latexmk 4.39 では -norc オプションがサポートされています.

fwdevince は Python 版と Ruby 版があります.
Python 版は forward search と inverse search の機能が実装されています.
Ruby 版は forward search のみ実装されています.
Python 版の fwdevince には inverse search の機能がありますが
fwdevince で inverse search をするのはおすすめしません.
fwdevince の実装を見てもらえばわかると思いますが
Evince の inverse search はエディタを起動したときに機能が ON になるように設計しないと使いにくいです.
gedit では SyncTeX プラグインとして gedit を起動したときに機能が ON になるように設計されています.
SyncTeX で Evince と forward and inverse search を行う場合は dbus を使用してプロセス間通信を実行します.
Emacs は dbus がサポートされていて elisp で inverse search の機能が実装できるので
elisp で inverse search を設定すれば Emacs を起動したときに
自動的に Evince の inverse search 機能を ON にできます.