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
110
強力なグラフィック機能を備えた組版処理システムTwightの開発
CSS組版 Vivliostyle ユーザーと開発者の集い 2021春
inaniwaudon
April 10, 2021
Tweet
Share
More Decks by inaniwaudon
See All by inaniwaudon
[WIP] GitHub Actions を回してピザを頼みたい
inaniwaudon
0
2.8k
Web フロントエンドと複雑 GUI の実装
inaniwaudon
0
200
プログラミングに触れてみよう!
inaniwaudon
0
42
「KdBもどき」の開発と運用
inaniwaudon
0
180
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
BBQ
matthewcrist
80
8.8k
We Have a Design System, Now What?
morganepeng
44
6.8k
Designing for Performance
lara
602
67k
Agile that works and the tools we love
rasmusluckow
325
20k
Become a Pro
speakerdeck
PRO
13
4.6k
Building Your Own Lightsaber
phodgson
100
5.7k
Designing on Purpose - Digital PM Summit 2013
jponch
111
6.5k
From Idea to $5000 a Month in 5 Months
shpigford
378
45k
GraphQLの誤解/rethinking-graphql
sonatard
55
9.3k
How STYLIGHT went responsive
nonsquared
92
4.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
7
3.4k
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