1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//! 指定した文字を書体が持っているかを見る
use suki::font;
fn main() {
let path = std::env::args().nth(1).unwrap_or_else(|| "font/latinmodern-math.otf".to_string());
let loaded = font::load(std::fs::read(&path).unwrap()).unwrap();
println!("{}", font::family(&loaded));
let wanted = "ℝℤℂℕℚℍℙ𝔸𝔹𝔻𝔼𝕏𝕐𝕫𝟙ABRZ";
for character in wanted.chars() {
match font::glyph_of(&loaded, character) {
Some(glyph) => {
let drawn = font::outline_of(&loaded, glyph);
println!(
" {character} U+{:04X} 字形 {glyph} 線 {} 送り {:.3}",
character as u32,
drawn.segment.len(),
font::advance(&loaded, glyph)
);
}
None => println!(" {character} U+{:04X} 持っていない", character as u32),
}
}
}