hishidaの開発blog

EBシリーズ(EBPocket,EBWin,EBMac,EBStudio),KWIC Finder,xdoc2txt,読書尚友の開発者ブログ

EPWING版『ジーニアス英和大辞典』の表示問題について(解決編)

EPWING版『ジーニアス英和大辞典』はEPWINGを代表する大型辞書の一つだが、EBWin4を始めEBシリーズで使用するときに、困った問題が2つある。

問題1:「項目毎」や「全ての項目」表示で、説明が途中までしか表示されない

例えばtakeを検索すると、連続表示*1では当然全ての説明が表示されるが、「項目毎」や「全ての項目」表示の場合、途中で表示が途切れてしまう。

takeを項目毎で表示

最近では以下のサイトでも指摘されている。

baldhatter.hatenablog.com

これはEPWING版『ジーニアス英和大辞典』自体の問題で、通常は検索語の区切りを意味する検索キー記述子(1F41)が、本文中の1,2,3,a,b,のような項番号毎に使用されているからである。
解決方法は、次のように辞書毎の設定でストップコードに 1F090001 を指定する。

辞書の編集でストップコードを指定する

1F09という記述子は、字下げ指定で、1F01 0001 は1字目(=字下げ無し)の意味だが、ジーニアスの場合はこれが項目区切りの代わりとなる。
これで「項目毎」および「全ての項目」表示で、項目の説明が終わりまで表示される。

ストップコード指定後の項目毎表示。説明文が途切れない

問題2:成句を検索したとき、見出しが表示されず説明から表示される

例えば、"take away"を検索すると、次図のように、本文中に見出しが表示されず、説明から表示される。

これは前方検索インデックスの指す本文アドレスが、見出しの次の本文位置を指しているからである。
明らかに辞書側の問題である。

この問題は2017年頃にEBシリーズサポート掲示板でも取り上げられている。

EPWINGジーニアス英和大辞典の表示

EBPocket / EBWin サポート掲示板(終了:閲覧のみ可)

掲示板にもあるように、佐藤様が辞書自体を改編するperlスクリプトを公開してくださっている。 

ジーニアス英和大辞典」の派生語表示修正スクリプト]

http://babelkund.php.xdomain.jp/palm03.html

このスクリプトで改編したHONMONを検索した結果がこちらである。見事に見出し語から表示されている。

なお、記事ではActive Perlが使用されているが、現在はActive PerlのFree版は入手が難しいので、strawberry-perlが代用できる。

strawberryperl.com

この記事を書くに当たり、strawberry-perlで「ジーニアス英和大辞典」の派生語表示修正スクリプトを実行してみたが、問題なく使用できた。
このスクリプトは現在でも使用できるので、perlをインストールする労を厭わない方は、ぜひ試してみられることをお薦めする。

 

*1:EPWINGの本文というのは紙の書籍のように1ページ目から最終ページまで一つの本文になっており、項目の区切りには目に見えない識別子のコードが入っている。それで本のように連続表示するか、辞書の項目毎に表示するかをソフト側で選べるようになっている。これが「連続表示」と「項目毎表示」の違いである。「全ての項目」表示というのは、EBWin4、EBMac,EBPocketの独自のモードで、複数辞書を串刺し検索したときに、辞書毎に一致した項目を連結して表示するモードである。Logophileの「統合表示」に相当する。

macOS Monterey12.6でEBMacの外字が表示されない【解決】

macOS Monterey12.6でEBMacの外字が表示されない」という報告を受け、Macbook AirmacOSをMonterey12.5から12.6に上げたところ、外字ビットマップが全て豆腐になってしまった。

どうもMonterey12.6の問題らしく、海外でも話題になっていた。24bit未満のbmpが表示できないらしい。

discussions.apple.com

次のmacOS Venturaでは表示できるという情報もある。いずれ対応されると思うので、EBMac側ではmacOSの対応を待つこととする。

 

P.S.

この問題はiOS15.7上のEBPocketでも起きていることを確認した。iOS16.0では起きない。

developer.apple.com

iPhone7以前、SE初代、iPad mini 4、iPad Air 2の方は、iOS16にはアップデートできないので、iOS15.7は決してインストールしないようにお薦めする。iOS15.6は署名が取り消されているので、いったん15.7に上げると、二度とダウングレードできないので、積んでしまう。(2022/10/15)

P.S.

2022/10/19に開発者向けに公開されたiOS15.7.1RCをテストしたところ、上記の24bit未満のbitmapが表示できない問題が修正されたようだ。EBPocketで問題なく外字が表示できることを確認した。正式版は10/25にリリースされるとのことなので、しばらくお待ち頂きたい。(2022/10/20)

P.S.

10/25にmacOS Monterey12.6.1がリリースされ、bitmapが表示できない問題が解消していることを確認した。セキュリティアップデートとなっているが、しれっと直してきた。やっぱりバグだったのか。

読書尚友 for iOS ePub・テキスト読み上げ対応

読書尚友 for iOS のリリースから早いもので1年が過ぎた。開発予定の機能で残っていた、「ePub対応」と「テキスト読み上げ」の実装がやっと終わったのでリリースした。

ePub対応は、Android版の機能をほぼJavaからSwiftに移植しただけなので、表現力はほぼ同等である。iOSePubを読むなら定番のブックアプリがあるので、対応の必要はあまりないと思っていたが、ブックにePubを転送するのは割と面倒に感じる。ローカルのePubを日本語縦書きビューアで気軽に読む用途には、使えるのではないだろうか。

テキスト読み上げは、AVSpeechSynthesizer を利用した。Androidに比べると、ずっと簡単に実装できた。バックグラウンドでの再生にも対応しているので、通勤中に耳で読書するような用途にも使えると思う。ただ、肝心のテキスト読み上げのエンジンがAndroidの方が優秀で、iOSだとけっこう不自然な読み方をされてしまう。ちなみに読み上げエンジンはデフォルト(Kyokoというらしい)のほかに、Siriの音声も選択でき、Siriのほうが少し滑らかなようだ。

 

iPhone XS導入

iOS16の対応機種がiPhone8以降となり、小生の所有するiPhone SE(初代)はサポート対象から外れてしまった。
エミュレータがあればiOS16の動作確認はできるが、どうしても実機でないと分からない部分もあり、iOS16対応機種を購入する必要性に迫られた。
要はiOS16以降対応ならよいので、中古のiPhone XSを購入することにした。SE2のほうがコスパはよいのだが、ノッチ付端末の実機をテスト用に欲しかったという事情もある。性能的には現在でも十分通用するし、中古価格も256Gで4万円台で入手できる。
iPhone SEY!mobileのSIMは、n141という、「ワイモバイル版のiPhoneでしか使えない」というものだが、SIMフリー版のXSに差し替えたところ、問題なく使用できた。
バッテリは購入時83%だったが、待ち受けで3日ぐらいは持つので、バッテリ交換はまだ先延ばしできそうである。

さてiPhone XSで読書尚友を動かしたところ、ノッチ付端末特有の不具合が色々とあることがわかった。

  1. タイトル行がノッチに重なってしまう
  2.  画面下部のページ移動のスライダーが、スワイプ領域と重なるため押せない(エミュレータだとマウスで押せるので、気がつかない)

とりあえずノッチ付端末用に表示を調整したバージョンを緊急リリースした。

EBPocketのほうはiPhoneXが出たときに苦労して対応した甲斐があって、特に問題はなかった。

本当は読み上げ機能やePub対応など、まだ実装していない機能があるが、開発のモチベーションが上がらない。気分が上向いてきたら、再開できると思う。

 

読書尚友 iOS版 公開

読書尚友 iOS版を公開しました。 

読書尚友 - 青空文庫ビューア

読書尚友 - 青空文庫ビューア

  • hishida
  • ブック
  • 無料

apps.apple.com

 広告付フリーソフトです。アプリ内購入による広告解除を追加予定です。

  • Android版の機能を踏襲していますが、次の機能は実装していません。今後の対応は未定です。

  - ePub
  - 音声読み上げ
  - OPDSライブラリ

  • テキスト、PDF、画像zip/rarに対応しています。

 

読書尚友 iOS版 テスター募集

以前告知した読書尚友(青空文庫ビューア)のiOS版の開発がある程度進んだので、テスターを募集します。
テスターを希望される方は、下記のリンクからメールアドレスを登録してください。

https://ssl.form-mailer.jp/fms/574405c4714498

24時間以内に次のような招待メールが届きます。 App Storeから Test Flight をインストールし、メール本文の”View in TestFlight”を押すと、Test Flightから読書尚友のパイロット版をインストールできます。Test Flightからフィードバックを送信することができます。

f:id:hishida:20210804182648p:plain

テスターは先着100名に達するか、読書尚友の正式版をリリースした時点で募集を締め切ります。
パイロット版は本日から90日間(10/31まで)使用できます。

青空文庫関連の機能はほぼAndroid版と同じで、PDFも読めます。
今のところAndroid版にあってiOS版にない機能は、ePubビューアと 音声読み上げです。希望があれば追加を検討します。

f:id:hishida:20210802194715p:plain

f:id:hishida:20210802194816p:plain

f:id:hishida:20210802194857p:plain

f:id:hishida:20210802194940p:plain



M1 MacBook Air を購入した

5年近く利用したMacBook Pro (Retina, 13-inch, Early 2015)を、M1 MacBook Air に買い換えた。Apple Siliconでのテストがしたかったことが一番の理由だが、最近Pallarels Desktop 16.5が ARM 版Windowsを正式サポートしたことが決め手になった。

ユニバーサルバイナリのテスト

まず最初に確認したかったのは、ユニバーサルバイナリとしてリリースしているEBMacやEBStudio for Macが、本当にApple Silicon版で動作しているかどうかだ。アクティビティモニタで確認すると、種類の表示がちゃんとAppleになっている。これでApple Silicon版が動作していることが確認できた。

f:id:hishida:20210621201149p:plain

アクティビティモニタ

AppStoreからEBPocketを導入する

ひとつ気になっていたのは、AppStoreからiOS用のアプリが導入できるらしいということ。ということはEBPocketも導入できるのでは?

実際にAppStoreで "EPWING"で検索すると、EBPocket のpro版とfree版が表示される。Mac版のアプリと同様に問題なくインストールでき、実行も問題ない。画面のサイズを自由に変更できるiPad版アプリとして動作するようだ。

f:id:hishida:20210621201333p:plain

AppStoreの表示

一つ困ったことは、iOS版のアプリのドキュメントフォルダにデータをコピーする方法が見つからないことだ。EBPocketの場合は、辞書データをドキュメントフォルダに転送できないと、事実上使い物にならない。

iOSの実機だとファインダー(WindowsだとiTunes)でファイル転送ができるが、ファインダーではBig Sur上で動いているiOSアプリにファイル転送ができないようだ。

実はEBPocketはデータを転送する方法としてファインダ(iTunes)によるファイル転送のほかに、FTP転送を用意している。EBPocketでFTPサーバーを起動し、Mac用のFTPクライアントを使用すれば、辞書データをファイル転送することが可能だ。

f:id:hishida:20210621201437p:plain

FTPクライアントによる辞書の転送

これでMac上でEBPocket for iOSとEBMacが同時に使用できるようになった。さらにPallarels Desktop上のARM版Windows上でEBWin4が動作するので、プラットフォームの違うEBシリーズを同時に使用できるというカオスな環境になった。

f:id:hishida:20210621201518p:plain

EBPocket for iOSとEBMacとEBWin4を同時に動かす

Pallarels Desktopで ARM版Windowsを使う

さて、せっかくのM1 Macなので、Pallarels DesktopでARM 版Windows10を使ってみたい。ARM 版Windowsは販売されていないが、開発者登録を行えばInserder Preview版を無料でダウンロードできる。

Pallarels Desktop 16.5でARM 版Windows10をインストールしてみたところ、日本語ランゲージパックをインストールしてキーボードを日本語に設定すれば、問題なく使用できることがわかった。(ただし今のところ、32bitアプリしか動かせないらしい。)

日常的に使用するMicrosoft Office 365、秀丸、Visual Studio2019、TeraTermFFFTPRubyPythonなどが正常動作することを確認した。テキスト作成の用途なら十分実用可能だし、開発もできるかもしれない。さすがにWindows用のアプリの開発はネイティブのWindowsのほうが快適なので、今後もSurface Pro 6 と併用することになると思う。

なお、拙作のEBWin4とKWIC Finder 4(どちらも32bit版)も問題なく使用できた。Visual C++再配布可能パッケージの導入もいらなかった。

これで日常的に持ち歩くPCをSurface Pro6からMacbook Airに変えたので、今後しばらくは iOS用のアプリの開発を中心に行うつもりである。

iOS版の読書尚友の開発状況だが、順調に進んでいるので、もうしばらくしたらご紹介できると思う。