comparison docs/_latex/my-doc-fonts.sty @ 792:0b83218218e2 default tip

Upgrade to my-fonts.sty v0.5
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 18 May 2026 12:26:44 +0200
parents 48deafc1fd2f
children
comparison
equal deleted inserted replaced
791:830a7536281b 792:0b83218218e2
2 % 2 %
3 % Some font hacks for my Sphinx PDF documents 3 % Some font hacks for my Sphinx PDF documents
4 % 4 %
5 \NeedsTeXFormat{LaTeX2e} 5 \NeedsTeXFormat{LaTeX2e}
6 \ProvidesPackage{my-doc-fonts}[% 6 \ProvidesPackage{my-doc-fonts}[%
7 2026/05/16 v0.3 (Franz Glasner) Fonts for Sphinx generated PDFs] 7 2026/05/18 v0.5 (Franz Glasner) Fonts for Sphinx generated PDFs]
8 \RequirePackage{xkeyval} 8 \RequirePackage{xkeyval}
9 \RequirePackage{fontspec} 9 \RequirePackage{fontspec}
10 \IfFileExists{xcolor.sty}{% 10 \IfFileExists{xcolor.sty}{%
11 % Should Sphinx load xcolor with its dvipsnames and svgnames options? 11 % Should Sphinx load xcolor with its dvipsnames and svgnames options?
12 \RequirePackage{xcolor} 12 \RequirePackage{xcolor}
32 \newif\if@mdf@WithCharter 32 \newif\if@mdf@WithCharter
33 \newif\if@mdf@WithLibertinus 33 \newif\if@mdf@WithLibertinus
34 \newif\if@mdf@WithGaramond 34 \newif\if@mdf@WithGaramond
35 \newif\if@mdf@WithTufte 35 \newif\if@mdf@WithTufte
36 \newif\if@mdf@WithPalatino 36 \newif\if@mdf@WithPalatino
37 \newif\if@mdf@WithPalatinoKB
37 \newif\if@mdf@WithCrimson 38 \newif\if@mdf@WithCrimson
39 \newif\if@mdf@WithCrimsonCabin
40 \newif\if@mdf@WithDejaVu
38 41
39 % A key compatible with options processing as option "fonts" but choices. 42 % A key compatible with options processing as option "fonts" but choices.
40 \define@choicekey*{my-doc-fonts.sty}{fonts}[\val\nr]{% 43 \define@choicekey*{my-doc-fonts.sty}{fonts}[\val\nr]{%
41 % do not change anything: just deactivate the default "dejavusansmono" 44 % do not change anything: just deactivate the default "dejavusansmono"
42 default, 45 default,
43 % no augmentation needed: all characters available 46 % almost no augmentation needed: all characters available
44 dejavusansmono, % use DejaVu Sans Mono as monospaced font 47 dejavusansmono, % use DejaVu Sans Mono as monospaced font
45 % the fonts below are augmented for missing characters 48 % the fonts below are augmented for missing characters
46 cm, % assume CM fonts and just fix missing characters 49 cm, % assume CM fonts and just fix missing characters
47 robotomono, % use Roboto Mono as mono font 50 robotomono, % use Roboto Mono as mono font
48 ibmplex, plex, % use the IBM Plex family (incl. Math) 51 ibmplex, plex, % use the IBM Plex family (incl. Math)
52 charter, % use XCharter (with XCharter Math), Lato and Inconsolata 55 charter, % use XCharter (with XCharter Math), Lato and Inconsolata
53 libertinus, % use Libertinus family (incl. Math) 56 libertinus, % use Libertinus family (incl. Math)
54 garamond, % EB Garamond (with Math), Libre Franklin and Inconsolata 57 garamond, % EB Garamond (with Math), Libre Franklin and Inconsolata
55 tufte, % Tufte fonts: ETbb (with Math), GilliusADFNo2, DejaVu Sans Mono 58 tufte, % Tufte fonts: ETbb (with Math), GilliusADFNo2, DejaVu Sans Mono
56 palatino, % Palatino, Inter and Source Code Pro 59 palatino, % Palatino, Inter and Source Code Pro
57 crimson, % Crimson Pro, Cabin and Source Code Pro (incl. Erewhon Math) 60 palatino-kb, % Palatino, Lato and Inconsolata (original KB-Admin style)
61 crimson, % Crimson Pro, Open Sans and Roboto Mono (Erewhon Math)
62 crimson-cabin, % Crimson Pro, Cabin and Source Code Pro (Erewhon Math)
63 dejavu, % All DejaVu fonts (Serif, Sans, Mono)
58 }{% 64 }{%
59 % Not used for now : store the normalized option value (global and expanded) 65 % Not used for now : store the normalized option value (global and expanded)
60 \xdef\@mdf@fonts{\val}% 66 \xdef\@mdf@fonts{\val}%
61 % Reset all option related font selection flags 67 % Reset all option related font selection flags
62 \@mdf@WithDejaVuSansMonofalse 68 \@mdf@WithDejaVuSansMonofalse
69 \@mdf@WithCharterfalse 75 \@mdf@WithCharterfalse
70 \@mdf@WithLibertinusfalse 76 \@mdf@WithLibertinusfalse
71 \@mdf@WithGaramondfalse 77 \@mdf@WithGaramondfalse
72 \@mdf@WithTuftefalse 78 \@mdf@WithTuftefalse
73 \@mdf@WithPalatinofalse 79 \@mdf@WithPalatinofalse
80 \@mdf@WithPalatinoKBfalse
74 \@mdf@WithCrimsonfalse 81 \@mdf@WithCrimsonfalse
82 \@mdf@WithCrimsonCabinfalse
83 \@mdf@WithDejaVufalse
75 % Now set the needed font selection flag 84 % Now set the needed font selection flag
76 \ifcase\nr\relax 85 \ifcase\nr\relax
77 \relax 86 \relax
78 \or 87 \or
79 \@mdf@WithDejaVuSansMonotrue 88 \@mdf@WithDejaVuSansMonotrue
106 \or 115 \or
107 \@mdf@WithTuftetrue 116 \@mdf@WithTuftetrue
108 \or 117 \or
109 \@mdf@WithPalatinotrue 118 \@mdf@WithPalatinotrue
110 \or 119 \or
120 \@mdf@WithPalatinoKBtrue
121 \or
111 \@mdf@WithCrimsontrue 122 \@mdf@WithCrimsontrue
123 \or
124 \@mdf@WithCrimsonCabintrue
125 \or
126 \@mdf@WithDejaVutrue
112 \fi 127 \fi
113 } 128 }
114 129
115 % 130 %
116 % By default use the safe option dejavusansmono because is contains 131 % By default use the safe option dejavusansmono because is contains
137 \RequirePackage{newunicodechar} 152 \RequirePackage{newunicodechar}
138 \RequirePackage[DefaultFeatures={Scale=0.92}]{plex-otf} 153 \RequirePackage[DefaultFeatures={Scale=0.92}]{plex-otf}
139 % Dont keep all default font features from plex-otf 154 % Dont keep all default font features from plex-otf
140 \defaultfontfeatures{} 155 \defaultfontfeatures{}
141 \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[% 156 \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[%
157 UprightFont = *,
158 BoldFont = * Bold,
159 ItalicFont = * Oblique,
160 BoldItalicFont = * Bold Oblique,
161 Scale=MatchLowercase,
162 Ligatures=TeX,
163 ]
164 \newfontfamily\DejaVuSansCondensed{DejaVu Sans Condensed}[%
142 UprightFont = *, 165 UprightFont = *,
143 BoldFont = * Bold, 166 BoldFont = * Bold,
144 ItalicFont = * Oblique, 167 ItalicFont = * Oblique,
145 BoldItalicFont = * Bold Oblique, 168 BoldItalicFont = * Bold Oblique,
146 Scale=MatchLowercase, 169 Scale=MatchLowercase,
156 \newunicodechar{⇒}{{\DejaVuSansMono ⇒}}% U+21D2 179 \newunicodechar{⇒}{{\DejaVuSansMono ⇒}}% U+21D2
157 \newunicodechar{⇔}{{\DejaVuSansMono ⇔}}% U+21D4 180 \newunicodechar{⇔}{{\DejaVuSansMono ⇔}}% U+21D4
158 \newunicodechar{≟}{{\DejaVuSansMono ≟}}% U+225F 181 \newunicodechar{≟}{{\DejaVuSansMono ≟}}% U+225F
159 \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208 182 \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208
160 \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C 183 \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C
161 %\newunicodechar{␣}{{\DejaVuSansMono ␣}}% U+2423 Missing! 184 \newunicodechar{≙}{{\DejaVuSansMono ≙}}% U+2259
185 \newunicodechar{␣}{{\DejaVuSansMono ␣}}% U+2423
186 \newunicodechar{⇧}{{\DejaVuSansMono ⇧}}% U+21E7
187 \newunicodechar{⌃}{{\DejaVuSansMono ⌃}}% U+2303
188 \newunicodechar{⎈}{{\DejaVuSansMono ⎈}}% U+2388
189 \newunicodechar{⌥}{{\DejaVuSansMono ⌥}}% U+2325
190 \newunicodechar{⎇}{{\DejaVuSansCondensed ⎇}}% U+2387
191 \newunicodechar{⌘}{{\DejaVuSansMono ⌘}}% U+2318
192 \newunicodechar{⏏}{{\DejaVuSansMono ⏏}}% U+23CF
193 \newunicodechar{⌫}{{\DejaVuSansMono ⌫}}% U+232B
194 \newunicodechar{⌦}{{\DejaVuSansMono ⌦}}% U+2326
195 \newunicodechar{⇥}{{\DejaVuSansMono ⇥}}% U+21E5
196 \newunicodechar{⇤}{{\DejaVuSansMono ⇤}}% U+21E4
162 %\newunicodechar{^^^^2423}{{\DejaVuSansMono^^^^2423}}% U+2423 197 %\newunicodechar{^^^^2423}{{\DejaVuSansMono^^^^2423}}% U+2423
163 %\newunicodechar{␣}{\textvisiblespace}% U+2423 198 %\newunicodechar{␣}{\textvisiblespace}% U+2423
164 %\catcode`^^^^2423\active\protected\def^^^^2423{\textvisiblespace} 199 %\catcode`^^^^2423\active\protected\def^^^^2423{\textvisiblespace}
165 200
166 \PassOptionsToPackage{% 201 \PassOptionsToPackage{%
252 \setmathfont{TeX Gyre Pagella Math}[Scale=MatchLowercase] 287 \setmathfont{TeX Gyre Pagella Math}[Scale=MatchLowercase]
253 %\@mdf@mono@sscodetrue 288 %\@mdf@mono@sscodetrue
254 \@mdf@mono@libertinusmonotrue 289 \@mdf@mono@libertinusmonotrue
255 \fi 290 \fi
256 291
292 \if@mdf@WithPalatinoKB
293 \RequirePackage{unicode-math}
294 \linespread{1.06}
295 \defaultfontfeatures{Numbers={Lining,Tabular},Ligatures=TeX}
296 \setmainfont{TeXGyrePagellaX}
297 \setsansfont{Lato}[%
298 UprightFont = * Regular,
299 BoldFont = * Bold,
300 ItalicFont = * Italic,
301 BoldItalicFont = * Bold Italic,
302 Scale=MatchLowercase]
303 %\setsansfont{Rosario}[Scale=MatchLowercase,ScaleAgain=1.013]
304 %\setmathfont{Asana Math}[Scale=MatchLowercase]
305 \setmathfont{TeX Gyre Pagella Math}[Scale=MatchLowercase]
306 \@mdf@mono@inconsolatatrue
307 \fi
308
257 \if@mdf@WithCrimson 309 \if@mdf@WithCrimson
310 \RequirePackage{unicode-math}
311 \defaultfontfeatures{Ligatures=TeX, Numbers={Lining,Tabular}}
312 \setmainfont{Crimson Pro}
313 \setsansfont{Open Sans}[Scale=MatchLowercase]
314 \defaultfontfeatures{}% Erewhon Math needs this here!
315 \setmathfont{Erewhon Math}[Scale=MatchLowercase]
316 %\@mdf@mono@sscodetrue
317 %\@mdf@mono@inconsolatatrue
318 \@mdf@mono@robotomonotrue
319 \fi
320
321 \if@mdf@WithCrimsonCabin
258 \RequirePackage{unicode-math} 322 \RequirePackage{unicode-math}
259 \defaultfontfeatures{Ligatures=TeX, Numbers={Lining,Tabular}} 323 \defaultfontfeatures{Ligatures=TeX, Numbers={Lining,Tabular}}
260 \setmainfont{Crimson Pro} 324 \setmainfont{Crimson Pro}
261 \setsansfont{Cabin}[Scale=MatchLowercase] 325 \setsansfont{Cabin}[Scale=MatchLowercase]
262 \defaultfontfeatures{}% Erewhon Math needs this here! 326 \defaultfontfeatures{}% Erewhon Math needs this here!
263 \setmathfont{Erewhon Math}[Scale=MatchLowercase] 327 \setmathfont{Erewhon Math}[Scale=MatchLowercase]
264 \@mdf@mono@sscodetrue 328 %\@mdf@mono@sscodetrue
329 \@mdf@mono@inconsolatatrue
330 \fi
331
332 \if@mdf@WithDejaVu
333 \RequirePackage{newunicodechar}
334 % automatically applied with Scale=MatchLowercase,...
335 \RequirePackage[mono=true,serif=true,sans=true,math=true]{dejavu-otf}
336 \newunicodechar{⎇}{{\DejaVuSansCondensed ⎇}}% U+2387
265 \fi 337 \fi
266 338
267 \defaultfontfeatures{} 339 \defaultfontfeatures{}
268 340
269 \if@mdf@mono@dejavusansmono 341 \if@mdf@mono@dejavusansmono
342 \RequirePackage{newunicodechar}
270 % automatically applied with Scale=MatchLowercase,... 343 % automatically applied with Scale=MatchLowercase,...
271 \RequirePackage[mono=true,serif=false,sans=false,math=false]{dejavu-otf} % all symbols are available 344 \RequirePackage[mono=true,serif=false,sans=false,math=false]{dejavu-otf} % almost all symbols are available
272 \fi 345 \newunicodechar{⎇}{{\DejaVuSansCondensed ⎇}}% U+2387
346 \fi
273 347
274 \if@mdf@mono@cmmono 348 \if@mdf@mono@cmmono
275 \RequirePackage{newunicodechar} 349 \RequirePackage{newunicodechar}
276 \defaultfontfeatures{Ligatures=TeX,Numbers={Lining,Tabular},Scale=MatchLowercase} 350 \defaultfontfeatures{Ligatures=TeX,Numbers={Lining,Tabular},Scale=MatchLowercase}
277 \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[% 351 \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[%
352 UprightFont = *,
353 BoldFont = * Bold,
354 ItalicFont = * Oblique,
355 BoldItalicFont = * Bold Oblique,
356 ]
357 \newfontfamily\DejaVuSansCondensed{DejaVu Sans Condensed}[%
278 UprightFont = *, 358 UprightFont = *,
279 BoldFont = * Bold, 359 BoldFont = * Bold,
280 ItalicFont = * Oblique, 360 ItalicFont = * Oblique,
281 BoldItalicFont = * Bold Oblique, 361 BoldItalicFont = * Bold Oblique,
282 ] 362 ]
293 \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208 373 \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208
294 \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C 374 \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C
295 \newunicodechar{≠}{{\DejaVuSansMono ≠}}% U+2260 375 \newunicodechar{≠}{{\DejaVuSansMono ≠}}% U+2260
296 \newunicodechar{≤}{{\DejaVuSansMono ≤}}% U+2264 376 \newunicodechar{≤}{{\DejaVuSansMono ≤}}% U+2264
297 \newunicodechar{≥}{{\DejaVuSansMono ≥}}% U+2265 377 \newunicodechar{≥}{{\DejaVuSansMono ≥}}% U+2265
378 \newunicodechar{≙}{{\DejaVuSansMono ≙}}% U+2259
379 \newunicodechar{↪}{{\DejaVuSansMono ↪}}% U+21AA
380 \newunicodechar{↩}{{\DejaVuSansMono ↩}}% U+21A9
381 \newunicodechar{⇧}{{\DejaVuSansMono ⇧}}% U+21E7
382 \newunicodechar{⌃}{{\DejaVuSansMono ⌃}}% U+2303
383 \newunicodechar{⎈}{{\DejaVuSansMono ⎈}}% U+2388
384 \newunicodechar{⌥}{{\DejaVuSansMono ⌥}}% U+2325
385 \newunicodechar{⎇}{{\DejaVuSansCondensed ⎇}}% U+2387
386 \newunicodechar{⌘}{{\DejaVuSansMono ⌘}}% U+2318
387 \newunicodechar{⏏}{{\DejaVuSansMono ⏏}}% U+23CF
388 \newunicodechar{⌫}{{\DejaVuSansMono ⌫}}% U+232B
389 \newunicodechar{⌦}{{\DejaVuSansMono ⌦}}% U+2326
390 \newunicodechar{⇥}{{\DejaVuSansMono ⇥}}% U+21E5
391 \newunicodechar{⇤}{{\DejaVuSansMono ⇤}}% U+21E4
298 \PassOptionsToPackage{% 392 \PassOptionsToPackage{%
299 verbatimvisiblespace={\textcolor{red}{{\DejaVuSansMono^^^^2423}}},% 393 verbatimvisiblespace={\textcolor{red}{{\DejaVuSansMono^^^^2423}}},%
300 verbatimcontinued={\textcolor{red}{{\DejaVuSansMono^^^^21aa}}}}% 394 verbatimcontinued={\textcolor{red}{{\DejaVuSansMono^^^^21aa}}}}%
301 {sphinx} 395 {sphinx}
302 \fi 396 \fi
309 BoldFont = * Bold, 403 BoldFont = * Bold,
310 ItalicFont = * Italic, 404 ItalicFont = * Italic,
311 BoldItalicFont = * Bold Italic, 405 BoldItalicFont = * Bold Italic,
312 ] 406 ]
313 \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[% 407 \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[%
408 UprightFont = *,
409 BoldFont = * Bold,
410 ItalicFont = * Oblique,
411 BoldItalicFont = * Bold Oblique,
412 ]
413 \newfontfamily\DejaVuSansCondensed{DejaVu Sans Condensed}[%
314 UprightFont = *, 414 UprightFont = *,
315 BoldFont = * Bold, 415 BoldFont = * Bold,
316 ItalicFont = * Oblique, 416 ItalicFont = * Oblique,
317 BoldItalicFont = * Bold Oblique, 417 BoldItalicFont = * Bold Oblique,
318 ] 418 ]
323 \newunicodechar{⇒}{{\DejaVuSansMono ⇒}}% U+21D2 423 \newunicodechar{⇒}{{\DejaVuSansMono ⇒}}% U+21D2
324 \newunicodechar{⇔}{{\DejaVuSansMono ⇔}}% U+21D4 424 \newunicodechar{⇔}{{\DejaVuSansMono ⇔}}% U+21D4
325 \newunicodechar{≟}{{\DejaVuSansMono ≟}}% U+225F 425 \newunicodechar{≟}{{\DejaVuSansMono ≟}}% U+225F
326 \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208 426 \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208
327 \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C 427 \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C
428 \newunicodechar{≙}{{\DejaVuSansMono ≙}}% U+2259
429 \newunicodechar{␣}{{\DejaVuSansMono ␣}}% U+2423
430 \newunicodechar{↪}{{\DejaVuSansMono ↪}}% U+21AA
431 \newunicodechar{↩}{{\DejaVuSansMono ↩}}% U+21A9
432 \newunicodechar{⇧}{{\DejaVuSansMono ⇧}}% U+21E7
433 \newunicodechar{⌃}{{\DejaVuSansMono ⌃}}% U+2303
434 \newunicodechar{⎈}{{\DejaVuSansMono ⎈}}% U+2388
435 \newunicodechar{⌥}{{\DejaVuSansMono ⌥}}% U+2325
436 \newunicodechar{⎇}{{\DejaVuSansCondensed ⎇}}% U+2387
437 \newunicodechar{⌘}{{\DejaVuSansMono ⌘}}% U+2318
438 \newunicodechar{⏏}{{\DejaVuSansMono ⏏}}% U+23CF
439 \newunicodechar{⌫}{{\DejaVuSansMono ⌫}}% U+232B
440 \newunicodechar{⌦}{{\DejaVuSansMono ⌦}}% U+2326
441 \newunicodechar{⇥}{{\DejaVuSansMono ⇥}}% U+21E5
442 \newunicodechar{⇤}{{\DejaVuSansMono ⇤}}% U+21E4
328 \PassOptionsToPackage{% 443 \PassOptionsToPackage{%
329 verbatimvisiblespace={\textcolor{red}{{\DejaVuSansMono^^^^2423}}},% 444 verbatimvisiblespace={\textcolor{red}{{\DejaVuSansMono^^^^2423}}},%
330 verbatimcontinued={\textcolor{red}{{\DejaVuSansMono^^^^21aa}}}}% 445 verbatimcontinued={\textcolor{red}{{\DejaVuSansMono^^^^21aa}}}}%
331 {sphinx} 446 {sphinx}
332 \fi 447 \fi
339 BoldFont = * Bold, 454 BoldFont = * Bold,
340 ItalicFont = * Italic, 455 ItalicFont = * Italic,
341 BoldItalicFont = * Bold Italic, 456 BoldItalicFont = * Bold Italic,
342 ] 457 ]
343 \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[% 458 \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[%
459 UprightFont = *,
460 BoldFont = * Bold,
461 ItalicFont = * Oblique,
462 BoldItalicFont = * Bold Oblique,
463 ]
464 \newfontfamily\DejaVuSansCondensed{DejaVu Sans Condensed}[%
344 UprightFont = *, 465 UprightFont = *,
345 BoldFont = * Bold, 466 BoldFont = * Bold,
346 ItalicFont = * Oblique, 467 ItalicFont = * Oblique,
347 BoldItalicFont = * Bold Oblique, 468 BoldItalicFont = * Bold Oblique,
348 ] 469 ]
351 \newunicodechar{⟶}{{\DejaVuSansMono ⟶}}% U+27F6 472 \newunicodechar{⟶}{{\DejaVuSansMono ⟶}}% U+27F6
352 \newunicodechar{⟷}{{\DejaVuSansMono ⟷}}% U+27F7 473 \newunicodechar{⟷}{{\DejaVuSansMono ⟷}}% U+27F7
353 \newunicodechar{≟}{{\DejaVuSansMono ≟}}% U+225F 474 \newunicodechar{≟}{{\DejaVuSansMono ≟}}% U+225F
354 \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208 475 \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208
355 \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C 476 \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C
477 \newunicodechar{≙}{{\DejaVuSansMono ≙}}% U+2259
478 \newunicodechar{↪}{{\DejaVuSansMono ↪}}% U+21AA
479 \newunicodechar{↩}{{\DejaVuSansMono ↩}}% U+21A9
480 \newunicodechar{⇧}{{\DejaVuSansMono ⇧}}% U+21E7
481 \newunicodechar{⌃}{{\DejaVuSansMono ⌃}}% U+2303
482 \newunicodechar{⎈}{{\DejaVuSansMono ⎈}}% U+2388
483 \newunicodechar{⌥}{{\DejaVuSansMono ⌥}}% U+2325
484 \newunicodechar{⎇}{{\DejaVuSansCondensed ⎇}}% U+2387
485 \newunicodechar{⌘}{{\DejaVuSansMono ⌘}}% U+2318
486 \newunicodechar{⏏}{{\DejaVuSansMono ⏏}}% U+23CF
487 \newunicodechar{⌫}{{\DejaVuSansMono ⌫}}% U+232B
488 \newunicodechar{⌦}{{\DejaVuSansMono ⌦}}% U+2326
489 \newunicodechar{⇥}{{\DejaVuSansMono ⇥}}% U+21E5
490 \newunicodechar{⇤}{{\DejaVuSansMono ⇤}}% U+21E4
356 \fi 491 \fi
357 492
358 \if@mdf@mono@robotomono 493 \if@mdf@mono@robotomono
359 \RequirePackage{newunicodechar} 494 \RequirePackage{newunicodechar}
360 \defaultfontfeatures{Ligatures=TeX,Numbers={Lining,Tabular},Scale=MatchLowercase} 495 \defaultfontfeatures{Ligatures=TeX,Numbers={Lining,Tabular},Scale=MatchLowercase}
363 BoldFont = * Bold, 498 BoldFont = * Bold,
364 ItalicFont = * Italic, 499 ItalicFont = * Italic,
365 BoldItalicFont = * Bold Italic, 500 BoldItalicFont = * Bold Italic,
366 ] 501 ]
367 \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[% 502 \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[%
503 UprightFont = *,
504 BoldFont = * Bold,
505 ItalicFont = * Oblique,
506 BoldItalicFont = * Bold Oblique,
507 ]
508 \newfontfamily\DejaVuSansCondensed{DejaVu Sans Condensed}[%
368 UprightFont = *, 509 UprightFont = *,
369 BoldFont = * Bold, 510 BoldFont = * Bold,
370 ItalicFont = * Oblique, 511 ItalicFont = * Oblique,
371 BoldItalicFont = * Bold Oblique, 512 BoldItalicFont = * Bold Oblique,
372 ] 513 ]
380 \newunicodechar{⇔}{{\DejaVuSansMono ⇔}}% U+21D4 521 \newunicodechar{⇔}{{\DejaVuSansMono ⇔}}% U+21D4
381 \newunicodechar{▪}{{\DejaVuSansMono ▪}}% U+25AA 522 \newunicodechar{▪}{{\DejaVuSansMono ▪}}% U+25AA
382 \newunicodechar{≟}{{\DejaVuSansMono ≟}}% U+225F 523 \newunicodechar{≟}{{\DejaVuSansMono ≟}}% U+225F
383 \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208 524 \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208
384 \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C 525 \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C
385 526 \newunicodechar{≙}{{\DejaVuSansMono ≙}}% U+2259
527 \newunicodechar{␣}{{\DejaVuSansMono ␣}}% U+2423
528 \newunicodechar{↪}{{\DejaVuSansMono ↪}}% U+21AA
529 \newunicodechar{↩}{{\DejaVuSansMono ↩}}% U+21A9
530 \newunicodechar{⇧}{{\DejaVuSansMono ⇧}}% U+21E7
531 \newunicodechar{⌃}{{\DejaVuSansMono ⌃}}% U+2303
532 \newunicodechar{⎈}{{\DejaVuSansMono ⎈}}% U+2388
533 \newunicodechar{⌥}{{\DejaVuSansMono ⌥}}% U+2325
534 \newunicodechar{⎇}{{\DejaVuSansCondensed ⎇}}% U+2387
535 \newunicodechar{⌘}{{\DejaVuSansMono ⌘}}% U+2318
536 \newunicodechar{⏏}{{\DejaVuSansMono ⏏}}% U+23CF
537 \newunicodechar{⌫}{{\DejaVuSansMono ⌫}}% U+232B
538 \newunicodechar{⌦}{{\DejaVuSansMono ⌦}}% U+2326
539 \newunicodechar{⇥}{{\DejaVuSansMono ⇥}}% U+21E5
540 \newunicodechar{⇤}{{\DejaVuSansMono ⇤}}% U+21E4
386 \PassOptionsToPackage{% 541 \PassOptionsToPackage{%
387 verbatimvisiblespace={\textcolor{red}{{\DejaVuSansMono^^^^2423}}},% 542 verbatimvisiblespace={\textcolor{red}{{\DejaVuSansMono^^^^2423}}},%
388 verbatimcontinued={\textcolor{red}{{\DejaVuSansMono^^^^21aa}}}}% 543 verbatimcontinued={\textcolor{red}{{\DejaVuSansMono^^^^21aa}}}}%
389 {sphinx} 544 {sphinx}
390 \fi 545 \fi
418 ItalicFont = * Oblique, 573 ItalicFont = * Oblique,
419 BoldItalicFont = * Bold Oblique, 574 BoldItalicFont = * Bold Oblique,
420 Scale=MatchLowercase, 575 Scale=MatchLowercase,
421 Ligatures=TeX, 576 Ligatures=TeX,
422 ] 577 ]
578 \newfontfamily\DejaVuSansCondensed{DejaVu Sans Condensed}[%
579 UprightFont = *,
580 BoldFont = * Bold,
581 ItalicFont = * Oblique,
582 BoldItalicFont = * Bold Oblique,
583 Scale=MatchLowercase,
584 Ligatures=TeX,
585 ]
423 \newunicodechar{▷}{{\DejaVuSansMono ▷}}% U+25B7 586 \newunicodechar{▷}{{\DejaVuSansMono ▷}}% U+25B7
424 \newunicodechar{∶}{{\DejaVuSansMono ∶}}% U+2236 587 \newunicodechar{∶}{{\DejaVuSansMono ∶}}% U+2236
425 \newunicodechar{◆}{{\DejaVuSansMono ◆}}% U+25C6 588 \newunicodechar{◆}{{\DejaVuSansMono ◆}}% U+25C6
426 \newunicodechar{▪}{{\DejaVuSansMono ▪}}% U+25AA 589 \newunicodechar{▪}{{\DejaVuSansMono ▪}}% U+25AA
427 \newunicodechar{⟵}{{\DejaVuSansMono ⟵}}% U+27F5 590 \newunicodechar{⟵}{{\DejaVuSansMono ⟵}}% U+27F5
433 \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208 596 \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208
434 \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C 597 \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C
435 \newunicodechar{≠}{{\DejaVuSansMono ≠}}% U+2260 598 \newunicodechar{≠}{{\DejaVuSansMono ≠}}% U+2260
436 \newunicodechar{≤}{{\DejaVuSansMono ≤}}% U+2264 599 \newunicodechar{≤}{{\DejaVuSansMono ≤}}% U+2264
437 \newunicodechar{≥}{{\DejaVuSansMono ≥}}% U+2265 600 \newunicodechar{≥}{{\DejaVuSansMono ≥}}% U+2265
438 %\newunicodechar{␣}{{\DejaVuSansMono ␣}}% U+2423 Missing! 601 \newunicodechar{≙}{{\DejaVuSansMono ≙}}% U+2259
602 \newunicodechar{␣}{{\DejaVuSansMono ␣}}% U+2423
603 \newunicodechar{↪}{{\DejaVuSansMono ↪}}% U+21AA
604 \newunicodechar{↩}{{\DejaVuSansMono ↩}}% U+21A9
605 \newunicodechar{⇧}{{\DejaVuSansMono ⇧}}% U+21E7
606 \newunicodechar{⌃}{{\DejaVuSansMono ⌃}}% U+2303
607 \newunicodechar{⎈}{{\DejaVuSansMono ⎈}}% U+2388
608 \newunicodechar{⌥}{{\DejaVuSansMono ⌥}}% U+2325
609 \newunicodechar{⎇}{{\DejaVuSansCondensed ⎇}}% U+2387
610 \newunicodechar{⌘}{{\DejaVuSansMono ⌘}}% U+2318
611 \newunicodechar{⏏}{{\DejaVuSansMono ⏏}}% U+23CF
612 \newunicodechar{⌫}{{\DejaVuSansMono ⌫}}% U+232B
613 \newunicodechar{⌦}{{\DejaVuSansMono ⌦}}% U+2326
614 \newunicodechar{⇥}{{\DejaVuSansMono ⇥}}% U+21E5
615 \newunicodechar{⇤}{{\DejaVuSansMono ⇤}}% U+21E4
439 %\newunicodechar{^^^^2423}{{\DejaVuSansMono^^^^2423}}% U+2423 616 %\newunicodechar{^^^^2423}{{\DejaVuSansMono^^^^2423}}% U+2423
440 %\newunicodechar{␣}{\textvisiblespace}% U+2423 617 %\newunicodechar{␣}{\textvisiblespace}% U+2423
441 %\catcode`^^^^2423\active\protected\def^^^^2423{\textvisiblespace} 618 %\catcode`^^^^2423\active\protected\def^^^^2423{\textvisiblespace}
442 619
443 \PassOptionsToPackage{% 620 \PassOptionsToPackage{%