背景
jupyter-themesで設定できるfontがたくさんあることをしって、やはりフォントもこだわならなくては! とおもったのがきっかけ
それではどうぞ
結論
- 避けるべきフォント:
- jupyterのデフォルトフォント: 等幅フォントじゃない
- saxMono: 1と小文字Lの区別、0と大文字Oの区別がつかない
- Liberation Mono: 0と大文字Oの区別がつかない
- Aurulent Sans Mono: 0と大文字Oの区別がつかない
- "避けるべきフォント"以外であれば、あとはお好み。 lと1の区別のつきやすさ+斜線0+officeよりやや強めの太さ、ということでMesloを選択。
備考
ぽちぽちしながらテーマを変更できるようにつくったコード
import subprocess
font_raw = """anka Anka/Coder
anonymous Anonymous Pro
aurulent Aurulent Sans Mono
bitstream Bitstream Vera Sans Mono
bpmono BPmono
code Code New Roman
consolamono Consolamono
cousine Cousine
dejavu DejaVu Sans Mono
droidmono Droid Sans Mono
fira Fira Mono
firacode Fira Code
generic Generic Mono
hack Hack
hasklig Hasklig
inconsolata Inconsolata-g
inputmono Input Mono
iosevka Iosevka
liberation Liberation Mono
meslo Meslo
office Office Code Pro
oxygen Oxygen Mono
roboto Roboto Mono
saxmono saxMono
source Source Code Pro
sourcemed Source Code Pro Medium
ptmono PT Mono
ubuntu Ubuntu Mono"""
font_list = []
for i in font_raw.split('\n'):
f_arg = i.split('\t')[0]
font_name = i.split('\t')[1]
font_list.append((f_arg,font_name))
def generateCmd():
base_cmd = 'jt -t gruvboxd -T -N -ofs 12 -f %(font_name)s'
for font in font_list:
print(font[1])
yield base_cmd % {'font_name':font[0]}, font[1]
changeTheme= generateCmd()
cmd, font_name = next(changeTheme)
print(cmd)
res = subprocess.run(cmd,shell =True)
user_acc = { 'user': 'l1l1_aa_0O0O_2S2S', 'password': 'abcdefghijklmnopqrstuvwxyz0123456789', 'database': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'}
print('font_name:'+font_name)
print('cmd:'+cmd)
for i in user_acc:
print(i.ljust(15,' ')+user_acc[i])