#!/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=( # Digits: [0]=𝟎 [1]=𝟏 [2]=𝟐 [3]=𝟑 [4]=𝟒 [5]=𝟓 [6]=𝟔 [7]=𝟕 [8]=𝟖 [9]=𝟗 # Latin: [A]=𝐀 [B]=𝐁 [C]=𝐂 [D]=𝐃 [E]=𝐄 [F]=𝐅 [G]=𝐆 [H]=𝐇 [I]=𝐈 [J]=𝐉 [K]=𝐊 [L]=𝐋 [M]=𝐌 [N]=𝐍 [O]=𝐎 [P]=𝐏 [Q]=𝐐 [R]=𝐑 [S]=𝐒 [T]=𝐓 [U]=𝐔 [V]=𝐕 [W]=𝐖 [X]=𝐗 [Y]=𝐘 [Z]=𝐙 [a]=𝐚 [b]=𝐛 [c]=𝐜 [d]=𝐝 [e]=𝐞 [f]=𝐟 [g]=𝐠 [h]=𝐡 [i]=𝐱 [j]=𝐣 [k]=đ€ [l]=đ„ [m]=𝐩 [n]=𝐧 [o]=𝐹 [p]=đ© [q]=đȘ [r]=đ« [s]=𝐬 [t]=𝐭 [u]=𝐼 [v]=𝐯 [w]=𝐰 [x]=đ± [y]=đČ [z]=𝐳 # Latin italic: [𝐮]=𝑹 [đ”]=đ‘© [đ¶]=đ‘Ș [đ·]=đ‘« [𝐾]=𝑬 [đč]=𝑭 [đș]=𝑼 [đ»]=𝑯 [đŒ]=𝑰 [đœ]=đ‘± [đŸ]=đ‘Č [𝐿]=𝑳 [𝑀]=𝑮 [𝑁]=đ‘” [𝑂]=đ‘¶ [𝑃]=đ‘· [𝑄]=𝑾 [𝑅]=đ‘č [𝑆]=đ‘ș [𝑇]=đ‘» [𝑈]=đ‘Œ [𝑉]=đ‘œ [𝑊]=đ‘Ÿ [𝑋]=𝑿 [𝑌]=𝒀 [𝑍]=𝒁 [𝑎]=𝒂 [𝑏]=𝒃 [𝑐]=𝒄 [𝑑]=𝒅 [𝑒]=𝒆 [𝑓]=𝒇 [𝑔]=𝒈 [ℎ]=𝒉 # Planck's constant [𝑖]=𝒊 [𝑗]=𝒋 [𝑘]=𝒌 [𝑙]=𝒍 [𝑚]=𝒎 [𝑛]=𝒏 [𝑜]=𝒐 [𝑝]=𝒑 [𝑞]=𝒒 [𝑟]=𝒓 [𝑠]=𝒔 [𝑡]=𝒕 [𝑱]=𝒖 [𝑣]=𝒗 [đ‘€]=𝒘 [đ‘„]=𝒙 [𝑩]=𝒚 [𝑧]=𝒛 # Script: [𝒜]=𝓐 [ℬ]=𝓑 [𝒞]=𝓒 [𝒟]=𝓓 [ℰ]=𝓔 [ℱ]=𝓕 [𝒱]=𝓖 [ℋ]=𝓗 [ℐ]=𝓘 [đ’„]=𝓙 [𝒩]=𝓚 [ℒ]=𝓛 [ℳ]=𝓜 [đ’©]=𝓝 [đ’Ș]=𝓞 [đ’«]=𝓟 [𝒬]=𝓠 [ℛ]=𝓡 [𝒼]=𝓱 [𝒯]=𝓣 [𝒰]=đ“€ [đ’±]=đ“„ [đ’Č]=𝓩 [𝒳]=𝓧 [𝒮]=𝓹 [đ’”]=đ“© [đ’¶]=đ“Ș [đ’·]=đ“« [𝒾]=𝓬 [đ’č]=𝓭 [ℯ]=𝓼 [đ’»]=𝓯 [ℊ]=𝓰 [đ’œ]=đ“± [đ’Ÿ]=đ“Č [𝒿]=𝓳 [𝓀]=𝓮 [𝓁]=đ“” [𝓂]=đ“¶ [𝓃]=đ“· [℮]=𝓾 [𝓅]=đ“č [𝓆]=đ“ș [𝓇]=đ“» [𝓈]=đ“Œ [𝓉]=đ“œ [𝓊]=đ“Ÿ [𝓋]=𝓿 [𝓌]=𝔀 [𝓍]=𝔁 [𝓎]=𝔂 [𝓏]=𝔃 # Fraktur: [𝔄]=𝕬 [𝔅]=𝕭 [ℭ]=𝕼 [𝔇]=𝕯 [𝔈]=𝕰 [𝔉]=đ•± [𝔊]=đ•Č [ℌ]=𝕳 [ℑ]=𝕮 [𝔍]=đ•” [𝔎]=đ•¶ [𝔏]=đ•· [𝔐]=𝕾 [𝔑]=đ•č [𝔒]=đ•ș [𝔓]=đ•» [𝔔]=đ•Œ [ℜ]=đ•œ [𝔖]=đ•Ÿ [𝔗]=𝕿 [𝔘]=𝖀 [𝔙]=𝖁 [𝔚]=𝖂 [𝔛]=𝖃 [𝔜]=𝖄 [ℹ]=𝖅 [𝔞]=𝖆 [𝔟]=𝖇 [𝔠]=𝖈 [𝔡]=𝖉 [𝔱]=𝖊 [𝔣]=𝖋 [đ”€]=𝖌 [đ”„]=𝖍 [𝔩]=𝖎 [𝔧]=𝖏 [𝔹]=𝖐 [đ”©]=𝖑 [đ”Ș]=𝖒 [đ”«]=𝖓 [𝔬]=𝖔 [𝔭]=𝖕 [𝔼]=𝖖 [𝔯]=𝖗 [𝔰]=𝖘 [đ”±]=𝖙 [đ”Č]=𝖚 [𝔳]=𝖛 [𝔮]=𝖜 [đ””]=𝖝 [đ”¶]=𝖞 [đ”·]=𝖟 # Sans-serif digits: [𝟱]=𝟬 [𝟣]=𝟭 [đŸ€]=𝟼 [đŸ„]=𝟯 [𝟩]=𝟰 [𝟧]=đŸ± [𝟹]=đŸČ [đŸ©]=𝟳 [đŸȘ]=𝟮 [đŸ«]=đŸ” # Sans-serif Latin: [𝖠]=𝗔 [𝖡]=𝗕 [𝖱]=𝗖 [𝖣]=𝗗 [đ–€]=𝗘 [đ–„]=𝗙 [𝖩]=𝗚 [𝖧]=𝗛 [𝖹]=𝗜 [đ–©]=𝗝 [đ–Ș]=𝗞 [đ–«]=𝗟 [𝖬]=𝗠 [𝖭]=𝗡 [𝖼]=𝗱 [𝖯]=𝗣 [𝖰]=đ—€ [đ–±]=đ—„ [đ–Č]=𝗩 [𝖳]=𝗧 [𝖮]=𝗹 [đ–”]=đ—© [đ–¶]=đ—Ș [đ–·]=đ—« [𝖾]=𝗬 [đ–č]=𝗭 [đ–ș]=𝗼 [đ–»]=𝗯 [đ–Œ]=𝗰 [đ–œ]=đ—± [đ–Ÿ]=đ—Č [𝖿]=𝗳 [𝗀]=𝗮 [𝗁]=đ—” [𝗂]=đ—¶ [𝗃]=đ—· [𝗄]=𝗾 [𝗅]=đ—č [𝗆]=đ—ș [𝗇]=đ—» [𝗈]=đ—Œ [𝗉]=đ—œ [𝗊]=đ—Ÿ [𝗋]=𝗿 [𝗌]=𝘀 [𝗍]=𝘁 [𝗎]=𝘂 [𝗏]=𝘃 [𝗐]=𝘄 [𝗑]=𝘅 [𝗒]=𝘆 [𝗓]=𝘇 # Sans-serif italic: # 𝘈 𝘉 𝘊 𝘋 𝘌 𝘍 𝘎 𝘏 𝘐 𝘑 𝘒 𝘓 𝘔 𝘕 𝘖 𝘗 𝘘 𝘙 𝘚 𝘛 𝘜 𝘝 𝘞 𝘟 𝘠 𝘡 𝘱 𝘣 đ˜€ đ˜„ 𝘩 𝘧 𝘹 đ˜© đ˜Ș đ˜« 𝘬 𝘭 𝘼 𝘯 𝘰 đ˜± đ˜Č 𝘳 𝘮 đ˜” đ˜¶ đ˜· 𝘾 đ˜č đ˜ș đ˜» # Greek: [Α]=𝚹 [Β]=đš© [Γ]=đšȘ [Δ]=đš« [Ε]=𝚬 [Ζ]=𝚭 [Η]=𝚼 [Θ]=𝚯 [Ι]=𝚰 [Κ]=đš± [Λ]=đšČ [Μ]=𝚳 [Ν]=𝚮 [Ξ]=đš” [Ο]=đš¶ [Π]=đš· [ÎĄ]=𝚾 [ÎŁ]=đšș [΀]=đš» [΄]=đšŒ [Ί]=đšœ [Χ]=đšŸ [Κ]=𝚿 [Ω]=𝛀 [α]=𝛂 [ÎČ]=𝛃 [Îł]=𝛄 [ÎŽ]=𝛅 [Δ]=𝛆 [ζ]=𝛇 [η]=𝛈 [Ξ]=𝛉 [Îč]=𝛊 [Îș]=𝛋 [λ]=𝛌 [ÎŒ]=𝛍 [Μ]=𝛎 [Ο]=𝛏 [Îż]=𝛐 [π]=𝛑 [ρ]=𝛒 [ς]=𝛓 [σ]=𝛔 [τ]=𝛕 [υ]=𝛖 [φ]=𝛗 [χ]=𝛘 [ψ]=𝛙 [ω]=𝛚 # Greek italic: # 𝛱 𝛣 đ›€ đ›„ 𝛩 𝛧 𝛹 đ›© đ›Ș đ›« 𝛬 𝛭 𝛼 𝛯 𝛰 đ›± đ›Č 𝛮 đ›” đ›¶ đ›· 𝛾 đ›č đ›ș đ›Œ đ›œ đ›Ÿ 𝛿 𝜀 𝜁 𝜂 𝜃 𝜄 𝜅 𝜆 𝜇 𝜈 𝜉 𝜊 𝜋 𝜌 𝜍 𝜎 𝜏 𝜐 𝜑 𝜒 𝜓 𝜔 # Greek sans-serif italic: ) # 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} printf '%s' "${bold[$c]:-$c}" done echo done