% lisnoti.tex – documentation and specimen for the Lisnoti fonts on CTAN.
% Typeset with LuaLaTeX. The four Lisnoti .ttf files must be findable by
% file name: either installed with the package, or in the same folder.
\documentclass[a4paper,11pt]{article}

\usepackage[british]{babel}
\usepackage[margin=25mm]{geometry}
\usepackage{amsmath}
\usepackage{unicode-math}
\usepackage{xcolor}
\usepackage{fancyvrb}
\usepackage{array}
\usepackage{booktabs}
\usepackage[colorlinks, urlcolor=linkblue, linkcolor=black]{hyperref}

\newcommand*\LisnotiVersion{2.004}
\newcommand*\LisnotiDate{2026-09-29}

\setmainfont{Lisnoti}[
  Extension      = .ttf,
  UprightFont    = *-Regular,
  ItalicFont     = *-Italic,
  BoldFont       = *-Bold,
  BoldItalicFont = *-BoldItalic,
]
\setsansfont{Lisnoti}[
  Extension      = .ttf,
  UprightFont    = *-Regular,
  ItalicFont     = *-Italic,
  BoldFont       = *-Bold,
  BoldItalicFont = *-BoldItalic,
]
% Lisnoti is proportional but was designed to work for code, so the
% listings in this document are set in it too.
\setmonofont{Lisnoti}[
  Extension      = .ttf,
  UprightFont    = *-Regular,
  ItalicFont     = *-Italic,
  BoldFont       = *-Bold,
  BoldItalicFont = *-BoldItalic,
]
% The order matters: see 'Using Lisnoti' below.
\setmathfont{Lisnoti-Regular.ttf}
\setmathfont{Lisnoti-Bold.ttf}[version=bold]
% Loaded by file name, the range font needs its bold named; by family name,
% fontspec finds it.
\setmathfont{Lisnoti-Regular.ttf}[range=\mathcal, StylisticSet=1,
  BoldFont=Lisnoti-Bold.ttf]

\definecolor{codeink}{HTML}{550A0A}
\definecolor{linkblue}{HTML}{1A5FB4}
\definecolor{rulegrey}{gray}{0.75}
\DefineVerbatimEnvironment{code}{Verbatim}{%
  formatcom=\color{codeink}, xleftmargin=1.5em, frame=leftline,
  rulecolor=\color{rulegrey}, framesep=1em}
\DefineShortVerb{\"}
\fvset{formatcom=\color{codeink}}

\newcommand*\pkg[1]{\textsf{#1}}
\newcommand*\feat[1]{\texttt{#1}}

\hypersetup{
  pdftitle    = {The Lisnoti fonts},
  pdfauthor   = {Tim Gordon},
  pdfsubject  = {Lisnoti \LisnotiVersion: a sans serif text and maths font},
  pdfkeywords = {Lisnoti, font, OpenType, MATH, unicode-math, fontspec},
}

\setlength\parindent{0pt}
\setlength\parskip{0.6\baselineskip plus 2pt}

\begin{document}

  {\Huge\bfseries Lisnoti}\par\medskip
  {\Large A sans serif font for text and maths}\par\bigskip
  Version \LisnotiVersion\ (\LisnotiDate)\quad·\quad Tim Gordon\par
  \url{https://lisnoti.com}\quad·\quad\url{https://github.com/Lisnoti/Lisnoti}

\bigskip

\section{Introduction}

Lisnoti (/lɪzˈnəʊtiː/) is a proportional sans serif font for everyday use,
with clear, unambiguous letters and coverage of Latin, Greek, Cyrillic and Devanagari character sets.
It is particularly strong for maths, science and actuarial work, including typesetting equations,
and comes in regular, \textit{italic}, \textbf{bold} and \textbf{\textit{bold italic}}.

Lisnoti is derived from Google’s Noto fonts,
including Khaled Hosny’s 2024 redesign of Noto Sans Math,
but with numerous amendments
to improve clarity and consistency.

The font includes OpenType \feat{MATH} tables, which means
\pkg{unicode-math} can use Lisnoti for equations
as well as text --
this document is set entirely in Lisnoti.

Lisnoti differences from Noto:
\begin{itemize}
\item
  No lookalikes: capital I, small l and number 1 are always distinct,
  as are capital O and number 0:\par
  {\Large Il1 O0\qquad\textit{Il1 O0}\qquad\textbf{Il1 O0}\qquad
  \textbf{\textit{Il1 O0}}\par}
\item Character classes
  redrawn (set operators and radicals)
  or rescaled (\(n\)-ary operators):\par
  {\large ∈ ∉ \ ⊂ ⊄  ⊆ ⊈ \ ∩ ∪ \ √ \ ⋂ ⋃ ∑ ∏\par}
\item Consistent Unicode superscripts and subscripts, which means plain text
  such as x²~+~y²~=~r², H₂O and aᵢⱼ can be written without maths mode.
\item Relevant characters grouped in a single font, including
  Greek, Cyrillic,
  Unicode mathematical alphanumerics,
  arrows, geometric shapes,
  ticks and crosses,
  box drawing and
  every currency sign in Unicode.
\end{itemize}

\section{Installing}

The \pkg{lisnoti} package installs its four font files where your TeX
distribution can find them:
\begin{itemize}
\item In TeX Live, run "tlmgr install lisnoti".
\item In MiKTeX, open MiKTeX Console, go to \emph{Packages}, search for
  \pkg{lisnoti}, select it and click~\emph{+}. Or, at a command prompt, run
  "miktex packages install lisnoti".
\end{itemize}

Or you can install the fonts via your operating system in the usual way and
let \pkg{fontspec} find them there.
The font files are
available at \url{https://github.com/Lisnoti/Lisnoti}.

\section{Using Lisnoti}

Lisnoti is an OpenType font, so it needs LuaLaTeX or XeLaTeX with
\pkg{fontspec}. (This document compiles with both.)

\subsection{Text}

\begin{code}
\usepackage{fontspec}
\setmainfont{Lisnoti}
\setsansfont{Lisnoti}
\end{code}

\pkg{fontspec} automatically finds all styles, i.e. regular, italic, bold and bold italic.

Include "\setsansfont{Lisnoti}" to ensure
"\textsf" and other commands requesting sans serif text get the same font.

\subsection{Maths}

\begin{code}
\usepackage{unicode-math}
\setmathfont{Lisnoti}
\setmathfont{Lisnoti Bold}[version=bold]
\setmathfont{Lisnoti}[range=\mathcal, StylisticSet=1]
\end{code}

If you use \pkg{amsmath}, load it \textit{before} the above.

The "[version=bold]" line makes
"\boldmath" and "\mathversion{bold}" work.

The "[range=\mathcal, StylisticSet=1]" line ensures
standard behaviour for "\mathcal", i.e. \(\mathcal{ABC}\).
(Without it, Lisnoti sets "\mathcal" as  \(\mathscr{ABC}\)).

NB The order matters -- the "\mathcal, StylisticSet" line must follow the bold version line,
otherwise \pkg{unicode-math} (version 0.8r) drops the calligraphic capitals altogether.

\subsection{Mathematical alphabets}

Every \pkg{unicode-math} alphabet is available.\par\nopagebreak
{\renewcommand\arraystretch{1.25}
\begin{tabular}
{ >{\ttfamily\color{codeink}}l ll >{\ttfamily\color{codeink}}l l }
\toprule
\normalfont Command & Sample && Command & Sample
\\
\midrule
\textbackslash symup     & \(\symup{ABCDEF\ abcdef\ αβγδεζ}\)
&& \textbackslash mathbb    & \(\mathbb{ABCDEF}\)
\\
\textbackslash symit     & \(\symit{ABCDEF\ abcdef\ αβγδεζ}\)
&& \textbackslash mathfrak  & \(\mathfrak{ABCDEF\ abcdef}\)
\\
\textbackslash symbf     & \(\symbf{ABCDEF\ abcdef\ αβγδεζ}\)
&& \textbackslash mathscr   & \(\mathscr{ABCDEF}\)
\\
\textbackslash symbfit   & \(\symbfit{ABCDEF\ abcdef\ αβγδεζ}\)
&& \textbackslash mathcal   & \(\mathcal{ABCDEF}\)
\\
\textbackslash mathsf    & \(\mathsf{ABCDEF\ abcdef}\)
&& \textbackslash mathbfscr & \(\mathbfscr{ABCDEF}\)
\\
\textbackslash mathbfsf  & \(\mathbfsf{ABCDEF\ abcdef}\)
\\
\textbackslash mathtt    & \(\mathtt{ABCDEF\ abcdef}\)
\\
\bottomrule
\end{tabular}\par}

\section{Specimen}

\subsection{Text}

{\large
The quick brown fox jumps over the lazy dog. Sphinx of black quartz, judge my
vow! \textit{Pack my box with five dozen liquor jugs.} \textbf{How vexingly
quick daft zebras jump.}\par}

ABCDEFGHIJKLMNOPQRSTUVWXYZ\quad abcdefghijklmnopqrstuvwxyz\quad 0123456789\\
\textit{ABCDEFGHIJKLMNOPQRSTUVWXYZ\quad abcdefghijklmnopqrstuvwxyz\quad 0123456789}\\
\textbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ\quad abcdefghijklmnopqrstuvwxyz\quad 0123456789}\\
\textbf{\textit{ABCDEFGHIJKLMNOPQRSTUVWXYZ\quad abcdefghijklmnopqrstuvwxyz\quad 0123456789}}

Ελληνικά: Αλφάβητο, άλφα βήτα γάμμα δέλτα.\quad Кириллица: Съешь же ещё этих
мягких французских булок.

\subsection{Code}

Lisnoti keeps l, I and 1 apart, and O and 0, which matters most in code. The
listing below is set in Lisnoti itself.
\begin{code}
def premium(l1, I0, O1):
    """Return the level annual premium."""
    return (l1 * I0) / max(O1, 1e-9)
\end{code}

\subsection{Mathematics}

The quadratic formula and the binomial theorem:
\[
  x = \frac{-b ± \sqrt{b^2 - 4ac}}{2a}
  \qquad
  (x + y)^n = \sum_{k=0}^{n} \binom{n}{k} x^k y^{n-k}
\]

The Gaussian integral, Euler’s identity and a Fourier transform:
\[
  \int_{-∞}^{∞} e^{-x^2/2}\,dx = \sqrt{2π}
  \qquad
  e^{iπ} + 1 = 0
  \qquad
  \hat{f}(ξ) = \int_{\mathbb{R}} f(x)\, e^{-2πi x ξ}\,dx
\]

Maxwell’s equations, with \(\symbf{E}\) and \(\symbf{B}\) in bold:
\[
  ∇ · \symbf{E} = \frac{ρ}{ε_0}
  \qquad
  ∇ · \symbf{B} = 0
  \qquad
  ∇ × \symbf{E} = -\frac{∂\symbf{B}}{∂t}
  \qquad
  ∇ × \symbf{B} = μ_0 \left( \symbf{J} + ε_0 \frac{∂\symbf{E}}{∂t} \right)
\]

Survival probability and the present value of an annuity-due, from actuarial
work:
\[
  {}_t p_x = \exp\left( -\int_0^t μ_{x+s}\,ds \right)
  \qquad
  \ddot{a}_{\overline{n}|} = \sum_{k=0}^{n-1} v^k = \frac{1 - v^n}{d}
\]

Matrices and nested radicals:
\[
  \det \begin{pmatrix} a & b \\ c & d \end{pmatrix} = ad - bc
  \qquad
  A^{-1} = \frac{1}{\det A}
    \begin{bmatrix} d & -b \\ -c & a \end{bmatrix}
  \qquad
  φ = \sqrt{1 + \sqrt{1 + \sqrt{1 + \sqrt{1 + ⋯}}}}
\]

Continued fractions and stretchy delimiters:
\[
  \sqrt{2} = 1 + \cfrac{1}{2 + \cfrac{1}{2 + \cfrac{1}{2 + ⋯}}}
  \qquad
  \left\lVert \sum_{i=1}^{n} \frac{x_i}{\sqrt[3]{1 + y_i^2}} \right\rVert
  ≤ \left( \sum_{i=1}^{n} \left| x_i \right|^p \right)^{1/p}
\]

Sets, logic and limits:
\[
  \{\, x ∈ \mathbb{R} : x^2 < 2 \,\} = \left( -\sqrt{2}, \sqrt{2} \right)
  \qquad
  A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C)
  \qquad
  ¬(p ∧ q) ⇔ ¬p ∨ ¬q
\]
\[
  ∀ε > 0\; ∃δ > 0 : |x - a| < δ ⇒ |f(x) - L| < ε
  \qquad
  \lim_{n → ∞} \left( 1 + \frac{1}{n} \right)^n = e
\]

Big operators, inline and displayed: \(\sum_{i=1}^n i = \frac{n(n+1)}{2}\) and
\(\prod_{p} (1 - p^{-s})^{-1}\) in text, and on display
\[
  \sum_{i=1}^{n} \qquad \prod_{i=1}^{n} \qquad \coprod_{i=1}^{n} \qquad
  \bigcup_{i ∈ I} A_i \qquad \bigcap_{i ∈ I} A_i \qquad
  \bigoplus_{k} V_k \qquad \bigotimes_{k} V_k \qquad
  \int_a^b \qquad \iint_D \qquad \oint_C
\]

And in bold, with "\boldmath":
{\boldmath
\[
  x = \frac{-b ± \sqrt{b^2 - 4ac}}{2a}
  \qquad
  \int_{-∞}^{∞} e^{-x^2/2}\,dx = \sqrt{2π}
  \qquad
  \sum_{k=0}^{n} \binom{n}{k} x^k y^{n-k}
\]}

\section{Licence}

Lisnoti is provided under the SIL Open Font License, version 1.1.

See the file "Licence.txt" in this package for the licence text.

\section{Feedback and links}

Comments are welcome on
\href{https://github.com/Lisnoti/Lisnoti/discussions}{Lisnoti’s GitHub
discussions page}.

The website
\href{https://lisnoti.com}{lisnoti.com} shows Lisnoti on the web and lets you try it out.

Why Lisnoti exists is the subject of
\href{https://timgord.com/2024-01/lisnoti-a-proportional-font-that-works-for-coding-too/}{an
article on timgord.com}.

\end{document}
