https://docs.google.com/file/d/0B4NLRuii3b3uWXhvXzIxN2lHUHM/edit?usp=sharing


暑い日は部屋に篭もってプログラミングするのが一番ですね。

ほとんど需要が無いと思われるシリーズの続きです。

主な変更点
・ダブルクォーテーションのノノカギへの置換
・挿図の表示
懸案だった2点をとりあえず解決しました。

ノノカギ使用例 吉川英治 私本太平記 あしかが帖

ノノカギについては、クォーテーション内文字列の文字コードをチェックし、unicode の汎用カテゴリで Lo を返す場合は即日本語(即ち縦書き)と判断しています。日本語とローマ字混載の場合は横書きのままが自然かと思いますが、現在は対応していません。

挿図の例1 吉川英治 私本太平記 あしかが帖

挿図の例2 吉川英治 私本太平記 みなかみ帖

挿図の件はかなり苦戦しました。プログラムの構造が、
フォーマッタ
ページレンダリング
行レンダリング
の3段構えなので、挿図の出現情報の受け渡しでかなり冗長な処理となっています。まあ、青空文庫には滅多に挿図は出てきませんので実用上問題ないとは思いますが。
画面より溢れる大きさの図は適当に縮小します。pycairo の機能をそのまま使っているので余り鮮明でないのが残念です。

そのほか、設定情報ファイルの参照を導入したり細かい部分で結構修正を加えています。構造的に乱丁は生じにくいのですが、落丁する可能性が高い。バグ出しに読み飽きたテキストばかり使っているのもなかなか苦痛だったりするのですよ。



先日仕入れたニコマートFTNの話。

何かファインダーを覗いていてピント合わせがしっくりこないのですね。無限遠が出ない、ような気がします。このFTNのピント板はセンターがマイクロプリズムのタイプ(※)なので、少しでもずれているとかなり目障りなのです。
で、久しぶりに新宿ニコンへ行って点検してもらいました。その結果、恐るべき事実が判明したのです。

1)背中が曲がっている。
ボディバックが傾斜しているそうです。具体的にはレンズ面に対してボディバックが左右に傾斜していると。ということで、どんなに頑張ってピントを合わせてもフィルム面にはきちんと結像しない。
2)シャッターが1/3段近く延びている。
延びているだけでシャッター幕の走行ムラはないので、撮影時に注意すれば問題ないでしょう。

僕が気にしたファインダー像の件は何ら説明がありませんでした。ボディバック異常があまりにショックでこちらも確認するのを忘れていましたが。
でもですね。FTNって一説によると前期・後期モデル合わせて100万台も生産されたそうです。当時の品質管理がどの程度か分かりませんが、これだけ数を出すとなると公差をどの程度見込んでいたのか気になってきます。40年経ってから精密計器でチェックして異常が見つかっても、それは仕方ないことではなかろうかと思うのですね。

今日(日曜日)久しぶりに暗室に入ったのですが、そういえばFTNで撮ったネガを引き伸ばすのを忘れていました。いずれ大四つにでも伸ばしてよく眺めてみることにしましょう。

※出荷時オプションでセンタースプリットタイプのものがあったはずですが、未だにお目にかかったことがありません。

ほとんど需要はないと思いますが。DL及びRUNは自己責任でどうぞ。 

https://docs.google.com/file/d/0B4NLRuii3b3ud3ZmWEt4ZE1JZTQ/edit?usp=sharing

昨年の9月頃、PuppyLinux で青空文庫のリーダーを作っていました。勿論、素のPuppyではどうしようもないのでpygtk をインストールして縦書き表示やらルビ表示やらさせていたのですね。

およそ1年ぶりにコードを見直していて、我ながら実にやっつけ仕事だったなあ、と。まあ、他人からお金をもらった訳でもないし、とりあえず動いてそれなりに実用にはなったので無駄ではなかったのですが。

で、ここ数日、新規に吉川英治なんぞをダウンロードしてきて眺めていて気づいたことがいくつか。

1)「」が無駄にローテートする。
日本語レンダリングにはPango を使っていますが、Upup precise 3.8.3.1 に同梱されているバージョン(1.30.0  pkg-config --modversion pango にて)にバグ(というより仕様)があり、特定の条件で表示がおかしくなります。

文字列を表示しようとすると、そのままだと普通に横書き(右から左、西から東)になるのでこれを縦書きにします。具体的には文字列の進行方向を90度右に振ります。
pangocairo_context = pangocairo.CairoContext(context)
pangocairo_context.rotate(3.1415/2)

そうすると上から下に表示されるようになります。この際、コンパス(?)も土台ごと90度右に振られていることに留意してください。さて、このままだと文字も右横倒しにままなので天地方向を反時計まわりに振ります。
layout = pangocairo_context.create_layout()
ctx = layout.get_context()
ctx.set_base_gravity( 'east' ) # (先ほどのコンパス上で)東側が地になります

これで期待したように日本語縦書きが実現されます。使うフォントによっては縦書きに対応していないものもあるようで、PuppyLinux標準のM+1P+IPAGではうまくいきませんので手元の環境ではIPA明朝を使っています。

pango は結構頑張っていて、「」のように回転しないほうがよいものは set_base_gravity( 'east' ) 実行後もそのままにしておいてくれます。
しかし、台詞なんぞで1行が「…………」とかあると途端に誤動作するのですね。
察するに … はset_base_gravity( 'east' ) で向きを変える必要はないので日本語と判断されず、前後の「」も日本語縦書きの処理から外されてしまうのではないでしょうか。

pango をアップデートして見ればよいのでしょうが失敗したときの事を考えるとぞっとしますので見送っています。というか、最新ソースを単純にビルドしたらcairoやらなんやらが不足しているらしくconfigure が止まりました...

正規表現(python の re)で「…………」を検出して set_base_gravity をパスすれば良いのですが、思うように動作しません。python の reって難しいよな。


2)ノノカギの問題
全角のダブルクォーテーションは始まりと終わりがそれぞれあります。66 と 99 ですね。青空文庫でもそのようにタイプされているので横書きで見る分には問題ありません。
で、縦書きにするとフォント側の問題なのかうまく表示されません。まあ、本来縦書きで使う役物ではありませんから仕方ないところ。自前で 99 と 66 に置き換えてもいいのですが、日本語縦書きにはノノカギという役物があるそうです。置き換えるならそれを使うべきか。
しかし、文中に英語なんぞが出てきてそれを6699で括っているなら置き換える必要は無い訳で、フォーマッタは結構複雑な処理になりそうです。この辺もpango で対応してくれたらなあ。

3)未だ収録されていない文字
青空文庫は(最近入力されたものは分からないが)shift-jisで組まれているのでいわゆるJIS第3、第4水準はタグ表記されています。本稿の青空文庫リーダーでは自前でデコーダ(単なるテーブルルックアップ)を用意して表示していますが、それからも漏れる外字があるようです。

4)ビットマップの表示
吉川英治 私本太平記 を眺めていたら家系図をインクルードしていることに気づきました。うーむ、どうやって表示しようか。pango(pangocairo)で作ったキャンバスは一時ファイルにpngで書き出しているので、簡単に実現できそうな気もしますが。

5)ルビの禁則処理
実装するのを完全に忘れてますな。まあ、無くても困りませんが。


うーん、4)あたりは是非実装したいところではあります...


追記
upup raring 3981 をインストール、リポジトリからpygtkをインストールして試してみたところ、1)の問題は解決していました。やはりpango のバージョン固有のバグ(というか仕様)のようです。尚、ダブルクォーテーションの6699問題はそのまま。

ちなみにupup raring の体感速度は間違いなくprecise を上回っています。Lucid からprecise にアップデートした時も感じたのですが、カーネルバージョンって大切なんですね。日本語化処理は日本語フォーラムの情報を元に進めたのですが、今一歩というところです。残念ながら当分precise で我慢しなくてはならないようです。



0505 渋谷行き IKEAの全面広告

ソフトシャッターレリーズ AR-1 1個1050yen 

久しぶりに中野のフジヤカメラに行ってきました。で、買ってきたのは
Nikon AR-1 ジャンク館にて1050yen
水銀電池代替の空気電池 2階にて630yen

AR-1 は ニコンレンジファインダーや(おそらく)Nikon EM より前の一眼レフ、FからFM,FE迄 で使える、いわゆるトールシャッターボタンです。ニコマート系やFM,FEではシャッターボタンにケーブル接続用のネジが切ってあり、そこに取り付けるタイプのボタンも使えますがそうでないFやF2では必需品といっていいでしょう。特にS系やFではこれを取り付けると右親指でのレリーズが格段にやりやすくなります。

ところで、買ったフジヤカメラではジャンク扱いでした。こんな簡単な構造なもの、どこに不具合があるのか念のため尋ねたところ、別に問題なく普通に使えるとのこと。まあ、ジャンク館においてあるものは雑誌や書籍を除いて原則ジャンクなのでジャンク表記は当然ではありますが。

次に水銀電池代替の空気電池。ちょっと高いですが現行のボタン電池にとりつけるアダプターは2000円くらいするので。空気電池ということで寿命が気になりますが、起電圧を合わせてあるので昔のカメラで使う場合は安心して使えます。

電池を先日仕入れたニコマートFTNにセットして試してみたところ、露出計は生きており指示もISO400で使った限りでは正確でした。今まで正確に露出を見るときはコシナのVCメーターかデジカメ(Powershot S95)の表示を流用したりしてましたが、これが結構煩わしかったりしました。やはり内蔵露出計は便利です。

 


Search

Calendar

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< August 2017 >>

Archive

Mobile

qrcode

Selected Entry

Link

Profile

Search

Other

Powered

無料ブログ作成サービス JUGEM