egui_nerdfonts
1.0.0
Egui에 대한 괴상한 글꼴 아이콘.
Cargo.toml의 의존성으로 상자를 추가하십시오.
egui_nerdfonts = " 0.1.3 " 또는 프로젝트에서 cargo add egui_nerdfonts .
먼저 EGUI 컨텍스트에서 글꼴을 업데이트하십시오.
let mut fonts = egui :: FontDefinitions :: default ( ) ;
egui_nerdfonts :: add_to_fonts ( & mut fonts , egui_nerdfonts :: Variant :: Regular ) ;
let egui_ctx = Context :: default ( ) ;
egui_ctx . set_fonts ( fonts ) ;이 중에 사용하려는 NerdFonts 아이콘을 선택하십시오.
그런 다음 Nerdfonts 아이콘을 다음과 같이 사용하십시오.
ui . label ( format ! ( "{}" , egui_nerdfonts :: regular :: NF_DEV_RUST ) ) ; cargo run --example rust_logo

Egui_phosphor에서 영감을 얻은 코드는 동일한 구조를 사용합니다.
사용 된 .ttf는 이것이며 src/variants/regular.rs 다음과 같은 파이썬 스크립트로 생성되었으며, nerdfonts_regular.ttf 는 첫 번째 인수로 생성되었습니다.
from itertools import chain
from fontTools . ttLib import TTFont
from fontTools . unicode import Unicode
import sys
with TTFont (
sys . argv [ 1 ], 0 , allowVID = 0 , ignoreDecompileErrors = True , fontNumber = - 1
) as ttf :
chars = chain . from_iterable (
[ y + ( Unicode [ y [ 0 ]],) for y in x . cmap . items ()] for x in ttf [ "cmap" ]. tables
)
for char in chars :
symbol_name = char [ 1 ]. upper (). replace ( '-' , '_' ). replace ( ' ' , '_' ). replace ( '#' , '_' ). replace ( '!' , '' )
code = r"u" + "{" + f" { char [ 0 ]:X } " + "}"
print ( f"pub const { symbol_name } : &str = " { code } " ;" )