Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
強力なグラフィック機能を備えた組版処理システムTwightの開発
Search
inaniwaudon
April 10, 2021
0
200
強力なグラフィック機能を備えた組版処理システムTwightの開発
CSS組版 Vivliostyle ユーザーと開発者の集い 2021春
inaniwaudon
April 10, 2021
Tweet
Share
More Decks by inaniwaudon
See All by inaniwaudon
التكنولوجيا_وراء_اللغة_العربية.pdf
inaniwaudon
0
220
[WIP] GitHub Actions を回してピザを頼みたい
inaniwaudon
0
3.3k
Web フロントエンドと複雑 GUI の実装
inaniwaudon
0
370
プログラミングに触れてみよう!
inaniwaudon
0
120
「KdBもどき」の開発と運用
inaniwaudon
0
300
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
693
190k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Building Adaptive Systems
keathley
38
2.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
A designer walks into a library…
pauljervisheath
204
24k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Scaling GitHub
holman
458
140k
Making Projects Easy
brettharned
116
5.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Facilitating Awesome Meetings
lara
50
6.1k
Transcript
筑波大学 情報学群 情報メディア創成学類
筑波大学 情報学群 情報メディア創成学類
未踏IT人材発掘・育成事業 採択 開発の経緯 ・独立行政法人 情報処理推進機構(IPA)のソフトウェア創成事業 ・未踏は結構組版をやっている IdeoType(2007), evalbook(2010), SATySFi (2017),
Twight (2020) 2020年6月21日 ~ 2021年3月12日
None
None
None
CSS組版 ・Webの高度なグラフィックス表現を享受可能 ・TeXよりも直感的(?)、コードがわかりやすい! Q. そもそもWeb用規格たるHTMLは、 組版に適しているのか? ➡ Web技術を踏襲した 新たな組版言語+処理系の開発 ・Webブラウザの表現の限界
(縁取りは? アピアランスは? CIDは?) ・ブラウザの互換性の問題 ―― CLI組版処理・WYSIWYGの折衷 課題 長所
None
None
None
None
None
None
JSインタプリタ以外はフルスクラッチ実装
None
<text> 標準要素(テキスト描画を担当) <sub>, <h3>, <person>, <affiliation>, <name>, <certification> 拡張要素(純粋なマークアップに利用) <?xml
version=“1.0” encoding=“utf-8”> <document> <head> <style> … </style> </head> <collection> <page no=“0”> ページの中身 </page> <page no=“ … </collection> </document> 実際にコードを書いてみる ―― XML
None
None
・<text> テキスト ・<br/><pbr/> 改行・改カラム ・<path><d> ベジェ曲線 ・<img/> JPEG/PNG画像 ・<symbol/> オブジェクトのコピー
Twightで雑誌誌面を組版する …1/2 レンダリングエンジン 最低限の機能をサポート Twightで定義されているXML要素(標準要素) その他の要素は自由に使用可能(拡張要素)
Twightで雑誌誌面を組版する …1/2 <text thread=“abc” no=“0”> 祇園精舎の鐘の声、諸行<br/>無常の響きあり、沙羅双樹の<br/> 響きあり、沙羅双樹の花の色<br>盛者必衰の理をあらわす。<cbr/> おごれる人も久しからず<br/>ただ春の夜の夢の如し<br/> たけき者もついには滅びぬ<br/>偏に風の前の塵に同じ </text>
<text thread=“abc” no=“1”></text> レンダリングエンジンでのテキスト処理
Twightで雑誌誌面を組版する …1/2 レンダリングエンジンでのテキスト処理 祇園精舎の鐘の声、諸行 無常の響きあり、沙羅双樹の 響きあり、沙羅双樹の花の色 盛者必衰の理をあらわす。 おごれる人も久しからず ただ春の夜の夢の如し たけき者もついには滅びぬ
偏に風の前の塵に同じ <br/>:break(改行) <cbr/> column break:改カラム* *同一のthread名、連続するnoを有するtext要素に 後続するテキストを送る ➡ 改行位置を手動で指定する必要がある
None
None
None
実際にコードを書いてみる ―― CSS
None
実際にコードを書いてみる ―― CSS
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
今後の課題 ・組版処理に時間を要する e.g. 前述の雑誌組版:5秒/ページ程度 ・PDFの埋め込みサブセット対応 ・画像・EPUB出力等のサポート ・多言語対応 ・ライブラリの拡充 (ご質問等ございましたら @kyoto_ysfh
までご気軽にお願いします)
オープンソース化への道 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生成 ・対応予定:埋め込みサブセット、不透明マスク、右横書き、目次、リンク …
None