comparison docs/_latex/my-doc-fonts.sty @ 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 b902b1360991
children 90bbece6fae8
comparison
equal deleted inserted replaced
224:0f752f794797 225:eb3d0ae3143b
13 }{% 13 }{%
14 \RequirePackage{color} 14 \RequirePackage{color}
15 } 15 }
16 16
17 \newif\if@mdf@mono@dejavusansmono\@mdf@mono@dejavusansmonofalse 17 \newif\if@mdf@mono@dejavusansmono\@mdf@mono@dejavusansmonofalse
18 \newif\if@mdf@mono@cmmono\@mdf@mono@cmmonofalse
18 \newif\if@mdf@mono@robotomono\@mdf@mono@robotomonofalse 19 \newif\if@mdf@mono@robotomono\@mdf@mono@robotomonofalse
19 \newif\if@mdf@mono@sscode\@mdf@mono@sscodefalse 20 \newif\if@mdf@mono@sscode\@mdf@mono@sscodefalse
20 \newif\if@mdf@mono@inconsolata\@mdf@mono@inconsolatafalse 21 \newif\if@mdf@mono@inconsolata\@mdf@mono@inconsolatafalse
21 22
22 \newif\if@mdf@WithDejaVuSansMono 23 \newif\if@mdf@WithDejaVuSansMono
24 \newif\if@mdf@WithCM
23 \newif\if@mdf@WithRobotoMono 25 \newif\if@mdf@WithRobotoMono
24 \newif\if@mdf@WithIBMPlex 26 \newif\if@mdf@WithIBMPlex
25 \newif\if@mdf@WithIBMPlexDejaVuSansMono 27 \newif\if@mdf@WithIBMPlexDejaVuSansMono
26 \newif\if@mdf@WithAdobeSourcePro 28 \newif\if@mdf@WithAdobeSourcePro
27 \newif\if@mdf@WithSpectral 29 \newif\if@mdf@WithSpectral
29 \newif\if@mdf@WithLibertinus 31 \newif\if@mdf@WithLibertinus
30 32
31 % A key compatible with options processing as option "fonts" but choices. 33 % A key compatible with options processing as option "fonts" but choices.
32 \define@choicekey*{my-doc-fonts.sty}{fonts}[\val\nr]{% 34 \define@choicekey*{my-doc-fonts.sty}{fonts}[\val\nr]{%
33 dejavusansmono, 35 dejavusansmono,
36 cm,
34 robotomono, 37 robotomono,
35 ibmplex, plex, 38 ibmplex, plex,
36 plex-dejavusansmono, 39 plex-dejavusansmono,
37 adobesourcepro, adobesource, 40 adobesourcepro, adobesource,
38 spectral, 41 spectral,
40 libertinus}{% 43 libertinus}{%
41 % Not used for now : store the normalized option value (global and expanded) 44 % Not used for now : store the normalized option value (global and expanded)
42 \xdef\@mdf@fonts{\val}% 45 \xdef\@mdf@fonts{\val}%
43 % Reset all option related font selection flags 46 % Reset all option related font selection flags
44 \@mdf@WithDejaVuSansMonofalse 47 \@mdf@WithDejaVuSansMonofalse
48 \@mdf@WithCMfalse
45 \@mdf@WithRobotoMonofalse 49 \@mdf@WithRobotoMonofalse
46 \@mdf@WithIBMPlexfalse 50 \@mdf@WithIBMPlexfalse
47 \@mdf@WithIBMPlexDejaVuSansMonofalse 51 \@mdf@WithIBMPlexDejaVuSansMonofalse
48 \@mdf@WithAdobeSourceProfalse 52 \@mdf@WithAdobeSourceProfalse
49 \@mdf@WithSpectralfalse 53 \@mdf@WithSpectralfalse
51 \@mdf@WithLibertinusfalse 55 \@mdf@WithLibertinusfalse
52 % Now set the needed font selection flag 56 % Now set the needed font selection flag
53 \ifcase\nr\relax 57 \ifcase\nr\relax
54 \@mdf@WithDejaVuSansMonotrue 58 \@mdf@WithDejaVuSansMonotrue
55 \or 59 \or
60 \@mdf@WithCMtrue
61 \or
56 \@mdf@WithRobotoMonotrue 62 \@mdf@WithRobotoMonotrue
57 \or 63 \or
58 \@mdf@WithIBMPlextrue 64 \@mdf@WithIBMPlextrue
59 \or 65 \or
60 \@mdf@WithIBMPlextrue 66 \@mdf@WithIBMPlextrue
87 \if@mdf@WithDejaVuSansMono 93 \if@mdf@WithDejaVuSansMono
88 % default but with DejaVu Sans Mono as monospaced font 94 % default but with DejaVu Sans Mono as monospaced font
89 %\RequirePackage[DefaultFeatures={Scale=0.92},mono=false]{plex-otf} 95 %\RequirePackage[DefaultFeatures={Scale=0.92},mono=false]{plex-otf}
90 %\RequirePackage[mono=true,serif=false,sans=false,math=false]{dejavu-otf} % all symbols are available 96 %\RequirePackage[mono=true,serif=false,sans=false,math=false]{dejavu-otf} % all symbols are available
91 \@mdf@mono@dejavusansmonotrue 97 \@mdf@mono@dejavusansmonotrue
98 \fi
99 \if@mdf@WithCM
100 \@mdf@mono@cmmonotrue
92 \fi 101 \fi
93 \if@mdf@WithRobotoMono 102 \if@mdf@WithRobotoMono
94 \@mdf@mono@robotomonotrue 103 \@mdf@mono@robotomonotrue
95 \fi 104 \fi
96 % 105 %
219 \defaultfontfeatures{} 228 \defaultfontfeatures{}
220 229
221 \if@mdf@mono@dejavusansmono 230 \if@mdf@mono@dejavusansmono
222 % automatically applied with Scale=MatchLowercase,... 231 % automatically applied with Scale=MatchLowercase,...
223 \RequirePackage[mono=true,serif=false,sans=false,math=false]{dejavu-otf} % all symbols are available 232 \RequirePackage[mono=true,serif=false,sans=false,math=false]{dejavu-otf} % all symbols are available
233 \fi
234
235 \if@mdf@mono@cmmono
236 \RequirePackage{newunicodechar}
237 \defaultfontfeatures{Ligatures=TeX,Numbers={Lining,Tabular},Scale=MatchLowercase}
238 \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[%
239 UprightFont = *,
240 BoldFont = * Bold,
241 ItalicFont = * Oblique,
242 BoldItalicFont = * Bold Oblique,
243 ]
244 \newunicodechar{▷}{{\DejaVuSansMono ▷}}% U+25B7
245 \newunicodechar{∶}{{\DejaVuSansMono ∶}}% U+2236
246 \newunicodechar{◆}{{\DejaVuSansMono ◆}}% U+25C6
247 \newunicodechar{⟵}{{\DejaVuSansMono ⟵}}% U+27F5
248 \newunicodechar{⟶}{{\DejaVuSansMono ⟶}}% U+27F6
249 \newunicodechar{⟷}{{\DejaVuSansMono ⟷}}% U+27F7
250 \newunicodechar{⇒}{{\DejaVuSansMono ⇒}}% U+21D2
251 \newunicodechar{⇔}{{\DejaVuSansMono ⇔}}% U+21D4
252 \newunicodechar{▪}{{\DejaVuSansMono ▪}}% U+25AA
253 \newunicodechar{≟}{{\DejaVuSansMono ≟}}% U+225F
254 \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208
255 \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C
256 \newunicodechar{≠}{{\DejaVuSansMono ≠}}% U+2260
257 \newunicodechar{≤}{{\DejaVuSansMono ≤}}% U+2264
258 \newunicodechar{≥}{{\DejaVuSansMono ≥}}% U+2265
259 \PassOptionsToPackage{%
260 verbatimvisiblespace={\textcolor{red}{{\DejaVuSansMono^^^^2423}}},%
261 verbatimcontinued={\textcolor{red}{{\DejaVuSansMono^^^^21aa}}}}%
262 {sphinx}
224 \fi 263 \fi
225 264
226 \if@mdf@mono@sscode 265 \if@mdf@mono@sscode
227 \RequirePackage{newunicodechar} 266 \RequirePackage{newunicodechar}
228 \defaultfontfeatures{Ligatures=TeX,Numbers={Lining,Tabular},Scale=MatchLowercase} 267 \defaultfontfeatures{Ligatures=TeX,Numbers={Lining,Tabular},Scale=MatchLowercase}