Sponsored Link
Kazuhiro's blog
ようこそ! Kazuhiro's blog
土曜日, 11月 07 2009 @ 08:03 午後 JST

Lookup 1.4+media

EPWINGに含まれる動画・音声データの再生を可能にしたLookup 1.4の改造版です。 動画データの再生は白井さんから提供頂いたパッチによるものです。 eblookへのパッチと併せて使用して下さい。 細かいバグ修正も入っています。

for your download

lookup-1.4+media-20090915.tar.gz

アーカイブの使い方

インストールは通常のLookupと同様の手順で行って下さい。 ただし、configureスクリプトからの--with-emacsオプションは無効のようなので、指定する場合はbash等のシェル上から

$EMACS=/your/emacs ./configure .....

とするか、make時に

$make EMACS=/your/emacs install

のようにして下さい。 また、eblookにもパッチを当てる必要があります。 20061204以降のLookupを使用する場合は、EB Libraryのバージョンを上げない場合でも「必ず」20061204以降のeblookを使用して下さい。

追加される機能、従来からの変更

ndebエージェントでの音声・動画リンクの生成

パッチをあてたeblookを使う事で音声・動画に対するリンクが生成されます。 対応する音声・動画はEB Libraryに依存しており、EPWINGのWAVE形式の音声とMPEG1形式の動画となります。 (詳細はEB Libraryのドキュメントを参照して下さい。)

た、補助パッケージを使用している場合はarrangeも正しく設定しないといけません。 arrangeの先頭あるいはndeb-arrange-jpeg等のイメージデータのarrangeの直前または直後にndeb-arrange-wavendeb-arrange-mpegを、arrangeの最後にndeb-arrange-snd-autoplayを追加して下さい。

ndeb-binary-programsの拡張

ndeb-binary-programsに、関数名のシンボルを指定する事で外部プログラムの代わりに関数を呼び出す事ができるようになりました。 この際にはプロパティの指定は無視されます。 音声再生用の関数として、play-sound-file関数を使用するndeb-binary-play-sound-fileと、Meadow専用のndeb-binary-play-with-mciが用意されています。

また、プロパティに:directが追加されました。 マルチメディアデータは、一般にHONMONファイル等に収録されており、Lookupではデータを抽出し、一時ファイルを作成した後にプログラムの起動・関数の呼出しを行います。 しかし、動画については抽出せずとも元々一つのファイルとして存在しています。 :directnon-nilにすると、動画の再生時には、最初から存在するファイルを引数にしてプログラムの起動を行うようになります。 このファイルには拡張子が付いていないので、動画を再生するプログラムは拡張子に依らず再生が可能である必要があります。 加えて、対応するeblook (20080116以降)が必要です。

音声・動画リンクの再生

ndeb-binary-programsに、wavempegに対応した記述を追加する事で音声・動画の再生が可能になります。 MCI機能を持つMeadowや、play-sound-file関数を持つEmacsでは外部プログラムを使用せずに音声再生が可能です。 この機能を利用する場合は、ndeb-binary-programswaveに対応する記述としてndeb-binary-play-with-mci、あるいはndeb-binary-play-sound-fileを指定するか、ndeb-binary-programsを一切指定しないでデフォルト値を使用して下さい。 一例としては~/.lookupに以下のような記述を行います。

(setq ndeb-binary-programs
      '((wave ndeb-binary-play-sound-file)
        (jpeg "gv")))

尚、ndeb-binary-play-sound-fileは、Meadowでは使用しないで下さい。 play-sound-fileの挙動が他のEmacsと異なる為に不具合を起こします。 また、ndeb-binary-play-sound-fileを使用する場合、音声再生中はEmacs上で他の操作が一切できなくなります。 この為、後述する:snd-autoplayオプションを有効にすると、音声再生が終了するまでcontentが表示されません。

上記以外の場合の音声再生、及び動画の再生には外部プログラムが必要になります。 ndeb-binary-programsは例えば以下のように設定します。

(setq ndeb-binary-programs
      '((wave "mplayer")
        (mpeg ("mplayerc" "/play") :direct t)
        (bmp "gv")))

ここではmplayerを音声再生プログラムの例に出していますが、音声の最後が再生されない不具合が確認されています(2006/5/1)ので、mplayerは使わない方がよいようです。 お勧めの外部プログラムがあれば教えてください。

Meadowではユーザー側でndeb-binary-programsを設定しない場合、音声に関しては可能であればndeb-binary-play-with-mciを使用し、そうでない場合と、その他の画像・動画データに関してはfiber.exeを起動するように自動的に設定されます。

辞書オプション:snd-autoplayの追加

non-nilにするとarrangeの最後で音声を再生します。 補助パッケージを使用している場合はそのままではオプションが有効になりませんのでarrangeを前述のように設定して下さい。

変数ndeb-play-sound-from-entry, ndeb-play-movie-from-entryの追加

これらの変数にkey(define-keyのdocstringを参照して下さい)を指定する事でEntryモードから音声・動画の再生が可能になります。 例えば、以下の様な内容を~/.lookupに記述を行います。

(setq ndeb-play-sound-from-entry "z")
(setq ndeb-play-movie-from-entry "x")

上記の場合、Entryモードからzを押す事でカーソル位置にあるentryの音声を、xを押す事で動画を再生します。 この際にprefix argumentを指定すると、先頭からn番目の音声、あるいは動画を再生できます。

尚、これらの変数による設定は、後述する変数ndeb-play-binaries-from-entryで、ほぼ同様の事が行えます。 違いはdescribe-keyの時の表示とエラーメッセージの一部だけ(の筈)です。 また、ndeb-play-binaries-from-entryも含め、同じkeyを指定した場合はndeb-play-binaries-from-entryndeb-play-movie-from-entryndeb-play-sound-from-entryの順に設定が優先されます。

変数ndeb-play-binaries-from-entryの追加

この変数にkey(define-keyのdocstringを参照して下さい)とリンクのタイプを指定したリストのリストを設定する事でEntryモードから音声・動画・画像の再生が可能になります。 例えば、以下の様な内容を~/.lookupに記述を行います。

(setq ndeb-play-binaries-from-entry
      '(("z" wave)
        ("x" mpeg)))

上記の場合、Entryモードからzを押す事でカーソル位置にあるentryの音声を、xを押す事で動画を再生します。 この際にprefix argumentを指定すると、先頭からn番目の音声、あるいは動画を再生できます。 変数ndeb-play-sound-from-entry, ndeb-play-movie-from-entryの設定例と同じ状態になる設定です。

リンクのタイプは複数指定する事も可能です。

(setq ndeb-play-binaries-from-entry
      '(("z" wave mpeg)
        ("x" xbm bmp jpeg)))

上記の場合、Entryモードからzを押す事でカーソル位置にあるentryの最初にある音声または動画を、xを押す事でentryの最初にある画像を再生します。 この際にprefix argumentを指定すると、keyに対応するタイプのうち、先頭からn番目のリンクを再生できます。

BMPイメージの表示方法の変更、変数ndeb-binary-bmp-display-typeの追加

Meadowを除く多くのemacsではBMPイメージを直接表示する事はできず、Lookup 1.4では一旦TIFFファイルに変換してから表示しています(ちなみにTIFFイメージが扱えない場合はBMPイメージとして直接表示、それもできない場合は表示しないという実装になっています)。 BMPイメージを直接扱えるMeadowでもその様になっているのはRLE圧縮されたBMPが表示できない頃があった為だったと思うのですが(あまり覚えていません)、現在のMeadowではRLE圧縮されたBMPも表示できるのでBMPで直接表示、ppm、TIFFの順番で表示に使える画像形式を調べるようにしました。 TIFFよりppmを優先して使用するようにしたのは、TIFFは避けたほうがよいという意見があったのと、私のところではNTEmacsでeblookが出力するTIFFファイルを表示できなかった為です。

実際に表示に使用する形式はndeb-binary-bmp-display-typeに設定されます。 不都合がある場合は~/.lookupで直接指定する事もできます。

インライン画像の表示方法の変更

Lookup 1.4では画像は全て前後に改行をはさんで表示するようにしていますが、(理化学辞典等でよく使われている)インライン画像に関しては本文のテキスト中に、改行をはさまずに表示するようになります。 eblookへのパッチも必要です。 尚、この変更により、ndeb-arrange-fill-linesがうまく動かない場合が出てくると思われます。

変数ndeb-gaiji-sizeの追加、辞書オプション・エージェントオプション:gaiji-sizeの追加

ndebエージェントでビットマップイメージによる外字表示を行っている場合、辞書が対応していれば外字の大きさをより大きなものに変更できるようになります。 変数ndeb-gaiji-sizeに、使用する外字の大きさ(高さ)を整数値で指定して下さい。 通常は16, 24, 30, 48のいずれかです。 指定した大きさの外字が無い場合は指定した値を越えない最も大きな外字を探し、それも無い場合は16ドットの外字を使用します。

個々の辞書について指定する場合は辞書オプションまたはエージェントオプション:gaiji-sizeを整数値で指定して下さい。 オプションで指定した大きさの外字が無い場合は16ドットの外字を取得します。 オプションが指定されていない辞書については、初めて外字データを取得する際に変数ndeb-gaiji-sizeの値に応じて自動的にオプションが設定されます。

bitmap-muleによる外字表示を行っている場合は、外字のサイズを大きくすると表示が乱れるので変更できないようにしています。

図版メニューの表示

EPWINGの広辞苑第五版などに含まれる図版メニューに対応しました。 対応するEB Library (4.3以上)とパッチをあてたeblook (20061204以降)が必要です。 selectモードかentryモードからMを押す(lookup-select-menuまたはlookup-entry-show-menu)事で図版メニューが存在する場合はentryに出現します。 同様にイメージマップも表示できるようになりました。

イメージからの参照先は、画像上の領域を示したリンクとして画像の下に表示されます。 また、emacs22以上では画像をクリックする事で該当する参照先を表示させる事ができます。

ndebのキーワード検索への対応

広辞苑第五版のような条件検索やクロス検索に対応した辞書と20070120以降のeblookを使用する事で、キーワード検索に対応します。 キーワード検索を行うには辞書オプション:default-methodや変数lookup-default-methodを設定するか、検索文字列の先頭に"@"をつけて下さい。 複数語を指定する場合はスペースやタブで区切ります。 例えば、広辞苑第五版では

@犬 猿 雉

のように検索文字列を指定します。 条件検索とクロス検索の両方の結果をそのまま返す為、最大でlookup-max-hitsの倍の項目数がヒットする可能性があります。

ndebでワイルドカード検索に対応

ワイルドカード検索に対応したeblookと、対応した辞書を使用する事でa?ple*の様なパターンで検索できるようになります。

ndebにおけるebnet対応

EB Libraryはversion 4から遠隔サーバにある辞書へのアクセスが可能になりました。 ebnetとはこの際に使用されるプロトコルです。 サーバ側にはebnetdが必要です。 同様の事はndtpによっても可能ですが、ebnetを使用すればndtpでは対応していない画像、音声等のマルチメディアデータが扱えます。 UNIX環境ではEB Libraryがebnetに対応していればeblookも自動的に対応しますが、Windows環境(厳密にはコンパイル時にDOS_FILE_PATHがdefineされる環境)ではeblookのソースにも変更が必要です。

ndeb-program-arguments, ndeb-process-coding-systemの変更

ndeb-program-argumentsが文字列から文字列のリストに変更になりました。 Windows上のeblook.exeが従来のndeb-program-argumentsの値を一つの引数として受け取るので、このままでは空白を含まない一つのオプションしか指定できない為です。 自動的に追加されていた-qオプションもこの変数で指定するようにしています。 また、ndeb-process-coding-systemもEUCに明示的に設定しています。 これらの値を~/.lookupで変更している場合は注意して下さい。

ndebにおける字下げの対応
変数ndeb-minimum-indentの追加
辞書オプション:minimum-indentの追加

EPWING辞書に含まれる字下げ情報に対応しました。 20070806以降のeblook 1.6.1+mediaが必要です。 字下げ量の指定が辞書オプション:minimum-indentで指定された値を越えた場合に、越えた文字数分の字下げを行います。 指定しない場合は変数ndeb-minimum-indentの値が参照されます。 デフォルトでは1です。 字下げ量の最小値が0である書籍を使用している場合はこれらの値を0にした方が良いかもしれません。

ndebにおける上付き・下付き文字への対応
変数ndeb-default-script-heightの追加
辞書オプション:script-heightの追加

Emacs 21.1以降でEPWING辞書に含まれる上付き・下付き文字情報に対応しました。 文字の大きさは、displayプロパティでheightを設定して変更しています。 設定する値は辞書オプション:script-heightの値が参照されます。 指定されていない場合は変数ndeb-default-script-heightの値が使用されます。 設定できる値に関してはEmacs lispのリファレンスを参照してください。

ndebにおける文字修飾への対応
ndeb-italic-face, ndeb-bold-face, ndeb-emphasis-faceの新設

EPWING辞書に含まれる文字修飾情報に対応しました。 イタリック体・ボールド体については20090219以降のeblook 1.6.1+mediaが必要です。 イタリック体・ボールド体・強調表示について、それぞれndeb-italic-face, ndeb-bold-face, ndeb-emphasis-faceを割り当てます。 表示が気に入らない場合はfaceの設定を変更してください。 手抜き実装のため、入れ子になっている場合は一番内側の指定のみ有効になります 。

ndebにおける見出し語への文字修飾情報の出力

ndebエージェントでは、見出し語を得るときはeblookの内部変数decorate-modeoffにする為、上付き・下付き・文字修飾といった情報は捨てていましたが捨てないようにしました。

ndebにおけるJIS X 4081 UTF-8 extensionの書籍への対応

eblookが対応していれば、エージェントオプション:codingutf-8を指定する事でJIS X 4081 UTF-8 extensionの書籍も扱えます。

ndebsエージェントの新設

ndebsエージェントが新しく使用可能になります。 これはndebエージェントのvariantです。 ndebではエージェント一つに対してeblookのプロセスが一つ必要ですが、ndebsでは複数のエージェントで一つのeblookのプロセスを共有して使います。

利点は起動にかかる時間を短縮できる事と、MeadowやNTEmacsのように同時に起動できる子プロセスの数に制限がある場合に、制限に届きにくくなる事です。 逆に、UNIX環境やエージェントの数が少ない場合にはあまりメリットはありません。 加えて、検索時にはndebエージェントよりeblookへのコマンドの発行数が増える為、ndebよりも時間がかかるかもしれません。

設定はほとんどndebエージェントと変わりません。例えば、以下のように設定します。

(setq lookup-search-agents
      '((ndebs "/usr/local/dic/kojien")))

エージェントオプション、辞書オプションについてもndebエージェントと同じものがほとんど使えます。 多くのケースでは~/.lookupに書かれたエージェントや辞書名に使用している"ndeb""ndebs"に書き換えるだけでそのまま使えます。 ただし、ndeb-binary-*等のカスタマイズ変数まで書き換えないように注意して下さい。

ndebエージェントと異なり、辞書のあるディレクトリの指定が誤っていた場合等にエラーにならずに辞書数0のエージェントとなります。 また、ndeb-program-arguments, ndeb-process-coding-systemによる指定は無視され、ndebs-program-arguments, ndebs-process-coding-systemが参照されます。 辞書オプション:codingによる指定も無視されますが、エージェントオプションによる指定は有効です。

eblookが対応していれば、エージェントオプション:codingutf-8を指定する事でJIS X 4081 UTF-8 extensionの書籍も扱えます。

変数ndeb-set-coding-automaticallyの新設

この値がnon-nilかつ、ndebsエージェントにおいてエージェントオプション:codingが指定されていない場合、初回アクセス時に自動的にエージェントオプション:codingと (Emacs23以降で、かつ設定されていなければ) :charsetsを設定します。 環境によっては初回アクセス時の速度が目に見えて落ちます。 耐えられない人はnilに変更するか、エージェントオプション:codingを全てのndebsエージェントで設定してください。

ndsrdでワイルドカード検索、正規表現検索に対応

a?ple*の様なパターンで検索できるようになります。

ndsrdで検索語の正規化

正規表現検索以外の場合に空白文字などを検索語から取り除くようにしました。

変数ndsrd-program-argumentの追加

ndsrdエージェントがcsrdを呼び出す際に付加するオプションを文字列のリストで指定できるようになりました。 Meadowからcsrdを呼び出す際に、文字列のコードがEUCだとcsrdにうまく渡されない場合があった為、オプションを指定してシフトjisで呼び出せるようにする為です。

ndspellエージェントにおける候補の並び順の変更

ndspellエージェントが複数の候補を返す際に、ispell等が返すのとは逆の順番に候補を並べていたのを合わせるようにしました。

ndicエージェントにおけるエージェントオプション:codingの有効化

ndicエージェントでSDIC形式の辞書を検索する場合、エージェントオプション:codingによって辞書の文字コードを指定できます。

文字コードの異なる辞書が混在する場合は辞書のディレクトリを分け、複数のエージェントを設定する必要があります。

ndestエージェントの新設

これは、平林幹雄さんが作成された全文検索システムであるHyper Estraierのインデックスを検索するエージェントです。 まだ実験段階のものですが、分けて管理するのが面倒になったので一緒に入っています。 説明は別ページに分けています。

ndwnjエージェントの新設

これは、日本語WordNetのsqlite3用データベースを検索するエージェントです。 説明は別ページに分けています。

ワイルドカード検索と正規表現検索の分離

ワイルドカード検索(?*を使った検索)は、Lookup本体側で正規表現検索としてクエリーを作り、エージェントに渡していました。 しかし、ndsrdやndeb[s]エージェントでは正規表現に変換する前の文字列を受け取った方が都合がいいのと、正規表現検索の書式はエージェント依存という建前から、ワイルドカード検索を検索メソッドの一つになるように変更しました。 正規表現への変換等が必要な場合はエージェントが行わなければなりません。 ワイルドカード検索が可能な辞書はSelectモードではmethodに"w"と表記されるようになります。 また、ワイルドカード検索のクエリーにlookup-query-methodを行うとシンボルwildとなります。

ターミナル上での外字表示の変更

ターミナル等のビットマップイメージでの外字表示ができない環境において、外字テーブル(辞書オプション:gaiji-table)で指定のない文字は<gaiji=za423>等の文字列がそのまま表示されます。 この改造版では代替文字(デフォルトでは"_")が表示されるようになります。

変数lookup-reference-default-captionの追加

referenceを貼り付ける文字列や、referenceの見出しの文字列が指定されていない場合に使われる文字列です。 本来はエージェント側で対応する事のような気もしますが、このパッチではLookup側で対応しています。

大きなサイズの画像表示に関する変更

インラインでの画像表示の際に、画像のサイズがndeb-max-image-sizeバイトよりも大きいと先頭からndeb-max-image-sizeバイトまで読み込んで表示しようとしますが、危険なので読み込まないようになります。 尚、XEmacs上ではndeb-max-image-sizeの設定はおそらく無視されます。

辞書オプション:normalizersの新設

関数名のシンボルもしくは関数名のシンボルと引数のリストを要素とするリストを指定する事で、検索文字列の正規化をかけることができます。 ここで指定された正規化は検索前に常に行われます。 例えば、特定の辞書に対しては検索をかける前に検索文字列のアルファベットから常にアクセントを取り除くといった事が行えます。

関数は第一引数として文字列を受け取り、文字列のリスト、もしくはnilを返すものが利用できます。 関数は指定された順番に、直前の関数が返した文字列に対して実行されます。 例えばa, b, c三つの関数を指定した時に、元の検索文字列が"0"に対して関数a("1" "2")という結果を返した場合、関数b"1""2"をそれぞれ引数として計2回実行されます。 関数bが返した結果が("1" "2")("2" "3")だったとすると、関数c"1""2""3"を引数として3回実行されます。

検索は最後の関数によって得られる文字列のリスト (複数回実行された場合はLookup側でまとめます) を使って行われます。 ndsrdエージェントでは実際に使用している例があります。

予め用意している関数として以下のものがあります。

lookup-normalizer-strip-chars

検索文字列から指定された文字を取り除きます。 追加の引数で取り除く文字のリスト、もしくは取り除く文字を含んだ文字列を指定します。

lookup-normalizer-japanese-old-to-new
lookup-normalizer-japanese-new-to-old

日本語の旧字を新字に、もしくは新字を旧字にそれぞれ変換します。 変換テーブルはLookup 2.0のものを利用しています。 文字コードutf-8が扱える環境が必要です。

lookup-normalizer-strip-latin-alphabet-accent

アルファベットからアクセント類を取り除きます。 変換テーブルはLookup 2.0のものを利用しています。 文字コードutf-8が扱える環境が必要です。

lookup-normalizer-wrapper

追加の引数に、文字列を受け取り文字列を返す関数名のシンボルを指定するとnormlizerとして利用できます。 更に追加の引数があれば呼び出す関数に渡されます。

辞書オプション:expandersの新設
変数lookup-query-expansion-methodsの新設
辞書オプション:expansion-methodsの新設

辞書オプション:expandersは辞書オプション:expander, :expand-filter, :hiragana, :stemmerを統合・拡張したようなオプションです。 指定された内容に基づき、検索の際に対象の辞書でヒットしなかった場合に新たな検索文字列候補により検索をかけ、結果を取捨選択できます。

具体的にはexpanderとfilter関数のconsを要素とするリストを指定します。 expanderに指定できる内容は:normalizersオプションの要素と同様で、関数名のシンボルもしくは関数名のシンボルと引数のリストです。 expanderに指定できる関数の仕様も:normalizersオプションの要素と同様で、また、従来の:expanderオプションで指定できる関数も指定できます。 filter関数は従来の:expand-filterオプションで指定できる関数をそのまま指定できます。 すなわち、文字列とエントリのリストを取り、エントリのリストを返す関数名のシンボル、もしくはnilが利用できます。 nilの場合は得られた全てのエントリを結果として用います。

指定された順番にexpanderによる検索とfilterによる選別を行い、最初にエントリが得られた時点で検索を打ち切ります。 例えば従来の:hiraganaオプションと:stemmerオプションでstem-english関数を指定した状態と同等にする場合は

(lookup-set-dictionary-option
 "dictionary-id" ':expanders
 '((lookup-kanji-get-readings . lookup-kanji-filter)
   (stem-english . nil)))

のように設定します。

尚、デフォルトの設定ではワイルドカード検索・正規表現検索・全文検索時にはexpander/filterによる拡張検索は行いません。 これは、辞書オプション:expansion-methodsもしくは変数lookup-query-expansion-methodsで設定できます。 いずれの場合も拡張検索を行う検索方法のシンボルのリストを指定します。 勿論辞書オプションの方が優先されます。

辞書オプション:expander, :expand-filterの廃止

上述の様に、辞書オプション:expandersオプションに統合されたので廃止しました。 :hiragana, :stemmerオプションは使用可能です。

辞書オプション:charsetsの新設

キャラクターセットのリストを指定します。 指定されたキャラクターセットのいずれにも存在しない文字を検索文字列が含んでいた場合に検索を試みなくなります。 不要な検索を試みないことで検索時間の短縮を図ることができます。

このオプションはLookup 2.0に実装されたものを移植したもので、Emacs 23以降でのみ有効です。

辞書オプション:codingの拡張

検索文字列が指定された文字コードで正しくエンコードできない場合には検索を試みなくなります。Emacs 23以降で、:charsetsオプションが指定されている場合はこのチェックは行われません。

辞書オプション:reference-regexpの新設

referenceの開始・終了文字列の正規表現のconsを設定する事で、関数lookup-arrange-referenceが辞書オプション:reference-patternに従ってreferenceを検索する際の検索範囲を制限します。 通常、ユーザが直接指定する事はありません。

ドキュメントの更新、info形式のファイルの削除

texi/lookup.texitexi/lookup-guide.texiを更新しました。 元が古いこともあって、現状にそぐわない点とか表現の統一が取れてない点とかまだまだあると思います。 修正・追記案等あればお知らせ下さい。

また、Lookupのパッケージにはinfo形式のファイルが同梱されています。 私の記憶によれば、これはインストール時に非NT系のWindows OS上のMule for Windowsでtexi形式のファイルからinfo形式のファイルが作成できない(と私が言った)為です。 しかし、Lookup 1.4からはemacs 19以前はサポート外という事になっているので、info形式のファイルはパッケージから外しました。 インストール時には Emacs を使って自動的に生成します。

バージョン番号の変更

バージョン番号は1.4から1.4+media-yyyymmddに変更されます。 splash画面、関数lookup-version、変数lookup-versionで確認できます。

修正される不具合

ndeb[s]エージェントでのの改行処理

ndeb, ndebsエージェントでのcontentの表示の際にlookup-arrange-fill-linesでの改行処理がうまくいかずに折り返しが生じることがあります。 不完全ですが応急的に対処しました。

eblookの起動

eblookを起動した際にエラーがあった場合にlookup-debug-modeの値によって挙動が異なります。 また、Windows環境ではeblookの文字コードの指定に不具合があります。

ndkksと:hiraganaオプション

MS WindowsやOS/2環境においてはkakasiを-uオプション付きで起動させないとうまく機能しません。

ndspellにおける異常動作

ndspellが返す候補を再検索した際に一つもマッチしなかった場合に動作がおかしくなります。 マッチしなかった場合は、ndspell自身がentryを一つ返すようにしました。

ndtpでの外字表示

詳細はMeadowのチケットを参照して下さい。 Meadowで、xbmの先頭に空行があると画像が正しく表示されないというものです。 meadow-users-jp MLではImageMagickの問題の可能性が高いとの事だったのであまり積極的に対応するつもりはありませんでしたが、現在のパッチでは修正されているはずです。 ただし、ndtpを使用していないので確認はしていません。

外字によるreferenceの分断

referenceの文字列内に外字があるとreferenceが分断されます。 Entryモードでこのようなreferenceがあるentry上でLを押すと分断されたreferenceに応じて多数のreferenceがentryに並びます。

外字の色

画像による外字表示の際に常に白黒(正確にはdefaultというfaceの色)で表示され、テキストの色が反映されません。 ちなみに、bitmap-muleを使用した場合や、NTEmacsではパッチをあてなくても反映されます。 また、XEmacsやUNIX系OSで動いているEmacsではどうなっているのかは知りません。 尚、変更部分はXEmacsとEmacsではほぼ独立した実装になっており、XEmacsに関しては触っていないので従来通りになります。

文字等を含まないreference

ndebエージェントで、referenceの開始タグと終了タグの間に何も含まれない場合にreferenceが生成されません。 EPWINGの書籍で、メニューからreferenceをたどると該当するreferenceを認める事があるようです。

外部プログラムの起動

一部の環境で画像表示や音声再生時に外部プログラムを起動しようとすると、下記のようなエラーがでて、外部プログラムの起動に失敗します。

(wrong-type-argument listp :directory-separator)

エラーが確認できたのはEmacs 21.4と、それをベースにしたMeadowです。 property listが余分な要素を含まない完全な形である事を想定しているようです。

splashの表示

bitmap-muleとMule-UCSを併用している場合にsplashが正しく表示されません。 このパッチではlookup-ja MLに投稿された水戸さんが書かれた修正を取り込んでいます。 また、NTEmacsでsplashの表示ができないバグも修正しています。こっちは例外処理を入れただけです。

インタラクティブなインストール時の不具合

Lookupには、インストールの手段の一つとして、Emacsを起動し、diredからinstall.elLで実行してインストールするという方法があります。 しかし、画像表示が可能な状態のEmacsでこの操作を行うと、ファイルのコピーは終了するものの途中でエラーになってしまいます。

message関数呼び出し時の不具合

message関数の呼び出し時に表示させたい文字列をformat-stringとして与えている部分がありますが、明らかに問題のない部分を除いてformat-stringを指定するように変更しました。

この変更をしない場合、例えばモジュール名に'%'を含むモジュールにlookup-module-forwardlookup-module-backwardで切り替えた時にエラーになります。

splash表示後の不具合

Lookupを起動させた時のbufferによってはsplash表示後に元のbufferに戻らない事があります。 lookup-pattern関数等によって初回起動した際にこの現象が起きると、コマンド実行時とは異なるbufferから単語をピックアップしてしまいます。

著作権情報表示の不具合

Lookupの初回起動直後に、著作権情報の表示に対応した辞書に対してその表示を行おうとするとエラーになります。

更新履歴

2009/09/15 Lookupを更新。 ndwnjエージェントを追加した。

2009/09/15 Lookupを更新。 Emacs19用のコードとファイル (の一部) を取り除いた。

2009/09/15 Lookupを更新。 検索語の正規化が行なえるようにした (:normalizersオプション)。 検索語にマッチしなかった場合の拡張検索を拡張した (:expandersオプション)。 なるべく不要な検索を行なわなくて済むようにできるようにした (:codingオプション、:charsetsオプション)。 ndebsエージェントで文字コードを自動で設定できるようにした。 ndebsエージェントで初回アクセスがあまりに遅い場合は:codingを設定するかndeb-set-coding-automaticallynilにすること。

2009/05/28 パッチを更新。 ndebsエージェントでJIS X 4081 UTF-8 extensionの書籍を扱えるようにした。

2009/03/03 パッチを更新。 文字修飾情報に対応した。 上付/下付き文字の大きさをカスタマイズできるようにした。

2008/12/23 パッチを更新。 ndeb[s]エージェントで、上付き・下付き文字が入れ子になっている場合に表示が乱れていたのを修正し、外側のタグのみ有効になるようにした。 ndsrdエージェントで重複エントリを検索結果から排除するようにした。

2008/11/15 パッチを更新。 ndeb[s]エージェントで上付き・下付き文字情報に対応した。 typoを修正した。

2008/09/27 パッチを更新。 ndicエージェントで辞書がSDIC形式である場合に、文字コードを指定できるようにした。

2008/07/31 パッチを更新。 ndsrdエージェントで、検索文字列に簡単な正規化をかけるようにした。 ndestエージェントを更新した。

2008/03/21 パッチを更新。 白井さんからパッチを頂く。 参照先一覧を表示(lookup-entry-list-references)した時に重複するものは表示しないようにした。

2008/03/21 パッチを更新。 eblookの起動時オプションのデフォルトに-iを追加した。 ndebsエージェントでエージェントオプション:codingを使用可能にした。 これにより、ndebsエージェントでndebエージェントと同様にEPWINGとEBGの辞書の混在が可能になった(はず)。

2008/03/02 パッチを更新。 初回起動直後に著作権情報の表示 (lookup-select-copyright) を行うとエラーになるのを修正した。

2008/02/01 パッチを更新。 2008/01/19にエンバグし、MeadowのMCI機能による音声再生後に一時ファイルを削除しなくなっていたのを修正した。

2008/01/19 パッチを更新。 外部プロセスを呼び出してマルチメディアデータを再生する辺りがごちゃごちゃになってきたので一部書き換えた。 ndeb-binary-programsに指定できる関数の仕様が変わったので、自作している人は要注意。

2008/01/19 パッチを更新。 買ってないけど広辞苑第六版対策に、動画再生時に一時ファイルを作成せずに再生させられるようにした。 41MBってなんだー。

2007/11/11 パッチを更新。 パーミッションが(また)おかしくなっていたのを修正した。 ndic.elに余分な文字が入っていたのを取り除いた。 いずれも白井さんからの御指摘。

2007/10/08 パッチを更新。 (多分) 2006/06/21にエンバグし、外字テーブルでglyphとalternateの両方を指定していると表示が乱れるようになっていたのを修正した。

2007/10/04 パッチを更新。 message関数の呼び出し方法が適切でない部分を一部修正した。 splash表示後に元のbufferに戻らないことがあるのを修正した。

2007/09/14 パッチを更新。 8/6にエンバグし、一部の画像が表示されなくなっていたのを修正した。 ndeb[s]で、マルチメディアデータ再生時に無限ループに入ることがあったのを修正した。

2007/08/06 パッチを更新。 ndeb[s]エージェントで字下げに対応した。

2007/07/10 パッチを更新。 画像表示可能な状態のEmacs上で、インタラクティブにinstall.elを実行した際にエラーになるのを修正した。

2007/05/29 パッチを更新。 BSD makeでmakeできるようにした(つもり)。

2007/05/21 パッチを更新。 texi/以下を更新した。 したけどまだ追いついていない。 info形式のファイルの同梱をやめた。

2007/04/24 パッチを更新。 ndestエージェントを更新した。

2007/04/21 パッチを更新。 ndestエージェントを更新した。 それからコードの細かい変更が少しあり。

2007/04/16 パッチを更新。 ndeb[s]で要求した大きな外字が存在しない場合にエラーにならずに16ドットの外字を取得するようにした。 MyPaedia Toolkit + EBStudioで変換した辞書の大きな外字が、16ドットの外字より文字が少ない事に対する対策。 ndestエージェントを更新した。

2007/03/20 パッチを更新。 ndestエージェントを更新した。

2007/03/14 パッチを更新。 ndestエージェントを追加した。 ドキュメントは別ページ

2007/02/19 ndspellにおいて、候補を後ろから順番に並べていたのを変更。 ndspellの候補を再検索した際に、一つもマッチないと動作がおかしくなるのを修正した。

2007/02/06 パッチを更新。 ワイルドカードから正規表現への変換に失敗するパターンがあったので修正した。 dictdの辞書を利用したndicエージェントではクエリーから正規表現への変換は完全にエージェント側で行うようにした。

2007/02/05 パッチを更新。 Lookup 1.4.1になされたセキュリティ修正を取り込んだ。 ワイルドカード検索と正規表現検索を分離した。 eblookでワイルドカード検索を可能にし、Lookup側も対応させた。

2007/01/24 ndeb[s]エージェントで条件検索やクロス検索によるキーワード検索を可能にした。 複合検索はできないまま。

2007/01/08 パッチを更新。 Entryモードからいろいろ再生する時にcontentの先頭にあるリンクを見つけられないのを修正した。図版メニューの画像とか。

2006/12/15 パッチを更新。 図版メニューの対応コードの一部がndeb専用になっていたのを修正した。 一部のアレンジ関数に入っている必要ではないコードを外した。

2006/12/04 パッチを更新。 図版メニューに対応した。 私がebnet対応の状態でEB Libraryをビルドできない為、eblookのバイナリはebnet対応か図版メニュー対応かの二者択一になっている。 Lookupがイメージマップ(正式名称不明)へのリンクをたどるようになったので古いeblook(リンクは表示するがたどった先はまともに表示できない)と混ぜると危険かも。

2006/12/01 「なんだか設定がよくわからない」との事なのでndebsエージェントの記述をもう少し人に優しくした。

2006/10/22 パッチを更新。 ndebsを(自分の環境では体感できる程度に)高速化した。 ndebも同様の処理にしたが普段使ってないので早くなったか不明。 この変更でndebでeblookの起動時にエラーとなっていたケースはndebsではエラーにならずに無視されるようになった。

2006/10/08 公開。

古い履歴


最終更新日: 火曜日, 9月 15 2009 @ 10:53 午後 JST; 3,265 閲覧件数 印刷用画面