summaryrefslogtreecommitdiff
path: root/fonts
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-07-09 03:00:47 +0000
committerNorbert Preining <norbert@preining.info>2021-07-09 03:00:47 +0000
commit86f3f0ba5c374ad17aaefc15e92e4ab47edf821e (patch)
tree33349ffb1bce3a2285ac5daadb1e010c36b3d5ab /fonts
parentf008fc632f906448b4bdbc5cd96ab7d98e68b0b9 (diff)
CTAN sync 202107090300
Diffstat (limited to 'fonts')
-rw-r--r--fonts/eulerpx/README100
-rw-r--r--fonts/eulerpx/eulerpx.sty315
2 files changed, 287 insertions, 128 deletions
diff --git a/fonts/eulerpx/README b/fonts/eulerpx/README
index 593f66d513..ea8ff1ef75 100644
--- a/fonts/eulerpx/README
+++ b/fonts/eulerpx/README
@@ -4,40 +4,89 @@
= =
================================================================================
= =
-= Version 0.2.1 Jabir Ali Ouassou =
-= 2017-04-10 <jabirali at switzerlandmail dot ch> =
+= Version 0.3.0 Luuk Tijssen =
+= 2021-07-08 <ltijssen2502 at gmail dot com> =
= =
================================================================================
+The original author of this package is Jabir Ali Ouassou (up to, and including,
+v0.2.1). Newer versions of the package are updated by its new maintainer, Luuk
+Tijssen. I thank Ali for his continued support in the development of this
+package.
+
This package provides the `eulerpx' font, which started as a hybrid of multiple
-other font packages, notably eulervm and newpxmath. Its purpose is twofold:
- (1) To use the eulervm symbols for greek and latin letters, but the newpxmath
- font for braces and brackets, and the text font for digits and operators;
- (2) To make it easy to change between a sans and serif font for the digits and
- operators, so that the font can be used seamlessly in documents using both.
- As of v0.2, this is done automatically when you use \sffamily and \rmfamily.
+other font packages, notably eulervm and newpxmath. Its purpose is to use the
+eulervm symbols for greek and latin letters, but the newpxmath font for braces
+and brackets, and the text font for digits and operators.
+
This package was put together with the intent to use it with the Palatino and
Optima fonts (newpxtext and classico), but may work with other combinations too;
for instance, using it with the Kepler and Biolinum fonts (kpfonts and biolinum).
+It is not recommended to use this package with the Computer Modern text font,
+this looks ugly.
To use the package, add this to your preamble:
\usepackage{eulerpx}
-Note that in contrast to the eulervm package, bold math characters are accessed
-through the \mathbf macro. If the option `utf8' is provided, the package will
-also declare the Greek unicode range; i.e., if the package is included with
+As of v0.3, bold math characters are accessed through the \boldsymbol macro
+provided by the `amsmath' package. For more professional/serious applications,
+it is recommended to load the `bm' package for this purpose instead.
+
+Before v0.3, bold math characters were accessed through the \mathbf macro. This
+macro now yields the bold text (operator) font.
+
+This package basically loads the newpxmath package, after which it replaces the
+characters which are available in the fonts provided by eulervm. Therefore, many
+of the (anti-)features provided by newpxmath are carried over to this package as
+well. It is recommended to also read the documentation to the newpxmath package,
+which describes all of these features. This README only covers the features
+added by the eulerpx package.
+
+As of v0.3, you can load the newpxmath package with any options before the
+eulerpx package in your preamble
+
+ \usepackage[varbb]{newpxmath}
+ \usepackage{eulerpx}
+
+such as in the above example with the option `varbb'. This will cause newpxmath
+to load a different alphabet into the \mathbb macro. (Which, in the opinion of
+the authors, is prettier than the default.)
+
+Before v0.3, newpxmath was loaded with the options `upint' and `varbb' by
+default. When loading the newpxmath package before the eulerpx package without
+using these options would result in an options-clash LaTeX error. Upright
+integrals are still set by default, but without using this option, so that the
+user is free to load newpxmath with whatever options they desire.
+
+As of v0.2, the font for digits and operators is automatically changed to serif
+or sans-serif when the bindings \rmfamily or \sffamily (respectively) are
+encountered. However, it was found that the implementation of this feature lead
+to inconsistency in the output. For this reason, since v0.3, the feature now has
+to be explicitly enabled by using the option `sansmath', i.e.,
+
+ \usepackage[sansmath]{eulerpx}
+
+in order to enable its functionality. Beware that enabling this option might
+lead to unexpected behavior in the output.
+
+If the option `utf8' is provided, the package will also declare the Greek
+unicode range; i.e., if the package is included with
\usepackage[utf8]{inputenc}
\usepackage[utf8]{eulerpx}
-then you may write your equations in the form $α+β$ instead of $\alpha+\beta$.
+then you may write your equations in the form $α + β$ instead of $\alpha +
+\beta$. Note that the unicode coverage only includes the lower- and upper case
+Greek alphabets, no special roman/math characters are included. For this
+purpose you will need to load another package.
License
-------
Copyright 2016-2017 J. A. Ouassou
+Copyright 2021 L. Tijssen
This work may be distributed and/or modified under the conditions of the LaTeX
Project Public License, either version 1.3 of this license or (at your option)
@@ -48,7 +97,7 @@ version 2005/12/01 or later.
This work has the LPPL maintenance status `maintained'.
-The Current Maintainer of this work is J. A. Ouassou.
+The Current Maintainer of this work is L. Tijssen.
This work consists of the file eulerpx.sty.
@@ -56,28 +105,39 @@ This work consists of the file eulerpx.sty.
History
-------
-2016-10-01:
- v0.1: Initial eulerpx package created.
+2021-07-08:
+ v0.3.0: Major overhaul in the way that the eulervm fonts are loaded
+ internally. This fixes many bugs (caused by interfering with
+ newpxmath). The sansmath implementation is now turned off by default.
+ (It was also causing inconsistent output.) \mathscr and \mathfrak
+ alphabets now yield Euler Script and Euler Fraktur fonts,
+ respectively. \leq, \geq, and variations are now slanted by default
+ (much like the original Euler fonts). Many other changes which should
+ be reflected above in this README.
+2017-04-10:
+ v0.2.1: Fixed a bug that prevented \infty from displaying correctly.
+ [Thanks to Georg Bube for reporting the problem and solution.]
2017-02-03:
v0.2: Fixed a bug that messed up symbols like braces and brackets. Redefined
the macros \sffamily and \rmfamily so that they automatically change
the alphabet used for operators and numbers to match the environment.
-2017-04-10:
- v0.2.1: Fixed a bug that prevented \infty from displaying correctly.
- [Thanks to Georg Bube for reporting the problem and solution.]
+2016-10-01:
+ v0.1: Initial eulerpx package created.
Credits
-------
This package is based on the following existing packages:
+ - The package `eulerpx' v0.2.1, originally written by Jabir Ali Ouassou.
- The package `newpxmath' is loaded as a base font, to provide parentheses,
brackets, relations, \mathbb, etc. This was done because in the authors'
opinion, the newpx brackets are much more aesthetic than the Euler ones.
- The Euler symbols for latin and greek letters are then loaded. This part
is based directly on the `eulervm' package, but it has been modified to
- not use e.g. Euler digits and brackets. For maintainability, the support
- for other encodings than T1 has been removed.
+ not use e.g. Euler digits and brackets. As of v0.3, support for encodings
+ other than T1 has returned. It is now possible to use any encoding supported
+ by newpxmath.
- The \mathversion implementation is inspired by the `sansmath' package. I
have modified this such that the macro does not alter the font used for
mathematical symbols, only the fonts used for operators and numerals. This
diff --git a/fonts/eulerpx/eulerpx.sty b/fonts/eulerpx/eulerpx.sty
index 1af6c7b773..8824cc0a2c 100644
--- a/fonts/eulerpx/eulerpx.sty
+++ b/fonts/eulerpx/eulerpx.sty
@@ -1,5 +1,6 @@
%% eulerpx.sty
%% Copyright 2016-2017 J. A. Ouassou
+%% Copyright 2021 L. Tijssen
%%
%% This work may be distributed and/or modified under the conditions of the LaTeX
%% Project Public License, either version 1.3 of this license or (at your option)
@@ -10,137 +11,233 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainer of this work is J. A. Ouassou.
+%% The Current Maintainer of this work is L. Tijssen.
%%
%% This work consists of the file eulerpx.sty.
%%
% Package metadata
-\def\fileversion{v0.2.1}
-\def\filedate{2017/04/10}
+\def\fileversion{v0.3.0}
+\def\filedate{2021/07/08}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{eulerpx}[\filedate\space\fileversion]
\typeout{Package: `eulerpx' \fileversion\space<\filedate>}
-% Make sure we have support for T1 symbols
-\RequirePackage[T1]{fontenc}
+% Inherit custom integral definitions from `amsmath'
+\RequirePackage{amsmath}
% Inherit math symbols from the `newpxmath' package
-\RequirePackage[varbb,upint]{newpxmath}
+\RequirePackage{newpxmath}
-% Declare the math serif font
-\DeclareMathVersion{normal}
-\SetSymbolFont{operators}{normal}{T1}{\rmdefault}{m}{n}
-\SetMathAlphabet{\mathrm}{normal}{T1}{\rmdefault}{m}{n}
+% Declare Euler Roman as symbol font
+\DeclareSymbolFont{EulerRoman}{U}{zeur}{m}{n}
+\SetSymbolFont{EulerRoman}{bold}{U}{zeur}{b}{n}
-% Declare the math sans font
-\DeclareMathVersion{sans}
-\SetSymbolFont{operators}{sans}{T1}{\sfdefault}{m}{n}
-\SetMathAlphabet{\mathrm}{sans}{T1}{\sfdefault}{m}{n}
-
-% Make the package toggle between sans/serif math automatically
-\let\oldrmfamily=\rmfamily
-\let\oldsffamily=\sffamily
-\renewcommand{\rmfamily}{\oldrmfamily\mathversion{normal}}
-\renewcommand{\sffamily}{\oldsffamily\mathversion{sans}}
+% Declare Euler math alphabets
+% Euler Script
+\let\varmathscr=\mathscr
+\let\mathscr=\undefined
+\DeclareMathAlphabet\mathscr{U}{zeus}{m}{n}
+\SetMathAlphabet\mathscr{bold}{U}{zeus}{b}{n}
-%% Get rid of the existing \mathbf font
-\let\mathbf=\relax
+% Euler Fraktur
+\DeclareMathAlphabet\mathfrak{U}{euf}{m}{n}
+\SetMathAlphabet\mathfrak{bold}{U}{euf}{b}{n}
-% Declare Euler math alphabets
-\DeclareSymbolFont{letters} {U}{zeur}{m}{n}
-\SetSymbolFont{letters}{bold} {U}{zeur}{b}{n}
-\DeclareMathAlphabet{\mathbf} {U}{zeur}{b}{n}
-
-% Upper-case greek letters
-\DeclareMathSymbol{\Gamma} {\mathalpha}{letters}{"00}
-\DeclareMathSymbol{\Delta} {\mathalpha}{letters}{"01}
-\DeclareMathSymbol{\Theta} {\mathalpha}{letters}{"02}
-\DeclareMathSymbol{\Lambda} {\mathalpha}{letters}{"03}
-\DeclareMathSymbol{\Xi} {\mathalpha}{letters}{"04}
-\DeclareMathSymbol{\Pi} {\mathalpha}{letters}{"05}
-\DeclareMathSymbol{\Sigma} {\mathalpha}{letters}{"06}
-\DeclareMathSymbol{\Upsilon} {\mathalpha}{letters}{"07}
-\DeclareMathSymbol{\Phi} {\mathalpha}{letters}{"08}
-\DeclareMathSymbol{\Psi} {\mathalpha}{letters}{"09}
-\DeclareMathSymbol{\Omega} {\mathalpha}{letters}{"0A}
-
-\DeclareMathSymbol{\upOmega} {\mathord}{letters}{"0A}
-\DeclareMathSymbol{\upDelta} {\mathord}{letters}{"01}
-
-% Lower-case greek letters
-\DeclareMathSymbol{\alpha} {\mathalpha}{letters}{"0B}
-\DeclareMathSymbol{\beta} {\mathalpha}{letters}{"0C}
-\DeclareMathSymbol{\gamma} {\mathalpha}{letters}{"0D}
-\DeclareMathSymbol{\delta} {\mathalpha}{letters}{"0E}
-\DeclareMathSymbol{\epsilon} {\mathalpha}{letters}{"0F}
-\DeclareMathSymbol{\zeta} {\mathalpha}{letters}{"10}
-\DeclareMathSymbol{\eta} {\mathalpha}{letters}{"11}
-\DeclareMathSymbol{\theta} {\mathalpha}{letters}{"12}
-\DeclareMathSymbol{\iota} {\mathalpha}{letters}{"13}
-\DeclareMathSymbol{\kappa} {\mathalpha}{letters}{"14}
-\DeclareMathSymbol{\lambda} {\mathalpha}{letters}{"15}
-\DeclareMathSymbol{\mu} {\mathalpha}{letters}{"16}
-\DeclareMathSymbol{\nu} {\mathalpha}{letters}{"17}
-\DeclareMathSymbol{\xi} {\mathalpha}{letters}{"18}
-\DeclareMathSymbol{\pi} {\mathalpha}{letters}{"19}
-\DeclareMathSymbol{\rho} {\mathalpha}{letters}{"1A}
-\DeclareMathSymbol{\sigma} {\mathalpha}{letters}{"1B}
-\DeclareMathSymbol{\tau} {\mathalpha}{letters}{"1C}
-\DeclareMathSymbol{\upsilon} {\mathalpha}{letters}{"1D}
-\DeclareMathSymbol{\phi} {\mathalpha}{letters}{"1E}
-\DeclareMathSymbol{\chi} {\mathalpha}{letters}{"1F}
-\DeclareMathSymbol{\psi} {\mathalpha}{letters}{"20}
-\DeclareMathSymbol{\omega} {\mathalpha}{letters}{"21}
-\DeclareMathSymbol{\varepsilon} {\mathalpha}{letters}{"22}
-\DeclareMathSymbol{\vartheta} {\mathalpha}{letters}{"23}
-\DeclareMathSymbol{\varpi} {\mathalpha}{letters}{"24}
-\DeclareMathSymbol{\varphi} {\mathalpha}{letters}{"27}
+% Upper-case Greek letters
+\DeclareMathSymbol{\Gamma}{\mathalpha}{EulerRoman}{0}
+\DeclareMathSymbol{\Delta}{\mathalpha}{EulerRoman}{1}
+\DeclareMathSymbol{\Theta}{\mathalpha}{EulerRoman}{2}
+\DeclareMathSymbol{\Lambda}{\mathalpha}{EulerRoman}{3}
+\DeclareMathSymbol{\Xi}{\mathalpha}{EulerRoman}{4}
+\DeclareMathSymbol{\Pi}{\mathalpha}{EulerRoman}{5}
+\DeclareMathSymbol{\Sigma}{\mathalpha}{EulerRoman}{6}
+\DeclareMathSymbol{\Upsilon}{\mathalpha}{EulerRoman}{7}
+\DeclareMathSymbol{\Phi}{\mathalpha}{EulerRoman}{8}
+\DeclareMathSymbol{\Psi}{\mathalpha}{EulerRoman}{9}
+\DeclareMathSymbol{\Omega}{\mathalpha}{EulerRoman}{10}
+% Lower-case Greek letters
+\DeclareMathSymbol{\alpha}{\mathord}{EulerRoman}{11}
+\DeclareMathSymbol{\beta}{\mathord}{EulerRoman}{12}
+\DeclareMathSymbol{\gamma}{\mathord}{EulerRoman}{13}
+\DeclareMathSymbol{\delta}{\mathord}{EulerRoman}{14}
+\DeclareMathSymbol{\epsilon}{\mathord}{EulerRoman}{15}
+\DeclareMathSymbol{\zeta}{\mathord}{EulerRoman}{16}
+\DeclareMathSymbol{\eta}{\mathord}{EulerRoman}{17}
+\DeclareMathSymbol{\theta}{\mathord}{EulerRoman}{18}
+\DeclareMathSymbol{\iota}{\mathord}{EulerRoman}{19}
+\DeclareMathSymbol{\kappa}{\mathord}{EulerRoman}{20}
+\DeclareMathSymbol{\lambda}{\mathord}{EulerRoman}{21}
+\DeclareMathSymbol{\mu}{\mathord}{EulerRoman}{22}
+\DeclareMathSymbol{\nu}{\mathord}{EulerRoman}{23}
+\DeclareMathSymbol{\xi}{\mathord}{EulerRoman}{24}
+\DeclareMathSymbol{\pi}{\mathord}{EulerRoman}{25}
+\DeclareMathSymbol{\rho}{\mathord}{EulerRoman}{26}
+\DeclareMathSymbol{\sigma}{\mathord}{EulerRoman}{27}
+\DeclareMathSymbol{\tau}{\mathord}{EulerRoman}{28}
+\DeclareMathSymbol{\upsilon}{\mathord}{EulerRoman}{29}
+\DeclareMathSymbol{\phi}{\mathord}{EulerRoman}{30}
+\DeclareMathSymbol{\chi}{\mathord}{EulerRoman}{31}
+\DeclareMathSymbol{\psi}{\mathord}{EulerRoman}{32}
+\DeclareMathSymbol{\omega}{\mathord}{EulerRoman}{33}
+\DeclareMathSymbol{\varepsilon}{\mathord}{EulerRoman}{34}
+\DeclareMathSymbol{\vartheta}{\mathord}{EulerRoman}{35}
+\DeclareMathSymbol{\varpi}{\mathord}{EulerRoman}{36}
\let\varsigma=\sigma
\let\varrho=\rho
+\DeclareMathSymbol{\varphi}{\mathord}{EulerRoman}{39}
+
+%% Arabic (lining) numerals
+%\DeclareMathSymbol{0}{\mathalpha}{EulerRoman}{48}
+%\DeclareMathSymbol{1}{\mathalpha}{EulerRoman}{49}
+%\DeclareMathSymbol{2}{\mathalpha}{EulerRoman}{50}
+%\DeclareMathSymbol{3}{\mathalpha}{EulerRoman}{51}
+%\DeclareMathSymbol{4}{\mathalpha}{EulerRoman}{52}
+%\DeclareMathSymbol{5}{\mathalpha}{EulerRoman}{53}
+%\DeclareMathSymbol{6}{\mathalpha}{EulerRoman}{54}
+%\DeclareMathSymbol{7}{\mathalpha}{EulerRoman}{55}
+%\DeclareMathSymbol{8}{\mathalpha}{EulerRoman}{56}
+%\DeclareMathSymbol{9}{\mathalpha}{EulerRoman}{57}
+%
+%\DeclareMathSymbol{.}{\mathord}{EulerRoman}{58}
+%\DeclareMathSymbol{,}{\mathpunct}{EulerRoman}{59}
+
+\DeclareMathSymbol{\partial}{\mathord}{EulerRoman}{64}
+
+% Upper-case Roman letters
+\DeclareMathSymbol{A}{\mathalpha}{EulerRoman}{65}
+\DeclareMathSymbol{B}{\mathalpha}{EulerRoman}{66}
+\DeclareMathSymbol{C}{\mathalpha}{EulerRoman}{67}
+\DeclareMathSymbol{D}{\mathalpha}{EulerRoman}{68}
+\DeclareMathSymbol{E}{\mathalpha}{EulerRoman}{69}
+\DeclareMathSymbol{F}{\mathalpha}{EulerRoman}{70}
+\DeclareMathSymbol{G}{\mathalpha}{EulerRoman}{71}
+\DeclareMathSymbol{H}{\mathalpha}{EulerRoman}{72}
+\DeclareMathSymbol{I}{\mathalpha}{EulerRoman}{73}
+\DeclareMathSymbol{J}{\mathalpha}{EulerRoman}{74}
+\DeclareMathSymbol{K}{\mathalpha}{EulerRoman}{75}
+\DeclareMathSymbol{L}{\mathalpha}{EulerRoman}{76}
+\DeclareMathSymbol{M}{\mathalpha}{EulerRoman}{77}
+\DeclareMathSymbol{N}{\mathalpha}{EulerRoman}{78}
+\DeclareMathSymbol{O}{\mathalpha}{EulerRoman}{79}
+\DeclareMathSymbol{P}{\mathalpha}{EulerRoman}{80}
+\DeclareMathSymbol{Q}{\mathalpha}{EulerRoman}{81}
+\DeclareMathSymbol{R}{\mathalpha}{EulerRoman}{82}
+\DeclareMathSymbol{S}{\mathalpha}{EulerRoman}{83}
+\DeclareMathSymbol{T}{\mathalpha}{EulerRoman}{84}
+\DeclareMathSymbol{U}{\mathalpha}{EulerRoman}{85}
+\DeclareMathSymbol{V}{\mathalpha}{EulerRoman}{86}
+\DeclareMathSymbol{W}{\mathalpha}{EulerRoman}{87}
+\DeclareMathSymbol{X}{\mathalpha}{EulerRoman}{88}
+\DeclareMathSymbol{Y}{\mathalpha}{EulerRoman}{89}
+\DeclareMathSymbol{Z}{\mathalpha}{EulerRoman}{90}
+
+\DeclareMathSymbol{\ell}{\mathord}{EulerRoman}{96}
+
+% Lower-case Roman letters
+\DeclareMathSymbol{a}{\mathalpha}{EulerRoman}{97}
+\DeclareMathSymbol{b}{\mathalpha}{EulerRoman}{98}
+\DeclareMathSymbol{c}{\mathalpha}{EulerRoman}{99}
+\DeclareMathSymbol{d}{\mathalpha}{EulerRoman}{100}
+\DeclareMathSymbol{e}{\mathalpha}{EulerRoman}{101}
+\DeclareMathSymbol{f}{\mathalpha}{EulerRoman}{102}
+\DeclareMathSymbol{g}{\mathalpha}{EulerRoman}{103}
+\DeclareMathSymbol{h}{\mathalpha}{EulerRoman}{104}
+\DeclareMathSymbol{i}{\mathalpha}{EulerRoman}{105}
+\DeclareMathSymbol{j}{\mathalpha}{EulerRoman}{106}
+\DeclareMathSymbol{k}{\mathalpha}{EulerRoman}{107}
+\DeclareMathSymbol{l}{\mathalpha}{EulerRoman}{108}
+\DeclareMathSymbol{m}{\mathalpha}{EulerRoman}{109}
+\DeclareMathSymbol{n}{\mathalpha}{EulerRoman}{110}
+\DeclareMathSymbol{o}{\mathalpha}{EulerRoman}{111}
+\DeclareMathSymbol{p}{\mathalpha}{EulerRoman}{112}
+\DeclareMathSymbol{q}{\mathalpha}{EulerRoman}{113}
+\DeclareMathSymbol{r}{\mathalpha}{EulerRoman}{114}
+\DeclareMathSymbol{s}{\mathalpha}{EulerRoman}{115}
+\DeclareMathSymbol{t}{\mathalpha}{EulerRoman}{116}
+\DeclareMathSymbol{u}{\mathalpha}{EulerRoman}{117}
+\DeclareMathSymbol{v}{\mathalpha}{EulerRoman}{118}
+\DeclareMathSymbol{w}{\mathalpha}{EulerRoman}{119}
+\DeclareMathSymbol{x}{\mathalpha}{EulerRoman}{120}
+\DeclareMathSymbol{y}{\mathalpha}{EulerRoman}{121}
+\DeclareMathSymbol{z}{\mathalpha}{EulerRoman}{122}
+
+\DeclareMathSymbol{\imath}{\mathord}{EulerRoman}{123}
+\DeclareMathSymbol{\jmath}{\mathord}{EulerRoman}{124}
+\DeclareMathSymbol{\wp}{\mathord}{EulerRoman}{125}
-% Math accents
-\DeclareMathAccent{\acute}{\mathalpha}{operators}{1}
-\DeclareMathAccent{\grave}{\mathalpha}{operators}{0}
-\DeclareMathAccent{\ddot}{\mathalpha}{operators}{4}
-\DeclareMathAccent{\tilde}{\mathalpha}{operators}{3}
-\DeclareMathAccent{\bar}{\mathalpha}{operators}{9}
-\DeclareMathAccent{\breve}{\mathalpha}{operators}{8}
-\DeclareMathAccent{\check}{\mathalpha}{operators}{7}
-\DeclareMathAccent{\hat}{\mathalpha}{operators}{2}
-\DeclareMathAccent{\dot}{\mathalpha}{operators}{10}
-
-% Numbers
-\DeclareMathSymbol{0}{\mathord}{operators}{`0}
-\DeclareMathSymbol{1}{\mathord}{operators}{`1}
-\DeclareMathSymbol{2}{\mathord}{operators}{`2}
-\DeclareMathSymbol{3}{\mathord}{operators}{`3}
-\DeclareMathSymbol{4}{\mathord}{operators}{`4}
-\DeclareMathSymbol{5}{\mathord}{operators}{`5}
-\DeclareMathSymbol{6}{\mathord}{operators}{`6}
-\DeclareMathSymbol{7}{\mathord}{operators}{`7}
-\DeclareMathSymbol{8}{\mathord}{operators}{`8}
-\DeclareMathSymbol{9}{\mathord}{operators}{`9}
-
-% Punctuation
-\DeclareMathSymbol{!}{\mathclose}{operators}{"21}
-\DeclareMathSymbol{,}{\mathpunct}{operators}{`\,}
-\DeclareMathSymbol{.}{\mathord}{operators}{`\.}
-\DeclareMathSymbol{:}{\mathrel}{operators}{`\:}
-\DeclareMathSymbol{;}{\mathpunct}{operators}{`\;}
-\DeclareMathSymbol{?}{\mathclose}{operators}{`\?}
-
-% Miscellaneous
-\DeclareMathSymbol{\hbar}{\mathord}{letters}{128}
-\DeclareMathSymbol{\infty}{\mathord}{symbols}{49}
+\DeclareMathSymbol{\hslash}{\mathord}{EulerRoman}{128}
+\let\hbar=\hslash
+
+% Renew the definition of #1 to #3, only if #3 exists,
+% and store the old definition of #1 in #2
+\def\epx@renewifdefined#1#2#3{%
+ \ifdefined#3%
+ \let#2=#1%
+ \let#1=#3%
+ \fi%
+}
+
+% Change geq, leq and their shorthands/negations to slanted versions
+\epx@renewifdefined{\geq}{\geqnormal}{\geqslant}
+\let\ge=\geq
+\epx@renewifdefined{\leq}{\leqnormal}{\leqslant}
+\let\le=\leq
+\epx@renewifdefined{\ngeq}{\ngeqnormal}{\ngeqslant}
+\epx@renewifdefined{\nleq}{\nleqnormal}{\nleqslant}
+
+% Upright integrals
+\epx@renewifdefined{\smallint}{\smallintsl}{\smallintup}
+\epx@renewifdefined{\smalliint}{\smalliintsl}{\smalliintup}
+\epx@renewifdefined{\smalliiint}{\smalliiintsl}{\smalliiintup}
+\epx@renewifdefined{\smalloint}{\smallointsl}{\smallointup}
+\epx@renewifdefined{\smalloiint}{\smalloiintsl}{\smalloiintup}
+\epx@renewifdefined{\smalloiiint}{\smalloiiintsl}{\smalloiiintup}
+\epx@renewifdefined{\smallvarointclockwise}{\smallvarointclockwisesl}{\smallvarointclockwiseup}
+\epx@renewifdefined{\smallointctrclockwise}{\smallointctrclockwisesl}{\smallointctrclockwiseup}
+\epx@renewifdefined{\smallsumint}{\smallsumintsl}{\smallsumintup}
+\epx@renewifdefined{\smalliiiint}{\smalliiiintsl}{\smalliiiintup}
+\epx@renewifdefined{\smallfint}{\smallfintsl}{\smallfintup}
+\epx@renewifdefined{\smallsqint}{\smallsqintsl}{\smallsqintup}
+
+\epx@renewifdefined{\intop}{\intslop}{\intupop}
+\epx@renewifdefined{\iintop}{\iintslop}{\iintupop}
+\epx@renewifdefined{\iiintop}{\iiintslop}{\iiintupop}
+\epx@renewifdefined{\ointop}{\ointslop}{\ointupop}
+\epx@renewifdefined{\oiintop}{\oiintslop}{\oiintupop}
+\epx@renewifdefined{\oiiintop}{\oiiintslop}{\oiiintupop}
+\epx@renewifdefined{\varointclockwiseop}{\varointclockwiseslop}{\varointclockwiseupop}
+\epx@renewifdefined{\ointctrclockwiseop}{\ointctrclockwiseslop}{\ointctrclockwiseupop}
+\epx@renewifdefined{\sumintop}{\sumintslop}{\sumintupop}
+\epx@renewifdefined{\iiiintop}{\iiiintslop}{\iiiintupop}
+\epx@renewifdefined{\fintop}{\fintslop}{\fintupop}
+\epx@renewifdefined{\sqintop}{\sqintslop}{\sqintupop}
+
+% Sans-serif maths
+\DeclareOption{sansmath}{
+ % Declare the math serif font
+ \DeclareMathVersion{normal}
+ \SetSymbolFont{operators}{normal}{T1}{\rmdefault}{m}{n}
+ \SetMathAlphabet{\mathrm}{normal}{T1}{\rmdefault}{m}{n}
+
+ % Declare the math sans font
+ \DeclareMathVersion{sans}
+ \SetSymbolFont{operators}{sans}{T1}{\sfdefault}{m}{n}
+ \SetMathAlphabet{\mathrm}{sans}{T1}{\sfdefault}{m}{n}
+
+ % Make the package toggle between sans/serif math automatically
+ \let\oldrmfamily=\rmfamily
+ \let\oldsffamily=\sffamily
+ \renewcommand{\rmfamily}{\oldrmfamily\mathversion{normal}}
+ \renewcommand{\sffamily}{\oldsffamily\mathversion{sans}}
+}
% Unicode input
-\DeclareOption{utf8}%
-{
+\DeclareOption{utf8}{
\DeclareUnicodeCharacter{0393}{\Gamma}
\DeclareUnicodeCharacter{0394}{\Delta}
- \DeclareUnicodeCharacter{0398}{\Theta}
+ \DeclareUnicodeCharacter{0398}{\Theta}
\DeclareUnicodeCharacter{039B}{\Lambda}
\DeclareUnicodeCharacter{039E}{\Xi}
\DeclareUnicodeCharacter{03A0}{\Pi}
@@ -176,3 +273,5 @@
}
\ProcessOptions\relax
+
+\endinput