diff docs/_latex/my-doc-fonts.sty @ 793:46578f03a7cb default tip

Update to latest my-doc-XXX.sty style files for PDF generation
author Franz Glasner <fzglas.hg@dom66.de>
date Wed, 20 May 2026 12:57:36 +0200
parents 0b83218218e2
children
line wrap: on
line diff
--- a/docs/_latex/my-doc-fonts.sty	Mon May 18 12:26:44 2026 +0200
+++ b/docs/_latex/my-doc-fonts.sty	Wed May 20 12:57:36 2026 +0200
@@ -1,4 +1,6 @@
 % -*- coding: utf-8 -*-
+% SPDX-FileCopyrightText: © 2026 Franz Glasner
+% SPDX-License-Identifier: BSD-3-Clause
 %
 % Some font hacks for my Sphinx PDF documents
 %
@@ -20,7 +22,9 @@
 \newif\if@mdf@mono@sscode\@mdf@mono@sscodefalse
 \newif\if@mdf@mono@inconsolata\@mdf@mono@inconsolatafalse
 \newif\if@mdf@mono@libertinusmono\@mdf@mono@libertinusmonofalse
+\newif\if@mdf@mono@hackmono\@mdf@mono@hackmonofalse
 \newif\if@mdf@augment@libertinusmono\@mdf@augment@libertinusmonofalse
+\newif\if@mdf@augment@ibmplexmono\@mdf@augment@ibmplexmonofalse
 
 \newif\if@mdf@WithDejaVuSansMono
 \newif\if@mdf@WithCM
@@ -38,6 +42,8 @@
 \newif\if@mdf@WithCrimson
 \newif\if@mdf@WithCrimsonCabin
 \newif\if@mdf@WithDejaVu
+\newif\if@mdf@WithMerriweather
+\newif\if@mdf@WithLiterata
 
 % A key compatible with options processing as option "fonts" but choices.
 \define@choicekey*{my-doc-fonts.sty}{fonts}[\val\nr]{%
@@ -61,6 +67,8 @@
   crimson,         % Crimson Pro, Open Sans and Roboto Mono (Erewhon Math)
   crimson-cabin,   % Crimson Pro, Cabin and Source Code Pro (Erewhon Math)
   dejavu,          % All DejaVu fonts (Serif, Sans, Mono)
+  merriweather,    % Merriweather, Merriweather Sans, Hack (STIX Two Math)
+  literata,        % Literata, Inter, IBM Plex Mono (Garamond Math)
   }{%
   % Not used for now : store the normalized option value (global and expanded)
   \xdef\@mdf@fonts{\val}%
@@ -81,6 +89,8 @@
   \@mdf@WithCrimsonfalse
   \@mdf@WithCrimsonCabinfalse
   \@mdf@WithDejaVufalse
+  \@mdf@WithMerriweatherfalse
+  \@mdf@WithLiteratafalse
   % Now set the needed font selection flag
   \ifcase\nr\relax
     \relax
@@ -124,6 +134,10 @@
     \@mdf@WithCrimsonCabintrue
   \or
     \@mdf@WithDejaVutrue
+  \or
+    \@mdf@WithMerriweathertrue
+  \or
+    \@mdf@WithLiteratatrue
   \fi
 }
 
@@ -149,59 +163,10 @@
 %
 %
 \if@mdf@WithIBMPlex
-  \RequirePackage{newunicodechar}
   \RequirePackage[DefaultFeatures={Scale=0.92}]{plex-otf}
   % Dont keep all default font features from plex-otf
   \defaultfontfeatures{}
-  \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[%
-    UprightFont = *,
-    BoldFont = * Bold,
-    ItalicFont = * Oblique,
-    BoldItalicFont = * Bold Oblique,
-    Scale=MatchLowercase,
-    Ligatures=TeX,
-  ]
-  \newfontfamily\DejaVuSansCondensed{DejaVu Sans Condensed}[%
-    UprightFont = *,
-    BoldFont = * Bold,
-    ItalicFont = * Oblique,
-    BoldItalicFont = * Bold Oblique,
-    Scale=MatchLowercase,
-    Ligatures=TeX,
-  ]
-  \newunicodechar{▷}{{\DejaVuSansMono ▷}}% U+25B7
-  \newunicodechar{∶}{{\DejaVuSansMono ∶}}% U+2236
-  \newunicodechar{◆}{{\DejaVuSansMono ◆}}% U+25C6
-  \newunicodechar{▪}{{\DejaVuSansMono ▪}}% U+25AA
-  \newunicodechar{⟵}{{\DejaVuSansMono ⟵}}% U+27F5
-  \newunicodechar{⟶}{{\DejaVuSansMono ⟶}}% U+27F6
-  \newunicodechar{⟷}{{\DejaVuSansMono ⟷}}% U+27F7
-  \newunicodechar{⇒}{{\DejaVuSansMono ⇒}}% U+21D2
-  \newunicodechar{⇔}{{\DejaVuSansMono ⇔}}% U+21D4
-  \newunicodechar{≟}{{\DejaVuSansMono ≟}}% U+225F
-  \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208
-  \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C
-  \newunicodechar{≙}{{\DejaVuSansMono ≙}}% U+2259
-  \newunicodechar{␣}{{\DejaVuSansMono ␣}}% U+2423
-  \newunicodechar{⇧}{{\DejaVuSansMono ⇧}}% U+21E7
-  \newunicodechar{⌃}{{\DejaVuSansMono ⌃}}% U+2303
-  \newunicodechar{⎈}{{\DejaVuSansMono ⎈}}% U+2388
-  \newunicodechar{⌥}{{\DejaVuSansMono ⌥}}% U+2325
-  \newunicodechar{⎇}{{\DejaVuSansCondensed ⎇}}% U+2387
-  \newunicodechar{⌘}{{\DejaVuSansMono ⌘}}% U+2318
-  \newunicodechar{⏏}{{\DejaVuSansMono ⏏}}% U+23CF
-  \newunicodechar{⌫}{{\DejaVuSansMono ⌫}}% U+232B
-  \newunicodechar{⌦}{{\DejaVuSansMono ⌦}}% U+2326
-  \newunicodechar{⇥}{{\DejaVuSansMono ⇥}}% U+21E5
-  \newunicodechar{⇤}{{\DejaVuSansMono ⇤}}% U+21E4
-  %\newunicodechar{^^^^2423}{{\DejaVuSansMono^^^^2423}}% U+2423
-  %\newunicodechar{␣}{\textvisiblespace}% U+2423
-  %\catcode`^^^^2423\active\protected\def^^^^2423{\textvisiblespace}
-
-  \PassOptionsToPackage{%
-    verbatimvisiblespace={\textcolor{red}{{\DejaVuSansMono^^^^2423}}},%
-    verbatimcontinued={\textcolor{red}{{\DejaVuSansMono^^^^21aa}}}}%
-    {sphinx}
+  \@mdf@augment@ibmplexmonotrue
 \fi
 \if@mdf@WithIBMPlexDejaVuSansMono
   \RequirePackage[DefaultFeatures={Scale=0.92},mono=false]{plex-otf}
@@ -303,8 +268,8 @@
   %\setsansfont{Rosario}[Scale=MatchLowercase,ScaleAgain=1.013]
   %\setmathfont{Asana Math}[Scale=MatchLowercase]
   \setmathfont{TeX Gyre Pagella Math}[Scale=MatchLowercase]
-  \@mdf@mono@inconsolatatrue  
-\fi  
+  \@mdf@mono@inconsolatatrue
+\fi
 
 \if@mdf@WithCrimson
   \RequirePackage{unicode-math}
@@ -336,6 +301,55 @@
   \newunicodechar{⎇}{{\DejaVuSansCondensed ⎇}}% U+2387
 \fi
 
+\if@mdf@WithMerriweather
+  \RequirePackage{unicode-math}
+  \linespread{1.06}
+  \defaultfontfeatures{%
+    Scale = 0.92,
+    Ligatures = TeX,
+    Numbers = {Lining,Tabular},
+    Extension = .otf,
+  }
+  \setmainfont{Merriweather}[%
+    UprightFont = *-Regular ,
+    ItalicFont = *-Italic ,
+    BoldFont = *-Bold ,
+    BoldItalicFont = *-BoldItalic
+  ]
+  \setsansfont{MerriweatherSans}[%
+    UprightFont = *-Regular ,
+    ItalicFont = *-Italic ,
+    BoldFont = *-Bold ,
+    BoldItalicFont = *-BoldItalic
+  ]
+  \defaultfontfeatures{}
+  \setmathfont{STIX Two Math}[Scale=MatchLowercase]
+  \@mdf@mono@hackmonotrue
+\fi
+
+\if@mdf@WithLiterata
+  \RequirePackage{unicode-math}
+  \defaultfontfeatures{%
+    Ligatures = TeX,
+    Numbers = {Lining,Tabular},
+  }
+  \setmainfont{Literata}
+  \setsansfont{Inter}[Scale=MatchLowercase]
+  \defaultfontfeatures{}
+  \setmathfont{Garamond-Math}[Scale=MatchLowercase]
+  \setmonofont{IBMPlexMono}[%
+    Extension = .otf,
+    Scale = MatchLowercase,
+    Ligatures = TeX,
+    UprightFont= *-Regular,
+    BoldFont = *-Bold,
+    ItalicFont = *-Italic,
+    BoldItalicFont = *-BoldItalic,
+    SlantedFont = *-Italic,
+  ]
+  \@mdf@augment@ibmplexmonotrue
+\fi
+
 \defaultfontfeatures{}
 
 \if@mdf@mono@dejavusansmono
@@ -544,6 +558,41 @@
     {sphinx}
 \fi
 
+\if@mdf@mono@hackmono
+  \defaultfontfeatures{Ligatures=TeX,Numbers={Lining,Tabular},Scale=MatchLowercase}
+  \RequirePackage{newunicodechar}
+  \setmonofont{Hack}
+  \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[%
+    UprightFont = *,
+    BoldFont = * Bold,
+    ItalicFont = * Oblique,
+    BoldItalicFont = * Bold Oblique,
+    Scale=MatchLowercase,
+    Ligatures=TeX,
+  ]
+  \newfontfamily\DejaVuSansCondensed{DejaVu Sans Condensed}[%
+    UprightFont = *,
+    BoldFont = * Bold,
+    ItalicFont = * Oblique,
+    BoldItalicFont = * Bold Oblique,
+    Scale=MatchLowercase,
+    Ligatures=TeX,
+  ]
+  \newunicodechar{␣}{{\DejaVuSansMono ␣}}% U+2423
+  \newunicodechar{⌃}{{\DejaVuSansMono ⌃}}% U+2303
+  \newunicodechar{⎈}{{\DejaVuSansMono ⎈}}% U+2388
+  \newunicodechar{⌥}{{\DejaVuSansMono ⌥}}% U+2325
+  \newunicodechar{⎇}{{\DejaVuSansCondensed ⎇}}% U+2387
+  \newunicodechar{⌘}{{\DejaVuSansMono ⌘}}% U+2318
+  \newunicodechar{⏏}{{\DejaVuSansMono ⏏}}% U+23CF
+  \newunicodechar{⌫}{{\DejaVuSansMono ⌫}}% U+232B
+  \newunicodechar{⌦}{{\DejaVuSansMono ⌦}}% U+2326
+  \PassOptionsToPackage{%
+    verbatimvisiblespace={\textcolor{red}{{\DejaVuSansMono^^^^2423}}},%
+    verbatimcontinued={\textcolor{red}{{\DejaVuSansMono^^^^21aa}}}}%
+    {sphinx}
+\fi
+
 \if@mdf@mono@libertinusmono
   % This is stolen from libertinus-otf.sty!
   \setmonofont{LibertinusMono}[%
@@ -565,6 +614,59 @@
   \@mdf@augment@libertinusmonotrue
 \fi
 
+\if@mdf@augment@ibmplexmono
+  \RequirePackage{newunicodechar}
+  \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[%
+    UprightFont = *,
+    BoldFont = * Bold,
+    ItalicFont = * Oblique,
+    BoldItalicFont = * Bold Oblique,
+    Scale=MatchLowercase,
+    Ligatures=TeX,
+  ]
+  \newfontfamily\DejaVuSansCondensed{DejaVu Sans Condensed}[%
+    UprightFont = *,
+    BoldFont = * Bold,
+    ItalicFont = * Oblique,
+    BoldItalicFont = * Bold Oblique,
+    Scale=MatchLowercase,
+    Ligatures=TeX,
+  ]
+  \newunicodechar{▷}{{\DejaVuSansMono ▷}}% U+25B7
+  \newunicodechar{∶}{{\DejaVuSansMono ∶}}% U+2236
+  \newunicodechar{◆}{{\DejaVuSansMono ◆}}% U+25C6
+  \newunicodechar{▪}{{\DejaVuSansMono ▪}}% U+25AA
+  \newunicodechar{⟵}{{\DejaVuSansMono ⟵}}% U+27F5
+  \newunicodechar{⟶}{{\DejaVuSansMono ⟶}}% U+27F6
+  \newunicodechar{⟷}{{\DejaVuSansMono ⟷}}% U+27F7
+  \newunicodechar{⇒}{{\DejaVuSansMono ⇒}}% U+21D2
+  \newunicodechar{⇔}{{\DejaVuSansMono ⇔}}% U+21D4
+  \newunicodechar{≟}{{\DejaVuSansMono ≟}}% U+225F
+  \newunicodechar{∈}{{\DejaVuSansMono ∈}}% U+2208
+  \newunicodechar{∌}{{\DejaVuSansMono ∌}}% U+220C
+  \newunicodechar{≙}{{\DejaVuSansMono ≙}}% U+2259
+  \newunicodechar{␣}{{\DejaVuSansMono ␣}}% U+2423
+  \newunicodechar{⇧}{{\DejaVuSansMono ⇧}}% U+21E7
+  \newunicodechar{⌃}{{\DejaVuSansMono ⌃}}% U+2303
+  \newunicodechar{⎈}{{\DejaVuSansMono ⎈}}% U+2388
+  \newunicodechar{⌥}{{\DejaVuSansMono ⌥}}% U+2325
+  \newunicodechar{⎇}{{\DejaVuSansCondensed ⎇}}% U+2387
+  \newunicodechar{⌘}{{\DejaVuSansMono ⌘}}% U+2318
+  \newunicodechar{⏏}{{\DejaVuSansMono ⏏}}% U+23CF
+  \newunicodechar{⌫}{{\DejaVuSansMono ⌫}}% U+232B
+  \newunicodechar{⌦}{{\DejaVuSansMono ⌦}}% U+2326
+  \newunicodechar{⇥}{{\DejaVuSansMono ⇥}}% U+21E5
+  \newunicodechar{⇤}{{\DejaVuSansMono ⇤}}% U+21E4
+  %\newunicodechar{^^^^2423}{{\DejaVuSansMono^^^^2423}}% U+2423
+  %\newunicodechar{␣}{\textvisiblespace}% U+2423
+  %\catcode`^^^^2423\active\protected\def^^^^2423{\textvisiblespace}
+
+  \PassOptionsToPackage{%
+    verbatimvisiblespace={\textcolor{red}{{\DejaVuSansMono^^^^2423}}},%
+    verbatimcontinued={\textcolor{red}{{\DejaVuSansMono^^^^21aa}}}}%
+    {sphinx}
+\fi
+
 \if@mdf@augment@libertinusmono
   \RequirePackage{newunicodechar}
   \newfontfamily\DejaVuSansMono{DejaVu Sans Mono}[%