Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
吉田を支える技術
cockscomb
November 26, 2021
Programming
0
1k
吉田を支える技術
cockscomb
November 26, 2021
Tweet
Share
More Decks by cockscomb
See All by cockscomb
jq at the Shortcuts
cockscomb
1
390
GraphQL放談
cockscomb
4
1.4k
GraphQL Highway
cockscomb
27
6.4k
コーポレートサイトを静的化してAmplify Consoleにデプロイする
cockscomb
0
3k
ユーザインターフェイスと非同期処理
cockscomb
5
1.4k
GUIアプリケーションの構造と設計
cockscomb
10
9.5k
イカリング2におけるシングルページアプリケーション
cockscomb
2
6.8k
あなたの知らない UIKit の世界 — UITableView に UITextView を置きたい
cockscomb
1
6.7k
iOSアプリエンジニアのためのAndroidアプリ開発
cockscomb
7
1.6k
Other Decks in Programming
See All in Programming
Writing Greener Java Applications
hollycummins
0
330
Swift Expression Macros: a practical introduction
kishikawakatsumi
2
700
AWS App Runnerがそろそろ本番環境でも使い物になりそう
n1215
PRO
0
870
Quarto Tips for Academic Presentation
nicetak
0
890
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
42k
Enumを自動で網羅的にテストしてみた
estie
0
1.2k
AWSとCPUのムフフな関係
cmdemura
0
450
eBPF와 함께 이해하는 Cilium 네트워킹
hadaney
3
830
Excelの助けを借りて楽にシナリオを作ろう
rpa_niiyama
0
210
はてなリモートインターンシップ2022 インフラ 講義資料
hatena
4
2.1k
中小企業開発事例から見るサーバーレス
seike460
PRO
4
1.5k
WordPress(再)入門 - 基礎知識・環境編
oleindesign
1
120
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
87
12k
Embracing the Ebb and Flow
colly
75
3.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
318
19k
Building a Scalable Design System with Sketch
lauravandoore
451
31k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
217
21k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
StorybookのUI Testing Handbookを読んだ
zakiyama
8
3.2k
The Language of Interfaces
destraynor
149
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
643
54k
Bash Introduction
62gerente
601
210k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1.1M
Imperfection Machines: The Place of Print at Facebook
scottboms
254
12k
Transcript
٢ాΛࢧ͑Δٕज़ গ͚ͩؒ͠Λ͓͍ͯ٢ా͕͖·͢ɻ
גࣜձࣾͯͳ νʔϑΤϯδχΞ Ճ౻ਘथ JEDPDLTDPNC
8&# %#13&447PM (SBQI2-શΨΠυ
ͯͳಗ໊μΠΞϦʔ ໊લΛӅָͯ͘͠͠هɻ w໊લΛग़ͣ͞ʹهΛॻ͚ΔαʔϏε w݄ͷϦϦʔε͔Β
ͯͳಗ໊μΠΞϦʔ ݟ͑ͳ͍ͱ͜Ζͷվળ͕ओ wίϯςφԽͯ͠"84&,4Ͱ࣮ߦ wεύϜରࡦͷվળ wΞϓϦέʔγϣϯϩάͷվળ w΄͔
None
࣮Λݴ͏ͱͯͳ͏ͩΊͰ͢ɻ ಥવ͜Μͳ͜ͱݴͬͯ͝ΊΜͶɻ ͰຊͰ͢ɻ ̎ɺ̏ޙʹͷ͘͢͝ ͍૿ా͕͋Γ·͢ɻ ͦΕ͕ऴΘΓͷ߹ਤͰ͢ɻ ఔͳ͘େ͖Ίͷຊా͕དྷΔͷͰ ؾΛ͚ͭͯɻ ͦΕ͕ΜͩΒɺগ͚ͩؒ͠Λ͓͍ͯ ٢ా͕͖·͢ɻ
ͯͳಗ໊μΠΞϦʔʹͳ͔ͥසग़͢Δจࣈྻ ૿ా
None
None
None
૿ాΛ٢ాʹ͍ͨ͠
૿ాΛ٢ాʹ͍ͨ͠ ૿ాΛ٢ాʹ͢Δํ๏ʹ͍ͭͯͷݕ౼ wαʔόͰT૿ా٢ాH wˠ(PPHMFCPUΛࠔΒͤͦ͏ wϑϩϯτΤϯυͰT૿ా٢ాH wˠ࠷ۙͷ(PPHMFCPU+BWB4DSJQUΛධՁ͢Δ wͳΜ͔͍͢͝ϋοΫ
ͳΜ͔͍͢͝ϋοΫ
8FCϑΥϯτ
૿ా͕٢ాʹͳΔ8FCϑΥϯτΛ࡞Δ ϑΥϯτͷߏ wϑΥϯτʮจࣈʯʹରԠ͢ΔʮάϦϑʯΛఏڙ͢Δ wจࣈ w6OJDPEFͷίʔυϙΠϯτ wॻهૉΫϥελ wάϦϑจࣈͷܗ
૿ా͕٢ాʹͳΔ8FCϑΥϯτΛ࡞Δ ϑΥϯτʹؚ·ΕΔςʔϒϧͷྫ wHMZQςʔϒϧ wάϦϑ*%ʹରԠ͢ΔάϦϑͷܗঢ় wDNBQςʔϒϧ wίʔυϙΠϯτͱάϦϑ*%ͷରԠ
૿ా͕٢ాʹͳΔ8FCϑΥϯτΛ࡞Δ DNBQςʔϒϧΛॻ͖͑Δ 6 6 ૿ ٢
૿ా͕٢ాʹͳΔ8FCϑΥϯτΛ࡞Δ DNBQςʔϒϧΛॻ͖͑Δ 6 6 ૿ ٢
GPOUUPPMT ϓϩάϥϚʔͳͷͰϑΥϯτΛϓϩάϥϜͰ࡞Δ w1ZUIPOͰϑΥϯτΛૢ࡞͢ΔϥΠϒϥϦ w(PPHMF"EPCF͍ͬͯΔ
def build_yoshida(base_font: ttLib.TTFont): masu = ord('૿') yoshi = ord('٢') cmap
= base_font.getBestCmap() yoshi_cid = cmap[yoshi] head = base_font.get('head') fb = FontBuilder(head.unitsPerEm, isTTF=False) fb.setupGlyphOrder([".notdef", yoshi_cid]) fb.setupCharacterMap({masu: yoshi_cid})
yoshi_glyph = base_font.getGlyphSet().get(yoshi_cid) yoshi_pen = T2CharStringPen(yoshi_glyph.width, None) yoshi_glyph.draw(yoshi_pen) char_strings =
{ ".notdef": ... , yoshi_cid: yoshi_pen.getCharString(), } fb.setupCFF( "Yoshida-Sans", {"FullName": "Yoshida-Sans"}, char_strings, {} )
None
૿ా͕૿͑ͨˠ٢ా͕٢͑ͨ
૿ాͷͱ͖͚ͩ٢ాʹ͍ͨ͠
ϦΨνϟʢ߹ࣈʣ ෳͷάϦϑͷฒͼΛҰͭͷάϦϑʹ͢Δ ffi f != != (BSBNPOE1SFNJFS1SP 'JSB$PEF ͔ͮΒ͖
ϦΨνϟʢ߹ࣈʣ ෳͷจࣈͷฒͼΛҰͭͷάϦϑʹ͢Δ ૿ా ٢ా
0QFO5ZQFͷMJHBGFBUVSF (46#ςʔϒϧͰ࣮͞ΕΔ languagesystem DFLT dflt; feature liga { substitute cid13827
cid27065 by cidmasuda; } liga;
fb.addOpenTypeFeatures(f''' languagesystem DFLT dflt; feature liga {{ substitute {masu_cid} {da_cid}
by {masuda_cid}; }} liga; ''') pen = T2CharStringPen(yoshi_glyph.width + da_glyph.width, None) yoshi_glyph.draw(pen) da_glyph.draw( TransformPen(pen, transform.Offset(yoshi_glyph.width)) )
None
λΠϜϥΠϯ ࢥ͍ͭ͘ Ϛωʔδϟʢ٢ాʣͱ߹ҙ ։ൃ։࢝ άϦϑͷஔ͕ ํΛมߋ ϦΨνϟ ϓϧϦΫΤετ Ϛʔδ
٢ాʹ͢ΔࢫΛࣾؔऀʹใࠂ ө
٢ా͕͖·ͨ͠ w͓૽͕ͤ͠·ͨ͠ wϑΥϯτʹखΛೖΕΔͱ͍͏खஈ wͨ·ʹʹཱͭ w4*-0QFO'POU-JDFOTF
࣍ճɺେ͖Ίͷຊాɻޤ͏͝ظ