Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
強力なグラフィック機能を備えた組版処理システムTwightの開発
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
inaniwaudon
April 10, 2021
690
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
強力なグラフィック機能を備えた組版処理システムTwightの開発
CSS組版 Vivliostyle ユーザーと開発者の集い 2021春
inaniwaudon
April 10, 2021
More Decks by inaniwaudon
See All by inaniwaudon
التكنولوجيا_وراء_اللغة_العربية.pdf
inaniwaudon
0
420
[WIP] GitHub Actions を回してピザを頼みたい
inaniwaudon
0
4.2k
Web フロントエンドと複雑 GUI の実装
inaniwaudon
0
490
プログラミングに触れてみよう!
inaniwaudon
1
260
「KdBもどき」の開発と運用
inaniwaudon
0
570
Featured
See All Featured
How GitHub (no longer) Works
holman
316
150k
A designer walks into a library…
pauljervisheath
211
25k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
Optimising Largest Contentful Paint
csswizardry
37
4k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
4 Signs Your Business is Dying
shpigford
187
23k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
270
Docker and Python
trallard
47
4.2k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Test your architecture with Archunit
thirion
2
2.4k
Documentation Writing (for coders)
carmenintech
77
5.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
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