Upgrade to Pro — share decks privately, control downloads, hide ads and more …

強力なグラフィック機能を備えた組版処理システムTwightの開発

inaniwaudon
April 10, 2021
80

 強力なグラフィック機能を備えた組版処理システムTwightの開発

CSS組版 Vivliostyle ユーザーと開発者の集い 2021春

inaniwaudon

April 10, 2021
Tweet

Transcript

  1. 筑波大学 情報学群 情報メディア創成学類

    View full-size slide

  2. 筑波大学 情報学群
    情報メディア創成学類

    View full-size slide

  3. 未踏IT人材発掘・育成事業 採択
    開発の経緯
    ・独立行政法人 情報処理推進機構(IPA)のソフトウェア創成事業
    ・未踏は結構組版をやっている
    IdeoType(2007), evalbook(2010), SATySFi (2017), Twight (2020)
    2020年6月21日 ~ 2021年3月12日

    View full-size slide

  4. CSS組版
    ・Webの高度なグラフィックス表現を享受可能
    ・TeXよりも直感的(?)、コードがわかりやすい!
    Q. そもそもWeb用規格たるHTMLは、 組版に適しているのか?
    ➡ Web技術を踏襲した 新たな組版言語+処理系の開発
    ・Webブラウザの表現の限界
    (縁取りは? アピアランスは? CIDは?)
    ・ブラウザの互換性の問題
    ―― CLI組版処理・WYSIWYGの折衷
    課題
    長所

    View full-size slide

  5. JSインタプリタ以外はフルスクラッチ実装

    View full-size slide


  6. 標準要素(テキスト描画を担当)
    , , , , ,
    拡張要素(純粋なマークアップに利用)
    encoding=“utf-8”>






    ページの中身


    実際にコードを書いてみる ―― XML

    View full-size slide

  7. ・ テキスト

    改行・改カラム
    ・ ベジェ曲線
    ・ JPEG/PNG画像
    ・ オブジェクトのコピー
    Twightで雑誌誌面を組版する …1/2
    レンダリングエンジン 最低限の機能をサポート
    Twightで定義されているXML要素(標準要素)
    その他の要素は自由に使用可能(拡張要素)

    View full-size slide

  8. Twightで雑誌誌面を組版する …1/2

    祇園精舎の鐘の声、諸行
    無常の響きあり、沙羅双樹の

    響きあり、沙羅双樹の花の色
    盛者必衰の理をあらわす。
    おごれる人も久しからず
    ただ春の夜の夢の如し

    たけき者もついには滅びぬ
    偏に風の前の塵に同じ


    レンダリングエンジンでのテキスト処理

    View full-size slide

  9. Twightで雑誌誌面を組版する …1/2
    レンダリングエンジンでのテキスト処理
    祇園精舎の鐘の声、諸行
    無常の響きあり、沙羅双樹の
    響きあり、沙羅双樹の花の色
    盛者必衰の理をあらわす。
    おごれる人も久しからず
    ただ春の夜の夢の如し
    たけき者もついには滅びぬ
    偏に風の前の塵に同じ

    :break(改行) column break:改カラム*
    *同一のthread名、連続するnoを有するtext要素に
    後続するテキストを送る
    ➡ 改行位置を手動で指定する必要がある

    View full-size slide

  10. 実際にコードを書いてみる ―― CSS

    View full-size slide

  11. 実際にコードを書いてみる ―― CSS

    View full-size slide

  12. 今後の課題
    ・組版処理に時間を要する
    e.g. 前述の雑誌組版:5秒/ページ程度
    ・PDFの埋め込みサブセット対応
    ・画像・EPUB出力等のサポート
    ・多言語対応
    ・ライブラリの拡充
    (ご質問等ございましたら @kyoto_ysfh までご気軽にお願いします)

    View full-size slide

  13. オープンソース化への道
    3. Twight / Twipo (仮称)
    みなさまの温かいご支援・ご協力をお待ちしております
    レンダリングエンジン+標準ライブラリ
    1. OTF/TTF decoder (仮称)
    ・Javaライブラリ:OTF/TTFデコーダー
    ・cmap, GSUB, GPOS, head, kern, maxp, name, OS/2, post, xhea, xmtx
    ・対応予定:CFF, glyh, VORG, BASE …
    2. PDF formatter (仮称)
    ・Javaライブラリ:PDF生成
    ・対応予定:埋め込みサブセット、不透明マスク、右横書き、目次、リンク …

    View full-size slide