#!/bin/bash # For bold and italic we can use the Mathematical font variant mappings, # although those are only defined for Latin and Greek. # Latin bold capital: u1d400 - u1d419 # Latin bold small: u1d41a - u1d433 # Latin italic capital: u1d434 - u1d44d # Latin italic small: u1d44e - u1d467 # Latin bold italic capital: u1d468 - u1d481 # Latin bold italic small: u1d482 - u1d49b # (Script capital, script small, bold script capital, bold script small) # (Fraktur capital, fraktur small) # (Double-struck capital, double-struck small) # (some Hebrew symbol variants) # (Bold fraktur capital, bold fraktur small) # (Sans-serif capital, sans-serif small) # (Sans-serif bold capital, sans-serif bold small) # (Sans-serif italic capital, sans-serif italic small) # (Sans-serif bold italic capital, sans-serif bold italic small) # (Monospace capital, monospace small) # Greek bold capital: u1d6a8 - u1d6c0 # Greek bold small: u1d6c2 - u1d6da # Greek italic capital: u1d6e2 - u1d6fa # Greek italic small: u1dcfc - u1d714 # Greek bold italic capital: u1d71c - u1d734 # Greek bold italic small: u1d736 - u1d74e # (Greek sans-serif bold capital: u1d756 - u1d76e) # (Greek sans-serif bold small: u1d770 - u1d788) # (Greek sans-serif bold italic capital: u1d790 - u1d7a8) # (Greek sans-serif bold italic small: u1d7aa - u1d7c2) # bold digits: u1d7ce - u1d7d7 # (double-struck digits) # (sans-serif digits) # (sans-serif bold digits) # (monospace digits) # (Arabic mathematical) # (Arabic stretched) # (Arabic looped) # (Arabic double-struck) # # It turns out there are no Unicode control codes for marking text # bold or italic. There are for subscript and superscript, # and ASCII has similar codes which nobody ever uses. declare -A bold=( [0]=$'\xf0\x9d\x9f\x8e' [1]=$'\xf0\x9d\x9f\x8f' [2]=$'\xf0\x9d\x9f\x90' [3]=$'\xf0\x9d\x9f\x91' [4]=$'\xf0\x9d\x9f\x92' [5]=$'\xf0\x9d\x9f\x93' [6]=$'\xf0\x9d\x9f\x94' [7]=$'\xf0\x9d\x9f\x95' [8]=$'\xf0\x9d\x9f\x96' [9]=$'\xf0\x9d\x9f\x97' [A]=$'\xf0\x9d\x90\x80' [B]=$'\xf0\x9d\x90\x81' [C]=$'\xf0\x9d\x90\x82' [D]=$'\xf0\x9d\x90\x83' [E]=$'\xf0\x9d\x90\x84' [F]=$'\xf0\x9d\x90\x85' [G]=$'\xf0\x9d\x90\x86' [H]=$'\xf0\x9d\x90\x87' [I]=$'\xf0\x9d\x90\x88' [J]=$'\xf0\x9d\x90\x89' [K]=$'\xf0\x9d\x90\x8a' [L]=$'\xf0\x9d\x90\x8b' [M]=$'\xf0\x9d\x90\x8c' [N]=$'\xf0\x9d\x90\x8d' [O]=$'\xf0\x9d\x90\x8e' [P]=$'\xf0\x9d\x90\x8f' [Q]=$'\xf0\x9d\x90\x90' [R]=$'\xf0\x9d\x90\x91' [S]=$'\xf0\x9d\x90\x92' [T]=$'\xf0\x9d\x90\x93' [U]=$'\xf0\x9d\x90\x94' [V]=$'\xf0\x9d\x90\x95' [W]=$'\xf0\x9d\x90\x96' [X]=$'\xf0\x9d\x90\x97' [Y]=$'\xf0\x9d\x90\x98' [Z]=$'\xf0\x9d\x90\x99' [a]=$'\xf0\x9d\x90\x9a' [b]=$'\xf0\x9d\x90\x9b' [c]=$'\xf0\x9d\x90\x9c' [d]=$'\xf0\x9d\x90\x9d' [e]=$'\xf0\x9d\x90\x9e' [f]=$'\xf0\x9d\x90\x9f' [g]=$'\xf0\x9d\x90\xa0' [h]=$'\xf0\x9d\x90\xa1' [i]=$'\xf0\x9d\x90\xa2' [j]=$'\xf0\x9d\x90\xa3' [k]=$'\xf0\x9d\x90\xa4' [l]=$'\xf0\x9d\x90\xa5' [m]=$'\xf0\x9d\x90\xa6' [n]=$'\xf0\x9d\x90\xa7' [o]=$'\xf0\x9d\x90\xa8' [p]=$'\xf0\x9d\x90\xa9' [q]=$'\xf0\x9d\x90\xaa' [r]=$'\xf0\x9d\x90\xab' [s]=$'\xf0\x9d\x90\xac' [t]=$'\xf0\x9d\x90\xad' [u]=$'\xf0\x9d\x90\xae' [v]=$'\xf0\x9d\x90\xaf' [w]=$'\xf0\x9d\x90\xb0' [x]=$'\xf0\x9d\x90\xb1' [y]=$'\xf0\x9d\x90\xb2' [z]=$'\xf0\x9d\x90\xb3' [𝒜]=𝓐 [ℬ]=𝓑 [𝒞]=𝓒 [𝒟]=𝓓 [ℰ]=𝓔 [ℱ]=𝓕 [𝒱]=𝓖 [ℋ]=𝓗 [ℐ]=𝓘 [đ’„]=𝓙 [𝒩]=𝓚 [ℒ]=𝓛 [ℳ]=𝓜 [đ’©]=𝓝 [đ’Ș]=𝓞 [đ’«]=𝓟 [𝒬]=𝓠 [ℛ]=𝓡 [𝒼]=𝓱 [𝒯]=𝓣 [𝒰]=đ“€ [đ’±]=đ“„ [đ’Č]=𝓩 [𝒳]=𝓧 [𝒮]=𝓹 [đ’”]=đ“© [đ’¶]=đ“Ș [đ’·]=đ“« [𝒾]=𝓬 [đ’č]=𝓭 [ℯ]=𝓼 [đ’»]=𝓯 [ℊ]=𝓰 [đ’œ]=đ“± [đ’Ÿ]=đ“Č [𝒿]=𝓳 [𝓀]=𝓮 [𝓁]=đ“” [𝓂]=đ“¶ [𝓃]=đ“· [℮]=𝓾 [𝓅]=đ“č [𝓆]=đ“ș [𝓇]=đ“» [𝓈]=đ“Œ [𝓉]=đ“œ [𝓊]=đ“Ÿ [𝓋]=𝓿 [𝓌]=𝔀 [𝓍]=𝔁 [𝓎]=𝔂 [𝓏]=𝔃 [Α]=$'\xf0\x9d\x9a\xa8' [Β]=$'\xf0\x9d\x9a\xa9' [Γ]=$'\xf0\x9d\x9a\xaa' [Δ]=$'\xf0\x9d\x9a\xab' [Ε]=$'\xf0\x9d\x9a\xac' [Ζ]=$'\xf0\x9d\x9a\xad' [Η]=$'\xf0\x9d\x9a\xae' [Θ]=$'\xf0\x9d\x9a\xaf' [Ι]=$'\xf0\x9d\x9a\xb0' [Κ]=$'\xf0\x9d\x9a\xb1' [Λ]=$'\xf0\x9d\x9a\xb2' [Μ]=$'\xf0\x9d\x9a\xb3' [Ν]=$'\xf0\x9d\x9a\xb4' [Ξ]=$'\xf0\x9d\x9a\xb5' [Ο]=$'\xf0\x9d\x9a\xb6' [Π]=$'\xf0\x9d\x9a\xb7' [ÎĄ]=$'\xf0\x9d\x9a\xb8' [ÎŁ]=$'\xf0\x9d\x9a\xba' [΀]=$'\xf0\x9d\x9a\xbb' [΄]=$'\xf0\x9d\x9a\xbc' [Ί]=$'\xf0\x9d\x9a\xbd' [Χ]=$'\xf0\x9d\x9a\xbe' [Κ]=$'\xf0\x9d\x9a\xbf' [Ω]=$'\xf0\x9d\x9b\x80' [α]=$'\xf0\x9d\x9b\x82' [ÎČ]=$'\xf0\x9d\x9b\x83' [Îł]=$'\xf0\x9d\x9b\x84' [ÎŽ]=$'\xf0\x9d\x9b\x85' [Δ]=$'\xf0\x9d\x9b\x86' [ζ]=$'\xf0\x9d\x9b\x87' [η]=$'\xf0\x9d\x9b\x88' [Ξ]=$'\xf0\x9d\x9b\x89' [Îč]=$'\xf0\x9d\x9b\x8a' [Îș]=$'\xf0\x9d\x9b\x8b' [λ]=$'\xf0\x9d\x9b\x8c' [ÎŒ]=$'\xf0\x9d\x9b\x8d' [Μ]=$'\xf0\x9d\x9b\x8e' [Ο]=$'\xf0\x9d\x9b\x8f' [Îż]=$'\xf0\x9d\x9b\x90' [π]=$'\xf0\x9d\x9b\x91' [ρ]=$'\xf0\x9d\x9b\x92' [ς]=$'\xf0\x9d\x9b\x93' [σ]=$'\xf0\x9d\x9b\x94' [τ]=$'\xf0\x9d\x9b\x95' [υ]=$'\xf0\x9d\x9b\x96' [φ]=$'\xf0\x9d\x9b\x97' [χ]=$'\xf0\x9d\x9b\x98' [ψ]=$'\xf0\x9d\x9b\x99' [ω]=$'\xf0\x9d\x9b\x9a' # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= # []= [𝟱]=$'\xf0\x9d\x9f\xac' [𝟣]=$'\xf0\x9d\x9f\xad' [đŸ€]=$'\xf0\x9d\x9f\xae' [đŸ„]=$'\xf0\x9d\x9f\xaf' [𝟩]=$'\xf0\x9d\x9f\xb0' [𝟧]=$'\xf0\x9d\x9f\xb1' [𝟹]=$'\xf0\x9d\x9f\xb2' [đŸ©]=$'\xf0\x9d\x9f\xb3' [đŸȘ]=$'\xf0\x9d\x9f\xb4' [đŸ«]=$'\xf0\x9d\x9f\xb5' ) declare -A italic=( [A]=$'\xf0\x9d\x90\xb4' [B]=$'\xf0\x9d\x90\xb5' [C]=$'\xf0\x9d\x90\xb6' [D]=$'\xf0\x9d\x90\xb7' [E]=$'\xf0\x9d\x90\xb8' [F]=$'\xf0\x9d\x90\xb9' [G]=$'\xf0\x9d\x90\xba' [H]=$'\xf0\x9d\x90\xbb' [I]=$'\xf0\x9d\x90\xbc' [J]=$'\xf0\x9d\x90\xbd' [K]=$'\xf0\x9d\x90\xbe' [L]=$'\xf0\x9d\x90\xbf' [M]=$'\xf0\x9d\x91\x80' [N]=$'\xf0\x9d\x91\x81' [O]=$'\xf0\x9d\x91\x82' [P]=$'\xf0\x9d\x91\x83' [Q]=$'\xf0\x9d\x91\x84' [R]=$'\xf0\x9d\x91\x85' [S]=$'\xf0\x9d\x91\x86' [T]=$'\xf0\x9d\x91\x87' [U]=$'\xf0\x9d\x91\x88' [V]=$'\xf0\x9d\x91\x89' [W]=$'\xf0\x9d\x91\x8a' [X]=$'\xf0\x9d\x91\x8b' [Y]=$'\xf0\x9d\x91\x8c' [Z]=$'\xf0\x9d\x91\x8d' [a]=$'\xf0\x9d\x91\x8e' [b]=$'\xf0\x9d\x91\x8f' [c]=$'\xf0\x9d\x91\x90' [d]=$'\xf0\x9d\x91\x91' [e]=$'\xf0\x9d\x91\x92' [f]=$'\xf0\x9d\x91\x93' [g]=$'\xf0\x9d\x91\x94' [h]=$'\xe2\x84\x8e' # Planck's constant [i]=$'\xf0\x9d\x91\x96' [j]=$'\xf0\x9d\x91\x97' [k]=$'\xf0\x9d\x91\x98' [l]=$'\xf0\x9d\x91\x99' [m]=$'\xf0\x9d\x91\x9a' [n]=$'\xf0\x9d\x91\x9b' [o]=$'\xf0\x9d\x91\x9c' [p]=$'\xf0\x9d\x91\x9d' [q]=$'\xf0\x9d\x91\x9e' [r]=$'\xf0\x9d\x91\x9f' [s]=$'\xf0\x9d\x91\xa0' [t]=$'\xf0\x9d\x91\xa1' [u]=$'\xf0\x9d\x91\xa2' [v]=$'\xf0\x9d\x91\xa3' [w]=$'\xf0\x9d\x91\xa4' [x]=$'\xf0\x9d\x91\xa5' [y]=$'\xf0\x9d\x91\xa6' [z]=$'\xf0\x9d\x91\xa7' [Α]=$'\xf0\x9d\x9b\xa2' [Β]=$'\xf0\x9d\x9b\xa3' [Γ]=$'\xf0\x9d\x9b\xa4' [Δ]=$'\xf0\x9d\x9b\xa5' [Ε]=$'\xf0\x9d\x9b\xa6' [Ζ]=$'\xf0\x9d\x9b\xa7' [Η]=$'\xf0\x9d\x9b\xa8' [Θ]=$'\xf0\x9d\x9b\xa9' [Ι]=$'\xf0\x9d\x9b\xaa' [Κ]=$'\xf0\x9d\x9b\xab' [Λ]=$'\xf0\x9d\x9b\xac' [Μ]=$'\xf0\x9d\x9b\xad' [Ν]=$'\xf0\x9d\x9b\xae' [Ξ]=$'\xf0\x9d\x9b\xaf' [Ο]=$'\xf0\x9d\x9b\xb0' [Π]=$'\xf0\x9d\x9b\xb1' [ÎĄ]=$'\xf0\x9d\x9b\xb2' [ÎŁ]=$'\xf0\x9d\x9b\xb4' [΀]=$'\xf0\x9d\x9b\xb5' [΄]=$'\xf0\x9d\x9b\xb6' [Ί]=$'\xf0\x9d\x9b\xb7' [Χ]=$'\xf0\x9d\x9b\xb8' [Κ]=$'\xf0\x9d\x9b\xb9' [Ω]=$'\xf0\x9d\x9b\xba' [α]=$'\xf0\x9d\x9b\xbc' [ÎČ]=$'\xf0\x9d\x9b\xbd' [Îł]=$'\xf0\x9d\x9b\xbe' [ÎŽ]=$'\xf0\x9d\x9b\xbf' [Δ]=$'\xf0\x9d\x9c\x80' [ζ]=$'\xf0\x9d\x9c\x81' [η]=$'\xf0\x9d\x9c\x82' [Ξ]=$'\xf0\x9d\x9c\x83' [Îč]=$'\xf0\x9d\x9c\x84' [Îș]=$'\xf0\x9d\x9c\x85' [λ]=$'\xf0\x9d\x9c\x86' [ÎŒ]=$'\xf0\x9d\x9c\x87' [Μ]=$'\xf0\x9d\x9c\x88' [Ο]=$'\xf0\x9d\x9c\x89' [Îż]=$'\xf0\x9d\x9c\x8a' [π]=$'\xf0\x9d\x9c\x8b' [ρ]=$'\xf0\x9d\x9c\x8c' [ς]=$'\xf0\x9d\x9c\x8d' [σ]=$'\xf0\x9d\x9c\x8e' [τ]=$'\xf0\x9d\x9c\x8f' [υ]=$'\xf0\x9d\x9c\x90' [φ]=$'\xf0\x9d\x9c\x91' [χ]=$'\xf0\x9d\x9c\x92' [ψ]=$'\xf0\x9d\x9c\x93' [ω]=$'\xf0\x9d\x9c\x94' # [𝐀]= # [𝐁]= # [𝐂]= # [𝐃]= # [𝐄]= # [𝐅]= # [𝐆]= # [𝐇]= # [𝐈]= # [𝐉]= # [𝐊]= # [𝐋]= # [𝐌]= # [𝐍]= # [𝐎]= # [𝐏]= # [𝐐]= # [𝐑]= # [𝐒]= # [𝐓]= # [𝐔]= # [𝐕]= # [𝐖]= # [𝐗]= # [𝐘]= # [𝐙]= # [𝐚]= # [𝐛]= # [𝐜]= # [𝐝]= # [𝐞]= # [𝐟]= # [𝐠]= # [𝐡]= # [𝐱]= # [𝐣]= # [đ€]= # [đ„]= # [𝐩]= # [𝐧]= # [𝐹]= # [đ©]= # [đȘ]= # [đ«]= # [𝐬]= # [𝐭]= # [𝐼]= # [𝐯]= # [𝐰]= # [đ±]= # [đČ]= # [𝐳]= ) # case $0 in embolden) italicise) enscript) fracture) double-strike) sans-serif) monospace) stretch) loop) mathise) while IFS= read -r line do for i in $(seq 0 $((${#line}-1))) do c=${line:$i:1} replacement+=${bold[$c]:-$c} done echo "$replacement" done