# HG changeset patch # User Franz Glasner # Date 1778867698 -7200 # Node ID eb3d0ae3143b49111a5865893596cf9e1a671a3f # Parent 0f752f7947978d8f102a92d7bf5953272c00ee5d Augment CM fonts with missing symbols diff -r 0f752f794797 -r eb3d0ae3143b docs/_latex/my-doc-fonts.sty --- a/docs/_latex/my-doc-fonts.sty Fri May 15 19:29:23 2026 +0200 +++ b/docs/_latex/my-doc-fonts.sty Fri May 15 19:54:58 2026 +0200 @@ -15,11 +15,13 @@ } \newif\if@mdf@mono@dejavusansmono\@mdf@mono@dejavusansmonofalse +\newif\if@mdf@mono@cmmono\@mdf@mono@cmmonofalse \newif\if@mdf@mono@robotomono\@mdf@mono@robotomonofalse \newif\if@mdf@mono@sscode\@mdf@mono@sscodefalse \newif\if@mdf@mono@inconsolata\@mdf@mono@inconsolatafalse \newif\if@mdf@WithDejaVuSansMono +\newif\if@mdf@WithCM \newif\if@mdf@WithRobotoMono \newif\if@mdf@WithIBMPlex \newif\if@mdf@WithIBMPlexDejaVuSansMono @@ -31,6 +33,7 @@ % A key compatible with options processing as option "fonts" but choices. \define@choicekey*{my-doc-fonts.sty}{fonts}[\val\nr]{% dejavusansmono, + cm, robotomono, ibmplex, plex, plex-dejavusansmono, @@ -42,6 +45,7 @@ \xdef\@mdf@fonts{\val}% % Reset all option related font selection flags \@mdf@WithDejaVuSansMonofalse + \@mdf@WithCMfalse \@mdf@WithRobotoMonofalse \@mdf@WithIBMPlexfalse \@mdf@WithIBMPlexDejaVuSansMonofalse @@ -53,6 +57,8 @@ \ifcase\nr\relax \@mdf@WithDejaVuSansMonotrue \or + \@mdf@WithCMtrue + \or \@mdf@WithRobotoMonotrue \or \@mdf@WithIBMPlextrue @@ -90,6 +96,9 @@ %\RequirePackage[mono=true,serif=false,sans=false,math=false]{dejavu-otf} % all symbols are available \@mdf@mono@dejavusansmonotrue \fi +\if@mdf@WithCM + \@mdf@mono@cmmonotrue +\fi \if@mdf@WithRobotoMono \@mdf@mono@robotomonotrue \fi @@ -221,6 +230,36 @@ \if@mdf@mono@dejavusansmono % automatically applied with Scale=MatchLowercase,... \RequirePackage[mono=true,serif=false,sans=false,math=false]{dejavu-otf} % all symbols are available + \fi + +\if@mdf@mono@cmmono + \RequirePackage{newunicodechar} + \defaultfontfeatures{Ligatures=TeX,Numbers={Lining,Tabular},Scale=MatchLowercase} + \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[% + UprightFont = *, + BoldFont = * Bold, + ItalicFont = * Oblique, + BoldItalicFont = * Bold Oblique, + ] + \newunicodechar{▷}{{\DejaVuSansMono ▷}}% U+25B7 + \newunicodechar{∶}{{\DejaVuSansMono ∶}}% U+2236 + \newunicodechar{◆}{{\DejaVuSansMono ◆}}% U+25C6 + \newunicodechar{⟵}{{\DejaVuSansMono ⟵}}% U+27F5 + \newunicodechar{⟶}{{\DejaVuSansMono ⟶}}% U+27F6 + \newunicodechar{⟷}{{\DejaVuSansMono ⟷}}% U+27F7 + \newunicodechar{⇒}{{\DejaVuSansMono ⇒}}% U+21D2 + \newunicodechar{⇔}{{\DejaVuSansMono ⇔}}% U+21D4 + \newunicodechar{▪}{{\DejaVuSansMono ▪}}% U+25AA + \newunicodechar{≟}{{\DejaVuSansMono ≟}}% U+225F + \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208 + \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C + \newunicodechar{≠}{{\DejaVuSansMono ≠}}% U+2260 + \newunicodechar{≤}{{\DejaVuSansMono ≤}}% U+2264 + \newunicodechar{≥}{{\DejaVuSansMono ≥}}% U+2265 + \PassOptionsToPackage{% + verbatimvisiblespace={\textcolor{red}{{\DejaVuSansMono^^^^2423}}},% + verbatimcontinued={\textcolor{red}{{\DejaVuSansMono^^^^21aa}}}}% + {sphinx} \fi \if@mdf@mono@sscode