summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/fontsetup/fontsetup.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/fontsetup/fontsetup.sty')
-rw-r--r--Master/texmf-dist/tex/latex/fontsetup/fontsetup.sty375
1 files changed, 164 insertions, 211 deletions
diff --git a/Master/texmf-dist/tex/latex/fontsetup/fontsetup.sty b/Master/texmf-dist/tex/latex/fontsetup/fontsetup.sty
index 5d40b84f277..5479b8d2946 100644
--- a/Master/texmf-dist/tex/latex/fontsetup/fontsetup.sty
+++ b/Master/texmf-dist/tex/latex/fontsetup/fontsetup.sty
@@ -1,217 +1,170 @@
-%\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{fontsetup}[Easy font setup by Antonis Tsolomitis]
-\typeout{fontsetup: Easy font setup by Antonis Tsolomitis}
-
-\RequirePackage{fontspec}
-
-\@ifpackageloaded{xgreek}{%
-\newcommand\leftgrquotes{\char"201C}%
-\newcommand\rightgrquotes{\char"201E}%
-\defaultfontfeatures+{CharacterVariant=4}%
-}{}
-
-
-\chardef\fontsetupdefault=0 %
-\chardef\fontsetupgfsartemisia=1
-\chardef\fontsetupgfsdidot=2
-\chardef\fontsetupgfsdidotclassic=3
-\chardef\fontsetupgfsneohellenic=4
-\chardef\fontsetupcambria=5 %install cambria as a system font. cambria.ttc, cambriai.ttf, cambriab.ttf, cambriaz.ttf
-\chardef\fontsetuplucida=6 %install in TeX tree
-\chardef\fontsetupkerkis=7
-\chardef\fontsetupfira=8
-\chardef\fontsetuptimes=9
-\chardef\fontsetuppalatino=10 %install Linotype Palatino as a System font. Files pala.ttf palai, palab, palabi. Install fspPalatinoGreekSmallCaps as a System font.
-\chardef\fontsetupstixtwo=11
-\chardef\fontsetupneokadmus=12
-\chardef\fontsetupmsgaramond=13 %install Microsoft Garamond as a System font. Gara.TTF, Garai, Garabd
-\chardef\fontsetupebgaramond=14
-\chardef\fontsetupminion=15 % Install MinionPro and provided fspMinionGreekSmallCaps as a system font.
-\chardef\fontsetupeuler=16
-\chardef\fontsetuplibertinus=17
-\chardef\fontsetupolddefault=18 % old (thin) CMR
-\chardef\fontsetupconcrete=19
-\chardef\fontsetuptalos=20
-\chardef\fontsetupoldstandard=21
-\chardef\fontsetupxcharter=22
-\chardef\fontsetuperewhon=23
-
-\chardef\fontsetupfont\fontsetupdefault
-\DeclareOption{default}{\chardef\fontsetupfont\fontsetupdefault}
-\DeclareOption{gfsartemisia}{\chardef\fontsetupfont\fontsetupgfsartemisia}
-\DeclareOption{gfsdidot}{\chardef\fontsetupfont\fontsetupgfsdidot}
-\DeclareOption{gfsdidotclassic}{\chardef\fontsetupfont\fontsetupgfsdidotclassic}
-\DeclareOption{gfsneohellenic}{\chardef\fontsetupfont\fontsetupgfsneohellenic}
-\DeclareOption{cambria}{\chardef\fontsetupfont\fontsetupcambria}
-\DeclareOption{lucida}{\chardef\fontsetupfont\fontsetuplucida}
-\DeclareOption{kerkis}{\chardef\fontsetupfont\fontsetupkerkis}
-\DeclareOption{fira}{\chardef\fontsetupfont\fontsetupfira}
-\DeclareOption{times}{\chardef\fontsetupfont\fontsetuptimes}
-\DeclareOption{palatino}{\chardef\fontsetupfont\fontsetuppalatino}
-\DeclareOption{stixtwo}{\chardef\fontsetupfont\fontsetupstixtwo}
-\DeclareOption{neokadmus}{\chardef\fontsetupfont\fontsetupneokadmus}
-\DeclareOption{msgaramond}{\chardef\fontsetupfont\fontsetupmsgaramond}
-\DeclareOption{ebgaramond}{\chardef\fontsetupfont\fontsetupebgaramond}
-\DeclareOption{minion}{\chardef\fontsetupfont\fontsetupminion}
-\DeclareOption{euler}{\chardef\fontsetupfont\fontsetupeuler}
-\DeclareOption{neoeuler}{\chardef\fontsetupfont\fontsetupeuler} %compatibility
-\DeclareOption{libertinus}{\chardef\fontsetupfont\fontsetuplibertinus}
-\DeclareOption{olddefault}{\chardef\fontsetupfont\fontsetupolddefault}
-\DeclareOption{concrete}{\chardef\fontsetupfont\fontsetupconcrete}
-\DeclareOption{talos}{\chardef\fontsetupfont\fontsetuptalos}
-\DeclareOption{oldstandard}{\chardef\fontsetupfont\fontsetupoldstandard}
-\DeclareOption{xcharter}{\chardef\fontsetupfont\fontsetupxcharter}
-\DeclareOption{erewhon}{\chardef\fontsetupfont\fontsetuperewhon}
-\DeclareOption*{\PackageWarning{fontsetup}{Unknown ‘\CurrentOption’}}
-%
+\ProvidesPackage{fontsetup}[2023/12/16 v2.0 For easily using font families with mathematics]
+\RequirePackage{iflang}
+\RequirePackage{iftex}
+% Provide a test to know if a 16bits TeX is used.
+\iftutex
+ \RequirePackage{fontspec}
+ \RequirePackage{unicode-math}
+ \ifxetex
+ \RequirePackage{ucharclasses}
+ \fi
+\else
+ \PackageError{fontsetup}{Use Unicode-compliant TeX-engines}{%
+ The package requires Unicode-compliant engines, e.g.,\MessageBreak
+ Xe/LuaLaTeX. Kindly run your code with one of them.%
+ }%
+\fi
\newif\if@upint
-\DeclareOption{upint}{\@upinttrue}
-%
\newif\if@varnothing
+\newif\if@newcmbb
+\newif\if@erewhon
+\newif\if@xcharter
+\newif\if@gfs
+\newif\if@libertinus
+\newif\if@palatino
+\newif\if@msgaramond
+\newif\if@minion
+\newcommand*\greeksetup{%
+ \newcommand*\leftgrquotes{\char"201C}%
+ \newcommand*\rightgrquotes{\char"201E}%
+}
+\newcommand*\cvfoursetup{%
+ \defaultfontfeatures[cv04-Book]{CharacterVariant=4}%
+ \defaultfontfeatures[cv04-Regular]{CharacterVariant=4}%
+ \defaultfontfeatures[cv04Sans-Book]{CharacterVariant=4}%
+ \defaultfontfeatures[cv04Sans-Regular]{CharacterVariant=4}%
+ \defaultfontfeatures[cv04Mono-Book]{CharacterVariant=4}%
+ \defaultfontfeatures[cv04Sans-Regular]{CharacterVariant=4}%
+}
+\IfLanguageName{greek}{\greeksetup}{\@ifpackageloaded{xgreek}{\greeksetup}{}}
+\newcommand*\ncmsetup{%
+ \if@upint
+ \if@varnothing
+ \if@newcmbb
+ \setmathfont[StylisticSet=2,StylisticSet=3,CharacterVariant=1]{NewCMMath-\regularorbook.otf}%
+ \else
+ \setmathfont[StylisticSet=2,CharacterVariant=1]{NewCMMath-\regularorbook.otf}%
+ \fi
+ \else
+ \if@newcmbb
+ \setmathfont[StylisticSet=2,StylisticSet=3]{NewCMMath-\regularorbook.otf}%
+ \else
+ \setmathfont[StylisticSet=2]{NewCMMath-\regularorbook.otf}%
+ \fi
+ \fi
+ \else
+ \if@varnothing
+ \if@newcmbb
+ \setmathfont[StylisticSet=3,CharacterVariant=1]{NewCMMath-\regularorbook.otf}%
+ \else
+ \setmathfont[CharacterVariant=1]{NewCMMath-\regularorbook.otf}%
+ \fi
+ \else
+ \if@newcmbb
+ \setmathfont[StylisticSet=3]{NewCMMath-\regularorbook.otf}%
+ \else
+ \setmathfont{NewCMMath-\regularorbook.otf}%
+ \fi
+ \fi
+ \fi
+ \IfLanguageName{greek}{\cvfoursetup}{\@ifpackageloaded{xgreek}{\cvfoursetup}{}}}
+\DeclareOption{upint}{\@upinttrue}
\DeclareOption{varnothing}{\@varnothingtrue}
-%
-\newif\if@amsbb
-\DeclareOption{amsbb}{\@amsbbtrue}
-%
+\DeclareOption{newcmbb}{\@newcmbbtrue}
+\DeclareOption{default}{%
+ \input{fspdefault}%
+ \begingroup
+ \newcommand*{\regularorbook}{Book}%
+ \ncmsetup
+ \endgroup
+}
+\DeclareOption{olddefault}{%
+ \input{fspolddefault}%
+ \begingroup
+ \newcommand*{\regularorbook}{Regular}%
+ \ncmsetup
+ \endgroup
+}
+% Install Cambria as a system font.
+% cambria.ttc, cambriai.ttf, cambriab.ttf, cambriaz.ttf
+\DeclareOption{cambria}{\input{fspcambria}}
+\DeclareOption{concrete}{\input{fspconcrete}}
+\DeclareOption{ebgaramond}{\input{fspebgaramondot}}
+\DeclareOption{erewhon}{\input{fsperewhon}\@erewhontrue}
+\DeclareOption{euler}{\input{fspeulerot}}
+\DeclareOption{fira}{\input{fspfiraot}}
+\DeclareOption{gfsartemisia}{\input{fspgfsartemisiaot}}
+\DeclareOption{gfsdidot}{\input{fspgfsdidotot}}
+\DeclareOption{gfsdidotclassic}{\input{fspgfsdidotclassicot}\@gfstrue}
+\DeclareOption{gfsneohellenic}{\input{fspgfsneohellenicot}}
+\DeclareOption{kerkis}{\input{fspkerkisot}}
+\DeclareOption{libertinus}{\@libertinustrue}
+% Install Lucida in TeX tree
+\DeclareOption{lucida}{\input{fsplucidaot}}
+% Install MinionPro and provided fspMinionGreekSmallCaps as system fonts.
+\DeclareOption{minion}{\input{fspminion}\@miniontrue}
+% Install Microsoft Garamond as a system font.
+% Gara.ttf, Garai, Garabd
+\DeclareOption{msgaramond}{\input{fspmsgaramondot}\@msgaramondtrue}
+\DeclareOption{neoeuler}{\input{fspeulerot}}% compatibility
+% Not released yet
+% \DeclareOption{neokadmus}{\input{neokadmus}}
+\DeclareOption{oldstandard}{\input{fspoldstandard}%
+ \if@upint
+ \setmathfont[StylisticSet=2]{OldStandard-Math.otf}%
+ \fi
+}
+% Install Linotype Palatino as a system font.
+% pala.ttf palai, palab, palabi.
+% Install fspPalatinoGreekSmallCaps as a System font.
+\DeclareOption{palatino}{\input{fsppalatinoot}\@palatinotrue}
+\DeclareOption{stixtwo}{\input{fspstixtwoot}}
+\DeclareOption{talos}{\input{fsptalos}}
+\DeclareOption{times}{\input{fsptimesot}}
+\DeclareOption{xcharter}{%
+ \input{fspxcharter}%
+ \@xchartertrue
+}
+\DeclareOption*{\PackageWarning{fontsetup}{Unknown ‘\CurrentOption’}}
\ProcessOptions
-
-%provide a test to know if a 16bits TeX is used.
-\RequirePackage{ifthen}
-\RequirePackage{iftex}
-\newboolean{TeXUnicode}
-\ifXeTeX
- \setboolean{TeXUnicode}{true}
-\fi
-\ifLuaTeX
- \setboolean{TeXUnicode}{true}
-\fi
-
-
-
-\ifthenelse{\boolean{TeXUnicode}}{%
- %The user runs unicode engine
- \ifcase\fontsetupfont
- \RequirePackage{fspdefault}
-%
-\if@upint
- \if@varnothing
- \if@amsbb
- \setmathfont[StylisticSet=2,StylisticSet=3,CharacterVariant=1]{NewCMMath-Book.otf}
- \else
- \setmathfont[StylisticSet=2,CharacterVariant=1]{NewCMMath-Book.otf}
- \fi
- \else
- \if@amsbb
- \setmathfont[StylisticSet=2,StylisticSet=3]{NewCMMath-Book.otf}
- \else
- \setmathfont[StylisticSet=2]{NewCMMath-Book.otf}
- \fi
- \fi
-\else
- \if@varnothing
- \if@amsbb
- \setmathfont[StylisticSet=3,CharacterVariant=1]{NewCMMath-Book.otf}
- \else
- \setmathfont[CharacterVariant=1]{NewCMMath-Book.otf}
- \fi
- \else
- \if@amsbb
- \setmathfont[StylisticSet=3]{NewCMMath-Book.otf}
- \else
- \setmathfont{NewCMMath-Book.otf}
- \fi
- \fi
-\fi
-%
- \or
- \RequirePackage{fspgfsartemisiaot}
-\or
- \RequirePackage{fspgfsdidotot}
-\or
- \RequirePackage{fspgfsdidotclassicot}
-\or
- \RequirePackage{fspgfsneohellenicot}
-\or
- \RequirePackage{fspcambria}
-\or
- \RequirePackage{fsplucidaot}
-% \RequirePackage[usefilenames]{lucida-otf} %for some reason it fails
-\or
- \RequirePackage{fspkerkisot}
-\or
- \RequirePackage{fspfiraot}
-\or
- \RequirePackage{fsptimesot}
-\or
- \RequirePackage{fsppalatinoot}
-\or
- \RequirePackage{fspstixtwoot}
-\or
- \RequirePackage{neokadmus}
-\or
- \RequirePackage{fspmsgaramondot}
-\or
- \RequirePackage{fspebgaramondot}
-\or
- \RequirePackage{fspminion}
-\or
- \RequirePackage{fspeulerot}
-\or
- \RequirePackage{libertinus-otf}
-\or
- \RequirePackage{fspolddefault}
-\if@upint
- \if@varnothing
- \if@amsbb
- \setmathfont[StylisticSet=2,StylisticSet=3,CharacterVariant=1]{NewCMMath-Regular.otf}
- \else
- \setmathfont[StylisticSet=2,CharacterVariant=1]{NewCMMath-Regular.otf}
- \fi
- \else
- \if@amsbb
- \setmathfont[StylisticSet=2,StylisticSet=3]{NewCMMath-Regular.otf}
- \else
- \setmathfont[StylisticSet=2]{NewCMMath-Regular.otf}
- \fi
- \fi
-\else
- \if@varnothing
- \if@amsbb
- \setmathfont[StylisticSet=3,CharacterVariant=1]{NewCMMath-Regular.otf}
- \else
- \setmathfont[CharacterVariant=1]{NewCMMath-Regular.otf}
- \fi
- \else
- \if@amsbb
- \setmathfont[StylisticSet=3]{NewCMMath-Regular.otf}
- \else
- \setmathfont{NewCMMath-Regular.otf}
- \fi
- \fi
-\fi
-\or
- \RequirePackage{fspconcrete}
-\or
- \RequirePackage{fsptalos}
-\or
-\RequirePackage{fspoldstandard}
-\or
-\RequirePackage{fspxcharter}
-\if@upint
- \setmathfont[StylisticSet=3]{XCharter-Math.otf}
-\else
- \relax
-\fi
-\or
-\RequirePackage{fsperewhon}
-%%%
-%
-%%%
+\AtBeginDocument{%
+ \if@erewhon
+ \RequirePackage{fourier-otf}
+ \fi
+ \if@xcharter
+ \RequirePackage{xcharter-otf}
+ \if@upint
+ \setmathfont[StylisticSet=3]{XCharter-Math.otf}%
+ \fi
+ \fi
+ \if@gfs
+ \ifxetex
+ \PassOptionsToPackage{ucharclasses}{Latin,Greek}
+ \setDefaultTransitions{\defaultfont}{}
+ \setTransitionsForLatin{\latinfont}{}
+ \setTransitionsForGreek{\defaultfont}{}
+ \fi
+ \fi
+ \if@libertinus
+ \RequirePackage{libertinus-otf}
+ \fi
+ \if@palatino
+ \PassOptionsToPackage{ucharclasses}{Latin, Greek}
+ \setDefaultTransitions{\defaultfont}{}
+ \setTransitionsForLatin{\defaultfont}{}
+ \setTransitionsForGreek{\greekfont}{}
+ \fi
+ \if@msgaramond
+ \PassOptionsToPackage{ucharclasses}{Latin,Greek}
+ \setDefaultTransitions{\defaultfont}{}
+ \setTransitionsForLatin{\defaultfont}{}
+ \setTransitionsForGreek{\greekfont}{}
+ \fi
+ \if@minion
+ \PassOptionsToPackage{ucharclasses}{Latin,Greek}
+ \setDefaultTransitions{\defaultfont}{}
+ \setTransitionsForLatin{\defaultfont}{}
+ \setTransitionsForGreek{\greekfont}{}
\fi
-}{%the user runs 8bit engine
-\relax}
-
-
-
+}
\endinput
-