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
等幅は死んだ(ぇ
Search
tsuda.a
April 18, 2024
Programming
0
55
等幅は死んだ(ぇ
等幅って昔は常識でそれしか選択肢がなかったけど、今は絶滅危惧種で死に体ですよね?という話(汗
tsuda.a
April 18, 2024
Tweet
Share
More Decks by tsuda.a
See All by tsuda.a
マジカルインクリメントと指数表記
tsudaahr
0
110
バックアップしていますか?
tsudaahr
0
75
RDB以前のファイル設計の話でもしようか(ぇ
tsudaahr
0
82
NPUわからん
tsudaahr
0
140
計算量オーダーの話
tsudaahr
1
320
クラウド初学者が抱える不安について
tsudaahr
0
190
キューとは何か
tsudaahr
0
180
いくら眺めてもエラーの理由がわからないコードについて
tsudaahr
0
140
何のために文字数をカウントするのか?
tsudaahr
0
62
Other Decks in Programming
See All in Programming
ゼロからの、レトロゲームエンジンの作り方
tokujiros
3
1.2k
PicoRubyと暮らす、シェアハウスハック
ryosk7
0
250
ISUCON14公式反省会LT: 社内ISUCONの話
astj
PRO
0
140
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
790
混沌とした例外処理とエラー監視に秩序をもたらす
morihirok
18
3.3k
[Fin-JAWS 第38回 ~re:Invent 2024 金融re:Cap~]FaultInjectionServiceアップデート@pre:Invent2024
shintaro_fukatsu
0
360
Java Webフレームワークの現状 / java web framework at burikaigi
kishida
9
2k
Scaling your build logic
antalmonori
1
150
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
3
630
『改訂新版 良いコード/悪いコードで学ぶ設計入門』活用方法−爆速でスキルアップする!効果的な学習アプローチ / effective-learning-of-good-code
minodriven
29
4.8k
JavaScriptツール群「UnJS」を5分で一気に駆け巡る!
k1tikurisu
8
1.3k
ASP. NET CoreにおけるWebAPIの最新情報
tomokusaba
0
230
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.5k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
How to train your dragon (web standard)
notwaldorf
89
5.8k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.2k
GraphQLとの向き合い方2022年版
quramy
44
13k
The Cult of Friendly URLs
andyhume
78
6.2k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
220
What's in a price? How to price your products and services
michaelherold
244
12k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
600
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Writing Fast Ruby
sferik
628
61k
Transcript
等幅は死んだ(ぇ IT 系の濃ゆい話をする会 #14 LTDD 2024-4 #2 @tsuda_ahr
別のところのお話で • プログラミングで全角文字を使ったらエラーが出たでござる、という話があ りました。
岡山で話してきました。 https://speakerdeck.com/tsudaahr/ikuratiao-metemoeranoli-you-gawakaranaikodonituite
プログラミングするときに、どんなフォントを使っていますか? • もちろん等幅フォントですよね?
ここで言う「等幅フォント」とは? • 字種(‘M’と‘I’など)によらず、文字幅が固定。 • 和文を扱い、かつ、 英字部分と漢字部分の文字幅比が 1:2。 つまり英字部分は半角幅で、漢字部分は全角幅です。 • 全角幅の字形領域は正方形。
• 和文とは、主に過去 ShiftJIS を構成していた JIS X 0201(=英字部分) と JIS X 0208 (=漢字部分) のコードポイントの集合を指します。 したがって、それらコードに含まれる英数字および記号類も和文の範囲です。 • Unicode 系の JIS X 0208 以外の文字についての幅は未定義とします が、おおよそ半角幅または全角幅のどちらかに寄せてあるものとします。
選択肢 • Windows の場合 • MSゴシック • MS明朝 • Biz
UDゴシック • Biz UD明朝 • Mac • Osaka-Mono? • Linux • 知らぬ(汗
要するに? • 選択肢がほぼない、ということ(汗
プログラミング用フォント? • あれらって英字(=JIS X 0201) 部分を重視していて、漢字部分(=JIS X 0208) は重要 視してないですよね?
• あと、普通の人(=初学者/非プログラマー) の人はフォントをインストールしたりしない ので以下略(汗 意訳)標準フォント内でなんとかしたい
それでも • Windows だけで閉じられるなら、フォントを指定することで、なんとかなる。 • メールや Web など、異 OS 間で再現させようとすると死亡確定(汗
(相互互換するフォントがないので・・・)
たとえば • メールで、テキストで以下のような図を作っても、相手に正しく表示して もらえているかはわかりません。 MASTER SLAVE T+ ───┬─────── R+ T-
───│─┬───── R- R+ ───│─│─┬─── T+ R- ───│─│─│─┬─ T- │ │ │ │ ├─│─│─│─ R+ │ ├─│─│─ R- │ │ ├─│─ T+ │ │ │ ├─ T- │ │ │ │ └─│─│─│─ R+ └─│─│─ R- └─│─ T+ └─ T-
相手には • こんな感じでみえているかも? MASTER SLAVE T+ ───┬─────── R+ T- ───│─┬─────
R- R+ ───│─│─┬─── T+ R- ───│─│─│─┬─ T- │ │ │ │ ├─│─│─│─ R+ │ ├─│─│─ R- │ │ ├─│─ T+ │ │ │ ├─ T- │ │ │ │ └─│─│─│─ R+ └─│─│─ R- └─│─ T+ └─ T-
あと • 等幅と言っても、和文系フォントと英文系フォントで扱いが違う。
‘◦’が思ったより小さくなるフォントって見たことないですか? • たとえば Microsoft YaHei とか。 ABCxyz◦△□ghi123 • 同じ文字列を BIZ
UDPゴシック でみるとこんな。 ABCxyz◦△□ghi123
見たことない? • 等幅ではないですが、一番身近なのはサインインのパスワードかも? WinXP Win10 Win11 GitHub (Google Chrome v123)
昔は * だった。 Vista から • 従来に比べて太った感じ Win11から細身に? GitHubも細身
幅の概念が違う。 • 漢字 • 略(原稿用紙がイメージしやすい) • 英字 • x-Height (=高さ)を基準にして文字の幅が決まるっぽい。
( x-Height の高さ=等幅の場合の幅、みたいな感じ) ここが x-Height https://en.wikipedia.org/wiki/X-height
なので、欧文系の等幅は日本語の等幅と趣が異なる。 • 縦横比が必ずしも 1:2 ではない。 • 記号/罫線などの文字も英字と同じ幅。 (英字幅:記号類幅が 1:2 ではなく
1:1) • なので、日本語等幅と同じノリでレイアウトするとズレる。 https://dejavu-fonts.github.io/ DejaVu LGC Sans Mono ABCxyz◦△□ghi123 記号類が英字と同じ幅。
結局何さ? • かつてコンピューターのフォントといえば等幅が支配的だったのに、現在では プロポーショナルに席巻され死に体である。 • 昔は(特にインターネット以前は)等幅フォントによって成立していた表現が、 等幅フォントの衰退によって再現不能になりつつある。 • プログラミング界隈は等幅が使われているが、そのうちプログラミングもプ ロポーショナルフォントで行う時代がやってくるかも!!
(AI によって生身のプログラマーが淘汰されるのが先かもしれないが)
こちらからは以上です