TypeSquare使ってみた

 本日から、株式会社モリサワが提供するWebFonts「TypeSquare(タイプスクウェア)」のサービスがオープンしました。

クラウドフォント・シミュレータ

 Webブラウザ上で書体や組版の表示を確認できる「クラウドフォント・シミュレータ | [TypeSquare]」なども利用できます。文字の色や大きさ行間、そして書体などのパラメータを変えていろいろな組版を試してみることが可能です。
f:id:seuzo:20120222110628p:plain
f:id:seuzo:20120222110636p:plain
 また、TypeSquareを使わなかった場合(通常のデバイスフォントのみ場合)を2ペインで比較することもできます。
f:id:seuzo:20120222110833p:plain


WebFonts

 クラウドフォント・TypeSquareはWeb上で使えるフォントです。あなたのマシンにフォントがなくても意図通りのフォントをブラウザ上に表示します。
 2012年12月31日(月)まで、TypeSquareのオープン記念としてTypeSquareのWebFontsを無料で使用できます。
 したがって、今年末まではこのブログ上でもリアルフォントが楽しめるでしょう。ビバ!

愛のあるユニークで豊かな書体:新ゴ M


愛のあるユニークで豊かな書体:ゴシックMB101 B


愛のあるユニークで豊かな書体:A-OTF リュウミン Pr6 L-KL


愛のあるユニークで豊かな書体:フォーク R


愛のあるユニークで豊かな書体:ハルクラフト


愛のあるユニークで豊かな書体:はるひ学園


愛のあるユニークで豊かな書体:新丸ゴ エンボス


愛のあるユニークで豊かな書体:角新行書 L


愛のあるユニークで豊かな書体:勘亭流

 最初に反映されるまで、10分くらいかかりましたが、概ねちゃんと表示されているようです。をを、ガゾウジャナイヨ...テキストで選択できる!


TypeSquareを使うには

 まず、会員登録をしなくちゃいけません*1。これも現在は無料です。
 会員はTypeSquareを利用するサイトを登録できます。これ、下記画面で見るとわかるんですがいくでも登録できます。
f:id:seuzo:20120222115111p:plain
 つまり将来、有料でTypeSquareを利用する際に、PVによって価格が違うわけですが、ここで管理しているドメインなりサイトのPVを合算できる。ってことらしいです(page2012でお会いしたモリサワの方に教えていただきました。)。
 実際にWebサイトやブログに使うには、左側の「導入方法」に従ってステップバイステップで設定できます。
f:id:seuzo:20120222115713j:plain
 会員に専用のscriptタグが付与されますので、使用するページに貼付けてください。
 あとはCSS上で「font-family: 'Ryumin Light KL';」などと追加すればよいかと思います。ブログなどでCSSが書けないような場合はstyle属性で直接ont-familyを指定してもよいようです。
 いろいろわかった人は教えてください!

Enjoy Happy Fonts Life!

miエディタ用のReVIEWモード作ってみた

ReVIEWのマーキングのために、テキストエディタmiで使えるReVIEWモードを作ってみました。説明書書くのはめんどいので、動画をご覧ください。


「.re」拡張子を持つテキストはドラッグ&ドロップでいきなりReVIEWモードで開きます。ツールメニューから、ReVIEWフォーマット一覧を呼び出したり、さまざまなマーキングした箇所がカラーリングで一目で確認できます。見出し関係へは右ウィンドウからジャンプできます。

コメントはトグルします。図版の挿入はファイル選択ダイアログから選び、現在開いているReVIEWドキュメントのフルパス名とマッチングして正しく挿入されます。*1

インライン要素は、選択している箇所に被せるようにしました。ルビやUnicode入力は入力ダイアログが開きます。マーキングが終了したら、htmlを生成して確認してください。


ダウンロードはこちらから:

このファイルをダウンロードしたら、伸長して
~/Library/Application\ Support/mi/mode/ ディレクトリへ保存してください。
おかしなところを見つけた方はお知らせいただければ幸いです。


(追記:2013-06-07T18:30:02+0900)
ツールメニューの「画像(ファイル選択)」と「画像(番号なし・ファイル選択)indepimage」を選んだ時、編集ドキュメントのファイル名をサフィックスするようにFinder上でファイル名をリネームできるようにしました。
ダウンロードはこちら:

なお、miテキストエディタのバージョン3からはモードのインストール場所は以下のように変更されました。
~/Library/Application\ Support/mi3/mode/

*1:--singledirmode をつけるとReVIEWドキュメントのファイル名とマッチない(自由な画像ファイル名が使える)ようです。via @kdmsnr さん https://twitter.com/#!/kdmsnr/status/172174359820107776

ReVIEWドキュメント中に使われている要素をカウントする

ReVIEWドキュメントの中にどんな要素が、どれくらい含まれているのか数えます。

#!/usr/bin/ruby
# -*- coding: utf-8 -*-

#カウント用ハッシュの初期値0
my_count = Hash.new(0)

while line = ARGF.gets
  #多くのブロック要素
  if line =~ /^(\/\/.+?)[\[\{]/ then
  my_count[$1] += 1
  
  #見出し
  elsif line =~ /^(={1,5}) / then
    tmp_key = $1 + "h" + $1.length.to_s
    my_count[tmp_key] += 1
  
  #コラム
  elsif line =~ /^(===[column])/ then
    my_count[$1] += 1
  
  #箇条書き
  elsif line =~ /^ (\*+) / then
    tmp_key = $1 + " ul(" + $1.length.to_s + ")"
    my_count[tmp_key] += 1
  
  #箇条番号
  elsif line =~ /^[1-9][0-9]?\. / then
    my_count["ol"] += 1
  
  #用語リスト
  elsif line =~ /^: / then
    my_count[": dl"] += 1
  
  #コメントは出力する
  elsif line =~ /^(\#@\# |\#@warn).+/ then
    puts "comment(#{ARGF.filename}:#{ARGF.file.lineno}) : #{$&}"
  
  end
  
  #インライン要素
  line.scan(/@<.+?>/).each {|elem|
    my_count[elem] += 1
  }
end


#項目名でソートして出力
my_count.sort.each{|key,val|
  puts "#{key} : #{val}"
}

こんなかんじで出力されるはず。

comment(hoge.re:123) : #@# ------------------------------------------
* ul(1) : 16
//emlist : 76
//indepimage : 211
//table : 43
====h4 : 13
===h3 : 24
==h2 : 35
=h1 : 9
@<b> : 344
@<code> : 7
@<icon> : 2
@<kw> : 154

CUI初心者のためのReVIEWインストール

 page2012のReVIEWセミナーに行ってきました。すでにスライドも公開されています。

 このセミナーをご覧になって、ReVIEWに興味を持たれた方も多いかもしれません。よし、お父さんインストールしちゃうぞ! と思っている方もいらっしゃるでしょう。
 実は、このセミナー終了後にバックヤードでインストール大会やりました。そして、CUI初心者にとっては、ターミナルでインストールするのは案外敷居が高いことに気がつかされました。自転車が乗れる人にとって、乗れなかった頃の難しさが実感できなくなっているなあ、と反省しました。
 ってことで、きょうは初めてCUIでインストールする人にも、できるだけわかりやすく解説したいと思います。
 環境としてはMac OS X 10.5〜10.7を念頭に置いています*1。また、インターネットに繋がっている環境で行ってください。

おおまかな流れ

 ReVIEWクイックスタートガイドにはいくつかのインストール方法が紹介されていますが、今回はSubversionを使った方法です。Subversionというのはソースコードなどの履歴管理システムです。(ユーザーとしてSubversionを使う利点は)アップデートがあった時、コマンドひとつでコード全体が最新のバージョンになります。
 Subversionを使えるようにXcode(開発環境)をインストールします。それを終えたらいよいよReVIEWをインストールし、さらにReVIEWがすぐに使えるように.bash_profileを書き換えます。ここまでが今日のゴールになります。
 CUIでの操作に慣れておくことは、将来の自分に対する投資です。あなたが職業的な開発者でなくてもXcodeを入れる利益は計り知れないほど大きなものです。

手順1)Subversionが使えるかどうかを確かめる

 さあ、おもむろに開くのだ、ターミナルを! ターミナルは「アプリケーション」フォルダの中の「ユーティリティ」フォルダの中にあります。
f:id:seuzo:20120209113247p:plain
 ダブルクリックで起動すると、こんな感じのウィンドウが開くはずです。
f:id:seuzo:20120209150408p:plain
たまにこのウィンドウが黒い画面の人とか見た目がずいぶん違う人がいると思いますが、それは個性というものなのであまり気にしないでください。打ち込んでいく内容には変わりありません。
Subversionが使えるかどうかを確かめるには、この画面上に入ってこのコマンドを入力しましょう。

which svn

このコマンドを入力して、リターンキーを押した時、

  • /usr/bin/svn とだけ出た人:すでにSubversionがインストール済みです。手順2をスキップして、手順3へ進んでください。

f:id:seuzo:20120209150914p:plain

  • no svn /bin /sbin /usr/bin /usr/sbin などと出た人:Subversionがインストールされていません。手順2へ進んでください。

f:id:seuzo:20120209151120p:plain

手順2)Xcodeをインストールする

 Subversionをインストールする方法も種々あろうかと思いますが、Mac OS X環境でもっとも手軽な方法はXcodeをインストールすることです。XcodeをインストールするとSubversionはもとより様々なコマンドが使えるようになります。

Mac OS X 10.7.x(Lion)を使っている人は:

 App Storeを起動させて、右上の検索窓に「Xcode」と入力し、Xcodeのページを開いたら、そのまま「インストール」ボタンをクリックします。
f:id:seuzo:20120209160043p:plain
 ダウンロードとインストールが自動に行われます。

Mac OS X 10.5.x〜10.6.xを使っている人は:

 OSのインストールディスクを挿入して、DVDの中の「オプションインストール」フォルダの中にXcodeのためのインストーラーを探してください。Mac OS X 10.4.xとかの人はディスクが別になっているかもしれません*2。下記のキャプチャはMac OS X 10.6 Leopardのものです。
f:id:seuzo:20120209162229p:plain

手順3)ReVIEWをインストールする

 手順1からここに来た人は、いままさにターミナルが開いているはずです。手順2から来た人はターミナルを再度立ち上げましょう。
 ターミナル上では、自分がいまどこのディレクトリにいるかを意識する必要があります。これをカレントディレクトリといいます。上の画面だと入力行の最初「xxxx:~ username $」の「~」部分がカレントディレクトリを表しています。「~」は特殊な記号でログインしているユーザーのホームディレクトリを表しています。念のため、カレントディレクトリをホームディレクトリに移動しておきましょう。

cd ~/

 このコマンドをタイプすれば、いつでもホームディレクトリに帰ってこられます。
 いろいろご意見があるかもしれませんが、ReVIEWはホームディレクトリのbinディレクトリにインストールすることにします。ホームディレクトリに「bin」というディレクトリはありますか? もしなければ作ってください。Finder上からホームディレクトリに「新規フォルダ」で作って名前を「bin」に変えてもかまいませんが、せっかくターミナルを立ち上げているんですから、ターミナルからbinディレクトリを作ってみましょう。既にbinディレクトリがある人は、この作業はしなくていいです。

mkdir bin

 ホームディレクトリにbinフォルダができました。Finderでも確認できますし、ターミナルから「ls -al」とタイプして確認することもできます。ホームディレクトリの内容は必ずしもこの通りではないと思いますが、binというディレクトリがあるのがわかります。

$ ls -al
total 232
drwxr-xr-x+  56 username  staff   1904  2  6 12:02 .
drwxr-xr-x    5 root  admin    170  8  3  2011 ..
-rw-------    1 username  staff  20726  2  7 15:35 .bash_history
-rw-r--r--@   1 username  staff    489  2  1 21:11 .bash_profile
drwxr-xr-x    2 username  staff     68  7 14  2010 Applications
drwx------+  31 username  staff   1054  2  9 16:43 Desktop
drwx------@  21 username  staff    714  1  5 20:14 Documents
drwx------+  14 username  staff    476  2  9 14:55 Downloads
drwx------+  61 username  staff   2074 10 13 15:36 Library
drwx------+   5 username  staff    170  8  3  2011 Movies
drwx------+   5 username  staff    170 11 23  2007 Music
drwx------+   9 username  staff    306  3 18  2011 Pictures
drwxr-xr-x+   6 username  staff    204  8  3  2011 Public
drwxr-xr-x   20 username  staff    680 11  4  2010 bin

 binディレクトリができているのを確認したら、カレントディレクトリをbinに移動します。元々binディレクトリが存在した人もここからは一緒にタイプしてください。

cd bin

 これでカレントディレクトリは~/bin になっているはずです。いよいよReVIEWのインストールをしましょう。下記のようにタイプしてください。

svn co https://kmuto.jp/svn/review/trunk review

 リターンキーを押すと、下記のようなメッセージが出るかもしれません。というか、出ます。

Error validating server certificate for 'https://kmuto.jp:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
 - The certificate hostname does not match.
Certificate information:
 - Hostname: svn.kmuto.jp
 - Valid: from Sun, 14 Nov 2010 03:01:25 GMT until Tue, 13 Nov 2012 03:01:25 GMT
 - Issuer: http://www.cacert.org, Root CA
 - Fingerprint: 13:8d:1e:cd:95:49:a6:f3:95:cc:d7:e3:29:27:6b:74:05:70:71:b0
(R)eject, accept (t)emporarily or accept (p)ermanently? 

 これはSSLサーバ証明書を信頼するかどうかという確認です。「p」(永続的に信頼)をタイプしてリターンキーを押してください。もしかすると、下記のような1行で終わってしまうかもしれません。

svn: OPTIONS of 'https://kmuto.jp/svn/review/trunk': Could not read status line: connection was closed by server (https://kmuto.jp)

 これも書いてあるとおりですが、「あなたの返事をまちくたびれて扉を閉めました」と言われています。気にせずに「svn co https://kmuto.jp/svn/review/trunk review」を再度タイプして、「p」をタイプしてください。
 インストールが始まると、経過ログがずらずらと画面上に表示されます。

A    review/test
A    review/test/test_helper.rb
A    review/test/test_i18n.rb
A    review/test/test.re
... (長いので中略)
A    review/bin/review-preproc
A    review/bin/review-epubmaker
A    review/bin/review-check
A    review/bin/review-epubmaker-ng
Checked out revision 169.

 最後の行はリビジョン「169」を表示して、入力プロンプトが帰ってきました。ここでもしエラーになるようなことがあれば、もう一度「svn co https://kmuto.jp/svn/review/trunk review」からやりなおしてください。
 これでインストールそのものは終わりました。ReVIEWの実行ファイル、ドキュメント類すべては「~/bin/review」ディレクトリの中に入っています。もし、アンインストールしたいなら、ディレクトリごと消去してしまってかまいません。

手順4)パスを通す

 CUIアプリケーションを導入した後に、「パスを通しておいてください」などと書かれていることがあります。これは、特定の専用ディレクトリ(/bin とか/local/bin とか)以外の場所にアプリケーションを置いた場合、シェルからすぐに実行できるようにパスを設定しておいてね、という意味です。具体的には、ターミナルがデフォルトで使うbash*3 というシェルの設定ファイルを書き換える作業を指します。設定ファイル「.bash_profile」はデフォルトでは作られていません。ファイル名の最初の文字が「.」(ドット)で始まるファイルをドットファイルといい、通常のFInderでは不過視ファイルになっています。

4-1 実行ファイルのパスを確認

 最初に用意するのは、 ReVIEWの実行ファイルディレクトリの正確なフルパス名です。 ReVIEWのあるディレクトリに移動してみましょう。

cd ~/bin/review/bin

 ちゃんと移動できているかどうか、ファイルを一覧させてみます。

$ ls -al
total 152
drwxr-xr-x  12 username  staff    408  2  1 21:07 .
drwxr-xr-x  15 username  staff    510  2  1 21:07 ..
-rwxr-xr-x   1 username  staff   4629  2  1 21:07 review-check
-rwxr-xr-x   1 username  staff   1299  2  1 21:07 review-checkdep
-rwxr-xr-x   1 username  staff   5626  2  1 21:07 review-compile
-rwxr-xr-x   1 username  staff  17255  2  1 21:07 review-epubmaker
-rwxr-xr-x   1 username  staff   5546  2  1 21:07 review-epubmaker-ng
-rwxr-xr-x   1 username  staff   2973  2  1 21:07 review-index
-rwxr-xr-x   1 username  staff  10068  2  1 21:07 review-pdfmaker
-rwxr-xr-x   1 username  staff   3303  2  1 21:07 review-preproc
-rwxr-xr-x   1 username  staff   1682  2  1 21:07 review-validate
-rwxr-xr-x   1 username  staff   2907  2  1 21:07 review-vol

 ここで、カレントディレクトリのフルパスを得る「pwd」コマンドを使います。

$ pwd
/Users/username/bin/review/bin

ここでは、「/Users/username/bin/review/bin」と出てきました。このフルパス名をコピーしておいてください。

4-2 .bash_profileを編集する

 .bash_profileファイルが存在するかどうか確認するには、ホームディレクトリ上で、先ほど使用した「ls -al」で確認してください。
 .bash_profileファイルはデフォルトでは存在しませんが、もしかしたら何かのセットアップスクリプトが作成してしまっているかもしれません。あるいは、システム管理者が必要上設置している場合があります。もし後者ならば、ここからの作業は管理者に任せたほうがよいかもしれません*4。もちろん、他のプロジェクトで.bash_profileの編集したことがある人は、(下記の方法ではなく)やりやすいやり方でやっていただいてかまいません。
 .bash_profileファイルが存在しない人は、ホームディレクトリに移動して、下記のコマンドを打ち込んでください。「/Users/username/bin/review/bin」の部分は、4-1でコピーしておいてフルパス名と差し替えるのを忘れずに。

echo "export PATH=$PATH:/Users/username/bin/review/bin" >> ~/.bash_profile

 .bash_profileファイルがきちんと書き込まれたかどうか、次のコマンドで確認してみましょう。

$ cat ~/.bash_profile 
export PATH=$PATH:/Users/username/bin/review/bin

 先ほどのもし、「cat: /Users/username/.bash_profil: No such file or directory」などと出てきてしまったら、4-1からやり直してください。

4-3 .bash_profileの変更を有効にする

 .bash_profileは編集したらすぐに有効になるわけではありません。次のコマンドをタイプして、.bash_profileの設定を有効にします。

source ~/.bash_profile

これでパスが通りました。

手順5)インストールが成功したかどうか確認する

 すべての手順がうまくできたかどうか確認します。ReVIEWの実行ファイルのあるディレクトリ(/Users/username/bin/review/bin)にいると、自動的にパスが通ってしまいテストになりませんので、ホームディレクトリかどこか任意のディレクトリに移動してから、下記のコマンドをタイプしてください。

review-compile --help

 下記のようにヘルプが出て来たら、すべてが成功しています。おつかれさまでした。

$ review-compile --help
Usage: review-compile [--target=FMT]
        --yaml=YAML                  Read configurations from YAML file.
        --inencoding=ENCODING        Set input encoding. (UTF-8, EUC, JIS, and SJIS)
        --outencoding=ENCODING       Set output encoding. (UTF-8[default], EUC, JIS, and SJIS)
    -c, --check                      Check manuscript
        --level=LVL                  Section level to append number.
        --nolfinxml                  Do not insert LF in XML. (idgxml)
        --table=WIDTH                Default table width. (idgxml)
        --listinfo                   Append listinfo tag to lists to indicate begin/end. (idgxml)
        --chapref="before,middle,after"
                                     Chapref decoration.
        --subdirmode                 Use chapter/id.ext path style to find images.
        --singledirmode              Use id.ext path style to find images.
        --chapterlink                make chapref hyperlink
        --stylesheet=file            Stylesheet file for HTML (comma separated)
        --mathml                     Use MathML for TeX equation in HTML
        --htmlversion=VERSION        HTML version.
        --hdnumberingmode            Output numbering headlines. (deprecated)
        --deprecated-blocklines      Disable paragrahs in block tags. Treat physical line as a paragraph. (deprecated)
        --target=FMT                 Target format.
        --footnotetext               Use footnotetext and footnotemark instead of footnote (latex)
        --draft                      use draft mode(inline comment)
    -a, --all                        Compile all chapters.
        --directory=DIR              Compile all chapters in DIR.
        --help                       Prints this message and quit.

(追記:2012-02-14T10:03:56+0900)@monokano さんから「 export $PATH 」で確認した方が確実なのでは? とご指摘いただきました。おっしゃる通りです!

これからどうするか...

 ReVIEWについて、いくつかのサンプルドキュメントを変換してみたり、実際に自分でReVIEWドキュメントを書いたりして試してみてください。

 ReVIEWフォーマット一覧をブックマークして、すぐに参照できるようにしましょう。

 ReVIEWメーリングリストに入ると、いろいろな情報を入手できます。

 ReVIEWは現在も更新されつづけています。バグフィックスや、新しい機能を取り込んでいます。自分のReVIEW実行ファイルを新しいものに置き換えたいと思ったら、~/bin/rebiewディレクトリに移動して、下記のコマンドをタイプしてください。最新版がすぐに使えるようになります。

svn up

 さて、今回のインストールいかがでしたでしょうか? パワーユーザーにとっては当たり前のことでも、初めてターミナルを触る人にとっては意外と大変だったかもしれません。しかし、CUIはその労力の何十倍もの仕事をしてくれるすばらしい操作方法です。今日はほんのちょっとしたコマンドしか紹介できませんでした。また、その意味も軽く触れるにとどめてあります。もし、興味を持った人は、いろいろ調べてみてください。ネット上にもいくつか有用な情報がありますが、手軽なリファレンス本が手元にあるといいでしょう。

生データをそのまま使うフォントのアイデア

XMLで原稿が入る時、カウントされた数値の生データが入っていることがあります。例えば...
f:id:seuzo:20120131152500p:plain
この「<rate>4</rate>」の部分が★のレートを意味しており、実際には
f:id:seuzo:20120131152508p:plain
のようにレイアウトされるような場合です。
もちろんこの場合だったら、XMLを別途処理して「<rate>★★★★</rate>」のようにしてもかまいません。
本日、紹介するのはその別解。
f:id:seuzo:20120131153455p:plain
すいません、単に数字のコードポイントにフォントを作ってみました。それだけの話です。
この方法だと、生データを生かせるだけでなくピクトグラムなどの特殊なマークにも対応しますね。あと、同じ理屈でExcelデータからInDesignのデータ結合を利用するような場合にも流用できます。
f:id:seuzo:20120131154339p:plain
f:id:seuzo:20120131152506p:plain


生データをできるだけそのまま使うという発想

TK TYPEというフォントメーカーが開発した「CHARTWELL」というフォントがあります。

OpenTypeの合字を利用して、数字の生データをそのまま円グラフや棒グラフなどのチャートにできるというものです。
VIDEOを見ていただければ、どんなことをしてくれるか理解できるでしょう。

005 Magically building graphs with the Chartwell font
InDesign Secrets | by David Blatner and Anne-Marie Concepcion
View this entire course and more in the lynda.com Online Training Library®.

このアイデアのすごさは、単にグラフが描けるということじゃありません。生のデータをそのまま使えるということです。

ReVIEWの生成したXMLをInDesignに取り込む時のXSL例

 そもそもReVIEWのXMLInDesignに取り込むことをひとつの前提にしていますが、そのままだとちょっと取り扱いにくい場面があるかもしれません。例えば見出し(title要素)やリード(p要素)は属性で階層化されていますし、図・表・リストでキャプションの順序やスタイルを少し変えたい時などもあります。おそらく、一旦流し終えた後にスタイル判定のためにスクリプト処理しなければならないでしょう。
 まあ、だったら要素分けの部分とかはXSLT使うといいんじゃないか、と。

 おうち使いなので、抜けてるブロック要素もあるかもしれません。あと「InDesign読み込みオプション」ダイアログでXSLTを有効にすると、いろいろエラーが出たりします(なのでxsltprocで変換しています)。全体的にもっといい書き方があったら教えてください^^

<?xml version="1.0" encoding="UTF-8"?>
<!-- ReVIEWのためのXSL例
2012-01-25	とりあえず
2012-03-02	修正
 -->


<xsl:transform
	version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"
	exclude-result-prefixes="aid"
>
	<xsl:output method="xml" media-type="text/xml"/>

	<!-- 改行のための変数 -->
	<xsl:variable name="myReturn">
		<xsl:text>
</xsl:text>
	</xsl:variable>


	<!-- ルート -->
	<xsl:template match="/">
		<xsl:element name="aid:doc">
			<xsl:apply-templates />
		</xsl:element>
	</xsl:template>

	<xsl:template match="doc">
		<xsl:apply-templates />
	</xsl:template>




	<!-- title見出しまわり。pstyleをそのまま要素名にする -->
	<xsl:template match="title">
		<xsl:for-each select=".">
		<xsl:element name="{@aid:pstyle}">
			<xsl:copy-of select="node()" />
		</xsl:element>
		</xsl:for-each>
	</xsl:template>


	<!-- lead内段落 -->
	<xsl:template match="lead">
		<xsl:for-each select="p">
			<xsl:element name="lead">
				<xsl:copy-of select="node()" />
			</xsl:element>
		<xsl:value-of select="$myReturn" />
		</xsl:for-each>
	</xsl:template>

	<!-- column -->
	<xsl:template match="column">
		<xsl:element name="column">
			<xsl:element name="column-title">
				<xsl:copy-of select="title/node()" />
			</xsl:element>
			<xsl:value-of select="$myReturn" />
			<xsl:for-each select="p">
				<xsl:element name="column-p">
					<xsl:copy-of select="node()" />
				</xsl:element>
			<xsl:value-of select="$myReturn" />
			</xsl:for-each>
		</xsl:element>
	</xsl:template>


	<!-- codelist(通常のlist) -->
	<xsl:template match="codelist">
		<xsl:element name="codelist-caption">
			<xsl:copy-of select="caption/node()" />
		</xsl:element>
		<xsl:value-of select="$myReturn" />
		<xsl:element name="codelist-pre">
			<xsl:copy-of select="pre/node()" />
		</xsl:element>
	</xsl:template>


	<!-- codelist (参照なしのemlist)-->
	<xsl:template match="list[@type='emlist']">
		<xsl:element name="codelist-caption">
			<xsl:copy-of select="caption/node()" />
		</xsl:element>
		<xsl:value-of select="$myReturn" />
		<xsl:element name="codelist-pre">
			<xsl:copy-of select="pre/node()" />
		</xsl:element>
	</xsl:template>


	<!-- 箇条リスト -->
	<xsl:template match="ul">
	<xsl:variable name="myCount_li" select="count(li)" /><!-- li要素の数を変数に -->
		<xsl:for-each select="li">
			<xsl:element name="list">
				<xsl:attribute name="current_no"><xsl:value-of select="position()" /></xsl:attribute>
				<xsl:attribute name="total_no"><xsl:value-of select="$myCount_li" /></xsl:attribute>
				<xsl:copy-of select="node()" />
			</xsl:element>
			<xsl:value-of select="$myReturn" />
		</xsl:for-each>
	</xsl:template>


	<!-- 画像とキャプション -->
	<xsl:template match="img">
		<xsl:copy-of select="Image" />
		<xsl:value-of select="$myReturn" />
		<xsl:if test="caption">
			<xsl:element name="img-caption">
				<xsl:copy-of select="caption/node()" />
			</xsl:element>
		</xsl:if>
	</xsl:template>




	<!-- 表組み(そのまま) -->
	<xsl:template match="table">
			<xsl:copy-of select="." />
	</xsl:template>


	<!-- 本文(そのまま) -->
	<xsl:template match="p">
			<xsl:copy-of select="." />
	</xsl:template>
	


</xsl:transform>

page2012の無料セミナーでReVIEWのデモを見られます

2012年2月8日の14:10〜15:05、page2012の無料セミナーゾーンで、ReVIEW開発者の武藤健志さんによるReVIEWデモを見られます。
http://study-room.info/id/page2012/#muto

さっきびざーるさんと電話で話したこと

昨日、iBooks Authorがリリースされて少し触ってみました。今日、びざーるさんのブログを拝見して電話させていただいて、いろいろ発見がありました。その秘めやかなあれこれをメモ。そもそもびざーるさんのブログはこちら:
http://bizarre.cocolog-nifty.com/bizarres_diary/2012/01/ibooks-author-4.html


テンプレートのカスタマイズ

ウインドウ左の「ブック」ペインのバーの右端を下にドラッグすると「レイアウト」ペインが現れます。この中で「チャプタ」や「セクション」のレイアウト(InDesignのマスターに相当)を変更できます。
ちなみに、カスタマイズしたデザインをテンプレートとして保存するには、「ファイル」メニューから「テンプレートとして保存...」です。ユーザーのテンプレートは「~/Library/Application Support/iBooks Author/テンプレート/マイテンプレート/」フォルダに保存されます。iBooks Authorのアプリケーションデフォルトのテンプレート6種は、パッケージの中の下記階層にあります。 /Applications/iBooks Author.app/Contents/Resources/Templates/

ノンブルの体裁の編集

(マスター)レイアウト上で(ロックを解除して)ノンブルのテキストフレーム内で変更します。マスターアイテムはQXPと同じく、マスターページ上でロックすれば一般ページ上でもロックされます。

前置文字の編集

これはできないようです。前置き文字(「チャプタ」や「セクション」)はオマケで、実際には数字だけで使用するんだろう。「挿入」メニューに「チャプタ番号」がない→ 「セクション番号」を入力してから、該当テキストをダブルクリックし、「セクション番号」ポップアップで「現在のチャプタ」を選びます。

両端揃え

段落を選択して、「フォーマット」メニューの「テキスト」-「両端揃え」、またはフォーマットバーの「両端揃え」ボタンで変更できます。が、びざーるさんちでは最終行も両端揃えになってしまうとのこと。なんでじゃろう? うちはこんな感じ。
f:id:seuzo:20120121172758p:plain

改行できない行がある

チャプタやセクションのタイトルには字切りの指定(強制改行)できないようです。日本語は分かち書きじゃないので、へんな文脈で自動改行されちゃう可能性。2行とか難しい。

画像にハイパーリンクが設定できない

そう、ハイバーリンクできるのは選択テキストだけみたい。画像とかフレームとは関係付けられない。

チャプターやセクションの行(目次に取り込まれる行)にもハイパーリンクが設定できない

これは知らなかった。通常のテキストと組み合わせても、チャプタセクション番号などの(InDesignの変数に相当する)特殊文字にはリンクは付けられません。

ガイドがないので、ものを揃えておくのがたいへん。インスペクタで数値設定はできるけど。

「表示」メニューの「ルーラーを表示」でルーラーを表示させ、ルーラーからドラッグすることでルーラーガイドが引けます。ルーラーを消去させるには、またルーラー上にドラッグします。
ちなみにルーラーガイドにページアイテムは吸着しません。そもそも座標系は整数だけなので、ポイントだとドラッグしただけできちんと整数値にフィットします。この操作感はInDesignでもポイントを使っているとすごく普通(InDesign上でもぼくは座標位置を数値入力することはまれ)。

わたくし的iBooks Author感

iBooks Authorは電子書籍を簡単にするとても強力なアプリケーションです。書籍パッケージに必要な部品はたいてい揃っていて、割と簡単にそれらを利用できます。しかし、ぼくにはiBooks Authorがなにか新しいイノベーションという感じがしません。むしろ砂糖がけした独占モデルの一種だと思います。技術的にはEPUB2を変形させた独自フォーマットですし、何より成果物を有料販売できるのはiBookStoreに限られてしまうのですから。

「あいぶっくすおーさー」という絵の具を使って絵を描いたら「あっぷる画廊」でしか売れないでござる。

ぼくが描いた絵は「びざーる画廊」でも「せうぞー画廊」でも売りたいのです。それを禁止するために、わざわざEPUB標準から外れています。ぼくらは満足できません。
iBooks Authorにはたいていの書籍要素(見出しや図や表組みや箇条書きや目次や用語集や...)が揃っています。これほどの完成度なら「教育の再発明」以上に「電子書籍のイノベーション」となぜ名乗らないのでしょうか? 教育分野はフェアユース精神が行き届いた分野です。コピーライトの意識も比較的ゆるい環境にあるでしょう。潤沢な教育予算を使ってタブレットが普及しているようです。教職員は無料で自由にテキスト教材を流通させるでしょう。これはある種の成功事例になると思います。
成功事例に続けとばかり、iBooks Authorを商業的に利用する人は増えるかもしれません。iBooks Authorにはそれだけの能力があります。売り場が限られていようとも。

教育市場は、毒(規格外フォーマット)を美味しく見せるためのシュガーです。

ま、大声で言うほどのことじゃないんだけどねー。

(追記:2012-02-08T09:43:38+0900):Appleの使用許諾契約の変更により、PDFの有料コンテンツは自由に配布できるようになったようです。参照:Appleが排他的出版権に関する批判に応えてiBooks Authorの使用許諾契約を修正。 - モバイル林檎ニュース