[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:15458] Re: Test package of xdvik-ja 22.40s-j1.12 is available



>> On Sun, 29 Dec 2002 13:46:59 +0900
>> mhatta@xxxxxxxxxxx (Masayuki Hatta) said as follows:

>少々 xdvik-ja が古くなりすぎているきらいがありますので、最新の
>xdvi(teTeX-beta)と日本語化パッチを元にして適当に deb を作ってみました。
>known bug は全部直してあります。

ご苦労様です.

>deb http://people.debian.org/~mhatta/debian/xdvik-ja ./
>deb-src http://people.debian.org/~mhatta/debian/xdvik-ja ./
>から apt-get で拾えるようにしてあります。

申し訳ありませんが,手元に sid の環境がありませんので,sarge 環境で 
rebuild して動作確認を試みました.

;; 調べたのは 22.40s-j1.12-0.2 です.

>一応手もとでは普通に動いていますが、何かおかしいところがあれば教えて
>ください。

殆んど再パッケージに近い作業をされたようですが,以前のパッケージに比べ
て,debian/rules で configure する時のオプションに幾つか抜けがあるよう
です.私が気が付いたのは,--with-vfontmap と --disable-vikey の2つです.

前者の --with-vfontmap がないために,自分でフォントをインストールして 
/etc/texmf/vfontmap を設定していると,そのようなフォントを利用してくれ
ません.ちょっと調べてみたのですが,--with-vfontmap オプションがなくなっ
ているようなので,--enable-xdvietcdir=/etc/texmf というように指定する
必要があるようです.

;; 例えば,私は dynalab font の平成角ゴシックW3を「細ゴシック」,平成
;; 角ゴシックW5を「太ゴシック」として流用することによって,モリサワ基
;; 本5書体を表示させています.

また,--disable-vikey がないので,以前のパッケージとはキーバインドの異
なるバイナリになってしまっています.実は,以前から --enable-vikey をし
て rebuild した package を使っていましたから個人的には都合が良いのです
が,困る人がいるかも知れません.その対策として,-vi というオプションを
受け付けるようにするためのパッチを作成しましたので,末尾に添付します.

    xdvi -vi foo.dvi

で VI like keybind が有効になり,

    xdvi +vi foo.dvi

で無効になります(デフォルトは以前のパッケージに合わせて無効です).また,
XDvi.vilikeKeybind という X リソースでも制御できます.

;; 以前,xdvi-jp ML でも同様の変更を提案したのですが,反応が頂けません
;; でした.通常利用時には,コンパイル時の変更で十分だからでしょう….

それから,prerm で vfontmap を常に消去してしまっているので,既存の 
vfontmap が保存されません.remove 時のみ消去するように変更する必要があ
るのではないでしょうか.

また,手近にプリンタがないため確認はできないのですが,現時点のパッケー
ジには xdviprint が含まれていませんので,xdvi から直接印刷する(パネル
の print ボタンをクリックして印刷する)ことは出来ないのではないでしょう
か.以前のパッケージと同様に xdviprint をインストールする必要があるか
と思います.ただ,このスクリプトには

    ## for dvips
    # FILTOPTTBL=${XDVIFILTOPTTBL:-/usr/local/share/texmf/xdvi/xdvipaper.dvips}
    # DVIPSCMD="dvips -f -t"
    ####
    ## for dvi2ps
    # FILTOPTTBL=${XDVIFILTOPTTBL:-/usr/local/share/texmf/xdvi/xdvipaper.dvi2ps-j}
    # DVIPSCMD="dvi2ps -o"
    ####

という部分があり,dvips と dvi2ps が選べるようになっています.つまり,
これはスクリプトと言っても,設定ファイルの色彩が濃いスクリプトだと思い
ます.ですから,以前のパッケージでは xdviprint は /usr/bin/ にインストー
ルされていましたが,/etc/texmf/ の方が適切だと思います.

関連して,xdvipaper.dvi2ps などが /usr/share/texmf/xdvi/ に配置されて
いますが,これは /usr/share/texmf/xdvi-ja/ の方が適切ではないでしょう
か.

>o Depends, Build-Depends, Recommends 等で抜けがないか
>o jtex がいけるか

手元のソースで軽く試験してみた限りでは,jtex で処理した dvi も問題なく
表示できているようです.

-- 
土屋 雅稔 ( TSUCHIYA Masatoshi )

--- xdvik-ja-22.40s-j1.12.ORIG/xdvik/xdvi.c	2003-01-02 18:15:34.000000000 +0900
+++ xdvik-ja-22.40s-j1.12/xdvik/xdvi.c	2003-01-02 18:17:39.000000000 +0900
@@ -591,6 +591,8 @@
     {"-usecolor", ".colorSpecial", XrmoptionNoArg, (XtPointer) "on"},
     {"+usecolor", ".colorSpecial", XrmoptionNoArg, (XtPointer) "off"},
 #endif /* COLOR */
+    {"-vi", ".vilikeKeybind", XrmoptionNoArg, (XPointer) "on"},
+    {"+vi", ".vilikeKeybind", XrmoptionNoArg, (XPointer) "off"},
 };
 
 
@@ -614,19 +616,13 @@
     "^<Key>z:quit()\n"
 #endif
     "\"q\":quit()\n"
-#ifndef VI_KEY
     "\"h\":help()\n"
-#endif /* !VI_KEY */
 #ifdef HTEX    
     "\"i\":htex-anchorinfo()\n"
     "\"B\":htex-back()\n"
 #endif    
     "\"?\":help()\n"
-#ifdef VI_KEY
-    "\"j\":down()\n"
-#else /* !VI_KEY */
     "\"d\":down()\n"
-#endif /* !VI_KEY */
     "\"f\":forward-page()\n"
     "\"n\":forward-page()\n"
     "\" \":down-or-next()\n"
@@ -661,26 +657,125 @@
     "\"<\":goto-page(1)\n"
     "\"\\^\":home()\n"
     "\"c\":center()\n"
-#ifdef VI_KEY
-    "\"K\":set-keep-flag()\n"
-    "\"h\":left()\n"
-    "\"l\":right()\n"
-#else /* !VI_KEY */
     "\"k\":set-keep-flag()\n"
     "\"l\":left()\n"
     "\"r\":right()\n"
-#endif /* !VI_KEY */
 #ifdef PAPERMENU
     "\"T\":switch-magnifier-units()\n"
     "\"t\":paper()\n"
 #else /* !PAPERMENU */
     "\"t\":switch-magnifier-units()\n"
 #endif /* !PAPERMENU */
-#ifdef VI_KEY
-    "\"k\":up()\n"
-#else /* !VI_KEY */
     "\"u\":up()\n"
-#endif /* !VI_KEY */
+    "\"M\":set-margins()\n"
+    "\"s\":set-shrink-factor()\n"
+    "\"S\":set-density()\n"
+    "<Key>Home:home()\n"
+    "<Key>Left:left(0.015)\n"
+    "<Key>Up:up(0.015)\n"
+    "<Key>Right:right(0.015)\n"
+    "<Key>Down:down(0.015)\n"
+    "<Key>Prior:back-page()\n"
+    "<Key>Next:forward-page()\n"
+#ifdef XK_KP_Left
+    "<Key>KP_Home:home()\n"
+    "<Key>KP_Left:left()\n"
+    "<Key>KP_Up:up()\n"
+    "<Key>KP_Right:right()\n"
+    "<Key>KP_Down:down()\n"
+    "<Key>KP_Prior:back-page()\n"
+    "<Key>KP_Next:forward-page()\n"
+    "<Key>KP_Delete:up-or-previous()\n"
+    "<Key>KP_Enter:forward-page()\n"
+#endif
+#if GREY
+    "\"G\":set-greyscaling()\n"
+#endif
+#if PS
+    "\"v\":set-ps()\n"
+#endif
+#if PS_GS
+    "\"V\":set-gs-alpha()\n"
+#endif /* PS_GS */
+#if BUTTONS
+    "\"x\":set-expert-mode()\n"
+#endif
+    "<Key>Escape:discard-number()\n"	/* Esc */
+    "s<Btn1Down>:drag(+)\n"
+    "s<Btn2Down>:drag(|)\n"
+    "s<Btn3Down>:drag(-)\n"
+    "^<Btn1Down>:source-special()\n"
+    "<Btn1Down>:magnifier(*1)\n"
+    "<Btn2Down>:magnifier(*2)\n"
+    "<Btn3Down>:magnifier(*3)\n"
+    "<Btn4Down>:magnifier(*4)\n"
+    "<Btn5Down>:magnifier(*5)\n"
+    "\"R\":reread-dvi-file()\n"
+    "";
+
+static _Xconst char vi_translations[] = "" /* note: Control keys always first */
+    "^<Key>c:quit()\n"
+    "^<Key>d:quit()\n"
+    "^<Key>f:select-dvi-file()\n"
+    "^<Key>m:forward-page()\n"
+    "^<Key>j:forward-page()\n"
+    "^<Key>l:forward-page(0)\n"
+    "^<Key>h:back-page()\n"
+    "^<Key>v:show-source-specials()\n"
+    "^<Key>x:source-what-special()\n"
+    "^<Key>p:show-display-attributes()\n"
+#ifdef VMS
+    "^<Key>z:quit()\n"
+#endif
+    "\"q\":quit()\n"
+#ifdef HTEX    
+    "\"i\":htex-anchorinfo()\n"
+    "\"B\":htex-back()\n"
+#endif    
+    "\"?\":help()\n"
+    "\"j\":down()\n"
+    "\"f\":forward-page()\n"
+    "\"n\":forward-page()\n"
+    "\" \":down-or-next()\n"
+    "<Key>Return:forward-page()\n"
+    "\"p\":back-page()\n"
+    "\"b\":back-page()\n"
+    "<Key>Delete:up-or-previous()\n"
+    "<Key>BackSpace:up-or-previous()\n"
+#if MOTIF
+    "<Key>osfDelete:up-or-previous()\n"
+    "<Key>osfBackSpace:up-or-previous()\n"
+#endif
+    "\"P\":declare-page-number()\n"
+    "\"D\":toggle-grid-mode()\n"
+    "\"g\":goto-page()\n"
+#ifdef MARKPAGE
+    "\"a\":mark-all-pages()\n"
+    "\"A\":unmark-all-pages()\n"
+    "\"m\":mark-page()\n"
+    "\"U\":unmark-page()\n"
+    "\"\\\'\":goto-lastly-marked-page()\n"
+    "\"\\\"\":exchange-current-and-marked-page()\n"
+    "\"`\":trace-back-mark-ring()\n"
+#endif /* MARKPAGE */
+#ifdef ZOOM_BUTTON
+    "\"Z\":zoom(1)\n"
+    "\"z\":zoom(-1)\n"
+#endif /* !ZOOM_BUTTON */
+    "\">\":goto-page()\n"
+    "\"<\":goto-page(1)\n"
+    "\"\\^\":home()\n"
+    "\"c\":center()\n"
+    "\"K\":set-keep-flag()\n"
+    "\"h\":left()\n"
+    "\"l\":right()\n"
+#ifdef PAPERMENU
+    "\"T\":switch-magnifier-units()\n"
+    "\"t\":paper()\n"
+#else /* !PAPERMENU */
+    "\"t\":switch-magnifier-units()\n"
+#endif /* !PAPERMENU */
+    "\"k\":up()\n"
     "\"M\":set-margins()\n"
     "\"s\":set-shrink-factor()\n"
     "\"S\":set-density()\n"
@@ -1010,6 +1105,8 @@
     {"colorSpecial", "ColorSpecial", XtRBoolean, sizeof (Boolean),
      offset(_use_color), XtRString, "true"},
 #endif	/* COLOR */
+    {"vilikeKeybind", "VilikeKeybind", XtRBoolean, sizeof (Boolean),
+     offset(_vi_key), XtRString, "false"},
     {"helpTopicsButtonLabel", "HelpTopicsButtonLabel", XtRString, sizeof(char *),
      offset(_help_topics_button_label), XtRString, "Topic"},
     {"helpQuitButtonLabel", "HelpQuitButtonLabel", XtRString, sizeof(char *),
@@ -1426,6 +1523,8 @@
     {"-usecolor", "colorSpecial", TrueArg, BooleanArg, 2, NULL, ADDR(_use_color)},
     {"+usecolor", "colorSpecial", FalseArg, BooleanArg, 1, NULL, ADDR(_use_color)},
 #endif	/* COLOR */
+    {"-vi", "vilikeKeybind", TrueArg, BooleanArg, 2, NULL, ADDR(_vi_key)},
+    {"+vi", "vilikeKeybind", FalseArg, BooleanArg, 1, NULL, ADDR(_vi_key)},
 };
 
 #endif /* TOOLKIT */
@@ -1884,6 +1983,7 @@
 #ifdef        COLOR
     /* use_color            */ True,
 #endif
+    /* vi_key               */ False,
 };
 
 static Pixel
@@ -3182,7 +3282,7 @@
 			     "XDvi.vport.drawing.baseTranslations",
 #endif
 #endif /* MOTIF */
-			     base_translations);
+			     resource._vi_key ? vi_translations : base_translations);
 
 	if (resource.main_translations != NULL)
 	    XrmPutStringResource(&db,
@@ -3585,17 +3685,17 @@
 	rebindkey(XK_Cancel, "q");
 	rebindkey(XK_Redo, "A");
 	rebindkey(XK_Home, "^");
-#ifdef	VI_KEY
-	rebindkey(XK_Left, "h");
-	rebindkey(XK_Up, "k");
-	rebindkey(XK_Right, "l");
-	rebindkey(XK_Down, "j");
-#else	/* VI_KEY */
-	rebindkey(XK_Left, "l");
-	rebindkey(XK_Up, "u");
-	rebindkey(XK_Right, "r");
-	rebindkey(XK_Down, "d");
-#endif /* VI_KEY */
+	if( resource._vi_key ){
+		rebindkey(XK_Left, "h");
+		rebindkey(XK_Up, "k");
+		rebindkey(XK_Right, "l");
+		rebindkey(XK_Down, "j");
+	} else {
+		rebindkey(XK_Left, "l");
+		rebindkey(XK_Up, "u");
+		rebindkey(XK_Right, "r");
+		rebindkey(XK_Down, "d");
+	}
 	rebindkey(XK_End, "g");
 #ifdef  XK_Page_Up
 	rebindkey(XK_Page_Up, "b");
@@ -3603,17 +3703,17 @@
 #endif
 #ifdef	XK_KP_Left
 	rebindkey(XK_KP_Home, "^");
-#ifdef	VI_KEY
-	rebindkey(XK_KP_Left, "h");
-	rebindkey(XK_KP_Up, "k");
-	rebindkey(XK_KP_Right, "l");
-	rebindkey(XK_KP_Down, "j");
-#else	/* VI_KEY */
-	rebindkey(XK_KP_Left, "l");
-	rebindkey(XK_KP_Up, "u");
-	rebindkey(XK_KP_Right, "r");
-	rebindkey(XK_KP_Down, "d");
-#endif	/* VI_KEY */
+	if( resource._vi_key ){
+		rebindkey(XK_KP_Left, "h");
+		rebindkey(XK_KP_Up, "k");
+		rebindkey(XK_KP_Right, "l");
+		rebindkey(XK_KP_Down, "j");
+	} else {
+		rebindkey(XK_KP_Left, "l");
+		rebindkey(XK_KP_Up, "u");
+		rebindkey(XK_KP_Right, "r");
+		rebindkey(XK_KP_Down, "d");
+	}
 	rebindkey(XK_KP_Prior, "b");
 	rebindkey(XK_KP_Next, "f");
 	rebindkey(XK_KP_Delete, "\177");
diff -ur xdvik-ja-22.40s-j1.12.ORIG/xdvik/xdvi.h xdvik-ja-22.40s-j1.12/xdvik/xdvi.h
--- xdvik-ja-22.40s-j1.12.ORIG/xdvik/xdvi.h	2003-01-02 18:15:34.000000000 +0900
+++ xdvik-ja-22.40s-j1.12/xdvik/xdvi.h	2003-01-02 18:16:27.000000000 +0900
@@ -805,6 +805,7 @@
 #ifdef COLOR 
 		Boolean _use_color;
 #endif /* COLOR */
+		Boolean _vi_key;
 		char * _help_topics_button_label;
 		char * _help_quit_button_label;
 		char * _help_intro;