% !TeX TXS-program:compile = txs:///arara % arara: lualatex: {shell: no, synctex: yes, interaction: batchmode} % arara: lualatex: {shell: no, synctex: yes, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') \documentclass[a4paper]{scrartcl} \usepackage{mathtools, array, varioref} \usepackage[british]{babel} \usepackage{pennstander-otf} \usepackage{framed} \usepackage{unicodefonttable} \usepackage{realscripts} \usepackage{graphicx} \usepackage{pdfpages} \renewcommand{\sffamily}{\rmfamily} \setmonofont{CascadiaMono}[Scale=MatchLowercase] \usepackage{microtype} %mathfont aliases \setmathfont{PennstanderMath-Thin}[version=psthin,Scale=MatchLowercase] \setmathfont{PennstanderMath-ExtraLight}[version=psextralight,Scale=MatchLowercase] \setmathfont{PennstanderMath-Light}[version=pslight,Scale=MatchLowercase] \setmathfont{PennstanderMath-Medium}[version=psmedium,Scale=MatchLowercase] \setmathfont{PennstanderMath-SemiBold}[version=pssemibold,Scale=MatchLowercase] \setmathfont{PennstanderMath-Bold}[version=psbold,Scale=MatchLowercase] \setmathfont{PennstanderMath-ExtraBold}[version=psextrabold,Scale=MatchLowercase] \setmathfont{PennstanderMath-Black}[version=psblack,Scale=MatchLowercase] \newcommand*{\pkg}[1]{\texttt{#1}} \newcommand*{\file}[1]{\texttt{#1}} \newcommand*{\ttbold}[1]{\texttt{\textbf{#1}}} \newcommand*{\opt}[1]{\texttt{#1}} \newcommand*{\cmd}[1]{\texttt{\textbackslash #1}}\newcommand*{\showtchar}[1]{\cmd{#1}~\csname #1\endcsname} \newcommand{\abc}{abcdefghijklmnopqrstuvwxyz} \newcommand{\ABC}{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \newcommand{\samplenumbers}{0123456789} \newcommand{\sampleformula}{\displaystyle\sum_{n=1}^{+\infty} \dfrac{1}{n^2} = \dfrac{\pi^2}{6}} \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 2pt} \usepackage{hyperref} \hypersetup{pdftitle={Pennstander User’s Guide for LaTeX}, pdfauthor={Cédric PIERQUET}, bookmarksopen, colorlinks } \newcommand*{\hlabel}[1]{\phantomsection\label{#1}} \date{04/05/2026} \newcommand*{\version}{0.4} \title{Pennstander fonts (\textit{experimental}) \\User’s Guide for LaTeX (v\version)} \author{Julius Ross \&\ Cédric Pierquet \\ \texttt{cpierquet@outlook.fr}} \begin{document} \maketitle \bigskip \section{What is Pennstander ?} Pennstander is a set of OpenType text and math fonts developed by Julius Ross, see \url{github.com/juliusross1} for more information. Original font is from Tyler Finck, see this website for more information: \url{https://etceteratype.co/pages/grandstander}. \smallskip This package is based on \texttt{v\version} version of fonts. The text and the math fonts are licensed under the SIL Open Font License, Version 1.1. They require LuaTeX or XeTeX as engine and the \pkg{unicode-math} package\footnote{Please read the documentation \file{unicode-math.pdf}.}, if math fonts are required or just the \pkg{fontspec} package\footnote{Please read the documentation \file{fontspec.pdf}.} otherwise. \smallskip A \textit{variable}\footnote{Please read the article \url{https://github.com/juliusross1/Pennstander/tree/main/docs}.} version of the font, with optical sizing, is available. \pagebreak \section{Usage} \subsection{Loading text fonts and math fonts} Several weights are available, for text and/or math version: {\small \hfill{\pennstanderthin thin} / {\pennstanderextralight ExtraLight} / {\pennstanderlight Light} / {\pennstander Regular} / {\pennstandermedium Medium} / {\pennstandersemibold SemiBold} / {\pennstanderbold Bold} / {\pennstanderextrabold ExtraBold} / {\pennstanderblack Black}\hfill\null} \begin{itemize} \item {\mathversion{psthin}$\sampleformula$} \item {\mathversion{psextralight}$\sampleformula$} \item {\mathversion{pslight}$\sampleformula$} \item {$\sampleformula$} \item {\mathversion{psmedium}$\sampleformula$} \item {\mathversion{pssemibold}$\sampleformula$} \item {\mathversion{psbold}$\sampleformula$} \item {\mathversion{psextrabold}$\sampleformula$} \item {\mathversion{psblack}$\sampleformula$} \end{itemize} \smallskip Files \file{Pennstander(math)-.fontspec} are provided to ensure that \textit{Italic}, \textbf{Bold}, \textbf{\textit{BoldItalic}} and \textsl{(fake)Slanted} variants are properly loaded. \subsection{Optical sizing} \texttt{otf} and \texttt{ttf} versions of Pennstander are provided: \begin{itemize} \item one \texttt{PennStanderVF.ttf} file, which provides \textit{optical sizing} (\texttt{opsz}); \item several \texttt{Pennstander--.otf} files. \end{itemize} With \opt{opsz} loading, so with optical sizing features, it's possible that, with a size changing (\texttt{large}, \texttt{small}, \texttt{tiny},...), the rendering may not be optimal, in which case a \opt{setmainfont} may be necessary. Therefore, loading \texttt{otf} fonts has been chosen as the default behavior. \subsection{Basic Call} A basic call for Pennstander text and math fonts could be: \begin{verbatim} \usepackage{pennstander-otf} \end{verbatim} It loads: \begin{itemize} \item \opt{Pennstander-Regular} as main font (without \texttt{opsz} version); \item \opt{PennstanderMath-Regular} as math font. \end{itemize} It defines \cmd{eff} for \textit{florin math} $\eff$. \bigskip For \texttt{optical sizing} features, load Pennstander with \opt{opsz} option: \begin{verbatim} \usepackage[opsz]{pennstander-otf} \end{verbatim} \subsection{First samples} \begin{oframed} \textbf{Theorem 1 (Residue Theorem).} Let $f$ be analytic in the region $G$ except for the isolated singularities $a_1,a_2,\ldots,a_m$. If $\gamma$ is a closed rectifiable curve in $G$ which does not pass through any of the points $a_k$ and if $\gamma\approx 0$ in $G$ then \[ \frac{1}{2\pi i}\int_\gamma f = \sum_{k=1}^m n(\gamma;a_k) \text{Res}(f;a_k). \] \textbf{Theorem 2 (Maximum Modulus).} \emph{Let $G$ be a bounded open set in $\mathbb{C}$ and suppose that $f$ is a continuous function on $G^-$ which is analytic in $G$. Then} \[ \max\{|\eff(z)|:z\in G^-\}=\max \{|\eff(z)|:z\in \partial G \}. \] \end{oframed} \begin{oframed} $q = 4L \sin\left(\dfrac{\theta}{2}\right)\sqrt{\pi\epsilon_0mg\tan\left(\dfrac{\theta}{2}\right)}$ \end{oframed} \pagebreak \subsection{Options} Options can be given within the package: \begin{itemize} \item \opt{Weight=...} \textcolor{gray}{\footnotesize \opt{Thin/ExtraLight/Light/Regular/Medium/SemiBold/Bold/ExtraBold/Black}}; \item or individual \opt{WeightT=...,WeightM=...} \item the boolean \opt{opsz} for loading pennstander with variable \texttt{VF.ttf} version; \item the boolean \opt{no-text} for not loading pennstander as main font; \item the boolean \opt{no-math} for not loading pennstander as math font; \item the boolean \opt{no-macros} for not loading internal macros; \item the boolean \opt{onlyconfig} for just loading \opt{.fontspec} files (def. \opt{false}); \textcolor{gray}{\footnotesize with activated, \opt{no-text=true}, \opt{no-math=true} and \opt{no-macros=true}} \item the boolean \opt{altfour} for alternate version of 4; \item the boolean \opt{frenchseven} for alternate version of 7 (with bar); \item \opt{math-style=...} for unicode-math option; \item \opt{bold-style=...} for unicode-math option; \item \opt{StylisticSet=...} or \opt{StylisticSetT=...,StylisticSetM=...}; \item \opt{RawFeature=...} or \opt{RawFeatureT=...,RawFeatureM=...}; \item \opt{Scale=...} or \opt{ScaleT=...,ScaleM=...}. \textcolor{gray}{\footnotesize\opt{Scale=}: global scaling factor applied to both text and math fonts} \textcolor{gray}{\footnotesize\opt{ScaleT=}: scaling factor for text font only (numeric value)} \textcolor{gray}{\footnotesize\opt{ScaleM=}: scaling factor for math font only (numeric value or MatchLowercase\ldots)} \end{itemize} \pagebreak \subsection{Manual loading} It's also possible to load text and/or math fonts with \cmd{setmainfont} and/or \cmd{setmathfont}, thanks to \opt{fontspec} files for example. \begin{verbatim} %with otf version \usepackage{fontspec} \usepackage{unicode-math} \setmainfont{Pennstander-}[options] \setmathfont{PennstanderMath-}[options] \end{verbatim} \begin{verbatim} %with ttf/opsz version \usepackage[onlyconfig]{pennstander-otf} \setmainfont{Pennstander--opsz}[options] \setmathfont{PennstanderMath-}[options] \end{verbatim} \subsection{Internal macros} By default, the packages load internal macros for \textit{fontfamily}. All macros are defined with \opt{[Scale=MatchLowercase]}. \begin{verbatim} %fontfamily \newfontfamily\pennstanderthin \newfontfamily\pennstanderextralight \newfontfamily\pennstanderlight \newfontfamily\pennstander \newfontfamily\pennstandermedium \newfontfamily\pennstandersemibold \newfontfamily\pennstanderbold \newfontfamily\pennstanderextrabold \newfontfamily\pennstanderblack %mathfont \setmathfontface\pennstandermaththin \setmathfontface\pennstandermathextralight \setmathfontface\pennstandermathlight \setmathfontface\pennstandermath \setmathfontface\pennstandermathmedium \setmathfontface\pennstandermathsemibold \setmathfontface\pennstandermathbold \setmathfontface\pennstandermathextrabold \end{verbatim} \pagebreak \section{Openfeatures} \subsection{For text font} Extra openfeatures for text font available are (it is possible that not all options are compatible with fontspec): \begin{itemize} \item \opt{aalt}: Access All Alternatives \item \opt{ccmp}: Glyph Composition/Decomposition \item \opt{locl}: Localized Forms \item \opt{sups}: Superscript \item \opt{numr}: Numerators \item \opt{dnom}: Denominators \item \opt{frac}: Fractions \item \opt{ordn}: Ordinals \item \opt{pnum}: Proportional Figures \item \opt{tnum}: Tabular Figures \item \opt{case}: Case-Sensitive Forms \item \opt{dlig}: Discretionary Ligatures \item \opt{liga}: Standard Ligatures \item \opt{zero}: Slashed Zero \item \opt{cpsp}: Capital Spacing \item \opt{ss01}: Alternate a,g,I \item \opt{ss02}: Alternate A,M,N,Q,V,W,Z,v,z \item \opt{ss03}: Alternate 4 \item \opt{ss04}: Alternate l,t \item \opt{ss06}: Alternate ampersand \item \opt{ss07}: Alternate 7 \end{itemize} %\includegraphics[width=0.625\linewidth]{pennstander_zero} % %\includegraphics[width=0.625\linewidth]{pennstander_dlig} % %\includegraphics[width=0.625\linewidth]{pennstander_ss02} % %\includegraphics[width=0.625\linewidth]{pennstander_ss03} % %\includegraphics[width=0.625\linewidth]{pennstander_ss04} % %\includegraphics[width=0.625\linewidth]{pennstander_ss06} % %\includegraphics[width=0.625\linewidth]{pennstander_ss07} % %\includegraphics[width=0.625\linewidth]{pennstander_aalt} \pagebreak \subsection{For math font} Extra openfeatures for math font available are (it is possible that not all options are compatible with fontspec): \begin{itemize} \item \opt{aalt}: Access All Alternatives \item \opt{dtls}: Dotless Forms \item \opt{zero}: Slashed Zero \item \opt{frac}: Fractions \item \opt{ss01}: Alternate a,g,I,Iota \item \opt{ss02}: Alternate A,M,N,Q,V,W,Z,v,z,Alpha,Mu,Rho,Zeta \item \opt{ss03}: Alternate 4 \item \opt{ss04}: Alternate l,t \item \opt{ss05}: Simplified Fraktur A,K,L,X,Y,Z,x,y \item \opt{ss07}: Alternate 7 \item \opt{ssty}: Math Script Style Alternatives \item \opt{cv01}: Alternate a,g,I \item \opt{cv10}: Alternate numerals \item \opt{cv20}: Alternate Fences \item \opt{cv21}: Alternate Fences \item \opt{cv30}: Alternate Integrals (without serif) \item \opt{cv31}: Alternate Integrals (serif) \item \opt{cv32}: Alternate Integrals (all) \item \opt{zero}: Alternate zero \end{itemize} \subsection{Unicode Private Use Area} Glyphs assigned to Unicode Private Use Area: \begin{itemize} \item Double-struck uppercase Greek letters: \opt{U+E1002–U+E1008} \item Fraction Rule: \opt{U+E000} \item Radical Rule: \opt{U+E001} \end{itemize} \pagebreak \section{List of glyphs} \subsection{Text version} \displayfonttable{Pennstander-Regular} \pagebreak \subsection{Math version} \displayfonttable[color=purple]{PennstanderMath-Regular} \pagebreak \section{Alphabets} \subsection{Text version} \textcolor{violet}{-- Normal/\textbf{Bold}/\textit{Italic}/\textit{\textbf{BoldItalic}}/\textsl{Slanted}/\textsl{\textbf{BoldSlanted}}:} \abc\ABC\samplenumbers \textbf{\abc\ABC\samplenumbers} \textit{\abc\ABC\samplenumbers} \textit{\textbf{\abc\ABC\samplenumbers}} \textsl{\abc\ABC\samplenumbers} \textsl{\textbf{\abc\ABC\samplenumbers}} \smallskip \textit{Slanted version uses italic version.} \subsection{Math version} \textcolor{violet}{-- Normal/\textbf{Bold}/\textit{Italic}/\textit{\textbf{BoldItalic}}:} $\abc\ABC\samplenumbers$ $\mathbf{\abc\ABC\samplenumbers}$ $\mathit{\abc\ABC\samplenumbers}$ $\mathit{\mathbf{\abc\ABC\samplenumbers}}$ \smallskip \textcolor{violet}{-- mathcal/mathfrak/mathbb:} $\mathcal{\abc\ABC}$ $\mathfrak{\abc\ABC}$ $\mathbb{\ABC\samplenumbers}$ \subsection{Samples} The source files for these samples are available in the \href{github.com/juliusross1}{GitHub} repository and can be compiled with \texttt{ConTeXt} LMTX using \texttt{context filename.tex}. \smallskip Samples document can be loaded by: \begin{itemize} \item \texttt{texdoc pennstander-otf-samples-text.pdf} \item \texttt{texdoc pennstander-otf-samples-math.pdf} \end{itemize} \end{document}