From 5fcfa99e5deaf9c601ba9e338f07fbefdd5d4487 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 7 Nov 2022 03:04:25 +0000 Subject: CTAN sync 202211070304 --- fonts/euler-math/Euler-Math.ltx | 449 +++++++++++++++++++++++++++++++ fonts/euler-math/Euler-Math.otf | Bin 0 -> 439804 bytes fonts/euler-math/Euler-Math.pdf | Bin 0 -> 157551 bytes fonts/euler-math/README.md | 68 +++++ fonts/euler-math/euler-math.sty | 127 +++++++++ fonts/euler-math/neo-euler.sty | 15 ++ fonts/euler-math/unimath-euler.ltx | 525 +++++++++++++++++++++++++++++++++++++ fonts/euler-math/unimath-euler.pdf | Bin 0 -> 1452028 bytes fonts/neo-euler/Neo-Euler.ltx | 449 ------------------------------- fonts/neo-euler/Neo-Euler.otf | Bin 438348 -> 0 bytes fonts/neo-euler/Neo-Euler.pdf | Bin 157554 -> 0 bytes fonts/neo-euler/README.md | 63 ----- fonts/neo-euler/neo-euler.sty | 127 --------- fonts/neo-euler/unimath-euler.ltx | 525 ------------------------------------- fonts/neo-euler/unimath-euler.pdf | Bin 1452175 -> 0 bytes fonts/utilities/ps2pk/ChangeLog | 5 + fonts/utilities/ps2pk/basename.c | 3 +- 17 files changed, 1191 insertions(+), 1165 deletions(-) create mode 100644 fonts/euler-math/Euler-Math.ltx create mode 100644 fonts/euler-math/Euler-Math.otf create mode 100644 fonts/euler-math/Euler-Math.pdf create mode 100644 fonts/euler-math/README.md create mode 100644 fonts/euler-math/euler-math.sty create mode 100644 fonts/euler-math/neo-euler.sty create mode 100644 fonts/euler-math/unimath-euler.ltx create mode 100644 fonts/euler-math/unimath-euler.pdf delete mode 100644 fonts/neo-euler/Neo-Euler.ltx delete mode 100644 fonts/neo-euler/Neo-Euler.otf delete mode 100644 fonts/neo-euler/Neo-Euler.pdf delete mode 100644 fonts/neo-euler/README.md delete mode 100644 fonts/neo-euler/neo-euler.sty delete mode 100644 fonts/neo-euler/unimath-euler.ltx delete mode 100644 fonts/neo-euler/unimath-euler.pdf (limited to 'fonts') diff --git a/fonts/euler-math/Euler-Math.ltx b/fonts/euler-math/Euler-Math.ltx new file mode 100644 index 0000000000..b187c48869 --- /dev/null +++ b/fonts/euler-math/Euler-Math.ltx @@ -0,0 +1,449 @@ +\RequirePackage{pdfmanagement-testphase} +\DeclareDocumentMetadata{pdfstandard=A-2b, lang=en-GB} +\documentclass[a4paper,12pt]{scrartcl} + +\usepackage{amsmath, array, varioref} +\usepackage[british]{babel} +\usepackage{fourier-orns} +\usepackage{euler-math} +\setmainfont{cmunorm.otf} + [BoldFont = cmunobx.otf , + ItalicFont = cmunoti.otf , + BoldItalicFont = cmunobi.otf + ] +\setsansfont{Cabin}[Scale=MatchLowercase] +\setmonofont{Inconsolatazi4}[Scale=MatchLowercase,StylisticSet={2,3}] +\usepackage{subfig} +\captionsetup[subtable]{position=top} +\usepackage{realscripts} +\usepackage{microtype} +\usepackage{hyperref} +\hypersetup{pdftitle={Euler-Math User’s Guide}, + pdfauthor={Daniel FLIPO}, + bookmarksopen, + colorlinks + } +\newcommand*{\hlabel}[1]{\phantomsection\label{#1}} + +\newcommand*{\NEOTF}{Euler-Math} +\newcommand*{\pkg}[1]{\texttt{#1}} +\newcommand*{\file}[1]{\texttt{#1}} +\newcommand*{\opt}[1]{\texttt{#1}} +\newcommand*{\cmd}[1]{\texttt{\textbackslash #1}}\newcommand*{\showtchar}[1]{\cmd{#1}~\csname #1\endcsname} +\newcommand*{\showmchar}[1]{\cmd{#1}~$(\csname #1\endcsname)$} +\newcommand*{\showmchardollar}[1]{\texttt{\$\cmd{#1}\$}~$(\csname #1\endcsname)$} + +\renewcommand{\labelitemi}{\lefthand} + +\title{Euler Math font, OTF version} +\author{Daniel Flipo \\ \texttt{daniel.flipo@free.fr}} + +\newcommand*{\version}{0.30} + +\begin{document} +\maketitle + +\section{What is \NEOTF{}?} + +\NEOTF{} is a fork of the Euler project initiated by Khaled Hosny in 2009 +and abandoned in 2016% +\footnote{See \url{https://github.com/aliftype/euler-otf}}. +The original font name `Neo~Euler’, has been changed to `Euler~Math’, the file +name is now \file{Euler-Math.otf}. + +\file{Euler-Math.otf} is an OpenType version of Hermann Zapf’s Euler maths font, +as the original font it contains three alphabets $Euler Roman$, +$\symscr{SCRIPT}$ and $\symfrak{Euler Fraktur}$ (none of them being suitable +for typesetting text) and has some specificities: +\begin{itemize} +\item it is an \emph{upright} maths font, Latin and Greek letters are + \emph{not available} in italic or bold italic shape (only upright and bold) ; +\item integral symbols are upright too; +\item all inequalities symbols are \emph{slanted}, so \cmd{leq} and geq are + printed as $\leq$ and $\geq$ (same as \cmd{leqslant} and \cmd{geqslant}). +\end{itemize} + +\NEOTF{} requires LuaTeX or XeTeX as engine and the \pkg{unicode-math} package% +\footnote{Please read the documentation \file{unicode-math.pdf}.}. + +Coverage: currently, all Plain, LaTeX and AMS maths symbols are provided; sans +serif and typewriter families of Latin and Greek letters and digits are not +included. + +Please note that the current version (\version) is \emph{experimental, +do expect metrics and glyphs to change} until version 1.0 is reached. +Comments, suggestions and bug reports are welcome! + +\pagebreak[4] +\section{Usage} + +\subsection{Calling \cmd{setmathfont}} + +A basic call for \NEOTF{} would be: +\begin{verbatim} +\usepackage[math-style=upright]{unicode-math} +\setmathfont{Euler-Math.otf} % Call by file name or +\setmathfont{Euler Math} % Call by font name or +\end{verbatim} +this loads \NEOTF{} as maths font% +\footnote{Both calls work equally well with LuaTeX; with XeTeX a call by font + name will fail unless the font is declared as a \emph{system font}.} + with the default options, see subsections~\ref{ssection-cv}, + \ref{ssection-ss} and~\ref{ssec-other-features} for customisation. + +Please note that the three sets of text fonts have to be chosen separately. + +\subsection{Calling \pkg{euler-math.sty} (recommended)} + +As an alternative to load \NEOTF{} you can type:\\[.5\baselineskip] +\verb+\usepackage{euler-math}+\\[.5\baselineskip] +\verb+\usepackage[ +\textit{options} +\footnote{Possible \textit{options} are \opt{Scale=} or any of the options + described in sections \ref{ssection-cv}, \ref{ssection-ss} and + \ref{ssec-other-features}.}% +\verb+ ]{euler-math}+\\[.5\baselineskip] +it loads \pkg{unicode-math} with the \opt{math-style=upright} option and +sets Euler-Math as maths font but does a bit more: +\begin{enumerate} +\item it checks at \verb+\begin{document}+ if packages \pkg{amssymb} or + \pkg{latexsym} are loaded and issues warnings in case they are; +\item it provides aliases for glyphs named differently in Unicode, so that + \pkg{latexsym} or AMS names are also available; +\item it defines some specific maths characters \showmchar{varemptyset}, etc. +\end{enumerate} + +The \pkg{euler-math.sty} package is meant to replace the \pkg{eulervm.sty} +package for users switching from pdfLaTeX to LuaLaTeX or XeLaTeX. +It does not interfere with text fonts which have to be chosen separately. + +\section{What is provided?} + +\NEOTF{} provides all glyphs available in the \pkg{amssymb} and \pkg{latexsym} +packages and many more, f.i. lots of extensible accents and arrows. + +These two packages \emph{should not} be loaded as they might override \NEOTF{} +glyphs. + +As mentioned above, there is neither italic nor bold italic shapes. +Furthermore, the font has currently no sans-serif, no typewriter family +included. Fraktur and Blackboard Bold styles are included. +See in section~\vref{ssec-math-alphabets} how to choose +from other maths fonts if sans-serif or typewriter glyphs are needed. + +A full list of available glyphs is shown in file \file{unimath-euler.pdf}. + +\subsection{Character variants} +\label{ssection-cv} + +\NEOTF{} provides fourteen ``Character Variants’’ options, listed on +table~\vref{cv}, to choose between different glyphs for Greek characters +and some others. +\begin{table}[ht] + \centering \caption{Character variants.} + \hlabel{cv} + \begin{tabular}{@{}>{\ttfamily}lccl@{}} + \hline + & Default & Variant & Name\\ + \hline + cv01 & $\hslash$ & $\muphbar$ & \cmd{hslash} \\ + cv02 & $\emptyset$ & $\varemptyset$ & \cmd{emptyset} \\ + cv03 & $\epsilon$ & $\varepsilon$ & \cmd{epsilon} \\ + cv04 & $\kappa$ & $\varkappa$ & \cmd{kappa} \\ + cv05 & $\pi$ & $\varpi$ & \cmd{pi} \\ + cv06 & $\phi$ & $\varphi$ & \cmd{phi} \\ + cv09 & $\theta$ & $\vartheta$ & \cmd{theta} \\ + cv10 & $\Theta$ & $\varTheta$ & \cmd{Theta}\\ + \hline + \end{tabular} +\end{table} + +For instance, to get \cmd{epsilon} and \cmd{phi} typeset as $\varepsilon$ +and $\varphi$ instead of $\epsilon$ and $\phi$ (with matching bold variants +$\symbf{\varepsilon}$ and $\symbf{\varphi}$), you can +add option \verb+CharacterVariant={3,6}+ to the \cmd{setmathfont} call: +\begin{verbatim} +\setmathfont{Euler-Math.otf}[CharacterVariant={3,6}] +\end{verbatim} + +Please note that curly braces are mandatory whenever more than one +``Character Variant’’ is selected. + +Note about \cmd{hbar}: \pkg{unicode-math} defines \cmd{hbar} as +\cmd{hslash} (U+210F) while \pkg{amsmath} provides two different glyphs +(h with horizontal or diagonal stroke).\\ +\pkg{euler-math} follows \pkg{unicode-math}; the h with horizontal +stroke can be printed using \cmd{hslash} or \cmd{hbar} together with character +variant \opt{cv01} or with \cmd{muphbar} (replacement for AMS’ command +\cmd{hbar}). + +\subsection{Stylistic sets} +\label{ssection-ss} + +\NEOTF{} provides two ``Stylistic Sets’’ options to choose between different +glyphs for families of maths symbols. + +\verb+StylisticSet=5+, alias \verb+Style=smaller+, converts some symbols into +their smaller variants, see table~\vref{ss05}. + +\verb+StylisticSet=6+, alias \verb+Style=subsetneq+, converts some inclusion +symbols, see table~\vref{ss06}. +\begin{table}[ht] + \centering + \caption{Stylistic Sets 5 and 6} + \subfloat[\opt{Style=smaller\quad (+ss05)}]{\hlabel{ss05}% + \begin{tabular}[t]{@{}lcc@{}} + \hline + Command & Default & Variant \\ + \hline + \cmd{in} & $\in$ & $\smallin$ \\ + \cmd{ni} & $\ni$ & $\smallni$ \\ + \cmd{mid} & $\mid$ & $\shortmid$ \\ + \cmd{nmid} & $\nmid$ & $\nshortmid$ \\ + \cmd{parallel} & $\parallel$ & $\shortparallel$ \\ + \cmd{nparallel} & $\nparallel$ & $\nshortparallel$ \\ + \hline + \end{tabular} + }\hspace{10mm} % eof subfloat + \subfloat[\opt{Style=subsetneq\quad (+ss06)}]{\hlabel{ss06}% + \begin{tabular}[t]{@{}lcc@{}} + \hline + Command & Default & Variant \\ + \hline + \cmd{subsetneq} & $\subsetneq$ & $\varsubsetneq$ \\ + \cmd{supsetneq} & $\supsetneq$ & $\varsupsetneq$ \\ + \cmd{subsetneqq} & $\subsetneqq$ & $\varsubsetneqq$ \\ + \cmd{supsetneqq} & $\supsetneqq$ & $\varsupsetneqq$ \\ + \hline + \end{tabular} + }% eof subfloat +\end{table} + + +To enable Stylistic Sets 5 and 6 for \NEOTF{}, you should enter +\begin{verbatim} +\setmathfont{Euler-Math.otf}[StylisticSet={5,6}] or +\usepackage[Style={smaller,subsetneq}]{Euler-Math.otf} +\end{verbatim} +{\samepage then, \verb+\[A \subsetneq B\quad x \in E \quad D \parallel D' \]+ +will print as +\setmathfont{Euler-Math.otf}[StylisticSet={5,6}] +\[A \subsetneq B\quad x \in E \quad D \parallel D' \] +instead of +\setmathfont{Euler-Math.otf} +\[A \subsetneq B\quad x \in E \quad D \parallel D' \] +} + +\subsection{Other font features} +\label{ssec-other-features} + +To get oldstyle numbers in maths, the feature \opt{+onum} is available: +\begin{verbatim} +\setmathfont{Euler-Math.otf}[Numbers=OldStyle] or +\usepackage[Style={fulloldstyle}]{euler-math} +\end{verbatim} + +\setmathfont{Euler-Math.otf}[Numbers=OldStyle] +$0123456789, \symbf{0123456789}$ +\setmathfont{Euler-Math.otf} + +\subsection{Standard \LaTeX{} math commands} +\label{ssec-math-commands} + +All standard \LaTeX{} maths commands, all \pkg{amssymb} commands and all +\pkg{latexsym} commands are supported by \NEOTF{}, for some of them loading +\pkg{euler-math.sty} is required. + +Various wide accents are also supported: +\begin{itemize} +\item \cmd{wideoverbar} and \cmd{mathunderbar}% + \footnote{\cmd{overline} and \cmd{underline} are not font related, + they are based on \cmd{rule}.} + \[\wideoverbar{x}\quad \wideoverbar{xy}\quad \wideoverbar{xyz}\quad + \wideoverbar{A\cup B}\quad \wideoverbar{A\cup (B\cap C)\cup D}\quad + \mathunderbar{m+n+p}\] + +\item \cmd{widehat} and \cmd{widetilde} +\[\widehat{x}\; \widehat{xx} \;\widehat{xxx} \;\widehat{xxxx}\; + \widehat{xxxxx} \;\widehat{xxxxxx} \;\widetilde{x}\; \widetilde{xx}\; + \widetilde{xxx} \;\widetilde{xxxx} \;\widetilde{xxxxx}\; + \widetilde{xxxxxx}\] + +\item \cmd{widecheck} and \cmd{widebreve} + \[\widecheck{x}\quad \widecheck{xxxx}\quad \widecheck{xxxxxx}\quad + \widebreve{x}\quad \widebreve{xxxx}\quad \widebreve{xxxxxx}\] + +\item \cmd{overparen} and \cmd{underparen} + \[\overparen{x}\quad \overparen{xy}\quad \overparen{xyz}\quad + \mathring{\overparen{A\cup B}}\quad + \overparen{A\cup (B\cap C)\cup D}^{\smwhtcircle}\quad + \overparen{x+y}^{2}\quad \overparen{a+b+...+z}^{26}\] +\vspace{-\baselineskip} +\[\underparen{x}\quad \underparen{xz} \quad \underparen{xyz} + \quad \underparen{x+z}_{2}\quad \underparen{a+b+...+z}_{26}\] + +\item \cmd{overbrace} and \cmd{underbrace} + \[\overbrace{a}\quad \overbrace{ab}\quad \overbrace{abc}\quad + \overbrace{abcd}\quad \overbrace{abcde}\quad + \overbrace{a+b+c}^{3}\quad \overbrace{ a+b+. . . +z }^{26}\] + \vspace{-\baselineskip} + \[\underbrace{a}\quad\underbrace{ab}\quad\underbrace{abc}\quad + \underbrace{abcd}\quad \underbrace{abcde}\quad + \underbrace{a+b+c}_{3} \quad \underbrace{ a+b+...+z }_{26}\] + +\item \cmd{overbracket} and \cmd{underbracket} + \[\overbracket{a}\quad \overbracket{ab}\quad \overbracket{abc}\quad + \overbracket{abcd}\quad \overbracket{abcde}\quad + \overbracket{a+b+c}^{3}\quad \overbracket{ a+b+. . . +z }^{26}\] + \vspace{-\baselineskip} + \[\underbracket{a}\quad\underbracket{ab}\quad\underbracket{abc}\quad + \underbracket{abcd}\quad \underbracket{abcde}\quad + \underbracket{a+b+c}_{3} \quad \underbracket{ a+b+...+z }_{26}\] + +\item \cmd{overrightarrow}, \cmd{overleftarrow} and \cmd{overleftrightarrow} + \[\overrightarrow{v}\quad \overrightarrow{M}\quad \overrightarrow{vv} + \quad \overrightarrow{AB}\quad \overrightarrow{ABC} + \quad \overrightarrow{ABCD} \quad \overrightarrow{ABCDEFGH}. + \] + \vspace{-\baselineskip} + \[\overleftarrow{v}\quad \overleftarrow{M}\quad \overleftarrow{vv} + \quad \overleftarrow{AB}\quad \overleftarrow{ABC} + \quad \overleftarrow{ABCD} \quad \overleftarrow{ABCDEFGH}\] + \vspace{-\baselineskip} + \[\overleftrightarrow{v}\quad \overleftrightarrow{M}\quad + \overleftrightarrow{vv}\quad + \overleftrightarrow{AB}\quad \overleftrightarrow{ABC}\quad + \overleftrightarrow{ABCD} \quad \overleftrightarrow{ABCDEFGH}\] + +\item \cmd{overrightharpoon} and \cmd{overleftharpoon} + \[\overrightharpoon{v}\quad \overrightharpoon{M}\quad \overrightharpoon{vv} + \quad \overrightharpoon{AB}\quad \overrightharpoon{ABC} + \quad \overrightharpoon{ABCD} \quad \overrightharpoon{ABCDEFGH}. + \] + \vspace{-\baselineskip} + \[\overleftharpoon{v}\quad \overleftharpoon{M}\quad \overleftharpoon{vv} + \quad \overleftharpoon{AB}\quad \overleftharpoon{ABC} + \quad \overleftharpoon{ABCD} \quad \overleftharpoon{ABCDEFGH}\] + +\item \cmd{underrightarrow}, \cmd{underleftarrow} and \cmd{underleftrightarrow} + \[\underrightarrow{v}\quad \underrightarrow{M}\quad \underrightarrow{vv} + \quad \underrightarrow{AB}\quad \underrightarrow{ABC} + \quad \underrightarrow{ABCD} \quad \underrightarrow{ABCDEFGH}. + \] + \vspace{-\baselineskip} + \[\underleftarrow{v}\quad \underleftarrow{M}\quad \underleftarrow{vv} + \quad \underleftarrow{AB}\quad \underleftarrow{ABC} + \quad \underleftarrow{ABCD} \quad \underleftarrow{ABCDEFGH}\] + \vspace{-\baselineskip} + \[\underleftrightarrow{v}\quad \underleftrightarrow{M}\quad + \underleftrightarrow{vv}\quad + \underleftrightarrow{AB}\quad \underleftrightarrow{ABC}\quad + \underleftrightarrow{ABCD} \quad \underleftrightarrow{ABCDEFGH}\] + +\item \cmd{underrightharpoondown} and \cmd{underleftharpoondown} + \[\underrightharpoondown{v} \quad \underrightharpoondown{M}\quad + \underrightharpoondown{vv}\quad \underrightharpoondown{AB}\quad + \underrightharpoondown{ABC}\quad \underrightharpoondown{ABCD} + \quad \underrightharpoondown{ABCDEFGH}. + \] + \vspace{-\baselineskip} + \[\underleftharpoondown{v} \quad \underleftharpoondown{M}\quad + \underleftharpoondown{vv}\quad \underleftharpoondown{AB}\quad + \underleftharpoondown{ABC}\quad \underleftharpoondown{ABCD} + \quad \underleftharpoondown{ABCDEFGH}. + \] + +\item Finally \cmd{widearc} and \cmd{overrightarc} (loading + \pkg{euler-math.sty} is required) +\[\widearc{AMB}\quad \overrightarc{AMB}\] +\end{itemize} + +\subsection{Mathematical alphabets} +\label{ssec-math-alphabets} + +\begin{itemize} +\item All Latin and Greek characters are available in upright + and bold via the \verb+\symup{}+ and \verb+\symbf{}+ commands. + +\item Calligraphic alphabet (\cmd{symscr} or \cmd{symcal} or + \cmd{mathcal} command), uppercase:\\ + $\symscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\ + also in boldface (\cmd{symbfscr},\cmd{symbfcal} or \cmd{mathbfcal} command):\\ + $\symbfscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ + +\item Blackboard-bold alphabet (\cmd{symbb} or \cmd{mathbb} command), + uppercase, lowercase and digits: + + $\symbb{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ + + $\symbb{abcdefghijklmnopqrstuvwxyz\quad 0123456789}$ + +\item Fraktur alphabet medium and bold + (\cmd{symfrak}, or \cmd{symbffrak} commands): + + $\symfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ\quad abcdefghijklmnopqrstuvwxyz}$\\ + $\symbffrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\ + \hphantom{$\symfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ\quad}$}% + $\symbffrak{abcdefghijklmnopqrstuvwxyz}$ + +\item Sans serif and Typewriter alphabets have to be imported from another + math font, f.i. \file{STIXTwoMath}: +\begin{verbatim} +\setmathfont{STIXTwoMath-Regular.otf}[range=sfup,Scale=MatchUppercase] +$\symsfup{ABCD...klm}$ +\end{verbatim} +\setmathfont{STIXTwoMath-Regular.otf}[range=sfup,Scale=MatchUppercase] +$\symsfup{ABCDEFGHIJKLM abcdefghijklm}$ + +\begin{verbatim} +\setmathfont{STIXTwoMath-Regular.otf}[range=tt,Scale=MatchUppercase] +$\symtt{ABCDE...XYZ abcde...xyz}$ +\end{verbatim} +\setmathfont{STIXTwoMath-Regular.otf}[range=tt,Scale=MatchUppercase] +$\symtt{ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz}$ +\end{itemize} + + +\subsection{Missing symbols} + +\NEOTF{} does not aim at being as complete as \file{STIXTwoMath-Regular} or +\file{Cambria}, the current glyph coverage compares with TeXGyre math fonts. +In case some symbols do not show up in the output file, you will see warnings +in the \file{.log} file, for instance: + +\setmathfont{STIXTwoMath-Regular.otf}[range={"2964}] +\texttt{Missing character: There is no }$⥤$% +\texttt{ (U+2964) in font Euler Math} + +Borrowing them from a more complete font, say \file{Asana-Math}, +is a possible workaround: +\verb+\setmathfont{Asana-Math.otf}[range={"2964},Scale=1.02]+\\ +scaling is possible, multiple character ranges are separated with commas:\\ +\verb+\setmathfont{Asana-Math.otf}[range={"294A-"2951,"2964,"2ABB-"2ABE}]+ + +Let’s mention \pkg{albatross}, a useful tool to find out the list of fonts +providing a given glyph: f.i. type in a terminal ``\texttt{albatross U+2964}’’, +see the manpage or \file{albatross-manual.pdf}. + +\section{Acknowledgements} + +Khaled Hosni achieved most of the portage of Hermann Zapf’s Euler font to +Unicode between 2009 and 2016. After Hermann’s death in 2015, he decided to +stop the project but his \file{euler.otf} font, although not available on CTAN, +continued to be used, see +\href{https://tex.stackexchange.com/questions/425098/which-opentype-math-fonts-are-available}{https://tex.stackexchange.com/questions/425098/}. +I offered Khaled my help to finalise the font, we agreed I would try to +complete the font and maintain it on my own. + +\bigskip +\begin{center}\Huge +\decotwo +\end{center} + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-engine: luatex +%%% TeX-master: t +%%% coding: utf-8 +%%% End: diff --git a/fonts/euler-math/Euler-Math.otf b/fonts/euler-math/Euler-Math.otf new file mode 100644 index 0000000000..b540610805 Binary files /dev/null and b/fonts/euler-math/Euler-Math.otf differ diff --git a/fonts/euler-math/Euler-Math.pdf b/fonts/euler-math/Euler-Math.pdf new file mode 100644 index 0000000000..781776e0fa Binary files /dev/null and b/fonts/euler-math/Euler-Math.pdf differ diff --git a/fonts/euler-math/README.md b/fonts/euler-math/README.md new file mode 100644 index 0000000000..5194e1bf6e --- /dev/null +++ b/fonts/euler-math/README.md @@ -0,0 +1,68 @@ +Euler-Math package +==================== + +## Description + +'Euler-Math.otf' (formerly named 'Neo-Euler.otf') is an OpenType version of +Hermann Zapf’s Euler maths font. It is the continuation of the Euler project +initiated by Khaled Hosny in 2009 and abandoned in 2016. +A style file 'euler-math.sty' is provided as a replacement of the +'eulervm.sty' package for LuaLaTeX and XeLaTeX users. + +## Contents + +* Euler-Math.otf OpenType maths font +* euler-math.sty LaTeX style file: replaces eulervm.sty for LuaTeX/XeTeX +* neo-euler.sty For compatibility with the former name +* Euler-Math.pdf Documentation in PDF format +* Euler-Math.ltx LaTeX source of Euler-Math.pdf +* unimath-euler.pdf Modified version of unimath-symbols.pdf + showing available Euler-Math symbols compared to + LatinModern, STIXTwo, Erewhon, TeXGyrePagella and Asana. +* unimath-euler.ltx LaTeX source of unimath-concrete.pdf +* README.md (this file) + +## Installation + +This package is meant to be installed automatically by TeXLive, MikTeX, etc. +Otherwise, the package can be installed under TEXMFHOME or TEXMFLOCAL, f.i. +Euler-Math.otf in directory texmf-local/fonts/opentype/public/euler-math/ +and euler-math.sty in directory texmf-local/tex/latex/euler-math/. +Documentation files and their sources can go to directory +texmf-local/doc/fonts/public/euler-math/ + +Don't forget to rebuild the file database (mktexlsr or so) if you install +under TEXMFLOCAL. + +Finally, make the system font database aware of the Euler-Math font +(fontconfig under Linux). + +## License + +* The font 'Euler-Math.otf' is licensed under the SIL Open Font License, +Version 1.1. This license is available with a FAQ at: +http://scripts.sil.org/OFL +* The other files are distributed under the terms of the LaTeX Project +Public License from CTAN archives in directory macros/latex/base/lppl.txt. +Either version 1.3 or, at your option, any later version. + +## Changes + +* First public version: 0.20 + +* v0.21: + - Delimiters, integrals, sum, prod etc. are now vertically + centred by design on the maths axis (required by luametatex). +* v0.22: + - Sizes of vertical variants of \lAngle, \rAngle, \langle and + \rangle corrected. + - Added extensible integral for U+222B (usable with luametatex). +* v0.30: + - *Name of the package changed from Neo-Euler to Euler-Math*; + the former 'neo-euler.sty' style file has been kept for compatibility, + it now loads 'euler-math.sty' and warns about the change. + +--- +Copyright 2009-2016 Khaled Hosny +Copyright 2022- Daniel Flipo +E-mail: daniel (dot) flipo (at) free (dot) fr diff --git a/fonts/euler-math/euler-math.sty b/fonts/euler-math/euler-math.sty new file mode 100644 index 0000000000..cf678d50c0 --- /dev/null +++ b/fonts/euler-math/euler-math.sty @@ -0,0 +1,127 @@ +\NeedsTeXFormat{LaTeX2e}[2018/01/01] +\def\fileversion{0.30} +\def\filedate{2022-11-06} +\ProvidesPackage{euler-math}[\filedate\space\fileversion] + +% Ensure luatex or xetex engine +\RequirePackage{iftex}[2019/10/24] +\RequireTUTeX +\RequirePackage[math-style=upright]{unicode-math} + +\newopentypefeature{Style}{smaller}{+ss05} +\newopentypefeature{Style}{subsetneq}{+ss06} + +% Options: forward them to \setmathfont. +\RequirePackage{xkeyval} +\newtoks\NEUtoks +\newcommand*{\Store@KV@Option}[2]{% + \NEUtoks=\expandafter{\the\NEUtoks #1={#2},}} + +\DeclareOptionX{CharacterVariant}{\Store@KV@Option{CharacterVariant}{#1}} +\DeclareOptionX{StylisticSet}{\Store@KV@Option{StylisticSet}{#1}} +\DeclareOptionX{Style}{\Store@KV@Option{Style}{#1}} +\DeclareOptionX{Scale}{\Store@KV@Option{Scale}{#1}} +\DeclareOptionX{Numbers}{\Store@KV@Option{Numbers}{#1}} +\ProcessOptionsX + +% Following Joseph Wright in https://tex.stackexchange.com/questions/451 +\begingroup + \edef\temp{% + \endgroup + \noexpand\setmathfont{Euler-Math.otf}% + [\unexpanded\expandafter{\the\NEUtoks}]% + } + \temp + +\AtBeginDocument{% + % Euler specific math + % \Umathchardef\ = + % : \mathord=0 \mathrel=3 ; =0 + \Umathchardef\muphbar = 0 0 "0127 \relax + \Umathchardef\varemptyset = 0 0 "E021 \relax + \Umathchardef\mbfwp = 0 0 "E045 \relax + \Umathchardef\mbfdotlessi = 0 0 "E046 \relax + \Umathchardef\mbfdotlessj = 0 0 "E047 \relax + \Umathchardef\mbfhbar = 0 0 "E048 \relax + \let\lesseqslantgtr\lesseqgtr + \let\gtreqslantless\gtreqless + \let\lesseqqslantgtr\lesseqqgtr + \let\gtreqqslantless\gtreqqless + \let\nleqqslant\nleqq + \let\ngeqqslant\ngeqq +% \widearc and\overrightarc + \newcommand*{\widearc}{\Umathaccent 0 0 "E540 }% + \newcommand*{\overrightarc}{\Umathaccent 0 0 "20D5 }% + % amssymb + \@ifpackageloaded{amssymb}% + {\PackageWarning{euler-math}{% + Euler-Math provides all AMS symbols.\MessageBreak + Loading amssymb.sty is not advisable.\MessageBreak + Reported}% + }% + {% AMS Symbols not referenced in unicode-math-table.tex + % \Umathchardef\ = + % : \mathord=0 \mathrel=3 ; =0 + \Umathchardef\circledR = 0 0 "24C7 \relax + \Umathchardef\circledS = 0 0 "24C8 \relax + \Umathchardef\diagup = 0 0 "E0A0 \relax + \Umathchardef\diagdown = 0 0 "E0A1 \relax + \Umathchardef\shortmid = 3 0 "E0A2 \relax + \Umathchardef\shortparallel = 3 0 "E0A3 \relax + \Umathchardef\nshortmid = 3 0 "E0A4 \relax + \Umathchardef\nshortparallel = 3 0 "E0A5 \relax + \Umathchardef\lvertneqq = 3 0 "E0A6 \relax + \Umathchardef\gvertneqq = 3 0 "E0A7 \relax + \Umathchardef\nleqslant = 3 0 "E0A8 \relax + \Umathchardef\ngeqslant = 3 0 "E0A9 \relax + \Umathchardef\nleqq = 3 0 "E0AA \relax + \Umathchardef\ngeqq = 3 0 "E0AB \relax + \Umathchardef\varsubsetneq = 3 0 "E0AC \relax + \Umathchardef\varsupsetneq = 3 0 "E0AD \relax + \Umathchardef\nsubseteqq = 3 0 "E0AE \relax + \Umathchardef\nsupseteqq = 3 0 "E0AF \relax + \Umathchardef\varsubsetneqq = 3 0 "E09C \relax + \Umathchardef\varsupsetneqq = 3 0 "E09D \relax + \Umathchardef\npreceq = 3 0 "E09E \relax + \Umathchardef\nsucceq = 3 0 "E09F \relax + \let\centerdot\cdotp + \let\restriction\upharpoonright + \let\doteqdot\Doteq + \let\doublecup\Cup + \let\doublecap\Cap + \let\llless\lll + \let\gggtr\ggg + \let\circlearrowleft\acwopencirclearrow + \let\circlearrowright\cwopencirclearrow + \let\lozenge\mdlgwhtlozenge + \let\blacklozenge\mdlgblklozenge + \let\square\mdlgwhtsquare + \let\blacksquare\mdlgblksquare + \let\dashleftarrow\leftdasharrow + \let\dashrightarrow\rightdasharrow + \let\ntriangleleft\nvartriangleleft + \let\ntriangleright\nvartriangleright + \let\varpropto\propto + \let\thicksim\sim + \let\thickapprox\approx + \let\smallsmile\smile + \let\smallfrown\frown + }% + % latexsym + \@ifpackageloaded{latexsym}% + {\PackageWarning{euler-math}{% + Euler-Math provides all LaTeX symbols.\MessageBreak + Loading latexsym.sty is not advisable.\MessageBreak + Reported}% + }% + {\let\lhd\vartriangleleft + \let\rhd\vartriangleright + \let\unlhd\trianglelefteq + \let\unrhd\trianglerighteq + \let\leadsto\rightcurvedarrow + \let\Box\lgwhtsquare + \let\Diamond\mdlgwhtdiamond + }% +} + +\endinput diff --git a/fonts/euler-math/neo-euler.sty b/fonts/euler-math/neo-euler.sty new file mode 100644 index 0000000000..575b524f9a --- /dev/null +++ b/fonts/euler-math/neo-euler.sty @@ -0,0 +1,15 @@ +\ProvidesPackage{neo-euler}[2022-11-06 v0.23] + +\PackageError{euler-math}{\MessageBreak + Former package `neo-euler’ has been renamed\MessageBreak + to `euler-math’. Please use this new name.\MessageBreak + The font has been renamed to `Euler-Math.otf’% +} +{% + I’ll input `euler-math’ instead of `neo-euler’,\MessageBreak + but please correct your input file!% +} + +\input{euler-math.sty} + +\endinput diff --git a/fonts/euler-math/unimath-euler.ltx b/fonts/euler-math/unimath-euler.ltx new file mode 100644 index 0000000000..82a349fe38 --- /dev/null +++ b/fonts/euler-math/unimath-euler.ltx @@ -0,0 +1,525 @@ +%%^^A%% unimath-symbols.ltx -- part of UNICODE-MATH +%%^^A%% Listing of Unicode mathematics symbols using a variety of fonts. + +%!TEX TS-program = LuaLaTeX + +%% Changes by David Carlisle: https://github.com/wspr/unicode-math/issues/570 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% SYMBOLS DEFINED BY UNICODE-MATH +%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[final]{article} +\makeatletter + +\usepackage{ragged2e,setspace,booktabs,catchfile,shortvrb,geometry,metalogo,textcomp,longtable,array,hyperref} + +\usepackage{ninecolors} +\NineColors{saturation=high} + +\geometry{margin=24mm} +\hypersetup{colorlinks,linkcolor=black} + +\def\cmd#1{\texttt{\textbackslash\expandafter\@gobble\string#1}} + +\usepackage{fontspec} +\setmainfont{texgyrepagella}% + [ + Extension = .otf, + UprightFont = *-regular, + ItalicFont = *-italic, + BoldFont = *-bold, + BoldItalicFont = *-bolditalic, + Ligatures=TeX, + Numbers={Lowercase,Monospaced}, + ] +\usepackage[math-style=literal,bold-style=literal]{unicode-math} + +\ExplSyntaxOn +\cs_generate_variant:Nn \fontspec_set_fontface:NNnn {c} + +\def\FINISH{} +\newcount\Nfonts +\def\defmathfont#1#2#3#4{ + \Nfonts=\numexpr\Nfonts+1\relax + \tl_set:cn {L#1} {#4} + \newcounter{#1} + \setcounter{#1}{-1} + \setmathfont[version=#1,SizeFeatures={ + {Size=-10, Colour=999999}, + {Size=10-, Colour=#3}}]{#2} + \fontspec_set_fontface:cNnn {#1} \x {ItalicFont={},BoldFont={}} {#2} + \tl_gput_right:Nn \FINISH { + \refstepcounter{#1}\label{count:#1} + } +} +% Added (df) for euler +\def\defmathupfont#1#2#3#4{ + \Nfonts=\numexpr\Nfonts+1\relax + \tl_set:cn {L#1} {#4} + \newcounter{#1} + \setcounter{#1}{-1} + \setmathfont[version=#1,math-style=upright,SizeFeatures={ + {Size=-10, Colour=999999}, + {Size=10-, Colour=#3}}]{#2} + \fontspec_set_fontface:cNnn {#1} \x {ItalicFont={},BoldFont={}} {#2} + \tl_gput_right:Nn \FINISH { + \refstepcounter{#1}\label{count:#1} + } +} +\ExplSyntaxOff + +\defmathfont{lm}{latinmodern-math.otf}{CC6666}{L} +%\defmathfont{xits}{XITSMath-Regular.otf}{6666CC}{X} +\defmathfont{stix}{STIXTwoMath-Regular.otf}{66CC66}{S} +\defmathfont{erewhon}{Erewhon-Math.otf}{AA6666}{E} +\defmathfont{pagella}{texgyrepagella-math.otf}{66CCCC}{P} +\defmathfont{asana}{Asana-Math.otf}{AACC66}{A} +\defmathupfont{euler}{Euler-Math.otf}{AA66CC}{N} + +\def\INPUT{\input{unicode-math-table.tex}} +\def\TABLE{% +\par\noindent +\setlength\tabcolsep{5pt}% +\begin{longtable}[l]{@{}l *{\Nfonts}{c} lp{100pt}@{}} + \toprule + \textsc{usv} & \Llm & \Lstix & \Lerewhon & \Lpagella & \Lasana & \Leuler + & Macro & Description \\ + \midrule \endhead + \INPUT\\ + \bottomrule +\end{longtable} +} +\makeatletter +\def\USV#1{\footnotesize\scshape\MakeLowercase{u+\@gobble#1}} +\makeatother +\def\CMD#1{\footnotesize\cmd#1} +\def\DESC#1{\vspace{-6pt}% + \begin{spacing}{0.5} + \RaggedRight\scriptsize #1% + \end{spacing} +} + +\newcommand\SHOW[1]{% + \def\UnicodeMathSymbol##1##2##3##4{% + \def\1{#1}\def\2{##3}% + \ifx\1\2\PRINTLINE{##1}{##2}{##4}\fi + }% + \TABLE +} +\ExplSyntaxOn +\def\PRINTLINE#1#2#3{ + \def\tempa{ + \USV{#1} & + \SYMB{#2}{lm}{#1} & +% \SYMB{#2}{xits}{#1} & + \SYMB{#2}{stix}{#1} & + \SYMB{#2}{erewhon}{#1} & + \SYMB{#2}{pagella}{#1} & + \SYMB{#2}{asana}{#1} & + \SYMB{#2}{euler}{#1} & + \CMD{#2} + \tl_if_in:NnT \PLAIN {#2} + { + \makebox[0pt][l] + { \color[gray]{0.7} \textsuperscript{\sffamily (p)} } + } + \tl_if_in:NnT \LTXSYM {#2} + { + \makebox[0pt][l] + { \color[gray]{0.7} \textsuperscript{\sffamily (l)} } + } + \tl_if_in:NnT \AMSSYMB {#2} + { + \makebox[0pt][l] + { \color[gray]{0.7} \textsuperscript{\sffamily (a)} } + } + & + \DESC{#3} \\ + }% + \expandafter\tempa +} +\ExplSyntaxOff +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \refstepcounter{#2}% + \mathversion{#2}% + $\displaystyle#1$% + \fi +} + +\def\PLAIN{\alpha\beta\gamma\delta\epsilon\zeta\eta\theta\iota\kappa\lambda\mu\nu\xi\pi\rho\sigma\tau\upsilon\phi\chi\psi\omega\varepsilon\vartheta\varpi\varrho\varsigma\varphi\Gamma\Delta\Theta\Lambda\Xi\Pi\Sigma\Upsilon\Phi\Psi\Omega +% +\aleph\hbar\imath\jmath\ell\wp\Re\Im\partial\infty\prime\emptyset\nabla\surd\top\bot\angle\triangle\forall\exists\neg\flat\natural\sharp\clubsuit\diamondsuit\heartsuit\spadesuit +% +\coprod\bigvee\bigwedge\biguplus\bigcap\bigcup\int\prod\sum\bigotimes\bigoplus\bigodot\oint\bigsqcup\smallint +% +\triangleleft\triangleright\bigtriangleup\bigtriangledown\wedge\land\vee\lor\cap\cup\ddagger\dagger\sqcap\sqcup\uplus\amalg\diamond\bullet\wr\div\odot\oslash\otimes\ominus\oplus\mp\pm\circ\bigcirc\setminus\cdot\ast\times\star\propto\sqsubseteq\sqsupseteq\parallel\mid\dashv\vdash\nearrow\searrow\nwarrow\swarrow\Leftrightarrow\Leftarrow\Rightarrow\neq\ne\lnot\leq\le\geq\ge\succ\prec\approx\succeq\preceq\supset\subset\supseteq\subseteq\in\ni\owns\gg\ll\not\leftrightarrow\leftarrow\gets\rightarrow\to\mapstochar\mapsto\sim\simeq\perp\equiv\asymp\smile\frown\leftharpoonup\leftharpoondown\rightharpoonup\rightharpoondown +% +\joinrel\relbar\Relbar\lhook\hookrightarrow\rhook\hookleftarrow\bowtie\models\Longrightarrow\longrightarrow\longleftarrow\Longleftarrow\longmapsto\longleftrightarrow\Longleftrightarrow\iff +% +\ldotp\cdotp\colon\ldots\cdots\vdots\ddots +% +\acute\grave\ddot\tilde\bar\breve\check\hat\vec\dot\widetilde\widehat +% +\overrightarrow\overleftarrow\overbrace\underbrace\lmoustache\rmoustache\lgroup\rgroup\arrowvert\Arrowvert\bracevert\Vert\vert\uparrow\downarrow\updownarrow\Uparrow\Downarrow\Updownarrow\backslash\rangle\langle\rbrace\lbrace\rceil\lceil\rfloor\lfloor\sqrt} + + +\def\LTXSYM{ +\cong +\notin +\rightleftharpoons +\doteq +\mathring +} + +\def\AMSSYMB{\boxdot\boxplus\boxtimes\square\blacksquare\centerdot\lozenge\blacklozenge\circlearrowright\circlearrowleft\leftrightharpoons\boxminus\Vdash\Vvdash\vDash\twoheadrightarrow\twoheadleftarrow\leftleftarrows\rightrightarrows\upuparrows\downdownarrows\upharpoonright\restriction\downharpoonright\upharpoonleft\downharpoonleft\rightarrowtail\leftarrowtail\leftrightarrows\rightleftarrows\Lsh\Rsh\rightsquigarrow\leftrightsquigarrow\looparrowleft\looparrowright\circeq\succsim\gtrsim\gtrapprox\multimap\therefore\because\doteqdot\Doteq\triangleq\precsim\lesssim\lessapprox\eqslantless\eqslantgtr\curlyeqprec\curlyeqsucc\preccurlyeq\leqq\leqslant\lessgtr\backprime\risingdotseq\fallingdotseq\succcurlyeq\geqq\geqslant\gtrless\vartriangleright\vartriangleleft\trianglerighteq\trianglelefteq\bigstar\between\blacktriangledown\blacktriangleright\blacktriangleleft\vartriangle\blacktriangle\triangledown\eqcirc\lesseqgtr\gtreqless\lesseqqgtr\gtreqqless\Rrightarrow\Lleftarrow\veebar\barwedge\doublebarwedge\measuredangle\sphericalangle\varpropto\smallsmile\smallfrown\Subset\Supset\Cup\doublecup\Cap\doublecap\curlywedge\curlyvee\leftthreetimes\rightthreetimes\subseteqq\supseteqq\bumpeq\Bumpeq\lll\llless\ggg\gggtr\circledS\pitchfork\dotplus\backsim\backsimeq\complement\intercal\circledcirc\circledast\circleddash\lvertneqq\gvertneqq\nleq\ngeq\nless\ngtr\nprec\nsucc\lneqq\gneqq\nleqslant\ngeqslant\lneq\gneq\npreceq\nsucceq\precnsim\succnsim\lnsim\gnsim\nleqq\ngeqq\precneqq\succneqq\precnapprox\succnapprox\lnapprox\gnapprox\nsim\ncong\diagup\diagdown\varsubsetneq\varsupsetneq\nsubseteqq\nsupseteqq\subsetneqq\supsetneqq\varsubsetneqq\varsupsetneqq\subsetneq\supsetneq\nsubseteq\nsupseteq\nparallel\nmid\nshortmid\nshortparallel\nvdash\nVdash\nvDash\nVDash\ntrianglerighteq\ntrianglelefteq\ntriangleleft\ntriangleright\nleftarrow\nrightarrow\nLeftarrow\nRightarrow\nLeftrightarrow\nleftrightarrow\divideontimes\varnothing\nexists\Finv\Game\eth\eqsim\beth\gimel\daleth\lessdot\gtrdot\ltimes\rtimes\shortmid\shortparallel\smallsetminus\thicksim\thickapprox\approxeq\succapprox\precapprox\curvearrowleft\curvearrowright\digamma\varkappa\Bbbk\hslash\backepsilon} + +\input{unicode-math.dtx} + +\begin{document} +\MakeShortVerb\| +\title{Symbols defined by \textsf{unicode-math}} +\author{Will Robertson} +\date{Modified (df) to show Euler Math symbols} +\maketitle + +This document uses the file \texttt{unicode-math-table.tex} +to print every symbol defined by the \textsf{unicode-math} +package. +Use this document to find the command name or the Unicode glyph slot for a symbol that you wish to use. +The following fonts are shown: (with approximate symbol counts) +\begin{itemize} +\item[\Llm] \mathversion{lm} $\mathup{Latin\ Modern\ Math}$ (\ref{count:lm}) +%\item[\Lxits] \mathversion{xits} $\mathup{XITS\ Math}$ (\ref{count:xits}) +\item[\Lstix] \mathversion{stix} $\mathup{STIX\ Math\ Two}$ (\ref{count:stix}) +\item[\Lerewhon] \mathversion{erewhon} $\mathup{Erewhon\ Math}$ (\ref{count:erewhon}) +\item[\Lpagella] \mathversion{pagella} $\mathup{TeX\ Gyre\ Pagella\ Math}$ (\ref{count:pagella}) +\item[\Lasana] \mathversion{asana} $\mathup{Asana\ Math}$ (\ref{count:asana}) +\item[\Leuler] \mathversion{euler} $\mathup{Euler\ Math}$ (\ref{count:euler}) +\end{itemize} +Symbols defined in Plain \TeX\ are indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (p)}} after their macro name. +\LaTeX\ follows Plain \TeX, but defines a handful more, indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (l)}}. +Symbols defined in \textsf{amssymb} are indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (a)}}. + +Note that this list of fonts is not intended to be exhaustive but I am happy to add new fonts by request if they are distributed in \TeX\ Live.\footnote{Only a single \TeX\ Gyre Math font is shown here by design as they all largely have the same symbol coverage.} + +\tableofcontents + +\clearpage +\section{Opening symbols, \cmd\mathopen} +\begingroup +\def\sqrt{\sqrtsign{}} +\def\cuberoot{\cuberootsign{}} +\def\fourthroot{\fourthrootsign{}} +\def\longdivision{\longdivisionsign{}} +\SHOW\mathopen +\endgroup + +\clearpage +\section{Closing symbols, \cmd\mathclose} +\SHOW\mathclose + +\section{Fence symbols, \cmd\mathfence} +\SHOW\mathfence + +\clearpage +\section{Punctuation symbols, \cmd\mathpunct} +\SHOW\mathpunct + +\section{`Over' symbols, \cmd\mathover} +\begingroup +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \refstepcounter{#2}% + \mathversion{#2}% + $\displaystyle #1{\mitx+\mity}$% + \fi +} +\SHOW\mathover +\endgroup + +\section{`Under' symbols, \cmd\mathunder} +\begingroup +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \refstepcounter{#2}% + \mathversion{#2}% + $\displaystyle #1{\mitx+\mity}$% + \fi +} +\SHOW\mathunder +\endgroup + +\clearpage +\section{Accents, \cmd\mathaccent} + +Note that accents will only be properly placed if used with an OpenType font with the necessary information. + +\begingroup +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \refstepcounter{#2}% + \mathversion{#2}% + $\displaystyle#1 \mitx$% + \fi +} +\SHOW\mathaccent +\endgroup + +% Added (df) +\section{Accents wide, \cmd\mathaccentwide} +\begingroup +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \refstepcounter{#2}% + \mathversion{#2}% + $\displaystyle#1 {\mitx+\mity}$% + \fi +} +\SHOW\mathaccentwide +\endgroup + +\section{Bottom accents, \cmd\mathbotaccent} +\begingroup +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \refstepcounter{#2}% + \mathversion{#2}% + $\displaystyle#1 \mitx$% + \fi +} +\SHOW\mathbotaccent +\endgroup + +% Added (df) +\section{Bottom accents wide, \cmd\mathbotaccentwide} +\begingroup +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \refstepcounter{#2}% + \mathversion{#2}% + $\displaystyle#1 {\mitx+\mity}$% + \fi +} +\SHOW\mathbotaccentwide +\endgroup + +\section{Big operators, \cmd\mathop} + +Of the operators shown below, a subset need to be flagged by \textsf{unicode-math} for \cmd\nolimits\ adjustments. +The limits behaviour as specified by \textsf{unicode-math} are shown with grey subscripts and superscripts. +\begingroup +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \stepcounter{#2}% + \mathversion{#2}% + $\displaystyle#1_0^1$% + \fi +} +\SHOW\mathop +\endgroup + +\clearpage +\section{Binary relations, \cmd\mathbin} +\SHOW\mathbin + +\clearpage +\section{Ordinary symbols, \cmd\mathord} +\SHOW\mathord + +\clearpage +\section{Relation symbols, \cmd\mathrel} +\SHOW\mathrel + +\clearpage +\section{Alphabetical symbols, \cmd\mathalpha} + +% first read in all \mathalpha symbols into a variable: +\ExplSyntaxOn +\cs_set:Npn \UnicodeMathSymbol #1#2#3#4 { + \str_if_eq:nnT {\mathalpha} {#3} { + \exp_not:n { \UnicodeMathSymbol {#1}{#2}{#3}{#4} } + } +} +\CatchFileEdef + \ALPHA{unicode-math-table.tex} + {\char_set_catcode_space:N \ } + +% now each time we print an alphabet we remove the slot; +% this ensures we won't miss anything + +\def\INPUT{\ALPHA} +\cs_new:Npn \SLOTS #1#2 { + \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 { + \bool_lazy_and:nnT + { \int_compare_p:n {##1 >= #1} } + { \int_compare_p:n {##1 <= #2} } + { + \PRINTLINE{##1}{##2}{##4} + } + } + \TABLE + \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 { + \bool_lazy_or:nnT + { \int_compare_p:n {##1 > #2} } + { \int_compare_p:n {##1 < #1} } + { + \exp_not:n { \UnicodeMathSymbol {##1}{##2}{##3}{##4} } + } + } + \edef\ALPHA{\ALPHA} +} + +\ExplSyntaxOff + +\subsection{Normal weight} + +\subsubsection{Upright Greek, uppercase} +\SLOTS{"00391}{"003A9} + +\subsubsection{Upright Greek, lowercase} +\SLOTS{"003B1}{"003F5} + +\subsubsection{Italic, Latin, uppercase} +\SLOTS{"1D434}{"1D44D} + +\subsubsection{Italic, Latin, lowercase} +\SLOTS{"1D44E}{"1D467} + +\subsubsection{Italic Greek, uppercase} +\SLOTS{"1D6E2}{"1D6FA} + +\subsubsection{Italic Greek, lowercase} +\SLOTS{"1D6FC}{"1D71B} + +\subsubsection{Script, Latin, uppercase} +\SLOTS{"1D49C}{"1D4B5} + +\subsubsection{Script, Latin, lowercase} +\SLOTS{"1D4B6}{"1D4CF} + +\subsubsection{Fraktur, Latin, uppercase} +\SLOTS{"1D504}{"1D51C} + +\subsubsection{Fraktur, Latin, lowercase} +\SLOTS{"1D51E}{"1D537} + +\subsubsection{Blackboard, Latin, uppercase} +\SLOTS{"1D538}{"1D550} + +\subsubsection{Blackboard, Latin, lowercase} +\SLOTS{"1D552}{"1D56B} + +\subsubsection{Sans serif, Latin, uppercase} +\SLOTS{"1D5A0}{"1D5B9} + +\subsubsection{Sans serif, Latin, lowercase} +\SLOTS{"1D5BA}{"1D5D3} + +\subsubsection{Italic sans serif, Latin, uppercase} +\SLOTS{"1D608}{"1D621} + +\subsubsection{Italic sans serif, Latin, lowercase} +\SLOTS{"1D622}{"1D63B} + +\subsubsection{Typewriter, Latin, uppercase} +\SLOTS{"1D670}{"1D689} + +\subsubsection{Typewriter, Latin, lowercase} +\SLOTS{"1D68A}{"1D6A3} + +\subsection{Bold} + +\subsubsection{Bold, Latin, uppercase} +\SLOTS{"1D400}{"1D419} + +\subsubsection{Bold, Latin, lowercase} +\SLOTS{"1D41A}{"1D433} + +\subsubsection{Bold Greek, uppercase} +\SLOTS{"1D6A8}{"1D6C0} + +\subsubsection{Bold Greek, lowercase} +\SLOTS{"1D6C2}{"1D6E1} + +\subsubsection{Bold italic, Latin, uppercase} +\SLOTS{"1D468}{"1D481} + +\subsubsection{Bold italic, Latin, lowercase} +\SLOTS{"1D482}{"1D49B} + +\subsubsection{Bold italic Greek, uppercase} +\SLOTS{"1D71C}{"1D734} + +\subsubsection{Bold italic Greek, lowercase} +\SLOTS{"1D736}{"1D755} + +\subsubsection{Bold script, Latin, uppercase} +\SLOTS{"1D4D0}{"1D4E9} + +\subsubsection{Bold script, Latin, lowercase} +\SLOTS{"1D4EA}{"1D503} + +\subsubsection{Bold fraktur, Latin, uppercase} +\SLOTS{"1D56C}{"1D585} + +\subsubsection{Bold fraktur, Latin, lowercase} +\SLOTS{"1D586}{"1D59F} + +\subsubsection{Bold sans serif, Latin, uppercase} +\SLOTS{"1D5D4}{"1D5ED} + +\subsubsection{Bold sans serif, Latin, lowercase} +\SLOTS{"1D5EE}{"1D607} + +\subsubsection{Bold italic sans serif, Latin, uppercase} +\SLOTS{"1D63C}{"1D655} + +\subsubsection{Bold italic sans serif, Latin, lowercase} +\SLOTS{"1D656}{"1D66F} + +\subsubsection{Bold sans serif Greek, uppercase} +\SLOTS{"1D756}{"1D76E} + +\subsubsection{Bold sans serif Greek, lowercase} +\SLOTS{"1D770}{"1D78F} + +\subsubsection{Bold italic sans serif Greek, uppercase} +\SLOTS{"1D790}{"1D7A8} + +\subsubsection{Bold italic sans serif Greek, lowercase} +\SLOTS{"1D7AA}{"1D7C9} + +\subsection{Miscellaneous} +\def\UnicodeMathSymbol#1#2#3#4{\PRINTLINE{#1}{#2}{#4}} +\TABLE + +\FINISH +\mbox{} +\end{document} + +\endinput + +% /© +% +% ------------------------------------------------ +% The UNICODE-MATH package +% ------------------------------------------------ +% This package is free software and may be redistributed and/or modified under +% the conditions of the LaTeX Project Public License, version 1.3c or higher +% (your choice): . +% ------------------------------------------------ +% Copyright 2006-2019 Will Robertson, LPPL "maintainer" +% Copyright 2010-2017 Philipp Stephani +% Copyright 2011-2017 Joseph Wright +% Copyright 2012-2015 Khaled Hosny +% ------------------------------------------------ +% +% ©/ + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% TeX-engine: luatex +%%% End: diff --git a/fonts/euler-math/unimath-euler.pdf b/fonts/euler-math/unimath-euler.pdf new file mode 100644 index 0000000000..5c9c6f7d81 Binary files /dev/null and b/fonts/euler-math/unimath-euler.pdf differ diff --git a/fonts/neo-euler/Neo-Euler.ltx b/fonts/neo-euler/Neo-Euler.ltx deleted file mode 100644 index 9851d627b9..0000000000 --- a/fonts/neo-euler/Neo-Euler.ltx +++ /dev/null @@ -1,449 +0,0 @@ -\RequirePackage{pdfmanagement-testphase} -\DeclareDocumentMetadata{pdfstandard=A-2b, lang=en-GB} -\documentclass[a4paper,12pt]{scrartcl} - -\usepackage{amsmath, array, varioref} -\usepackage[british]{babel} -\usepackage{fourier-orns} -\usepackage{neo-euler} -\setmainfont{cmunorm.otf} - [BoldFont = cmunobx.otf , - ItalicFont = cmunoti.otf , - BoldItalicFont = cmunobi.otf - ] -\setsansfont{Cabin}[Scale=MatchLowercase] -\setmonofont{Inconsolatazi4}[Scale=MatchLowercase,StylisticSet={2,3}] -\usepackage{subfig} -\captionsetup[subtable]{position=top} -\usepackage{realscripts} -\usepackage{microtype} -\usepackage{hyperref} -\hypersetup{pdftitle={Neo-Euler User’s Guide}, - pdfauthor={Daniel FLIPO}, - bookmarksopen, - colorlinks - } -\newcommand*{\hlabel}[1]{\phantomsection\label{#1}} - -\newcommand*{\NEOTF}{Neo-Euler} -\newcommand*{\pkg}[1]{\texttt{#1}} -\newcommand*{\file}[1]{\texttt{#1}} -\newcommand*{\opt}[1]{\texttt{#1}} -\newcommand*{\cmd}[1]{\texttt{\textbackslash #1}}\newcommand*{\showtchar}[1]{\cmd{#1}~\csname #1\endcsname} -\newcommand*{\showmchar}[1]{\cmd{#1}~$(\csname #1\endcsname)$} -\newcommand*{\showmchardollar}[1]{\texttt{\$\cmd{#1}\$}~$(\csname #1\endcsname)$} - -\renewcommand{\labelitemi}{\lefthand} - -\title{Neo Euler maths font, OTF version} -\author{Daniel Flipo \\ \texttt{daniel.flipo@free.fr}} - -\newcommand*{\version}{0.22} - -\begin{document} -\maketitle - -\section{What is \NEOTF{}?} - -\NEOTF{} is a fork of the Euler project initiated by Khaled Hosny in 2009 -and abandoned in 2016% -\footnote{See \url{https://github.com/aliftype/euler-otf}}. -The font name has been kept (Neo Euler) but the file name has been changed -from \file{euler.otf} to \file{Neo-Euler.otf}. - -\file{Neo-Euler.otf} is an OpenType version of Hermann Zapf’s Euler maths font, -as the original font it contains three alphabets $Euler Roman$, -$\symscr{SCRIPT}$ and $\symfrak{Euler Fraktur}$ (none of them being suitable -for typesetting text) and has some specificities: -\begin{itemize} -\item it is an \emph{upright} maths font, Latin and Greek letters are - \emph{not available} in italic or bold italic shape (only upright and bold) ; -\item integral symbols are upright too; -\item all inequalities symbols are \emph{slanted}, so \cmd{leq} and geq are - printed as $\leq$ and $\geq$ (same as \cmd{leqslant} and \cmd{geqslant}). -\end{itemize} - -\NEOTF{} requires LuaTeX or XeTeX as engine and the \pkg{unicode-math} package% -\footnote{Please read the documentation \file{unicode-math.pdf}.}. - -Coverage: currently, all Plain, LaTeX and AMS maths symbols are provided; sans -serif and typewriter families of Latin and Greek letters and digits are not -included. - -Please note that the current version (\version) is \emph{experimental, -do expect metrics and glyphs to change} until version 1.0 is reached. -Comments, suggestions and bug reports are welcome! - -\pagebreak[4] -\section{Usage} - -\subsection{Calling \cmd{setmathfont}} - -A basic call for \NEOTF{} would be: -\begin{verbatim} -\usepackage[math-style=upright]{unicode-math} -\setmathfont{Neo-Euler.otf} % Call by file name or -\setmathfont{Neo Euler} % Call by font name or -\end{verbatim} -this loads \NEOTF{} as maths font% -\footnote{Both calls work equally well with LuaTeX; with XeTeX a call by font - name will fail unless the font is declared as a \emph{system font}.} - with the default options, see subsections~\ref{ssection-cv}, - \ref{ssection-ss} and~\ref{ssec-other-features} for customisation. - -Please note that the three sets of text fonts have to be chosen separately. - -\subsection{Calling \pkg{neo-euler.sty} (recommended)} - -As an alternative to load \NEOTF{} you can type:\\[.5\baselineskip] -\verb+\usepackage{neo-euler}+\\[.5\baselineskip] -\verb+\usepackage[ +\textit{options} -\footnote{Possible \textit{options} are \opt{Scale=} or any of the options - described in sections \ref{ssection-cv}, \ref{ssection-ss} and - \ref{ssec-other-features}.}% -\verb+ ]{neo-euler}+\\[.5\baselineskip] -it loads \pkg{unicode-math} with the \opt{math-style=upright} option and -sets Neo-Euler as maths font but does a bit more: -\begin{enumerate} -\item it checks at \verb+\begin{document}+ if packages \pkg{amssymb} or - \pkg{latexsym} are loaded and issues warnings in case they are; -\item it provides aliases for glyphs named differently in Unicode, so that - \pkg{latexsym} or AMS names are also available; -\item it defines some specific maths characters \showmchar{varemptyset}, etc. -\end{enumerate} - -The \pkg{neo-euler.sty} package is meant to replace the \pkg{eulervm.sty} -package for users switching from pdfLaTeX to LuaLaTeX or XeLaTeX. -It does not interfere with text fonts which have to be chosen separately. - -\section{What is provided?} - -\NEOTF{} provides all glyphs available in the \pkg{amssymb} and \pkg{latexsym} -packages and many more, f.i. lots of extensible accents and arrows. - -These two packages \emph{should not} be loaded as they might override \NEOTF{} -glyphs. - -As mentioned above, there is neither italic nor bold italic shapes. -Furthermore, the font has currently no sans-serif, no typewriter family -included. Fraktur and Blackboard Bold styles are included. -See in section~\vref{ssec-math-alphabets} how to choose -from other maths fonts if sans-serif or typewriter glyphs are needed. - -A full list of available glyphs is shown in file \file{unimath-euler.pdf}. - -\subsection{Character variants} -\label{ssection-cv} - -\NEOTF{} provides fourteen ``Character Variants’’ options, listed on -table~\vref{cv}, to choose between different glyphs for Greek characters -and some others. -\begin{table}[ht] - \centering \caption{Character variants.} - \hlabel{cv} - \begin{tabular}{@{}>{\ttfamily}lccl@{}} - \hline - & Default & Variant & Name\\ - \hline - cv01 & $\hslash$ & $\muphbar$ & \cmd{hslash} \\ - cv02 & $\emptyset$ & $\varemptyset$ & \cmd{emptyset} \\ - cv03 & $\epsilon$ & $\varepsilon$ & \cmd{epsilon} \\ - cv04 & $\kappa$ & $\varkappa$ & \cmd{kappa} \\ - cv05 & $\pi$ & $\varpi$ & \cmd{pi} \\ - cv06 & $\phi$ & $\varphi$ & \cmd{phi} \\ - cv09 & $\theta$ & $\vartheta$ & \cmd{theta} \\ - cv10 & $\Theta$ & $\varTheta$ & \cmd{Theta}\\ - \hline - \end{tabular} -\end{table} - -For instance, to get \cmd{epsilon} and \cmd{phi} typeset as $\varepsilon$ -and $\varphi$ instead of $\epsilon$ and $\phi$ (with matching bold variants -$\symbf{\varepsilon}$ and $\symbf{\varphi}$), you can -add option \verb+CharacterVariant={3,6}+ to the \cmd{setmathfont} call: -\begin{verbatim} -\setmathfont{Neo-Euler.otf}[CharacterVariant={3,6}] -\end{verbatim} - -Please note that curly braces are mandatory whenever more than one -``Character Variant’’ is selected. - -Note about \cmd{hbar}: \pkg{unicode-math} defines \cmd{hbar} as -\cmd{hslash} (U+210F) while \pkg{amsmath} provides two different glyphs -(h with horizontal or diagonal stroke).\\ -\pkg{neo-euler} follows \pkg{unicode-math}; the h with horizontal -stroke can be printed using \cmd{hslash} or \cmd{hbar} together with character -variant \opt{cv01} or with \cmd{muphbar} (replacement for AMS’ command -\cmd{hbar}). - -\subsection{Stylistic sets} -\label{ssection-ss} - -\NEOTF{} provides two ``Stylistic Sets’’ options to choose between different -glyphs for families of maths symbols. - -\verb+StylisticSet=5+, alias \verb+Style=smaller+, converts some symbols into -their smaller variants, see table~\vref{ss05}. - -\verb+StylisticSet=6+, alias \verb+Style=subsetneq+, converts some inclusion -symbols, see table~\vref{ss06}. -\begin{table}[ht] - \centering - \caption{Stylistic Sets 5 and 6} - \subfloat[\opt{Style=smaller\quad (+ss05)}]{\hlabel{ss05}% - \begin{tabular}[t]{@{}lcc@{}} - \hline - Command & Default & Variant \\ - \hline - \cmd{in} & $\in$ & $\smallin$ \\ - \cmd{ni} & $\ni$ & $\smallni$ \\ - \cmd{mid} & $\mid$ & $\shortmid$ \\ - \cmd{nmid} & $\nmid$ & $\nshortmid$ \\ - \cmd{parallel} & $\parallel$ & $\shortparallel$ \\ - \cmd{nparallel} & $\nparallel$ & $\nshortparallel$ \\ - \hline - \end{tabular} - }\hspace{10mm} % eof subfloat - \subfloat[\opt{Style=subsetneq\quad (+ss06)}]{\hlabel{ss06}% - \begin{tabular}[t]{@{}lcc@{}} - \hline - Command & Default & Variant \\ - \hline - \cmd{subsetneq} & $\subsetneq$ & $\varsubsetneq$ \\ - \cmd{supsetneq} & $\supsetneq$ & $\varsupsetneq$ \\ - \cmd{subsetneqq} & $\subsetneqq$ & $\varsubsetneqq$ \\ - \cmd{supsetneqq} & $\supsetneqq$ & $\varsupsetneqq$ \\ - \hline - \end{tabular} - }% eof subfloat -\end{table} - - -To enable Stylistic Sets 5 and 6 for \NEOTF{}, you should enter -\begin{verbatim} -\setmathfont{Neo-Euler.otf}[StylisticSet={5,6}] or -\usepackage[Style={smaller,subsetneq}]{Neo-Euler.otf} -\end{verbatim} -{\samepage then, \verb+\[A \subsetneq B\quad x \in E \quad D \parallel D' \]+ -will print as -\setmathfont{Neo-Euler.otf}[StylisticSet={5,6}] -\[A \subsetneq B\quad x \in E \quad D \parallel D' \] -instead of -\setmathfont{Neo-Euler.otf} -\[A \subsetneq B\quad x \in E \quad D \parallel D' \] -} - -\subsection{Other font features} -\label{ssec-other-features} - -To get oldstyle numbers in maths, the feature \opt{+onum} is available: -\begin{verbatim} -\setmathfont{Neo-Euler.otf}[Numbers=OldStyle] or -\usepackage[Style={fulloldstyle}]{neo-euler} -\end{verbatim} - -\setmathfont{Neo-Euler.otf}[Numbers=OldStyle] -$0123456789, \symbf{0123456789}$ -\setmathfont{Neo-Euler.otf} - -\subsection{Standard \LaTeX{} math commands} -\label{ssec-math-commands} - -All standard \LaTeX{} maths commands, all \pkg{amssymb} commands and all -\pkg{latexsym} commands are supported by \NEOTF{}, for some of them loading -\pkg{neo-euler.sty} is required. - -Various wide accents are also supported: -\begin{itemize} -\item \cmd{wideoverbar} and \cmd{mathunderbar}% - \footnote{\cmd{overline} and \cmd{underline} are not font related, - they are based on \cmd{rule}.} - \[\wideoverbar{x}\quad \wideoverbar{xy}\quad \wideoverbar{xyz}\quad - \wideoverbar{A\cup B}\quad \wideoverbar{A\cup (B\cap C)\cup D}\quad - \mathunderbar{m+n+p}\] - -\item \cmd{widehat} and \cmd{widetilde} -\[\widehat{x}\; \widehat{xx} \;\widehat{xxx} \;\widehat{xxxx}\; - \widehat{xxxxx} \;\widehat{xxxxxx} \;\widetilde{x}\; \widetilde{xx}\; - \widetilde{xxx} \;\widetilde{xxxx} \;\widetilde{xxxxx}\; - \widetilde{xxxxxx}\] - -\item \cmd{widecheck} and \cmd{widebreve} - \[\widecheck{x}\quad \widecheck{xxxx}\quad \widecheck{xxxxxx}\quad - \widebreve{x}\quad \widebreve{xxxx}\quad \widebreve{xxxxxx}\] - -\item \cmd{overparen} and \cmd{underparen} - \[\overparen{x}\quad \overparen{xy}\quad \overparen{xyz}\quad - \mathring{\overparen{A\cup B}}\quad - \overparen{A\cup (B\cap C)\cup D}^{\smwhtcircle}\quad - \overparen{x+y}^{2}\quad \overparen{a+b+...+z}^{26}\] -\vspace{-\baselineskip} -\[\underparen{x}\quad \underparen{xz} \quad \underparen{xyz} - \quad \underparen{x+z}_{2}\quad \underparen{a+b+...+z}_{26}\] - -\item \cmd{overbrace} and \cmd{underbrace} - \[\overbrace{a}\quad \overbrace{ab}\quad \overbrace{abc}\quad - \overbrace{abcd}\quad \overbrace{abcde}\quad - \overbrace{a+b+c}^{3}\quad \overbrace{ a+b+. . . +z }^{26}\] - \vspace{-\baselineskip} - \[\underbrace{a}\quad\underbrace{ab}\quad\underbrace{abc}\quad - \underbrace{abcd}\quad \underbrace{abcde}\quad - \underbrace{a+b+c}_{3} \quad \underbrace{ a+b+...+z }_{26}\] - -\item \cmd{overbracket} and \cmd{underbracket} - \[\overbracket{a}\quad \overbracket{ab}\quad \overbracket{abc}\quad - \overbracket{abcd}\quad \overbracket{abcde}\quad - \overbracket{a+b+c}^{3}\quad \overbracket{ a+b+. . . +z }^{26}\] - \vspace{-\baselineskip} - \[\underbracket{a}\quad\underbracket{ab}\quad\underbracket{abc}\quad - \underbracket{abcd}\quad \underbracket{abcde}\quad - \underbracket{a+b+c}_{3} \quad \underbracket{ a+b+...+z }_{26}\] - -\item \cmd{overrightarrow}, \cmd{overleftarrow} and \cmd{overleftrightarrow} - \[\overrightarrow{v}\quad \overrightarrow{M}\quad \overrightarrow{vv} - \quad \overrightarrow{AB}\quad \overrightarrow{ABC} - \quad \overrightarrow{ABCD} \quad \overrightarrow{ABCDEFGH}. - \] - \vspace{-\baselineskip} - \[\overleftarrow{v}\quad \overleftarrow{M}\quad \overleftarrow{vv} - \quad \overleftarrow{AB}\quad \overleftarrow{ABC} - \quad \overleftarrow{ABCD} \quad \overleftarrow{ABCDEFGH}\] - \vspace{-\baselineskip} - \[\overleftrightarrow{v}\quad \overleftrightarrow{M}\quad - \overleftrightarrow{vv}\quad - \overleftrightarrow{AB}\quad \overleftrightarrow{ABC}\quad - \overleftrightarrow{ABCD} \quad \overleftrightarrow{ABCDEFGH}\] - -\item \cmd{overrightharpoon} and \cmd{overleftharpoon} - \[\overrightharpoon{v}\quad \overrightharpoon{M}\quad \overrightharpoon{vv} - \quad \overrightharpoon{AB}\quad \overrightharpoon{ABC} - \quad \overrightharpoon{ABCD} \quad \overrightharpoon{ABCDEFGH}. - \] - \vspace{-\baselineskip} - \[\overleftharpoon{v}\quad \overleftharpoon{M}\quad \overleftharpoon{vv} - \quad \overleftharpoon{AB}\quad \overleftharpoon{ABC} - \quad \overleftharpoon{ABCD} \quad \overleftharpoon{ABCDEFGH}\] - -\item \cmd{underrightarrow}, \cmd{underleftarrow} and \cmd{underleftrightarrow} - \[\underrightarrow{v}\quad \underrightarrow{M}\quad \underrightarrow{vv} - \quad \underrightarrow{AB}\quad \underrightarrow{ABC} - \quad \underrightarrow{ABCD} \quad \underrightarrow{ABCDEFGH}. - \] - \vspace{-\baselineskip} - \[\underleftarrow{v}\quad \underleftarrow{M}\quad \underleftarrow{vv} - \quad \underleftarrow{AB}\quad \underleftarrow{ABC} - \quad \underleftarrow{ABCD} \quad \underleftarrow{ABCDEFGH}\] - \vspace{-\baselineskip} - \[\underleftrightarrow{v}\quad \underleftrightarrow{M}\quad - \underleftrightarrow{vv}\quad - \underleftrightarrow{AB}\quad \underleftrightarrow{ABC}\quad - \underleftrightarrow{ABCD} \quad \underleftrightarrow{ABCDEFGH}\] - -\item \cmd{underrightharpoondown} and \cmd{underleftharpoondown} - \[\underrightharpoondown{v} \quad \underrightharpoondown{M}\quad - \underrightharpoondown{vv}\quad \underrightharpoondown{AB}\quad - \underrightharpoondown{ABC}\quad \underrightharpoondown{ABCD} - \quad \underrightharpoondown{ABCDEFGH}. - \] - \vspace{-\baselineskip} - \[\underleftharpoondown{v} \quad \underleftharpoondown{M}\quad - \underleftharpoondown{vv}\quad \underleftharpoondown{AB}\quad - \underleftharpoondown{ABC}\quad \underleftharpoondown{ABCD} - \quad \underleftharpoondown{ABCDEFGH}. - \] - -\item Finally \cmd{widearc} and \cmd{overrightarc} (loading - \pkg{neo-euler.sty} is required) -\[\widearc{AMB}\quad \overrightarc{AMB}\] -\end{itemize} - -\subsection{Mathematical alphabets} -\label{ssec-math-alphabets} - -\begin{itemize} -\item All Latin and Greek characters are available in upright - and bold via the \verb+\symup{}+ and \verb+\symbf{}+ commands. - -\item Calligraphic alphabet (\cmd{symscr} or \cmd{symcal} or - \cmd{mathcal} command), uppercase:\\ - $\symscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\ - also in boldface (\cmd{symbfscr},\cmd{symbfcal} or \cmd{mathbfcal} command):\\ - $\symbfscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ - -\item Blackboard-bold alphabet (\cmd{symbb} or \cmd{mathbb} command), - uppercase, lowercase and digits: - - $\symbb{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ - - $\symbb{abcdefghijklmnopqrstuvwxyz\quad 0123456789}$ - -\item Fraktur alphabet medium and bold - (\cmd{symfrak}, or \cmd{symbffrak} commands): - - $\symfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ\quad abcdefghijklmnopqrstuvwxyz}$\\ - $\symbffrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\ - \hphantom{$\symfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ\quad}$}% - $\symbffrak{abcdefghijklmnopqrstuvwxyz}$ - -\item Sans serif and Typewriter alphabets have to be imported from another - math font, f.i. \file{STIXTwoMath}: -\begin{verbatim} -\setmathfont{STIXTwoMath-Regular.otf}[range=sfup,Scale=MatchUppercase] -$\symsfup{ABCD...klm}$ -\end{verbatim} -\setmathfont{STIXTwoMath-Regular.otf}[range=sfup,Scale=MatchUppercase] -$\symsfup{ABCDEFGHIJKLM abcdefghijklm}$ - -\begin{verbatim} -\setmathfont{STIXTwoMath-Regular.otf}[range=tt,Scale=MatchUppercase] -$\symtt{ABCDE...XYZ abcde...xyz}$ -\end{verbatim} -\setmathfont{STIXTwoMath-Regular.otf}[range=tt,Scale=MatchUppercase] -$\symtt{ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz}$ -\end{itemize} - - -\subsection{Missing symbols} - -\NEOTF{} does not aim at being as complete as \file{STIXTwoMath-Regular} or -\file{Cambria}, the current glyph coverage compares with TeXGyre math fonts. -In case some symbols do not show up in the output file, you will see warnings -in the \file{.log} file, for instance: - -\setmathfont{STIXTwoMath-Regular.otf}[range={"2964}] -\texttt{Missing character: There is no }$⥤$% -\texttt{ (U+2964) in font Neo Euler} - -Borrowing them from a more complete font, say \file{Asana-Math}, -is a possible workaround: -\verb+\setmathfont{Asana-Math.otf}[range={"2964},Scale=1.02]+\\ -scaling is possible, multiple character ranges are separated with commas:\\ -\verb+\setmathfont{Asana-Math.otf}[range={"294A-"2951,"2964,"2ABB-"2ABE}]+ - -Let’s mention \pkg{albatross}, a useful tool to find out the list of fonts -providing a given glyph: f.i. type in a terminal ``\texttt{albatross U+2964}’’, -see the manpage or \file{albatross-manual.pdf}. - -\section{Acknowledgements} - -Khaled Hosni achieved most of the portage of Hermann Zapf’s Euler font to -Unicode between 2009 and 2016. After Hermann’s death in 2015, he decided to -stop the project but his \file{euler.otf} font, although not available on CTAN, -continued to be used, see -\href{https://tex.stackexchange.com/questions/425098/which-opentype-math-fonts-are-available}{https://tex.stackexchange.com/questions/425098/}. -I offered Khaled my help to finalise the font, we agreed I would try to -complete the font and maintain it on my own. - -\bigskip -\begin{center}\Huge -\decotwo -\end{center} - -\end{document} - -%%% Local Variables: -%%% mode: latex -%%% TeX-engine: luatex -%%% TeX-master: t -%%% coding: utf-8 -%%% End: diff --git a/fonts/neo-euler/Neo-Euler.otf b/fonts/neo-euler/Neo-Euler.otf deleted file mode 100644 index 2ee45509d1..0000000000 Binary files a/fonts/neo-euler/Neo-Euler.otf and /dev/null differ diff --git a/fonts/neo-euler/Neo-Euler.pdf b/fonts/neo-euler/Neo-Euler.pdf deleted file mode 100644 index c74c6144b2..0000000000 Binary files a/fonts/neo-euler/Neo-Euler.pdf and /dev/null differ diff --git a/fonts/neo-euler/README.md b/fonts/neo-euler/README.md deleted file mode 100644 index 2054522848..0000000000 --- a/fonts/neo-euler/README.md +++ /dev/null @@ -1,63 +0,0 @@ -Neo-Euler package -==================== - -## Description - -`Neo-Euler.otf’ is an OpenType version of Hermann Zapf’s Euler maths font. -It is the continuation of the Euler project initiated by Khaled Hosny in -2009 and abandoned in 2016. -A style file `neo-euler.sty’ is provided as a replacement of the -`eulervm.sty’ package for LuaLaTeX and XeLaTeX users. - -## Contents - -* Neo-Euler.otf OpenType maths font -* neo-euler.sty LaTeX style file: replaces eulervm.sty for LuaTeX/XeTeX -* Neo-Euler.pdf Documentation in PDF format -* Neo-Euler.ltx LaTeX source of Neo-Euler.pdf -* unimath-euler.pdf Modified version of unimath-symbols.pdf - showing available Neo-Euler symbols compared to - LatinModern, STIXTwo, Erewhon, TeXGyrePagella and Asana. -* unimath-euler.ltx LaTeX source of unimath-concrete.pdf -* README.md (this file) - -## Installation - -This package is meant to be installed automatically by TeXLive, MikTeX, etc. -Otherwise, the package can be installed under TEXMFHOME or TEXMFLOCAL, f.i. -Neo-Euler.otf in directory texmf-local/fonts/opentype/public/neo-euler/ -and neo-euler.sty in directory texmf-local/tex/latex/neo-euler/. -Documentation files and their sources can go to directory -texmf-local/doc/fonts/public/neo-euler/ - -Don't forget to rebuild the file database (mktexlsr or so) if you install -under TEXMFLOCAL. - -Finally, make the system font database aware of the Neo-Euler font -(fontconfig under Linux). - -## License - -* The font `Neo-Euler.otf’ is licensed under the SIL Open Font License, -Version 1.1. This license is available with a FAQ at: -http://scripts.sil.org/OFL -* The other files are distributed under the terms of the LaTeX Project -Public License from CTAN archives in directory macros/latex/base/lppl.txt. -Either version 1.3 or, at your option, any later version. - -## Changes - -* First public version: 0.20 - -* v0.21: - - Delimiters, integrals, sum, prod etc. are now vertically - centred by design on the maths axis (required by luametatex). -* v0.22: - - Sizes of vertical variants of \lAngle, \rAngle, \langle and - \rangle corrected. - - Added extensible integral for U+222B (usable with luametatex). - ---- -Copyright 2009-2016 Khaled Hosny -Copyright 2022- Daniel Flipo -E-mail: daniel (dot) flipo (at) free (dot) fr diff --git a/fonts/neo-euler/neo-euler.sty b/fonts/neo-euler/neo-euler.sty deleted file mode 100644 index 12b97d9849..0000000000 --- a/fonts/neo-euler/neo-euler.sty +++ /dev/null @@ -1,127 +0,0 @@ -\NeedsTeXFormat{LaTeX2e}[2018/01/01] -\def\fileversion{0.22} -\def\filedate{2022-11-04} -\ProvidesPackage{neo-euler}[\filedate\space\fileversion] - -% Ensure luatex or xetex engine -\RequirePackage{iftex}[2019/10/24] -\RequireTUTeX -\RequirePackage[math-style=upright]{unicode-math} - -\newopentypefeature{Style}{smaller}{+ss05} -\newopentypefeature{Style}{subsetneq}{+ss06} - -% Options: forward them to \setmathfont. -\RequirePackage{xkeyval} -\newtoks\NEUtoks -\newcommand*{\Store@KV@Option}[2]{% - \NEUtoks=\expandafter{\the\NEUtoks #1={#2},}} - -\DeclareOptionX{CharacterVariant}{\Store@KV@Option{CharacterVariant}{#1}} -\DeclareOptionX{StylisticSet}{\Store@KV@Option{StylisticSet}{#1}} -\DeclareOptionX{Style}{\Store@KV@Option{Style}{#1}} -\DeclareOptionX{Scale}{\Store@KV@Option{Scale}{#1}} -\DeclareOptionX{Numbers}{\Store@KV@Option{Numbers}{#1}} -\ProcessOptionsX - -% Following Joseph Wright in https://tex.stackexchange.com/questions/451 -\begingroup - \edef\temp{% - \endgroup - \noexpand\setmathfont{Neo-Euler.otf}% - [\unexpanded\expandafter{\the\NEUtoks}]% - } - \temp - -\AtBeginDocument{% - % Euler specific math - % \Umathchardef\ = - % : \mathord=0 \mathrel=3 ; =0 - \Umathchardef\muphbar = 0 0 "0127 \relax - \Umathchardef\varemptyset = 0 0 "E021 \relax - \Umathchardef\mbfwp = 0 0 "E045 \relax - \Umathchardef\mbfdotlessi = 0 0 "E046 \relax - \Umathchardef\mbfdotlessj = 0 0 "E047 \relax - \Umathchardef\mbfhbar = 0 0 "E048 \relax - \let\lesseqslantgtr\lesseqgtr - \let\gtreqslantless\gtreqless - \let\lesseqqslantgtr\lesseqqgtr - \let\gtreqqslantless\gtreqqless - \let\nleqqslant\nleqq - \let\ngeqqslant\ngeqq -% \widearc and\overrightarc - \newcommand*{\widearc}{\Umathaccent 0 0 "E540 }% - \newcommand*{\overrightarc}{\Umathaccent 0 0 "20D5 }% - % amssymb - \@ifpackageloaded{amssymb}% - {\PackageWarning{neo-euler}{% - Neo-Euler provides all AMS symbols.\MessageBreak - Loading amssymb.sty is not advisable.\MessageBreak - Reported}% - }% - {% AMS Symbols not referenced in unicode-math-table.tex - % \Umathchardef\ = - % : \mathord=0 \mathrel=3 ; =0 - \Umathchardef\circledR = 0 0 "24C7 \relax - \Umathchardef\circledS = 0 0 "24C8 \relax - \Umathchardef\diagup = 0 0 "E0A0 \relax - \Umathchardef\diagdown = 0 0 "E0A1 \relax - \Umathchardef\shortmid = 3 0 "E0A2 \relax - \Umathchardef\shortparallel = 3 0 "E0A3 \relax - \Umathchardef\nshortmid = 3 0 "E0A4 \relax - \Umathchardef\nshortparallel = 3 0 "E0A5 \relax - \Umathchardef\lvertneqq = 3 0 "E0A6 \relax - \Umathchardef\gvertneqq = 3 0 "E0A7 \relax - \Umathchardef\nleqslant = 3 0 "E0A8 \relax - \Umathchardef\ngeqslant = 3 0 "E0A9 \relax - \Umathchardef\nleqq = 3 0 "E0AA \relax - \Umathchardef\ngeqq = 3 0 "E0AB \relax - \Umathchardef\varsubsetneq = 3 0 "E0AC \relax - \Umathchardef\varsupsetneq = 3 0 "E0AD \relax - \Umathchardef\nsubseteqq = 3 0 "E0AE \relax - \Umathchardef\nsupseteqq = 3 0 "E0AF \relax - \Umathchardef\varsubsetneqq = 3 0 "E09C \relax - \Umathchardef\varsupsetneqq = 3 0 "E09D \relax - \Umathchardef\npreceq = 3 0 "E09E \relax - \Umathchardef\nsucceq = 3 0 "E09F \relax - \let\centerdot\cdotp - \let\restriction\upharpoonright - \let\doteqdot\Doteq - \let\doublecup\Cup - \let\doublecap\Cap - \let\llless\lll - \let\gggtr\ggg - \let\circlearrowleft\acwopencirclearrow - \let\circlearrowright\cwopencirclearrow - \let\lozenge\mdlgwhtlozenge - \let\blacklozenge\mdlgblklozenge - \let\square\mdlgwhtsquare - \let\blacksquare\mdlgblksquare - \let\dashleftarrow\leftdasharrow - \let\dashrightarrow\rightdasharrow - \let\ntriangleleft\nvartriangleleft - \let\ntriangleright\nvartriangleright - \let\varpropto\propto - \let\thicksim\sim - \let\thickapprox\approx - \let\smallsmile\smile - \let\smallfrown\frown - }% - % latexsym - \@ifpackageloaded{latexsym}% - {\PackageWarning{neo-euler}{% - Neo-Euler provides all LaTeX symbols.\MessageBreak - Loading latexsym.sty is not advisable.\MessageBreak - Reported}% - }% - {\let\lhd\vartriangleleft - \let\rhd\vartriangleright - \let\unlhd\trianglelefteq - \let\unrhd\trianglerighteq - \let\leadsto\rightcurvedarrow - \let\Box\lgwhtsquare - \let\Diamond\mdlgwhtdiamond - }% -} - -\endinput diff --git a/fonts/neo-euler/unimath-euler.ltx b/fonts/neo-euler/unimath-euler.ltx deleted file mode 100644 index 7d53cdf3ca..0000000000 --- a/fonts/neo-euler/unimath-euler.ltx +++ /dev/null @@ -1,525 +0,0 @@ -%%^^A%% unimath-symbols.ltx -- part of UNICODE-MATH -%%^^A%% Listing of Unicode mathematics symbols using a variety of fonts. - -%!TEX TS-program = LuaLaTeX - -%% Changes by David Carlisle: https://github.com/wspr/unicode-math/issues/570 - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% SYMBOLS DEFINED BY UNICODE-MATH -%%%%%%%%%%%%%%%%%%%%%%% - -\documentclass[final]{article} -\makeatletter - -\usepackage{ragged2e,setspace,booktabs,catchfile,shortvrb,geometry,metalogo,textcomp,longtable,array,hyperref} - -\usepackage{ninecolors} -\NineColors{saturation=high} - -\geometry{margin=24mm} -\hypersetup{colorlinks,linkcolor=black} - -\def\cmd#1{\texttt{\textbackslash\expandafter\@gobble\string#1}} - -\usepackage{fontspec} -\setmainfont{texgyrepagella}% - [ - Extension = .otf, - UprightFont = *-regular, - ItalicFont = *-italic, - BoldFont = *-bold, - BoldItalicFont = *-bolditalic, - Ligatures=TeX, - Numbers={Lowercase,Monospaced}, - ] -\usepackage[math-style=literal,bold-style=literal]{unicode-math} - -\ExplSyntaxOn -\cs_generate_variant:Nn \fontspec_set_fontface:NNnn {c} - -\def\FINISH{} -\newcount\Nfonts -\def\defmathfont#1#2#3#4{ - \Nfonts=\numexpr\Nfonts+1\relax - \tl_set:cn {L#1} {#4} - \newcounter{#1} - \setcounter{#1}{-1} - \setmathfont[version=#1,SizeFeatures={ - {Size=-10, Colour=999999}, - {Size=10-, Colour=#3}}]{#2} - \fontspec_set_fontface:cNnn {#1} \x {ItalicFont={},BoldFont={}} {#2} - \tl_gput_right:Nn \FINISH { - \refstepcounter{#1}\label{count:#1} - } -} -% Added (df) for euler -\def\defmathupfont#1#2#3#4{ - \Nfonts=\numexpr\Nfonts+1\relax - \tl_set:cn {L#1} {#4} - \newcounter{#1} - \setcounter{#1}{-1} - \setmathfont[version=#1,math-style=upright,SizeFeatures={ - {Size=-10, Colour=999999}, - {Size=10-, Colour=#3}}]{#2} - \fontspec_set_fontface:cNnn {#1} \x {ItalicFont={},BoldFont={}} {#2} - \tl_gput_right:Nn \FINISH { - \refstepcounter{#1}\label{count:#1} - } -} -\ExplSyntaxOff - -\defmathfont{lm}{latinmodern-math.otf}{CC6666}{L} -%\defmathfont{xits}{XITSMath-Regular.otf}{6666CC}{X} -\defmathfont{stix}{STIXTwoMath-Regular.otf}{66CC66}{S} -\defmathfont{erewhon}{Erewhon-Math.otf}{AA6666}{E} -\defmathfont{pagella}{texgyrepagella-math.otf}{66CCCC}{P} -\defmathfont{asana}{Asana-Math.otf}{AACC66}{A} -\defmathupfont{euler}{Neo-Euler.otf}{AA66CC}{N} - -\def\INPUT{\input{unicode-math-table.tex}} -\def\TABLE{% -\par\noindent -\setlength\tabcolsep{5pt}% -\begin{longtable}[l]{@{}l *{\Nfonts}{c} lp{100pt}@{}} - \toprule - \textsc{usv} & \Llm & \Lstix & \Lerewhon & \Lpagella & \Lasana & \Leuler - & Macro & Description \\ - \midrule \endhead - \INPUT\\ - \bottomrule -\end{longtable} -} -\makeatletter -\def\USV#1{\footnotesize\scshape\MakeLowercase{u+\@gobble#1}} -\makeatother -\def\CMD#1{\footnotesize\cmd#1} -\def\DESC#1{\vspace{-6pt}% - \begin{spacing}{0.5} - \RaggedRight\scriptsize #1% - \end{spacing} -} - -\newcommand\SHOW[1]{% - \def\UnicodeMathSymbol##1##2##3##4{% - \def\1{#1}\def\2{##3}% - \ifx\1\2\PRINTLINE{##1}{##2}{##4}\fi - }% - \TABLE -} -\ExplSyntaxOn -\def\PRINTLINE#1#2#3{ - \def\tempa{ - \USV{#1} & - \SYMB{#2}{lm}{#1} & -% \SYMB{#2}{xits}{#1} & - \SYMB{#2}{stix}{#1} & - \SYMB{#2}{erewhon}{#1} & - \SYMB{#2}{pagella}{#1} & - \SYMB{#2}{asana}{#1} & - \SYMB{#2}{euler}{#1} & - \CMD{#2} - \tl_if_in:NnT \PLAIN {#2} - { - \makebox[0pt][l] - { \color[gray]{0.7} \textsuperscript{\sffamily (p)} } - } - \tl_if_in:NnT \LTXSYM {#2} - { - \makebox[0pt][l] - { \color[gray]{0.7} \textsuperscript{\sffamily (l)} } - } - \tl_if_in:NnT \AMSSYMB {#2} - { - \makebox[0pt][l] - { \color[gray]{0.7} \textsuperscript{\sffamily (a)} } - } - & - \DESC{#3} \\ - }% - \expandafter\tempa -} -\ExplSyntaxOff -\def\SYMB#1#2#3{% - \expandafter\iffontchar\csname#2\endcsname #3\relax - \refstepcounter{#2}% - \mathversion{#2}% - $\displaystyle#1$% - \fi -} - -\def\PLAIN{\alpha\beta\gamma\delta\epsilon\zeta\eta\theta\iota\kappa\lambda\mu\nu\xi\pi\rho\sigma\tau\upsilon\phi\chi\psi\omega\varepsilon\vartheta\varpi\varrho\varsigma\varphi\Gamma\Delta\Theta\Lambda\Xi\Pi\Sigma\Upsilon\Phi\Psi\Omega -% -\aleph\hbar\imath\jmath\ell\wp\Re\Im\partial\infty\prime\emptyset\nabla\surd\top\bot\angle\triangle\forall\exists\neg\flat\natural\sharp\clubsuit\diamondsuit\heartsuit\spadesuit -% -\coprod\bigvee\bigwedge\biguplus\bigcap\bigcup\int\prod\sum\bigotimes\bigoplus\bigodot\oint\bigsqcup\smallint -% -\triangleleft\triangleright\bigtriangleup\bigtriangledown\wedge\land\vee\lor\cap\cup\ddagger\dagger\sqcap\sqcup\uplus\amalg\diamond\bullet\wr\div\odot\oslash\otimes\ominus\oplus\mp\pm\circ\bigcirc\setminus\cdot\ast\times\star\propto\sqsubseteq\sqsupseteq\parallel\mid\dashv\vdash\nearrow\searrow\nwarrow\swarrow\Leftrightarrow\Leftarrow\Rightarrow\neq\ne\lnot\leq\le\geq\ge\succ\prec\approx\succeq\preceq\supset\subset\supseteq\subseteq\in\ni\owns\gg\ll\not\leftrightarrow\leftarrow\gets\rightarrow\to\mapstochar\mapsto\sim\simeq\perp\equiv\asymp\smile\frown\leftharpoonup\leftharpoondown\rightharpoonup\rightharpoondown -% -\joinrel\relbar\Relbar\lhook\hookrightarrow\rhook\hookleftarrow\bowtie\models\Longrightarrow\longrightarrow\longleftarrow\Longleftarrow\longmapsto\longleftrightarrow\Longleftrightarrow\iff -% -\ldotp\cdotp\colon\ldots\cdots\vdots\ddots -% -\acute\grave\ddot\tilde\bar\breve\check\hat\vec\dot\widetilde\widehat -% -\overrightarrow\overleftarrow\overbrace\underbrace\lmoustache\rmoustache\lgroup\rgroup\arrowvert\Arrowvert\bracevert\Vert\vert\uparrow\downarrow\updownarrow\Uparrow\Downarrow\Updownarrow\backslash\rangle\langle\rbrace\lbrace\rceil\lceil\rfloor\lfloor\sqrt} - - -\def\LTXSYM{ -\cong -\notin -\rightleftharpoons -\doteq -\mathring -} - -\def\AMSSYMB{\boxdot\boxplus\boxtimes\square\blacksquare\centerdot\lozenge\blacklozenge\circlearrowright\circlearrowleft\leftrightharpoons\boxminus\Vdash\Vvdash\vDash\twoheadrightarrow\twoheadleftarrow\leftleftarrows\rightrightarrows\upuparrows\downdownarrows\upharpoonright\restriction\downharpoonright\upharpoonleft\downharpoonleft\rightarrowtail\leftarrowtail\leftrightarrows\rightleftarrows\Lsh\Rsh\rightsquigarrow\leftrightsquigarrow\looparrowleft\looparrowright\circeq\succsim\gtrsim\gtrapprox\multimap\therefore\because\doteqdot\Doteq\triangleq\precsim\lesssim\lessapprox\eqslantless\eqslantgtr\curlyeqprec\curlyeqsucc\preccurlyeq\leqq\leqslant\lessgtr\backprime\risingdotseq\fallingdotseq\succcurlyeq\geqq\geqslant\gtrless\vartriangleright\vartriangleleft\trianglerighteq\trianglelefteq\bigstar\between\blacktriangledown\blacktriangleright\blacktriangleleft\vartriangle\blacktriangle\triangledown\eqcirc\lesseqgtr\gtreqless\lesseqqgtr\gtreqqless\Rrightarrow\Lleftarrow\veebar\barwedge\doublebarwedge\measuredangle\sphericalangle\varpropto\smallsmile\smallfrown\Subset\Supset\Cup\doublecup\Cap\doublecap\curlywedge\curlyvee\leftthreetimes\rightthreetimes\subseteqq\supseteqq\bumpeq\Bumpeq\lll\llless\ggg\gggtr\circledS\pitchfork\dotplus\backsim\backsimeq\complement\intercal\circledcirc\circledast\circleddash\lvertneqq\gvertneqq\nleq\ngeq\nless\ngtr\nprec\nsucc\lneqq\gneqq\nleqslant\ngeqslant\lneq\gneq\npreceq\nsucceq\precnsim\succnsim\lnsim\gnsim\nleqq\ngeqq\precneqq\succneqq\precnapprox\succnapprox\lnapprox\gnapprox\nsim\ncong\diagup\diagdown\varsubsetneq\varsupsetneq\nsubseteqq\nsupseteqq\subsetneqq\supsetneqq\varsubsetneqq\varsupsetneqq\subsetneq\supsetneq\nsubseteq\nsupseteq\nparallel\nmid\nshortmid\nshortparallel\nvdash\nVdash\nvDash\nVDash\ntrianglerighteq\ntrianglelefteq\ntriangleleft\ntriangleright\nleftarrow\nrightarrow\nLeftarrow\nRightarrow\nLeftrightarrow\nleftrightarrow\divideontimes\varnothing\nexists\Finv\Game\eth\eqsim\beth\gimel\daleth\lessdot\gtrdot\ltimes\rtimes\shortmid\shortparallel\smallsetminus\thicksim\thickapprox\approxeq\succapprox\precapprox\curvearrowleft\curvearrowright\digamma\varkappa\Bbbk\hslash\backepsilon} - -\input{unicode-math.dtx} - -\begin{document} -\MakeShortVerb\| -\title{Symbols defined by \textsf{unicode-math}} -\author{Will Robertson} -\date{Modified (df) to show Neo Euler Math symbols} -\maketitle - -This document uses the file \texttt{unicode-math-table.tex} -to print every symbol defined by the \textsf{unicode-math} -package. -Use this document to find the command name or the Unicode glyph slot for a symbol that you wish to use. -The following fonts are shown: (with approximate symbol counts) -\begin{itemize} -\item[\Llm] \mathversion{lm} $\mathup{Latin\ Modern\ Math}$ (\ref{count:lm}) -%\item[\Lxits] \mathversion{xits} $\mathup{XITS\ Math}$ (\ref{count:xits}) -\item[\Lstix] \mathversion{stix} $\mathup{STIX\ Math\ Two}$ (\ref{count:stix}) -\item[\Lerewhon] \mathversion{erewhon} $\mathup{Erewhon\ Math}$ (\ref{count:erewhon}) -\item[\Lpagella] \mathversion{pagella} $\mathup{TeX\ Gyre\ Pagella\ Math}$ (\ref{count:pagella}) -\item[\Lasana] \mathversion{asana} $\mathup{Asana\ Math}$ (\ref{count:asana}) -\item[\Leuler] \mathversion{euler} $\mathup{Neo\ Euler}$ (\ref{count:euler}) -\end{itemize} -Symbols defined in Plain \TeX\ are indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (p)}} after their macro name. -\LaTeX\ follows Plain \TeX, but defines a handful more, indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (l)}}. -Symbols defined in \textsf{amssymb} are indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (a)}}. - -Note that this list of fonts is not intended to be exhaustive but I am happy to add new fonts by request if they are distributed in \TeX\ Live.\footnote{Only a single \TeX\ Gyre Math font is shown here by design as they all largely have the same symbol coverage.} - -\tableofcontents - -\clearpage -\section{Opening symbols, \cmd\mathopen} -\begingroup -\def\sqrt{\sqrtsign{}} -\def\cuberoot{\cuberootsign{}} -\def\fourthroot{\fourthrootsign{}} -\def\longdivision{\longdivisionsign{}} -\SHOW\mathopen -\endgroup - -\clearpage -\section{Closing symbols, \cmd\mathclose} -\SHOW\mathclose - -\section{Fence symbols, \cmd\mathfence} -\SHOW\mathfence - -\clearpage -\section{Punctuation symbols, \cmd\mathpunct} -\SHOW\mathpunct - -\section{`Over' symbols, \cmd\mathover} -\begingroup -\def\SYMB#1#2#3{% - \expandafter\iffontchar\csname#2\endcsname #3\relax - \refstepcounter{#2}% - \mathversion{#2}% - $\displaystyle #1{\mitx+\mity}$% - \fi -} -\SHOW\mathover -\endgroup - -\section{`Under' symbols, \cmd\mathunder} -\begingroup -\def\SYMB#1#2#3{% - \expandafter\iffontchar\csname#2\endcsname #3\relax - \refstepcounter{#2}% - \mathversion{#2}% - $\displaystyle #1{\mitx+\mity}$% - \fi -} -\SHOW\mathunder -\endgroup - -\clearpage -\section{Accents, \cmd\mathaccent} - -Note that accents will only be properly placed if used with an OpenType font with the necessary information. - -\begingroup -\def\SYMB#1#2#3{% - \expandafter\iffontchar\csname#2\endcsname #3\relax - \refstepcounter{#2}% - \mathversion{#2}% - $\displaystyle#1 \mitx$% - \fi -} -\SHOW\mathaccent -\endgroup - -% Added (df) -\section{Accents wide, \cmd\mathaccentwide} -\begingroup -\def\SYMB#1#2#3{% - \expandafter\iffontchar\csname#2\endcsname #3\relax - \refstepcounter{#2}% - \mathversion{#2}% - $\displaystyle#1 {\mitx+\mity}$% - \fi -} -\SHOW\mathaccentwide -\endgroup - -\section{Bottom accents, \cmd\mathbotaccent} -\begingroup -\def\SYMB#1#2#3{% - \expandafter\iffontchar\csname#2\endcsname #3\relax - \refstepcounter{#2}% - \mathversion{#2}% - $\displaystyle#1 \mitx$% - \fi -} -\SHOW\mathbotaccent -\endgroup - -% Added (df) -\section{Bottom accents wide, \cmd\mathbotaccentwide} -\begingroup -\def\SYMB#1#2#3{% - \expandafter\iffontchar\csname#2\endcsname #3\relax - \refstepcounter{#2}% - \mathversion{#2}% - $\displaystyle#1 {\mitx+\mity}$% - \fi -} -\SHOW\mathbotaccentwide -\endgroup - -\section{Big operators, \cmd\mathop} - -Of the operators shown below, a subset need to be flagged by \textsf{unicode-math} for \cmd\nolimits\ adjustments. -The limits behaviour as specified by \textsf{unicode-math} are shown with grey subscripts and superscripts. -\begingroup -\def\SYMB#1#2#3{% - \expandafter\iffontchar\csname#2\endcsname #3\relax - \stepcounter{#2}% - \mathversion{#2}% - $\displaystyle#1_0^1$% - \fi -} -\SHOW\mathop -\endgroup - -\clearpage -\section{Binary relations, \cmd\mathbin} -\SHOW\mathbin - -\clearpage -\section{Ordinary symbols, \cmd\mathord} -\SHOW\mathord - -\clearpage -\section{Relation symbols, \cmd\mathrel} -\SHOW\mathrel - -\clearpage -\section{Alphabetical symbols, \cmd\mathalpha} - -% first read in all \mathalpha symbols into a variable: -\ExplSyntaxOn -\cs_set:Npn \UnicodeMathSymbol #1#2#3#4 { - \str_if_eq:nnT {\mathalpha} {#3} { - \exp_not:n { \UnicodeMathSymbol {#1}{#2}{#3}{#4} } - } -} -\CatchFileEdef - \ALPHA{unicode-math-table.tex} - {\char_set_catcode_space:N \ } - -% now each time we print an alphabet we remove the slot; -% this ensures we won't miss anything - -\def\INPUT{\ALPHA} -\cs_new:Npn \SLOTS #1#2 { - \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 { - \bool_lazy_and:nnT - { \int_compare_p:n {##1 >= #1} } - { \int_compare_p:n {##1 <= #2} } - { - \PRINTLINE{##1}{##2}{##4} - } - } - \TABLE - \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 { - \bool_lazy_or:nnT - { \int_compare_p:n {##1 > #2} } - { \int_compare_p:n {##1 < #1} } - { - \exp_not:n { \UnicodeMathSymbol {##1}{##2}{##3}{##4} } - } - } - \edef\ALPHA{\ALPHA} -} - -\ExplSyntaxOff - -\subsection{Normal weight} - -\subsubsection{Upright Greek, uppercase} -\SLOTS{"00391}{"003A9} - -\subsubsection{Upright Greek, lowercase} -\SLOTS{"003B1}{"003F5} - -\subsubsection{Italic, Latin, uppercase} -\SLOTS{"1D434}{"1D44D} - -\subsubsection{Italic, Latin, lowercase} -\SLOTS{"1D44E}{"1D467} - -\subsubsection{Italic Greek, uppercase} -\SLOTS{"1D6E2}{"1D6FA} - -\subsubsection{Italic Greek, lowercase} -\SLOTS{"1D6FC}{"1D71B} - -\subsubsection{Script, Latin, uppercase} -\SLOTS{"1D49C}{"1D4B5} - -\subsubsection{Script, Latin, lowercase} -\SLOTS{"1D4B6}{"1D4CF} - -\subsubsection{Fraktur, Latin, uppercase} -\SLOTS{"1D504}{"1D51C} - -\subsubsection{Fraktur, Latin, lowercase} -\SLOTS{"1D51E}{"1D537} - -\subsubsection{Blackboard, Latin, uppercase} -\SLOTS{"1D538}{"1D550} - -\subsubsection{Blackboard, Latin, lowercase} -\SLOTS{"1D552}{"1D56B} - -\subsubsection{Sans serif, Latin, uppercase} -\SLOTS{"1D5A0}{"1D5B9} - -\subsubsection{Sans serif, Latin, lowercase} -\SLOTS{"1D5BA}{"1D5D3} - -\subsubsection{Italic sans serif, Latin, uppercase} -\SLOTS{"1D608}{"1D621} - -\subsubsection{Italic sans serif, Latin, lowercase} -\SLOTS{"1D622}{"1D63B} - -\subsubsection{Typewriter, Latin, uppercase} -\SLOTS{"1D670}{"1D689} - -\subsubsection{Typewriter, Latin, lowercase} -\SLOTS{"1D68A}{"1D6A3} - -\subsection{Bold} - -\subsubsection{Bold, Latin, uppercase} -\SLOTS{"1D400}{"1D419} - -\subsubsection{Bold, Latin, lowercase} -\SLOTS{"1D41A}{"1D433} - -\subsubsection{Bold Greek, uppercase} -\SLOTS{"1D6A8}{"1D6C0} - -\subsubsection{Bold Greek, lowercase} -\SLOTS{"1D6C2}{"1D6E1} - -\subsubsection{Bold italic, Latin, uppercase} -\SLOTS{"1D468}{"1D481} - -\subsubsection{Bold italic, Latin, lowercase} -\SLOTS{"1D482}{"1D49B} - -\subsubsection{Bold italic Greek, uppercase} -\SLOTS{"1D71C}{"1D734} - -\subsubsection{Bold italic Greek, lowercase} -\SLOTS{"1D736}{"1D755} - -\subsubsection{Bold script, Latin, uppercase} -\SLOTS{"1D4D0}{"1D4E9} - -\subsubsection{Bold script, Latin, lowercase} -\SLOTS{"1D4EA}{"1D503} - -\subsubsection{Bold fraktur, Latin, uppercase} -\SLOTS{"1D56C}{"1D585} - -\subsubsection{Bold fraktur, Latin, lowercase} -\SLOTS{"1D586}{"1D59F} - -\subsubsection{Bold sans serif, Latin, uppercase} -\SLOTS{"1D5D4}{"1D5ED} - -\subsubsection{Bold sans serif, Latin, lowercase} -\SLOTS{"1D5EE}{"1D607} - -\subsubsection{Bold italic sans serif, Latin, uppercase} -\SLOTS{"1D63C}{"1D655} - -\subsubsection{Bold italic sans serif, Latin, lowercase} -\SLOTS{"1D656}{"1D66F} - -\subsubsection{Bold sans serif Greek, uppercase} -\SLOTS{"1D756}{"1D76E} - -\subsubsection{Bold sans serif Greek, lowercase} -\SLOTS{"1D770}{"1D78F} - -\subsubsection{Bold italic sans serif Greek, uppercase} -\SLOTS{"1D790}{"1D7A8} - -\subsubsection{Bold italic sans serif Greek, lowercase} -\SLOTS{"1D7AA}{"1D7C9} - -\subsection{Miscellaneous} -\def\UnicodeMathSymbol#1#2#3#4{\PRINTLINE{#1}{#2}{#4}} -\TABLE - -\FINISH -\mbox{} -\end{document} - -\endinput - -% /© -% -% ------------------------------------------------ -% The UNICODE-MATH package -% ------------------------------------------------ -% This package is free software and may be redistributed and/or modified under -% the conditions of the LaTeX Project Public License, version 1.3c or higher -% (your choice): . -% ------------------------------------------------ -% Copyright 2006-2019 Will Robertson, LPPL "maintainer" -% Copyright 2010-2017 Philipp Stephani -% Copyright 2011-2017 Joseph Wright -% Copyright 2012-2015 Khaled Hosny -% ------------------------------------------------ -% -% ©/ - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% TeX-engine: luatex -%%% End: diff --git a/fonts/neo-euler/unimath-euler.pdf b/fonts/neo-euler/unimath-euler.pdf deleted file mode 100644 index 69dccf804c..0000000000 Binary files a/fonts/neo-euler/unimath-euler.pdf and /dev/null differ diff --git a/fonts/utilities/ps2pk/ChangeLog b/fonts/utilities/ps2pk/ChangeLog index 71be133792..7d476d56ec 100644 --- a/fonts/utilities/ps2pk/ChangeLog +++ b/fonts/utilities/ps2pk/ChangeLog @@ -1,3 +1,8 @@ +2022-11-06 Sam James + + * basename.c: placate clang16. + https://tug.org/pipermail/tlbuild/2022q4/005273.html + 2022-08-30 Karl Berry * pk2bm.1, diff --git a/fonts/utilities/ps2pk/basename.c b/fonts/utilities/ps2pk/basename.c index 624b746778..094ac811d0 100644 --- a/fonts/utilities/ps2pk/basename.c +++ b/fonts/utilities/ps2pk/basename.c @@ -6,11 +6,12 @@ * AUTHOR: Piet Tutelaers * VERSION: 1.0 (Sept. 1995) */ +#include /* exit() */ #include /* printf() */ #include "basics.h" /* fatal() */ #include "filenames.h" /* basename() */ -main(int argc, char **argv) +int main(int argc, char **argv) { if (argc < 2 || argc > 3) fatal("Usage: basename string [suffix]\n"); -- cgit v1.2.3