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
190
強力なグラフィック機能を備えた組版処理システムTwightの開発
CSS組版 Vivliostyle ユーザーと開発者の集い 2021春
inaniwaudon
April 10, 2021
Tweet
Share
More Decks by inaniwaudon
See All by inaniwaudon
التكنولوجيا_وراء_اللغة_العربية.pdf
inaniwaudon
0
200
[WIP] GitHub Actions を回してピザを頼みたい
inaniwaudon
0
3.3k
Web フロントエンドと複雑 GUI の実装
inaniwaudon
0
360
プログラミングに触れてみよう!
inaniwaudon
0
110
「KdBもどき」の開発と運用
inaniwaudon
0
290
Featured
See All Featured
Done Done
chrislema
181
16k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
RailsConf 2023
tenderlove
29
900
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Code Reviewing Like a Champion
maltzj
520
39k
Teambox: Starting and Learning
jrom
133
8.8k
Building Applications with DynamoDB
mza
90
6.1k
Building Adaptive Systems
keathley
38
2.3k
Navigating Team Friction
lara
183
14k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
860
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