changeset 225:eb3d0ae3143b

Augment CM fonts with missing symbols
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 15 May 2026 19:54:58 +0200
parents 0f752f794797
children 90bbece6fae8
files docs/_latex/my-doc-fonts.sty
diffstat 1 files changed, 39 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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