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
Introduction to Font and Typesetting
Search
Shigure Shimotori
August 31, 2018
Programming
4.1k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction to Font and Typesetting
iOSDC Japan 2018
https://iosdc.jp/2018/
フォントと組版の30分入門
#iosdc #c
Shigure Shimotori
August 31, 2018
More Decks by Shigure Shimotori
See All by Shigure Shimotori
AsyncSequenceとAsyncStreamのプロポーザルを全部読む!!
s_shimotori
1
490
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
390
おっと、お飲みごろの時間です!
s_shimotori
1
160
Synchronizationを支える技術
s_shimotori
1
320
1人で挑むSwiftコンパイラ 〜型システム入門編〜
s_shimotori
0
1.4k
英語
s_shimotori
1
1.2k
Parallel Socket Communication in Swift
s_shimotori
1
1k
UIColor Anatomy
s_shimotori
1
3k
UIColor Cluster
s_shimotori
1
850
Other Decks in Programming
See All in Programming
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
190
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.3k
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.8k
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
180
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
7k
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
12
6.6k
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
300
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
120
Performance Engineering for Everyone
elenatanasoiu
0
220
JavaDoc 再入門
nagise
1
420
act1-costs.pdf
sumedhbala
0
110
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
200
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.9k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
220
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
170
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
220
Design in an AI World
tapps
1
250
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.5k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Skip the Path - Find Your Career Trail
mkilby
1
150
Transcript
ࢿྉ !4@4IJNPUPSJ@QVCͷݻఆπΠʔτ
ϑΥϯτͱ൛ͷ30ೖ iOSDC Japan 2018 2018/08/31 ͠ͱΓ @S_Shimotori_pub
ࣗݾհ ͠ͱΓ ɹɹ @S_Shimotori_pub iOSDC ωοτϫʔΫνʔϜ ※ઈରϑΥϯτײ͋Γ·ͤΜ
ຊ
iOSΤϯδχΞʹ ฉ͍ͯཉ͍͠τʔΫ ʢ30ʣ
ϚδͰΨνͳτʔΫͰ͢ʂ
໘ന͍͔Βฉ͍ͯ΄͍͠τϐοΫ • ϑΥϯτͱ൛ͱ • ͍Ζ͍Ζͳݴޠͱ൛ • ҹΛ࡞Δ
ϑΥϯτͱ൛ͱ
׆൛ҹͷ༻ޠͰ͢ʂ
׆൛ҹͷͳ͕Ε ׆ࣈΛ Έ൛ʹͯ͠ Δʂ ҹതؗʹͯɻ
None
ϑΥϯτ ίϯϐϡʔλʔͰ͏จࣈͷσβΠϯͷ͜ͱɻ׆ࣈͷ࣌ ʹɺಉ͡ॻମͰಉ͡αΠζͷ׆ࣈηοτΛࢦ͢ݴ༿Ͱ ͕͋ͬͨɺిࢉࣸ২DTPͰͻͱͭͷϑΥϯτͰ֦େ ॖখɺมܗ͕Ͱ͖ΔͨΊɺଠࣈࣼମͳͲͷελΠϧΛؚ ΊͯϑΥϯτͱݺͿΑ͏ʹͳͬͨɻ ASCII σδλϧ༻ޠࣙయΑΓ
None
Ͱձࣾͷ׆ࣈ͕… ͳ͔ͱΏ͏(@nakamotoyuu) https://twitter.com/nakamotoyuu/status/1008488924644163585
൛ ݪߘʹج͍ͮͯ׆ࣈΛΈɼ࠷ऴతʹ൛Λ࡞Δ·Ͱͷ ࡞ۀ͓Αͼͨ͠൛ɽ ʢதུʣ खಈɼػց͞ΒʹίϯϐϡʔλͰ͋ͬͯɼ൛ͱ͍͏ දݱΘΕ͍ͯΔɽ ਤॻؗใֶ༻ޠࣙయ ୈ4൛ΑΓ
ݱࡏʢ1985ʙʣ
׆൛ҹͷ͓͜͜·Ͱʂ
͍Ζ͍Ζͳݴޠͱ൛
͜Μͳͱ͜Ζʹ൛͕ʂ • ӳޠͰ #શ෦ಉ͡͡Όͳ͍Ͱ͔͢ SPACEฤ • ຊޠͰiOSॎॻ͖ʹઓ • λΠޠͰTall Script
• ΞϥϏΞޠͰRTLͱ߹ࣈ
ӳޠͰ #શ෦ಉ͡͡Όͳ͍Ͱ͔͢ SPACEฤ
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9 શ෦ಉ͡͡Όͳ͍Ͱ͔͢
ͬͱΑ͘ݟΖʂ
͓ l*OUSPEVDUJPOUP'POUBOE5ZQFTFUUJOHz
͓ l*OUSPEVDUJPOUP'POUBOE5ZQFTFUUJOHz
※SF Pro Text
εϖʔεͱΞΩ U+2003 EM SPACE U+2002 EN SPACE U+2004 THREE-PER-EM SPACE
U+2005 FOUR-PER-EM SPACE U+2006 SIX-PER-EM SPACE
εϖʔεͱΞΩ U+2003 EM SPACE U+2002 EN SPACE U+2004 THREE-PER-EM SPACE
U+2005 FOUR-PER-EM SPACE U+2006 SIX-PER-EM SPACE
͓ᶄ
EN ENͱ1/4EM InDesign ΞΩࣗಈ ※ώϥΪϊ֯ΰγοΫ
ຊޠͰiOSॎॻ͖ʹઓ
None
͓ lʰϑΥϯτͱ൛ͷೖʱz
ʰaOϑaOΥaOϯaOτaOͱaOaO൛aOͷaOʜ
1ߦ1จࣈ
1ߦ1จࣈ ͓खຊ
͖͕͓͔͍͠ ❌ ❌ ❌ ❌ ❌ ͓खຊ ͖͕͓͔͍͠
ࠨԼʹدͬͯΔ ࠨʹدͬͯΔ
͖͕͓͔͍͠ ❌ ❌ ❌ ❌ ❌ ͓खຊ ͖͕͓͔͍͠
ࠨԼʹدͬͯΔ ࠨʹدͬͯΔ
͖͕͓͔͍͠ ❌ ❌ ❌ ❌ ❌ ͓खຊ ͖͕͓͔͍͠
ࠨԼʹدͬͯΔ ࠨʹدͬͯΔ
1ߦ1จࣈํࣜͷ • ه߸ͷ͖͕ԣॻ͖ͷ·· • ፠ԻͷҐஔԣॻ͖ͷ·· • ֯ӳࣈͷҐஔ͕ࠨʹدͬͯ͠·͏ ❌
❌ ❌ ❌ ❌
ຊޠͷॎॻ͖Ͱඞཁͳ࡞ۀ • ॎॻ͖༻ͷάϦϑΛ͏ • தԝἧ͑ͰฒΔ • JIS X 4051ͷఆΊΔͱ͜Ζʹै͏
άϦϑ ܗঢ়ʹ͍ͭͯͷநత֓೦ 1ͭͷจࣈʹෳͷάϦϑ͕͋Δ͜ͱ ɹɹe.g. Χοί։͖ʹɹɹͱɹɹͷ͔͕ͨͪ͋Δ ɹɹɹɹ፠ԻࠨԼʹॻ͘ͱ͖ͱӈ্ʹॻ͘ͱ͖͕͋Δ ʰ ʰ
ॎॻ͖༻άϦϑ ϑΥϯτʹΑͬͯผʹ༻ҙ͋Γ ༻ҙ͕ͳͯ͘90ճసͤ͞ΕOK ❌ ❌ ✅ ✅ ✅
https://developer.apple.com/documentation/foundation/nsattributedstring/key/1528658-verticalglyphform “1 indicates vertical text” “horizontal text is always used”
“1 indicates vertical text” “horizontal text is always used” https://developer.apple.com/documentation/foundation/nsattributedstring/key/1528658-verticalglyphform
glyph typesetting
จࣈͷฒ͔ͨ ӳޠbase lineͰϕʔεฒͼɺ ຊޠจࣈͷதԝͰηϯλʔฒͼ
❌ ❌ ✅ ✅ ✅
தԝ͕ἧ͏Α͏ʹฒΔ ෯ϑΥϯτΛ͏ or શ֯ӳࣈΛ͏ or CoreTextͷग़൪ ✅ ✅
✅ ✅ ✅
λΠޠͰTall Script λΠจࣈ·Ώ͛
λΠޠͷಛ • λΠจࣈΛ༻͍Δ • Tall scriptͷҰछ λΠจࣈ·Ώ͛ สวัสดีชาวโลก!
λΠจࣈ·Ώ͛
λΠจࣈ·Ώ͛ ϓϦοπͷϥʔϒຯʂ
λΠจࣈ·Ώ͛ ϓϦοπͷϥʔϒຯʂ
λΠจࣈ·Ώ͛ αϥμຯ
λΠจࣈ·Ώ͛
λΠจࣈ·Ώ͛
ΞϥϏΞޠ
ΞϥϏΞޠͷಛ • ΞϥϏΞจࣈΛ༻͍Δ • ӈԣॻ͖ • ߹ࣈ
ӈԣॻ͖ Right-to-Left ӈ͔Βࠨͷ͖Ͱॻ͍͍ͯ͘͜ͱ ݱ࣮ʹRTLͱLTR͕ࠞࡏ͢ΔํςΩετʹͳΔ
https://www.apple.com/ https://www.apple.com/ae-ar/
iOSʹ͓͚ΔRTL UIViewΛӈ͔Βࠨʹஔ navigationࠨ͕nextɺӈ͕back Ұ෦ͷΞΠίϯΛमਖ਼(సͳͲ)
࣌ܭճΓͲͬͪճΓʁ
߹ࣈ Ligature ྡΓ߹ͬͨೋͭͷจࣈ຺ུ͕ͷ͋Δ͔ͨͪͱͯࣗ͠વʹ Έ͑ΔΑ͏Ͱ͖ͨάϦϑ fi et &
ΞϥϏΞޠͷ߹ࣈ ߹લ ߹ޙ ❓❓❓
ΞϥϏΞޠͷ߹ࣈ ߹લ ߹ޙ
ݴޠͷ͓͜͜·Ͱʂ
ҹΛ࡞Δ
ೖߘͷྲྀΕ
ҹΛ࡞Δ͓ • PDFͱϑΥϯτͷ͓ • ϦονͳΦϓγϣϯ
PDFͱϑΥϯτͷ͓
࠶ܝɿAppleͱAdobeͷਤ AldusAdobe͕ඒຯ͘͠৯·ͨ͠
PDF͕อ࣋͢Δใʢྫʣ • ༻ࢴαΠζ • ϑΥϯτใ • ίϯςϯπΛஔ͢ΔҐஔ • ςΩετ •
ਤܗ
ϑΥϯτσʔλͲ͜ʁ Ӿཡऀͷίϯϐϡʔλʹ͓·͔ͤ or ඞཁͳͿΜΛPDFࣗͰอ࣋ or ΞτϥΠϯԽͯ͠ϑΥϯτใഁغ ຒΊࠐΈʁ Apple
Chancery →
ϦονͳΦϓγϣϯ
ͩ͜ΘΓϙΠϯτ͜͜ʂ ☑ ࢴ͕ްΊ ☑ ಛघࢴΛ͍ͬͯΔ ☑ ༡ͼࢴΛೖΕ͍ͯΔ ☑ ഩΛೖΕ͍ͯΔ ☑
৭͕ଟ͍ ☑ ಛ৭Λ͍ͬͯΔ ໊ʹ͓ۚΛ͏ͷָͦ͠͏
Ҏ্ʂ
·ͱΊ • ׆൛ҹͷӨڹະͩڧ͠ • ֤ݴޠͷಛͷѲ͕େࣄ • ॎॻ͖қ͕ߴ͍ • ࣮ߦҕһޫΓ͕͖ͬͯ͝ຊਓ͕͓ͬ͠Όͬͯ·ͨ͠
ͨͷ͍͠ࢀߟจݙ • https://github.com/S-Shimotori/iOSDC2018Draft • Book/bibliographies Referenfe.md ͋ͨΓ • Θͨ͠ͷiOSDCײϒϩάʹਪનਤॻॻ͔͘
• ฉ͍ͯʂ
, ͓͠·͍ʂ