2012年4月27日金曜日

Ubuntu 12.04 にアップグレードしたら ibus.el がうまく動いてくれなくなった

Ubuntu 12.04 がリリースされたので、11.10 からアップグレードしました。
使い勝手が良くなっている箇所が多々有り非常に良いと思うのですが、Emacsを起動してみると、日本語入力がうまくいかない。
正確にいうと、日本語入力自体はなんとかできるようですが、先日設定したばかりの ibus.el が正しく動いてないようです。

結論から言うと、Ubuntu 12.04 には .Xresources ファイルに書いた内容が emacs に反映されないというバグがあるらしいです。
試しに、端末から

XMODIFIERS=@im=none emacs

として起動してみると、たしかに ibus.el が動いた!

というわけで、しばらくはこれをエイリアスとして登録して使うことになりそうです。


2012/6/13追記
久々に調べてみたところ、emacs23を使っている方は .Xresources に

Emacs23*useXIM: false

と記述すれば動くようです。私の環境でもこれで動作を確認しました。

2012年4月17日火曜日

color-themeでEmacsの見た目を変える

http://www.nongnu.org/color-theme/index.html

上記サイトにアクセスして、指示通りcolor-themeをインストールし、.emacsに設定を記述するだけ。
テーマ一覧なんかは以下でみれる模様。

http://gnuemacscolorthemetest.googlecode.com/svn/html/index-el.html

ibus.elを使ってEmacsで快適日本語入力

本当にただの忘備録です。
恥ずかしながら今まで知らなかったのですが、Emacsで日本語入力を行うなら ibus.el というものを使うと快適に日本語入力が行えます。


入れてみて少し使ってみましたが、結構おすすめ。
今までは -nw コマンドでターミナル内で起動することによって日本語入力がおかしいの回避してました。

2012年3月31日土曜日

Exploring the Effects of Visual Cognitive Load and Illumination on Pupil Diameter in Driving Simulators.[O. Palinko and A. L. Kun., ETRA2012]

Exploring the Effects of Visual Cognitive Load and Illumination on Pupil Diameter in Driving Simulators.[O. Palinko and A. L. Kun., ETRA2012] を、ざっくりと読みました。
軽くまとめておきます。

ETRA2012に参加して、ポスターの説明を加担に聞いてきたので、現時点で理解している範囲でまとめておきます。


  • 瞳孔のサイズは以下の2つの場合に変わることが知られている
    • 網膜に届く光量が変わった時
    • 何らかのタスクにより、cognitive loadが増加したとき
      • ※cognitive loadが何なのかよくわかりません。そのうちまた論文読みます。
  • これら2つの要素を切り分けることはできるのか?
  • 運転シミュレーションソフトとアイトラッカーを使って実験
  • 3つのタスク
    • Illumination Task: 運転シミュレーションソフトに、黒、グレー、白の3色のトラックを表示(それぞれプロジェクタの最大輝度の10, 50, 90%)。この3つのトラックを順に見ていく。
    • Visual Vigilance Task: モニターに1から順番に数字が表示される。1つの数字が表示される時間は1.5秒。ただし、6の倍数の場合だけ、間違った数字が表示される可能性がある。もし間違った数字が表示されていたらボタンを押す。
    • Combined Task: トラックの後ろの部分に数字を順に表示していく。3つのトラックのに表示される数字は同期されている。トラックの視線を移させるタイミングと、6の倍数が表示されるタイミングをずらすことで、2つの原因による瞳孔の大きさの変化が同時に起こらないようにする。
  • 結果
    • Illumination Task: 白のトラックを見ているときに比べて、グレー、黒のトラックを見ているときはそれぞれ約0.3mm, 0.7mmほど瞳孔の直径が大きくなった
    • Visual Vigilance Task: 6の倍数を見るときは瞳孔の直径が大きくなった(論文中のFigure 5参照)
    • Combined Task: このタスクで測定した瞳孔の直径と、Illumination Taskで測定した瞳孔の直径の差分を取ると、Combined Taskの中の Visual Vigilance Taskによる瞳孔の大きさの変化だけが取り出せる。実際にやってみると、差分のグラフはVisual Vigilance Taskで測定した瞳孔のサイズのグラフを似た形になる。

2012年3月5日月曜日

Review of Automatic Document Formatting [N. Hurst et al., 2009]

Review of Automatic Document Formatting [N. Hurst et al., 2009] を読みました。
論文は http://dl.acm.org/citation.cfm?id=1600217 から読むことができます。

前回、前々回と文書レイアウトをどのように自動で生成するかということを論じた論文を読んできましたが、この分野を概観するのによさそうな論文を見つけたので、早速読んでみました。

[Abstruct]
  • 文書自動整形の一般的な解決法は、制約最適化問題に落としこむことである
    • 決定変数は要素の配置や幾何的関係の制約などをエンコードしたもの
    • 目的関数はレイアウトのクオリティの基準となる
  • 本論文では、上記テクニックを使った文書整形にフォーカスを当てる
  • 関連した問題である自動テーブルレイアウトも扱う
[1. Introduction]
  • World Wide Web (WWW) とVariable Data Printing (VDP) によって、文書自動整形の関心は line breaking などのミクロのものから、ページレイアウトのようなマクロのものへと移っている
  • 文書を読む媒体の多様性が増している → 文書自動形成の需要は高まっていくだろう
  • 本論文で扱う問題: テキストの文書レイアウト、テーブルレイアウト
  • 扱わない問題: ウィジェットレイアウト、ダイアグラムレイアウト、画像のリサイズなどの一時的な問題
  • 文書自動形成は、次の3つの点で難しい
    • 良いデザインの定量化
    • レイアウトの計算は難しい (サブタスクであるテーブルレイアウトですらNP-hard)
    • レイアウトツールのデザインと実装が複雑
  • 文書自動整形と解く良い方法は制約最適化問題に違いない (Abstruct参照)
[2. Constrained Optimization]
  • この章では、文書自動整形で用いられる制約最適化問題の解法を見ていく
  • 変数の変域が実数である連続問題と、離散値をである離散問題、実数と離散値のどちらも取れる混合問題を分けて考える
2.1 Continuous problems
  • 主な解法は変数消去法(Variable elimination)と反復法(Iterative techniques)
  • 変数消去法
    • 線形制約のような簡単な問題には適する、複雑な非線形問題には適さない
    • 例: ガウス・ジョルダン法、シンプレックス法
  • 反復法
    • 極小値が最小値と保証されている凸包問題などに使われる
    • 例: 最急降下法
2.2 Descrete problems
  • 主な解法は Constructive Search と Local Search
  • Constructive Search
    • 参考文献: Artificial Intelligence: a Modern Approach [S. Russell and P. Norving, 2002]
    • 例: A*アルゴリズム
  • Local Search
    • 参考文献: Handbook of metaheuristics [F. Glover and G. Kochenberger, 2003]
    • 例: Trajectory method
  • 上の2つの解法の詳細は、理解できていません。必要なら参考文献を読んだほうがいいかも。
[3. Micro-typography]
  • カーニング、行分割、justificationなど、低レベルな構成のレイアウト
  • 自動化された技術が実用化されている
3.1 Kerning
  • 隣接文字との距離をどの程度取るかという問題
  • 文字の Bounding Box だけを使って等間隔に配置すると、視覚的には文字間の距離が一定には見えないので、文字の見た目も考慮に入れる
  • 文字間の距離を教えてくれるフォントも存在する
  • しかし、以下のような理由で、カーニングを自動で行う需要はある
    • 全てのフォントが、全てのフォントサイズでの文字間の距離を提供しているわけではない
    • 提供された文字間隔では、矩形でなカットアウトに対処できない
    • 提供された文字間隔では、複数のフォントが混ざったテキストに対処できない
  • hz typesetting の kf-module や Adobe InDesign が自動カーニングを提供している
    • 参考文献: 論文 References の [46, 81, 53, 32]
3.2 Line breaking
  • どの単語(ハイフネーションが可能な場合は単語の途中も可)を行の終わりに置くかという問題
  • first-fit 戦略
    • 行に限界まで単語を順に詰めていく (Constructive Search の一種)
  • Knuth-Plass アルゴリズム
    • 参考文献: Breaking paragraphs into lines [D. Knuth and M. Plass]
    • 行分割とハイフネーションを最適化問題として定式化し、動的計画法で解く
    • TeXでも使われている (Knuthさんは、御存知の通りTeXの開発者です)
    • 段落ごとに適用し、行の長さを均等にする
    • ワード数がnで、1行に入る最大ワード数がkの時、最悪計算量 O(kn)
3.3 Line justification
  • 行分割が決まったら、行の中での文字や単語の位置の微調整が必要(行の長さが多少は違っても良い場合はこのステップは省略可)
  • フォントの大きさを変える、単語間/文字間のスペースの大きさを変える、alternative ligatures and glyphsを使う(?)、などの方法がある
  • 一次元の連続最適化問題としてモデル化される
    • TeXの場合、行はglue glopで仕切られたboxで構成されていると仮定
    • 行に入る単語の長さに多じて、glue glopが伸び縮みする
[4. Macro-typography]
  • レイアウトの見た目すべてを決める
    • 文書の要素の配置方法、コンテンツの選び方、カラムの位置やサイズなど
4.1 Document and page layout models
  • 閲覧メディアの違いにより、文書レイアウトのモデルも異なってくる
  • 本論文では、次の4つのモデルを考える
    • 固定サイズの1ページに使われるレイアウト(例:ポスター)
    • 固定サイズで、枚数制限のないページに使われるレイアウト(例:PDF文書)
    • 固定幅、自由な高さの1ページに使われるレイアウト(例:HTML)
    • 固定高さ、自由な幅の1ページに使われるレイアウト
  • ページレイアウトモデルは、要素がとれる配置を規定する
    • 座標(Coordinate):各要素の位置を座標で指定。postscript, pdfなどで使われている。
    • Flow:ページ上の一つのストリームに順に要素を置いていくモデル。
    • Grid:テンプレートによって規定される軸に沿ったグリッドラインを使って各要素が配置される。雑誌やMicrosoft PowerPointなどで使われている。
    • VH=Box:階層モデル。Boxは単純なオブジェクトか、垂直スタック、水平なシーケンスのいずれかとなる(?)。TeXで使われている。
    • Guillotine:直交空間分割木(orthogonal space partition tree)という構造を使う。
    • Box:ページを矩形領域の集合で表現する。VH=Box, Guillotine, Gridモデルの一般化。5章で扱うテーブルも、Boxレイアウトとみなされる。
  • Macro-typographは2つのタスクで構成される
    • ページレイアウトを選ぶ(つまり、ページに含まれる要素と、要素間の関係を選ぶ)
    • レイアウトの微調整
4.2 Fine-tuning
  • 基本的なページレイアウトが与えられた時に、それをどのように調整して違うコンテンツや違うスタイル、違うページサイズに適用させるか
    • 連続的最適化が使われる
  • One-way constraints
    • $ x = f_x (y_1, \cdots, y_n) $
  • Hierarchical multi-way propagation constraints [78, 79, 28]
  • Linear arithmetic constraints [12, 43, 3, 4, 58]
  • ... and so on... (すいません、よくわかんなかったです)
  • イメージとしては、[Lin, 2005] のように工夫してページ内での制約を解くんだけど、その工夫の仕方はいろいろあるよ、ってことを言ってる?
4.3 Choosing a page layout
  • ページにどのような要素を、どのようなレイアウトで配置するかを決める問題
  • ページレイアウトの部分問題の中で一番難しい。離散的な問題。
  • この節では、ページレイアウト選択の様々な方法が紹介されていますが、私の理解が追いついていいないこともあり、以下かなりかいつまんだまとめになっていますので、興味の有る方は是非元論文をあたってください。
  • 浮動的な図をどう配置するか?
    • 本文の参照箇所の近くに配置したい
    • グリーディーに、一番最初に配置できる箇所に配置(TeXやHTMLで使われている)
  • 図が参照と同じページに、無理な場合は次のページのなるべく近い位置に表示されるように最適化する方法も提案されている
    • Optimal pagination techniques for automatic typesetting system [M. Plass, 1981]
    • Pagination reconsidered [A. Bruggemann-Klein et al., 1995]
  • 多段組での図の配置方法
    • Automatic float placement in multi-column documents [K. Marriott et al., 2007]
  • グリッドを用いた自動レイアウト
    • A grid-based approach to automating display layout [S. Feiner, 1988]
  • グリッドのようなレイアウトのテンプレートから良いものを選ぶ
  • 遺伝的アルゴリズムを使ったGuillotineページレイアウトの自動生成
    • Automatic layout of variable-content print data [E. Goldenberg, 2002]
  • ページレイアウトを記述する文法 [79, 44, 6, 51, 21]
4.4 Retargeting a page layout
  • モバイル端末の発展により、小型ディスプレイ向けにページレイアウトを再描画する問題が生じてきている
  • 主に2つの解決方法がある
    • 全体のレイアウトを保ったまま、小さいバージョンを作る
    • 全く新しいレイアウトを作りなおす
  • レイアウトを作りなおす場合は、小型デバイス向けのレイアウトが用意されていることが多いので、そのレイアウトで作りなおす
    • 元のページの見た目だけを手がかりにするのではなく、Document Object Model (DOM)などを用いた意味構造も参考にしてレイアウトを作りなおす
    • Detecting web page structure for adaptive viewing on small form factor devices [Y. Chen et al., 2003]
    • West: a web browser for small terminals [S. Bjork et al., 1999]
    • 最近のシステムは文字色やフォントなどもレイアウトの参考にする [5, 80]
  • 小さいバージョンを作るアプローチでは、スケーリングされたページが元のページと同じように見えるように頑張る
    • 単純に小さくすると、テキストや画像などの要素が見えにくくなる
    • スケーリングしたサムネイルと、ズーム領域を使う(Supporting memory for spatial location while reading from small displays [K. O'Hara et al., 1999])などの工夫が必要。
[5. Table Formatting]

  • テーブル整形も、文書整形と同様に2ステップで考える
    • 1. 多次元データから、テーブルの論理構造を決める
      • 行や列の数、各セルの内容など
    • 2. テーブルのレイアウトを決める
      • 列の幅、行の高さなど。この時、2つの列の幅は同じ、などといった制約条件を課す。
  • テーブルの自動レイアウトは、セルにテキストが含まれると計算量が多くなる(どこで開業するかで幅や高さが変わるから) → 列の幅を決めてしまうことが多いが、決められないような状況もある
5.1 Column-driven layout
  • Line justificationのTeXのアルゴリズムを使って、固定されてない列の幅の比率を決定
  • 列の幅が決まると、各セルにコンテンツを置いてセルの高さも決定できる
  • HTMLのテーブルの作成にはこのアルゴリズムが使われている
    • HTML 4.01 SPecifiation, section 'Autolayout Algorithm'. http://www.w3.org/TR/html4/appendix/notes.html#h-B.5.2 [D. Raggett et al., 1999]
5.2 Cell-driven layout
  • この節も全然理解できていないので、読む方は注意してください。
  • 制約最適化の観点でテーブルレイアウトを捉える [8]
  • セル中のテキストの行数が複数パターンある場合も考慮 [77]
  • 高さが最小のテーブルレイアウトを見つける問題はNP完全 [1]
  • ...他にもいろいろ紹介されていますが、よくわからないので省略させていただきます…。
5.3 Mininmal configurations
  • セル中のテキストをどのように行分割するか?という話。
[6. Conclusions]
  • micro-typographyの問題に対する最適化手法は実用化できるほど効率的
  • 一方、macro-typographyの問題に対するそれは、まだ実用段階とは言えない
  • ミクロとマクロのtypographicな問題をどう自動で組み合わせるかは今後の課題
    • レイアウトの問題は相互に依存しあい、その計算量はとんでもないものになってしまう
  • 良い自動レイアウトが利用できるような文書作成支援が必要

5章あたりは体力が切れてる感が否めませんね。
必要に迫られたら読みなおして、その部分を書き直したいと思います。

でもまあ、この分野を概観することはできたのではないでしょうか。
細かい手法などは全然理解していませんが、マクロなレイアウトとミクロなレイアウトがあるということ、それらのレイアウトを整形する際には制約最適化問題を解くことが多い、など、ざっくりしたことが分かっただけでもよかったです。
今回分かったアウトラインをもとに、次回以降、個別のレイアウト合成方法の論文を読んでみたいなーと思います。
今回出てきた最適化をどのように組み合わせているかを気にしながら読みたいですね。

2012年2月28日火曜日

Active Document Layout Synthesis [Lin, 2005]

Active Document Layout Synthesis [Lin, 2005] を読みました。
論文は http://www.hpl.hp.com/techreports/2005/HPL-2005-106.html から読むことができます。

前回の記事に引き続き、Document Layoutの自動生成についての論文です。
形式も前回の記事を踏襲していきます。

[Abstruct]

  • 文書レイアウト解析は長年研究されているが、その逆である文書レイアウト合成はあまり研究されていない
  • テキストブロックの高さと幅のトレードオフを最適に調節するようなレイアウト合成方法を提案する
[1. Introduction]
  • 文書レイアウト解析 (Documet Layout Analysis, or DLA) では、まずテキストブロックの場所を特定し、その後各ブロック内の単語をOCRで認識する
  • DLAの逆のタスクである文書レイアウト合成 Documet Layout Synthesis, or DLS)も面白いのではないか
    • 文書のテキストと画像が与えられた時、それらを含むブロックの適切なサイズや位置はどのようなものか?
  • DLSの目標は論理的に正しく(logically correct)、綺麗な見た目(aesthetically appealing)のレイアウトを作ること
  • 先行研究([Jacobs et al., 2003], [Badros et al., 2001])では、テキストブロックの幅は固定 or テンプレートで決まる
  • 提案手法では、ブロックの幅は固定しない。テンプレートは相対的な幅だけを定義する。
[2. Multi-linear Text Modeling]

  • ページにn個の矩形ブロック B1, B2, ..., Bn があるとする
  • S(Bi): Biの幾何学的性質(e.g., 高さや幅)
  • P(Bi): Biの左上の角
  • S(Bi)を固定する場合 (passive DLS) は、P(Bi)のみを調整してlayout quality functionを最適化すればよく、シンプレックス法で解ける
    • 論文中でのlayout quality functionの具体的な実装については4章を参照
  • S(Bi)も調整する場合 (active DLS) の難しさは、高さと幅の関係の非線形性にある
    • ブロックの幅を連続的に狭くしていくと、ある時行数が増え、ブロックの高さが一気に(一文字分)増えるので、横軸に幅、縦軸に高さを取ると、幅と高さの関係は階段状になる(Figure 3)
  • そこで、まずはシンプレックス法が使えるようにするため、高さと幅の関係を多重線形制約条件でモデル化する
  • 経験上、高さ(h)と幅(w)の関係は双曲線関数のように振る舞い、レンダリングエンジンのデータなどをもとにすると h = k/w + b と表せる。ただし、k = 8360.6, b = -1.04
  • 双曲線上にいくつかのサンプリングポイントを置いて、双曲線をカバーするような直線群を求める(Figure 4)
[3. Two-pass Constraint Solving]
  • 2章にて幅と高さの関係を多重線形モデルに落とし込んだので、シンプレックス法が使える
    • パラメタは各ブロックの幅、高さ、左端、上端
  • レイアウトは2ステップで計算する
    • i) 各テキストブロックの最適な幅をシンプレックス法で計算する → line-breakingをしてブロックの高さを得る
    • ii) テキストブロックの高さと幅を固定してもう一度シンプレックス法を実行することで、各ブロックの最適な位置を得る
[4. Experimental Results]
  • 実験で用いたテンプレートが要求する条件:
    • 1) B2はB1の右側にある
    • 2) 画像ブロックB1とテキストブロックB2の高さは同じ
    • 3) B3の高さと幅は同じ
    • 4) B3, B4, B5はB1, B2よりも下にある
    • 5) B3, B4, B5の上端は揃っている
    • 6) B3とB6は垂直方向に並んでいる (horizontally aligned)
    • 7) 画像はアスペクト比が崩れないようにスケーリングできる
    • 8) コンパクトなページを目指すため、全てのブロックが占めるスペースの高さを最小化する (これが2章で触れた layout quality function ですね)
  • Figure 5, 6にこの手法を適用する過程が示されています
[5. Application to Table Formatting]
  • Table Formatting とは、文書中の表のグリッドと内容が与えられた時に、表の各セルのサイズを決定する問題
  • 今回のactive DLSの手法がTable formattingに応用できる
    • 表をXML形式で記述する
    • XMLの記述から制約条件を抜き出してテンプレートを作る
    • active DLSの手法を適用する
[6. Conclusions]
5章までを簡単にまとめた感じなので省略します。


こんな感じでしょうか。シンプレックス法とか細かいこと忘れてたので思わずググってしまいました。
授業で習った時も嫌いだったなーこのあたりは…なんて思いながら…。

前回の記事の論文でも言えることですが、手法のしっかりとした評価がされていませんね。
私も文書レイアウトをするようなアルゴリズムを考えてみたいのですが、その際にそのレイアウトがどれほど良い物なのかを定量的に評価する方法は無いものでしょうか。

2012年2月27日月曜日

Adaptive Grid-Based Document Layout [Jacobs et al., 2003]

Adaptive Grid-Based Document Layout [Jacobs et al., 2003] を読みました。
論文は http://dl.acm.org/citation.cfm?id=882353 から読むことができます。

この論文は、文書のレイアウトを自動で生成しようという旨の論文です。
10年近く前の論文で、内容を解説している日本語のブログ記事も存在していました。
今回は、私自身が論文の理解を深める意味を込め、私なりに論文を流れに沿って簡単にまとめていこうと思います。
各章の内容を箇条書きで書きなおしているだけで、流れなどがわかりにくいかとは思いますが…。精進します。


[Abstruct]
  • グリッドベースの文書デザインは広く使われているが、グリッドベースの文書を任意のサイズのディスプレイ向けに自動でデザインする方法はまだ存在していない
[1. Introduction]
  • グリッド(grid)とは、印刷された文書のページ内で順序付けするためのシステムである
  • グリッドベースのデザイン(grid-based design)は、新聞や雑誌などで広く使われている
  • grid-based designを様々なサイズのディスプレイに綺麗に表示させる方法は今のところない (雑誌などは、決められたサイズの紙面に綺麗に印刷されれば良い)
  • ページの各要素(テキスト、画像、サイドバーなど)をグリッドにマップするのは手作業で行われる
    • 横長の紙だったらサイドバーは右に表示すればよいが、横幅が狭く縦長の紙であったらサイドバーはページを圧迫しないように下などに表示すべきである
  • grid-based designは文書の再描画ができない
  • HTMLやTeXなどは文書の再描画が可能だが、文書を一次元の流れとして扱っている
  • この論文では、以下のようなアプローチでgrid-based design の再描画を可能にする
    • テンプレートの集まりであるスタイルを用意し、各スタイルに文書の中身(テキストや画像など)を貼りつけていくイメージ
    • このテンプレートは、ディスプレイのサイズや文字サイズなどが変わっても綺麗に表示されるようにデザインされる
  • そのために必要なもの
    • テンプレートの表現方法
    • レイアウトエンジン
    • Pagenator
    • テンプレートをデザインするためのツール
[2. Related work]
省略します。

[3. Representation]
  • 文書の内容と表示スタイルは分けて考える。
  • スタイルは、テンプレートのレイアウトとスタイルシートに分けて考える
3.1 Document content
  • 文書の内容は、ストリーム(続けて表示されなければならない要素で構成される)の集合として表現する
  • ストリームは<atom>タグを用いた入れ子構造も可能
  • レイアウトエンジンやテンプレートにコンテンツがどのように使われるかを知らせるための attribute も指定可能
    • 例: "importance" attribute
  • <multi>タグを用いると、コンテンツのいくつかのバージョンを指定することができる
    • 例: <multi>タグをでテキストが要約されたものを指定しておくと、小さいディスプレイには要約バージョンが表示される
3.2 Templates
  • ページテンプレートは要素、制約、前提条件から成り、各ページのレイアウトを指定する
    • 要素: コンテンツが置かれる位置を矩形で指定したもの。一つのストリームが複数の要素にまたがった場合はフローが生じ、複数の要素が重なった場合は、ある要素を回りこむように他の要素が配置される。
    • 制約: 要素間の位置関係を制限する制約。
      • 例: タイトルと本文があるテキストなら、タイトルは文書の最初に表示されなければならない
      • 制約の実装方法は"3.2.1 Constraints"で触れられています。興味の有る方はそちらを読んでください。
    • 前提条件: テンプレートが使えるための条件。
      • 例: このテンプレートが使えるのは、図が2枚とページサイズがA4からU.S.-letterサイズの時のみ
  • ページテンプレートを集めたものをレイアウトスタイルと呼ぶ
3.3 Style sheets
  • 太字などの修飾ができるように、CSSに似た言語を提供
3.4 Bringing it all together
  • Document content, templates, stylesheetsの3つがpaginatorの入力となり、実際にページがレンダリングされる
[4. Layout]
  • レイアウトエンジンは、コンテンツ、テンプレート、スタイルシートを受け取って、ページのレイアウトを羅列する
    • まず、各テンプレートの前提条件を見て、使うことのできるテンプレートセットを羅列
    • 次に、各テンプレートに対し、要素のサイズや位置などを決める
4.1 Flowing into elements
  • コンテンツを矩形領域にどう流し込むか
  • 画像は、単純にリサイズして矩形に収まるようにする
  • テキストはKnuth and Plass's optimal line-breaking algorithm を使って矩形領域に流しこむ
    • アルゴリズムは Breaking paragraphs into lines [Knuth and Plass, 1989] 参照。私もまだ読んでないのですが、読んだら記事にするかもしれません。
4.2 Self-sizing elements
  • 要素の矩形領域の高さは自動で調節する。画像の場合は画像のアスペクト比を参考に調節。テキストの場合は、最初は高さを最大にして流し込み、矩形領域が余ったら高さ減らす。両方が組み合わさったコンテンツの場合はtemplates.outheightなる値を使う(?)。
4.3 Template scoring
  • ページエンジンは各テンプレートに対して、どの程度コンテンツがテンプレートにフィットしているかを示すスコアを計算する
  • paginatorは全てのページについての各テンプレートのスコアを受け取り、一番良いテンプレートの並びを計算する
[5. Pagination]
  • Paginationとは、文書のストリームから、各ページにコンテンツをマップするタスク
  • ページへの割り当てを決める際に、その割当がどの程度"良い"のかを決める指標が欲しい
    • 例: 文書を通して読む際に、 (文書の続きを読んだり、本文中で参照されている図などを見るための) ページめくりの回数が少なくなるようにしたい
5.1 Original algorithm
  • nページのpaginationの最適解は、最初のn - 1ページのpaginationの最適解に依存する → 動的計画法が使える
  • 今回の手法では、イテレーションの中で制約を解消するために多くの計算が必要になるので、従来の動的計画法はそのままでは使えない
5.2 Our algorithm
  • 重要なところなのに理解できていないです。すいません…。
5.3 Analysis
  • ページめくりの指標を使って、良いpaginatorができたという話だと思います。(ここはあんまりちゃんと読んでいません)
[6. Authoring templates]
  • ディスプレイのサイズが変わるとどう表示されるかを考えながらテンプレートを作るのは難しいので、それをサポートするツールを作成した
6.1 Creating and arranging layout elements

  • 要素の位置は様々なサイズの画面に対応できるように相対位置で指定
  • 要素のリサイズに対応できるように、制約は1次元的に指定(e.g., 高さは指定せず、幅だけを指定する)
6.2 Template selection
  • テンプレートの前提条件は、要素に関連付けられているストリームから自動的に計算される(どういうこと?)
  • ダイアログボックスを使って前提条件を追加できる
  • 要素にattributeを追加できる → テンプレートのスコアに影響
[7. Results]
  • 論文は、提案手法を用いてデザインされている
  • 文書はMicrosoft Wordからマクロを使ってマークアップフォーマットに落とし込んだ
[8. Conclusion and future work]
  • コンピュータでのリーディングが盛んになってきているが、グリッドベースでの文書デザインには様々な環境にどう対応するかという問題があった
  • 今回の論文は、その問題に対する最初の一歩


以上。
だらだらと書いてしまった上に、ところどころ理解が甘かったりでもう…。

というか、未だに全体の流れもちゃんとつかめていません。この処理は全体でどういう処理になるんでしょう。

マークアップ形式で書かれたコンテンツ(テキストやらイメージやら)があるとします。テンプレートも予め用意しておく。
その後にどのページにどのコンテンツを割り当て、どのテンプレートを使う、という候補を洗い出し、スコアを付けておく(4章)。
その後、ページ割り当ての指標や、テンプレートのスコアを参考にして、実際にコンテンツを割り当てるページとレイアウトを決める(5章)。
っていう流れでいいんですかね…?
「どのページにどのコンテンツを割り当て、どのテンプレートを使う、という候補を洗い出し、スコアを付けておく」って部分が、具体的にどんな処理をしてるのかよくわからないです。書いてあります?自分の英語力が足りてないだけな気もしますが…。

いきなり私の頭の足りなさを露呈する形になってしまいましたが、今回はこれにて。
省略した部分や、理解できていなかった部分が分かった場合は、後日追記する可能性もあります。