diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/fontsetup/fontsetup.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/fontsetup/fontsetup.sty | 375 |
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 - |