2010年12月23日木曜日

イエス・キリストと蜘蛛の糸


「蜘蛛の糸」といえば芥川龍之介を思い浮かべますが、キリスト教にも蜘蛛の糸の話しがあったのです。今日、教会学校で仕入れたばかりのネタだよ^^

まずは画像のクリスマスツリー。
あのクリスマスツリーの飾りには意味があったのです。

クリスマスツリーの上にある星は東の博士たちをイエスキリストに導いた星です。
で、リンゴが飾ってありますね。あれはアダムとイヴが食べたリンゴです。
画像にはないけど天使が飾ってあれば、羊飼いに現れた天使です。
そしてクリスマスツリーを巻いているモール。こいつが蜘蛛の糸なのです。

で、ここからがイエス・キリストと蜘蛛の糸のお話し。
シリヤに伝わる伝説です。
ヘロデ王の手を逃れてエジプトに向かって旅立ったヨセフとマリヤと幼いイエス様でしたが、その旅の途中、夜を過ごすために小さな洞穴に入りました。
そこには1匹のクモがいました。
寒い夜、クモはこう思いました。
「幼いイエス様が風邪をひかないようにしなければならない」。
そこで、クモは洞穴の入口にくもの巣を張ったのです。
そんなことで寒さをしのげるわけではありませんが、クモはそんなことはおかまいなし。
イエス様のために、自分のできることをしたのです。
真夜中のこと、ヘロデの兵隊がイエス様を追って、その洞穴までやって来ました。
もう絶体絶命です。
ところが、兵隊はこう言ったのです。
「この洞穴にはクモの巣が張っている。中に人がいるはずはない」。
こうして兵隊たちは別のところへ行ってしまいました。
洞穴の入口には夜露をいっぱいにたたえたクモの巣が月の光の中でピカピカと輝いていました。
クリスマスツリーに掛けられる銀のモールや金のモールは、この時のクモの糸を表わしていると言われます。
マタイによる福音書・連続説教 108より引用

明日はクリスマス・イヴ、こちらは仕事で夜空の下に立っていますが、良きクリスマスをお迎えください。

2010年12月20日月曜日

正規表現でタグの外側だけ対象に置換する

JavaScriptで、タグの外側だけを置換する。を読んで(これっPerlならどうするの?)っと思ったものの自力では無理でした。
if~else~でやろうとしたこと事態が初心者 。・゚・(つД`)・゚・。

ググリ方が悪くなかなかヒットせず、試しに「タグの外側だけを置換」(マンマ)で検索したら見事ヒット。

Perl正規表現雑技にありました。

正規表現で(?:\G|>)[^<]*?

と書くのですが、?:\Gが全く持って読めなかったので、ググリながらメモ。
タグが閉じたところから次のタグが始まる前の場所はタグの外側である.つまり, >[^<]*? である.
これは理解できる。が、ここから躓く。
また,前回置換した場所も タグの外側を置換したのであるから当然タグの外側である.その場所から次のタグが 始まる前の場所もタグの外側である.つまり, \G[^<]*? である.
\Gの意味を調べてみた。

正規表現メモには
文字列の先頭もしくは(グローバル指定時の)前のマッチが終了した 位置にマッチします。

正規表現 /g と \Gを読んで何となく分かった気になる。

次に?:

こいつはせうぞーさんのEPUB版『InDesign者のための正規表現入門』にあった。

グループのキャプチャをしない[検索のみ]

ということです。ループさせないために?:\Gを使っているのか? 続きを読むと。
ところが,文頭からタグが始まる場合に修飾子 g をつけて繰り返し置換させようとするとまずいことになる. 文頭からタグが始まる場合 ^()(?=<) が最初に マッチする.つまり,文頭の < の直前の隙間の空文字列がマッチし,パターンマッチの開始場所は最初の地点から動かない.これでは次に 修飾子 g によって再度置換しにいったとしても 同じ位置で永久に繰り返すことになってしまう.そこで,Perl では空文字列に マッチするような場合には,初回は空文字列がマッチするがそれ以降は マッチせずに必ず 1文字分は進むようにマッチしようとする. これにより永久に繰り返すことを防いでいるわけだが,その結果,今度は .*? が文頭の < を含むようになり, 一旦文頭の < を含んでしまったら,文末か次の < が来るまで伸び続け,結局文頭から始まるタグを含んでマッチしてしまうことになる.

^()(?=<) が出てきたので読み解く

^()は先頭のグループ化された何もない文字列

?=は肯定先読み

つまり[\d,]+(?=円)が「(?=円)」をアンカー位置として「[\d,]+」がマッチした場合だけ検索が成功するがごとく、< の直前の隙間の空文字列にマッチする。(< の直前の隙間の空文字列というのがよく分からんのだが)

ところが続きを読むと?:\Gの説明ではないのです (-"-;
そこで,.*? が < を含まない ようにすることを考えると,[^<]*? となる. この時点で最初の正規表現はもう少し簡単になることがわかる.つまり, ([^<]*?)(?:$|(?=<)) というのは ([^<]*) とすることができる.

理解するにはまだまだ時間がかかりそうです。

2010年12月15日水曜日

電子書籍の仕掛けというか思いつき

ものかのさんの「ゲームと電子書籍」を読ませていただき、倉田さんの「夕暮にゆうくりなき声満ちて風」(NOVA2所収)を思い浮かべました。

これっ、読まれた方なら分かると思うのですが、紙メディアでは無理がある作品なんです。
紙の替わりに電子機器を使うという発想でも同様です。
解説ページを参考に読もうとしたのですが、そこまでする根性がなく断念しました。

この作品ってゲーム機器で読むような作品なのです。
ベジェ曲線のテキストが連続・交差する作品はベジェテキストが順次表示される形でなければ無理なのです。
ところが紙メディアでは順次表示される途中経過が省略され、最終形のみ表示され、読者にとって訳分からなくなってしまいます。
この作品は最初ベジェテキストが表示され、次に別なベジェテキストを表示、この繰り返しで紙面を埋めていく。そういう作品なのです。

作品をスキャンして、その流れをこのblogにUPしようと思いました。
しか~し、NOVA2は読み終えた後、教会のバザーに出品してしまい手許にありません。
仕方ないので最近はまっているコトリコさんの講談の時代薄小説をちと弄くりまして。



↑最初の表示。クリックして次が表示される↓。


次のクリック↓


次のクリック↓



そして次↓



まぁこんな感じです。
クリックする度にホワイトスペースが埋まっていくドキドキ感というのがありませんか?(ひょっとしてアチキだけ???)

今の電子書籍の議論って紙をどう再現するか(日本語組版を含めて)ばかりでして、電子書籍でなければできないというドキドキ感がないんです。
倉田さんのベジェテキストがホワイトスペースに順次埋まっていくのを読みたいですねぇ~。

2010年12月13日月曜日

書体デザインの現在と未来

タイポグラフィの世界の第2回セミナーに行ってきやした。
四者四様の世界が覗けて結構、面白かったぞ^^
というか一人でも十分セミナーになる面々を4人集めたとはかなりの贅沢。
前列2列目右端で小形さんがtsudaってました

以下は自分のメモ書きから

岡沢氏
・游築見出し明朝は昭和の時代に合う
・ヒラギノUDは『すぐ消えていく言葉に合う書体』がコンセプトだった(twitter、メールなど)
片岡氏
・丸明オールドは『吾輩は猫である』をスキャンして作った
・個性の字形とすぐれた字形を合わせ、中間を一本の線でなぜることで遺伝子を受け継ぐ書体になる
西塚氏
・りょうゴシックPlusNはAdobeのコーポレイトフォント(←知りませんでした)
・かづらきはリガチャーが少ない(36個)、居酒屋のメニューにピッタリ
鈴木氏
金シャチフォントプロジェクト(都市フォントプロジェクト)
・八に歴史あり
・文字がいつか街の風景になる


質疑応答(小形さんより引用
欧文のフォントを和文組み合わせると思うが、欧文の数字、記号を作る際、どう考えているのか。

西塚:Adobeでは欧文は作っていない。(USで)英文で作ったものを組みあせて作っている。
岡澤:和文フォントの中で占める重要度は高いが、流れで読むもの。単独で使われようにが考えていない。
鈴木:アクシスフォントは最初売れなかった。数字はたしかに重要。自分の場合、他の人(専門の人)に頼んでいる。迂闊に手出しできないなと思ってる。
雪:かつて従属欧文という形だったが、現在は日本人が専門に欧文を作っている。
鈴木:従属という言葉は失礼。それはやめよう。不可欠のもの。良い名前があればいいのだが。
片岡:欧文は怖くて手が出せない。 自分が組んでよかったものをアレンジ。基本的には丸明はセンチュリーのようにオーソドックスなものをアレンジ。

リュウミンLを使っていた人は誰しもあまりの従属欧文のひどさに目を覆い、仕方なくフォントセットを使った人も多いはず(自分もそのひとり)。逆にそこそこマッチしていたのなら自分のフォントに対するこだわりが生まれなかったとも思う。その意味でリュウミンLには感謝している。
質疑応答で日本語になかった英数字を取り込むことの難しさを改めて感じた次第。逆にそこにこそデザイナーがセンスを発揮するところなのだろうな。

で、このセミナー出席で初めて知ったのが日本語にもリガチャーがあるってこと、しかも36個も。家に帰ってからググっても36個の画像は見つかりませんでした。どなたかがUPしてくれるのを期待してます。
ちなみに街で見かけた書体にある「だし」はリガチャーになるの???


最後に。。。

このようなセミナーはUstで録画配信すべきだと思う。強~く思う。

2010年12月11日土曜日

結果的に最短一致

前日の続き。山括弧のある文ではどうなる?という疑問もついでに出てきた。
山括弧を不等号記号で使っている論争は別問題。
カネムーさんの例文に加えてこんな例文を用意する。
<p>あいうえおAAAかきくけこbbbさしすせそCCC<br/>たたたDDDちちちeeeつつつFFFてててててgとととと</p>

特撮ドラマの牙狼-GARO-をご存知でしょうか。あれの出演者の記事や関連記事で、多くの箇所で「牙狼<GARO>」と書かれてるんです。
『牙狼<GARO>』<small>(ガロ)</small>は、2005年<small>(平成17年)</small>10月7日から2006年<small>(平成18年)</small>3月31日までテレビ東京系列で全25話が放映された、特撮TVドラマ<small>(深夜特撮)</small>作品。2010年10月30日に『牙狼<GARO> 0RED REQUIEM 0』が全編3D映画として公開

<[^>]*?>で検索すると


<GARO>までマッチしてしまいます。山括弧を使うときは全角山括弧ですね↓


で、?を取った最左最長一致<[^>]*>で検索しても同じ結果↑になってしまいます。
<.*>で検索した下のようにはなりません。


仕方がないので自分なりに読み解きに。。。
[^>]は[ ]内にない任意の1文字ですから『>』以外の全ての文字を表します。
<[^>]*>は< >に『>』以外の文字が0個以上あることになります。

だから『>』が登場した時点でマッチしてしまう。この解釈で合ってる???

2010年12月10日金曜日

アンインストール後、再インストールで正常動作せず

昔、PerlをASPERLで勉強していたのですが、半年ほど前にアンインストールしてしまいました(どうしてなのか理由は忘れた)。
で、またお勉強を始めようとインストールしたのですが、

print "Hello, World!\n"; と入力しても


エラーになってしまいます。仕方ないのでCopalをダウンロードしてテスト。


正常に動作してます。まぁ、いろんなものをダウンロードして削除しての繰り返しですから(^^;

JavaScriptで、タグの外側だけを置換する。を読みまして、これっPerlでやったらどう書くの?って感じで、正規表現から復習です。いや、もうほとんど全部忘れているだけに時間がかかりそう(汗

2010年11月29日月曜日

圧縮データっていじれるのね

一昨日の続きです。ちと粘ったら電子書籍 Epubに関する動きまとめ3 データ ソフト編が見つかりました。
前回のエントリーで説明したとおり、epub形式は元はzip圧縮されたものなので、拡張子を変更するだけで解凍できるようになります。ただし、ここでは 解凍しません。
7-zipなどの圧縮状態から編集できるソフトを使用し、直接該当のxhtmlファイルを編集します。

やってみました。7-zipの[ファイル]-[編集]でxthmlファイルを開き、言語指定(xml:lang="ja" lang="ja")を削除して表示確認後、再度、言語指定(xml:lang="ja" lang="ja")を追加して検証しました。

言語指定を削除したもの


再度、追加したもの


同様の作業はWinRARではムリでした。Explzh for Windowsでは[編集]-[ビューア]-[テキストエディタ]でできるかと思いきや、削除は出来るものの追加書き込みの時点で「圧縮できませんでした」のエラーが表示され、言語指定を追加することが出来ませんでした(別なやり方があるのか?)。

とりあえず、このやり方でコトリコさんの講談の時代薄小説のepubデータを修正してみました。OEBPSフォルダがないもののバッチGoo!でした↓


で、なんで圧縮の状態でないと修正できへんのかというと

電子書籍 Epubに関する動きまとめ2 データ制作編
出来上がったソースをまとめて.epub形式に変換する。
.epub形式と言ってもZIP圧縮されているだけだという。だが、ここで問題。
ZIP圧縮するとき、デフォルトの圧縮ツールで圧縮して拡張子を変えるだけではうまく読み込みされない問題がある。
これはmimetypeファイルを圧縮してしまうせいで、このファイルは圧縮せずに格納する必要があるということ。
えらく難儀な仕様なんですな。一度、解凍してしまうとコマンドプロンプトを使ってmimetypeを指定して無圧縮にしなけければならんようです。Sigilでしたら直接[epub]形式で保存されるので楽ができますな。

で、今回の文字化けで調べているうちに文字化けしたePubファイルの復旧にあたった。
Stanzaの場合、改行コードが「CR/LF」のものを「LF」に変えて保存したら直ったというもの。
改行コードで文字化けが発生するとは到底思えないが、どうなのだろう?