summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-05-01 20:14:50 +0000
committerKarl Berry <karl@freefriends.org>2024-05-01 20:14:50 +0000
commitce92923da555b35b006d8dbef27890e45a51931d (patch)
tree1d54913aae3f2c8b8fee122ecb9ff17b017daf6c /Master/texmf-dist/tex/latex
parent257adc8203db51681ecf8495479fd6151a9598b2 (diff)
mathgreeks (1may24)
git-svn-id: svn://tug.org/texlive/trunk@71146 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/mathgreeks/mathgreeks.sty715
1 files changed, 715 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/mathgreeks/mathgreeks.sty b/Master/texmf-dist/tex/latex/mathgreeks/mathgreeks.sty
new file mode 100644
index 00000000000..d6eb89a64ee
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/mathgreeks/mathgreeks.sty
@@ -0,0 +1,715 @@
+%%
+%% This is file `mathgreeks.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% mathgreeks.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2024 by Antoine Missier <antoine.missier@ac-toulouse.fr>
+%%
+%% This file 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) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+\ProvidesPackage{mathgreeks}
+ [2024/04/30 v1.0 .dtx Math Greek letters]
+
+\RequirePackage{kvoptions}
+
+\DeclareStringOption{lgrmath}[fcm]
+\newif\ifmathgreeks@lgrmath
+\AddToKeyvalOption*{lgrmath}{\mathgreeks@lgrmathtrue}
+\DeclareStringOption{fontspec}[GFS Didot]
+\newif\ifmathgreeks@fontspec
+\AddToKeyvalOption*{fontspec}{\mathgreeks@fontspectrue}
+\newif\ifmathgreeks@unicodemath
+\define@key{mathgreeks}{unicode-math}[Latin Modern Math]{
+ \newcommand*{\mathgreeks@unicodemath}{#1}
+ \mathgreeks@unicodemathtrue}
+\DeclareStringOption{upgreek}[Symbol]
+\newif\ifmathgreeks@upgreek
+\AddToKeyvalOption*{upgreek}{\mathgreeks@upgreektrue
+ \mathgreeks@Greekuptrue\mathgreeks@greekuptrue}
+\DeclareStringOption{mathdesign}[Charter]
+\newif\ifmathgreeks@mathdesign
+\AddToKeyvalOption*{mathdesign}{\mathgreeks@mathdesigntrue}
+\DeclareBoolOption{fourier}% false by default
+\DeclareStringOption{kpfonts}[normal]
+\newif\ifmathgreeks@kpfonts
+\AddToKeyvalOption*{kpfonts}{\mathgreeks@kpfontstrue}
+\DeclareBoolOption{pxfonts}
+\DeclareBoolOption{txfonts}
+\DeclareBoolOption{libertinus}
+\DeclareBoolOption{concrete}
+\DeclareBoolOption{cmbright}
+
+\DeclareBoolOption{savegreeks}
+\DeclareBoolOption{otherfonts}
+\DeclareBoolOption[true]{lowercase}
+\DeclareBoolOption[true]{uppercase}
+
+\DeclareBoolOption[true]{Greekup}
+\DeclareBoolOption{greekup}
+\DeclareBoolOption{upright}
+\AddToKeyvalOption*{upright}{\mathgreeks@Greekuptrue
+ \mathgreeks@greekuptrue}
+\DeclareBoolOption{ISO}
+\AddToKeyvalOption*{ISO}{\mathgreeks@Greekupfalse
+ \mathgreeks@greekupfalse}
+\DeclareBoolOption{TeX}
+\AddToKeyvalOption*{TeX}{\mathgreeks@Greekuptrue
+ \mathgreeks@greekupfalse}
+\DeclareStringOption{style}
+\AddToKeyvalOption*{style}{\setkeys{mathgreeks}{\mathgreeks@style}}
+
+\DeclareDefaultOption{\PackageError{mathgreeks}{%
+ Option key `\CurrentOptionKey' undefined}{}}
+\ProcessLocalKeyvalOptions* % \setkeys is done here
+
+\RequirePackage{etoolbox} % provides \AtEndPreamble
+
+\newif\ifkp@upRm % from kpgonts, bugs if after \ifmathgreeks@kpfonts
+\newif\iflibus@sansmath % from libertinust1math
+\newif\ifmathgreeks@Symbol % for codes definition
+\newif\ifmathgreeks@itgreek % for fonts without upright shape
+\newif\ifmathgreeks@font % if font option at package call
+\mathgreeks@fonttrue
+
+%%%%%%%%%%%%%%%% INITIAL SETTINGS %%%%%%%%%%%%%%%
+
+\ifmathgreeks@otherfonts
+ \DeclareFontEncoding{LGR}{}{}
+ \DeclareFontEncoding{FML}{}{}
+ \DeclareFontSubstitution{FML}{futm}{m}{it}
+ \DeclareFontEncoding{LS1}{}{}
+ \DeclareFontSubstitution{LS1}{libertinust1math}{m}{n}
+
+ % from the upgreek package
+ \DeclareFontFamily{U}{eur}{\skewchar\font'177}
+ \DeclareFontShape{U}{eur}{m}{n}{%
+ <-6> eurm5 <6-8> eurm7 <8-> eurm10}{}
+ \DeclareFontShape{U}{eur}{b}{n}{%
+ <-6> eurb5 <6-8> eurb7 <8-> eurb10}{}
+ \DeclareFontFamily{U}{fsy}{}
+ \DeclareFontShape{U}{fsy}{m}{n}{<->s*[.9]psyr}{}
+
+\fi
+
+\DisableKeyvalOption[action=warning,package=mathgreeks]{mathgreeks}{lgrmath}
+\DisableKeyvalOption[action=warning,package=mathgreeks]{mathgreeks}{fontspec}
+\DisableKeyvalOption[action=warning,package=mathgreeks]{mathgreeks}{unicodemath}
+\DisableKeyvalOption[action=warning,package=mathgreeks]{mathgreeks}{upgreek}
+\DisableKeyvalOption[action=warning,package=mathgreeks]{mathgreeks}{mathdesign}
+\DisableKeyvalOption[action=warning,package=mathgreeks]{mathgreeks}{fourier}
+\DisableKeyvalOption[action=warning,package=mathgreeks]{mathgreeks}{kpfonts}
+\DisableKeyvalOption[action=warning,package=mathgreeks]{mathgreeks}{pxfonts}
+\DisableKeyvalOption[action=warning,package=mathgreeks]{mathgreeks}{txfonts}
+\DisableKeyvalOption[action=warning,package=mathgreeks]{mathgreeks}{savegreeks}
+\DisableKeyvalOption[action=warning,package=mathgreeks]{mathgreeks}{otherfonts}
+\DisableKeyvalOption[action=warning,package=mathgreeks]{mathgreeks}{lowercase}
+\DisableKeyvalOption[action=warning,package=mathgreeks]{mathgreeks}{uppercase}
+
+\AtEndPreamble{\AtBeginDocument{
+ \@ifundefined{text}{\RequirePackage{amstext}}{}
+
+ \ifmathgreeks@lgrmath
+ \DeclareFontEncoding{LGR}{}{}
+ \DeclareSymbolFont{mgr@it}{LGR}{\mathgreeks@lgrmath}{m}{it}
+ \SetSymbolFont{mgr@it}{bold}{LGR}{\mathgreeks@lgrmath}{b}{it}
+ \DeclareSymbolFont{mgr@up}{LGR}{\mathgreeks@lgrmath}{m}{n}
+ \SetSymbolFont{mgr@up}{bold}{LGR}{\mathgreeks@lgrmath}{b}{n}
+
+ \else\ifmathgreeks@fontspec
+ \@ifpackageloaded{fontspec}{}{
+ \PackageError{mathgreeks}{`fontspec' or `unicodemath'
+ options need the fontspec package\MessageBreak
+ which must be run with LuaLaTeX or XeLaTeX}{}
+ }
+ \newfontfamily\MathGreeksFont{\mathgreeks@fontspec}%
+ [NFSSFamily=mgru]
+ \DeclareSymbolFont{mgr@it}{TU}{mgru}{m}{it}
+ \SetSymbolFont{mgr@it}{bold}{TU}{mgru}{b}{it}
+ \DeclareSymbolFont{mgr@up}{TU}{mgru}{m}{n}
+ \SetSymbolFont{mgr@it}{bold}{TU}{mgru}{b}{n}
+
+ \else\ifmathgreeks@unicodemath
+ \@ifpackageloaded{unicode-math}{}{
+ \PackageError{mathgreeks}{`unicodemath' option needs
+ the unicode-math package\MessageBreak
+ which must be run with LuaLaTeX or XeLaTeX}{}
+ }
+ \setmathfont{\mathgreeks@unicodemath}[range=it/{greek,Greek}]
+ \setmathfont{\mathgreeks@unicodemath}[range=up/{greek,Greek}]
+ \mathgreeks@fontspectrue % for \mgr@CodeGreeks
+ \let\mgr@UnicodeGreek\mgr@UnicodemathGreek
+
+ \else\ifmathgreeks@upgreek
+ \ifdefstring{\mathgreeks@upgreek}{Euler}{
+ \DeclareFontFamily{U}{eur}{\skewchar\font'177}
+ \DeclareFontShape{U}{eur}{m}{n}{%
+ <-6> eurm5 <6-8> eurm7 <8-> eurm10}{}
+ \DeclareFontShape{U}{eur}{b}{n}{%
+ <-6> eurb5 <6-8> eurb7 <8-> eurb10}{}
+ \DeclareSymbolFont{mgr@up}{U}{eur}{m}{n}
+ \SetSymbolFont{mgr@up}{bold}{U}{eur}{b}{n}
+ }{
+ \ifdefstring{\mathgreeks@upgreek}{Symbol}{
+ \DeclareSymbolFont{mgr@up}{U}{psy}{m}{n} % no bold face
+ \mathgreeks@Symboltrue
+ }{
+ \ifdefstring{\mathgreeks@upgreek}{Symbolsmallscale}{
+ \DeclareFontFamily{U}{fsy}{}
+ \DeclareFontShape{U}{fsy}{m}{n}{<->s*[.9]psyr}{}
+ \DeclareSymbolFont{mgr@up}{U}{fsy}{m}{n}
+ \mathgreeks@Symboltrue
+ }{
+ \PackageError{mathgreeks}{Invalid value
+ `\mathgreeks@upgreek' with `upgreek' key}{With `upgreek'
+ possible values are: Euler, Symbol, Symbolsmallscale.}
+ }}}
+
+ \else\ifmathgreeks@mathdesign
+ \ifdefstring{\mathgreeks@mathdesign}{Utopia}{
+ \DeclareSymbolFont{mgr@it}{OML}{mdput}{m}{it}
+ \SetSymbolFont{mgr@it}{bold}{OML}{mdput}{b}{it}
+ \DeclareSymbolFont{mgr@up}{OML}{mdput}{m}{n}
+ \SetSymbolFont{mgr@up}{bold}{OML}{mdput}{b}{n}
+ }{
+ \ifdefstring{\mathgreeks@mathdesign}{Garamond}{
+ \DeclareSymbolFont{mgr@it}{OML}{mdugm}{m}{it}
+ \SetSymbolFont{mgr@it}{bold}{OML}{mdugm}{b}{it}
+ \DeclareSymbolFont{mgr@up}{OML}{mdugm}{m}{n}
+ \SetSymbolFont{mgr@up}{bold}{OML}{mdugm}{b}{n}
+ }{
+ \ifdefstring{\mathgreeks@mathdesign}{Charter}{
+ \DeclareSymbolFont{mgr@it}{OML}{mdbch}{m}{it}
+ \SetSymbolFont{mgr@it}{bold}{OML}{mdbch}{b}{it}
+ \DeclareSymbolFont{mgr@up}{OML}{mdbch}{m}{n}
+ \SetSymbolFont{mgr@up}{bold}{OML}{mdbch}{b}{n}
+ }{
+ \PackageError{mathgreeks}{Invalid value
+ `\mathgreeks@mathdesign' with `mathdesign' key}{With
+ `mathdesign' possible values are:
+ Utopia, Garamond, Charter.}
+ }}}
+
+ \else\ifmathgreeks@fourier
+ \DeclareFontEncoding{FML}{}{}
+ \DeclareFontSubstitution{FML}{futm}{m}{it}
+ \DeclareSymbolFont{mgr@it}{FML}{futmi}{m}{it}
+ \SetSymbolFont{mgr@it}{bold}{FML}{futmi}{b}{it}
+ \DeclareSymbolFont{mgr@up}{FML}{futm}{m}{it}
+ \SetSymbolFont{mgr@up}{bold}{FML}{futm}{b}{it}
+
+ \else\ifmathgreeks@kpfonts
+ \ifdefstring{\mathgreeks@kpfonts}{normal}{
+ \DeclareSymbolFont{mgr@it}{OML}{jkp}{m}{it}
+ \SetSymbolFont{mgr@it}{bold}{OML}{jkp}{bx}{it}
+ \DeclareSymbolFont{mgr@up}{U}{jkpmia}{m}{it}
+ \SetSymbolFont{mgr@up}{bold}{U}{jkpmia}{bx}{it}
+ }{
+ \ifdefstring{\mathgreeks@kpfonts}{light}{
+ \DeclareSymbolFont{mgr@it}{OML}{jkpl}{m}{it}
+ \SetSymbolFont{mgr@it}{bold}{OML}{jkpl}{bx}{it}
+ \DeclareSymbolFont{mgr@up}{U}{jkplmia}{m}{it}
+ \SetSymbolFont{mgr@up}{bold}{U}{jkplmia}{bx}{it}
+ }{
+ \PackageError{mathgreeks}{Invalid value
+ `\mathgreeks@kpfonts' with `kpfonts' key}{With
+ `kpfonts' possible values are: normal, light.}
+ }}
+
+ \else\ifmathgreeks@pxfonts % no font option specified
+ \DeclareSymbolFont{mgr@it}{OML}{pxmi}{m}{it}
+ \SetSymbolFont{mgr@it}{bold}{OML}{pxmi}{bx}{it}
+ \DeclareSymbolFont{mgr@up}{U}{pxmia}{m}{it}
+ \SetSymbolFont{mgr@up}{bold}{U}{pxmia}{bx}{it}
+
+ \else\ifmathgreeks@txfonts
+ \DeclareSymbolFont{mgr@it}{OML}{txmi}{m}{it}
+ \SetSymbolFont{mgr@it}{bold}{OML}{txmi}{bx}{it}
+ \DeclareSymbolFont{mgr@up}{U}{txmia}{m}{it}
+ \SetSymbolFont{mgr@up}{bold}{U}{txmia}{bx}{it}
+
+ \else\ifmathgreeks@libertinus
+ \DeclareFontEncoding{LS1}{}{}
+ \DeclareFontSubstitution{LS1}{libertinust1math}{m}{n}
+ \DeclareSymbolFont{mgr@it}{LS1}{libertinust1math}{m}{it}
+ \SetSymbolFont{mgr@it}{bold}{LS1}{libertinust1math}{m}{it}
+ \DeclareSymbolFont{mgr@up}{LS1}{libertinust1math}{m}{n}
+ \SetSymbolFont{mgr@up}{bold}{LS1}{libertinust1math}{m}{n}
+
+ \else\ifmathgreeks@concrete
+ \DeclareSymbolFont{mgr@it}{OML}{ccm}{m}{it}
+ \SetSymbolFont{mgr@it}{bold}{OML}{ccm}{b}{it}
+ \mathgreeks@itgreektrue
+
+ \else\ifmathgreeks@cmbright
+ \DeclareSymbolFont{mgr@it}{OML}{cmbrm}{m}{it}
+ \SetSymbolFont{mgr@it}{bold}{OML}{cmbrm}{b}{it}
+ \mathgreeks@itgreektrue
+
+ \else
+ \PackageWarningNoLine{mathgreeks}{No font option specified}
+ \mathgreeks@fontfalse
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+
+ \ifmathgreeks@savegreeks \SaveGreeks \fi
+
+ \ifmathgreeks@font
+ \ifmathgreeks@upgreek
+ \mathgreeks@Greekuptrue \mathgreeks@greekuptrue
+ \PackageWarningNoLine{mathgreeks}{Commands \string \italpha,
+ \string\itbeta... \MessageBreak
+ not available with the `upgreek' option}
+ \else
+ \mgr@CodeGreeks{it}
+ \fi
+ \ifmathgreeks@itgreek
+ \mathgreeks@Greekupfalse \mathgreeks@greekupfalse
+ \PackageWarningNoLine{mathgreeks}{Commands \string \upalpha,
+ \string\upbeta... \MessageBreak
+ not available with `concrete' or 'cmbright}
+ \else
+ \mgr@CodeGreeks{up}
+ \fi
+ \mgr@DefaultGreeks
+ \fi
+}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% MACROS %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\setmathgreeks#1{\setkeys{mathgreeks}{#1}\unskip
+ \ifmathgreeks@upgreek
+ \mathgreeks@Greekuptrue
+ \mathgreeks@greekuptrue
+ \PackageWarning{mathgreeks}{Style is set to `upright'
+ \MessageBreak with the `upgreek' option}
+ \fi
+ \mgr@DefaultGreeks\ignorespaces
+}
+
+\def\re@DeclareMathSymbol#1#2#3#4{% from kpfonts, pxfonts, txfonts
+ \let#1=\undefined
+ \DeclareMathSymbol{#1}{#2}{#3}{#4}}
+
+
+\newcommand{\mgr@CodeGreek}[3]{% #1 = it or up
+ \expandafter\re@DeclareMathSymbol\csname#1#2\endcsname%
+ {\mathalpha}{mgr@#1}{#3}
+}
+
+\newcommand{\mgr@UnicodeGreek}[3]{%
+ \expandafter\Umathchardef\csname#1#2\endcsname="7 % mathalpha
+ \csname symmgr@#1\endcsname #3
+}
+
+\def\mgr@UnicodemathGreek#1#2#3{\unskip
+ \expandafter\DeclareRobustCommand\csname#1#2\endcsname
+ {\csname sym#1\endcsname{\symbol{#3}}}\ignorespaces
+}
+
+\newcommand{\mgr@CodeGreeks}[1]{% #1 = it or up
+ \ifmathgreeks@lgrmath % LGR encoding
+ \mgr@CodeGreek{#1}{Gamma}{71}
+ \mgr@CodeGreek{#1}{Delta}{68}
+ \mgr@CodeGreek{#1}{Theta}{74}
+ \mgr@CodeGreek{#1}{Lambda}{76}
+ \mgr@CodeGreek{#1}{Xi}{88}
+ \mgr@CodeGreek{#1}{Pi}{80}
+ \mgr@CodeGreek{#1}{Sigma}{83}
+ \mgr@CodeGreek{#1}{Upsilon}{85}
+ \mgr@CodeGreek{#1}{Phi}{70}
+ \mgr@CodeGreek{#1}{Psi}{89}
+ \mgr@CodeGreek{#1}{Omega}{87}
+ \mgr@CodeGreek{#1}{alpha}{97}
+ \mgr@CodeGreek{#1}{beta}{98}
+ \mgr@CodeGreek{#1}{gamma}{103}
+ \mgr@CodeGreek{#1}{delta}{100}
+ \mgr@CodeGreek{#1}{epsilon}{101}
+ \mgr@CodeGreek{#1}{zeta}{122}
+ \mgr@CodeGreek{#1}{eta}{104}
+ \mgr@CodeGreek{#1}{theta}{106}
+ \mgr@CodeGreek{#1}{iota}{105}
+ \mgr@CodeGreek{#1}{kappa}{107}
+ \mgr@CodeGreek{#1}{lambda}{108}
+ \mgr@CodeGreek{#1}{mu}{109}
+ \mgr@CodeGreek{#1}{nu}{110}
+ \mgr@CodeGreek{#1}{xi}{120}
+ \mgr@CodeGreek{#1}{pi}{112}
+ \mgr@CodeGreek{#1}{rho}{114}
+ \mgr@CodeGreek{#1}{sigma}{115}
+ \mgr@CodeGreek{#1}{tau}{116}
+ \mgr@CodeGreek{#1}{upsilon}{117}
+ \mgr@CodeGreek{#1}{phi}{102}
+ \mgr@CodeGreek{#1}{chi}{113}
+ \mgr@CodeGreek{#1}{psi}{121}
+ \mgr@CodeGreek{#1}{omega}{119}
+ \mgr@CodeGreek{#1}{varepsilon}{101} % = epsilon
+ \mgr@CodeGreek{#1}{vartheta}{106} % = theta
+ \mgr@CodeGreek{#1}{varpi}{112} % = pi
+ \mgr@CodeGreek{#1}{varrho}{114} % = rho
+ \mgr@CodeGreek{#1}{varsigma}{99}
+ \mgr@CodeGreek{#1}{varphi}{102} % = phi
+ \else\ifmathgreeks@fontspec % unicode encoding
+ \mgr@UnicodeGreek{#1}{Gamma}{"0393}
+ \mgr@UnicodeGreek{#1}{Delta}{"0394}
+ \mgr@UnicodeGreek{#1}{Theta}{"0398}
+ \mgr@UnicodeGreek{#1}{Lambda}{"039B}
+ \mgr@UnicodeGreek{#1}{Xi}{"039E}
+ \mgr@UnicodeGreek{#1}{Pi}{"03A0}
+ \mgr@UnicodeGreek{#1}{Sigma}{"03A3}
+ \mgr@UnicodeGreek{#1}{Upsilon}{"03A5}
+ \mgr@UnicodeGreek{#1}{Phi}{"03A6}
+ \mgr@UnicodeGreek{#1}{Psi}{"03A8}
+ \mgr@UnicodeGreek{#1}{Omega}{"03A9}
+ \mgr@UnicodeGreek{#1}{alpha}{"03B1}
+ \mgr@UnicodeGreek{#1}{beta}{"03B2}
+ \mgr@UnicodeGreek{#1}{gamma}{"03B3}
+ \mgr@UnicodeGreek{#1}{delta}{"03B4}
+ \mgr@UnicodeGreek{#1}{epsilon}{"03B5}
+ \mgr@UnicodeGreek{#1}{zeta}{"03B6}
+ \mgr@UnicodeGreek{#1}{eta}{"03B7}
+ \mgr@UnicodeGreek{#1}{theta}{"03B8}
+ \mgr@UnicodeGreek{#1}{iota}{"03B9}
+ \mgr@UnicodeGreek{#1}{kappa}{"03BA}
+ \mgr@UnicodeGreek{#1}{lambda}{"03BB}
+ \mgr@UnicodeGreek{#1}{mu}{"03BC}
+ \mgr@UnicodeGreek{#1}{nu}{"03BD}
+ \mgr@UnicodeGreek{#1}{xi}{"03BE} % not omicron
+ \mgr@UnicodeGreek{#1}{pi}{"03C0}
+ \mgr@UnicodeGreek{#1}{rho}{"03C1}
+ \mgr@UnicodeGreek{#1}{sigma}{"03C3}
+ \mgr@UnicodeGreek{#1}{tau}{"03C4}
+ \mgr@UnicodeGreek{#1}{upsilon}{"03C5}
+ \mgr@UnicodeGreek{#1}{phi}{"03C6}
+ \mgr@UnicodeGreek{#1}{chi}{"03C7}
+ \mgr@UnicodeGreek{#1}{psi}{"03C8}
+ \mgr@UnicodeGreek{#1}{omega}{"03C9}
+ \mgr@UnicodeGreek{#1}{varepsilon}{"03F5}
+ \mgr@UnicodeGreek{#1}{vartheta}{"03D1}
+ \mgr@UnicodeGreek{#1}{varpi}{"03D6}
+ \mgr@UnicodeGreek{#1}{varrho}{"03F1}
+ \mgr@UnicodeGreek{#1}{varsigma}{"03C2}
+ \mgr@UnicodeGreek{#1}{varphi}{"03D5}
+ \else\ifmathgreeks@Symbol % Symbol encoding
+ \mgr@CodeGreek{#1}{Gamma}{`G}
+ \mgr@CodeGreek{#1}{Delta}{`D}
+ \mgr@CodeGreek{#1}{Theta}{`Q}
+ \mgr@CodeGreek{#1}{Lambda}{`L}
+ \mgr@CodeGreek{#1}{Xi}{`X}
+ \mgr@CodeGreek{#1}{Pi}{`P}
+ \mgr@CodeGreek{#1}{Sigma}{`S}
+ \mgr@CodeGreek{#1}{Upsilon}{`U}
+ \mgr@CodeGreek{#1}{Phi}{`F}
+ \mgr@CodeGreek{#1}{Psi}{`Y}
+ \mgr@CodeGreek{#1}{Omega}{`W}
+ \mgr@CodeGreek{#1}{alpha}{`a}
+ \mgr@CodeGreek{#1}{beta}{`b}
+ \mgr@CodeGreek{#1}{gamma}{`g}
+ \mgr@CodeGreek{#1}{delta}{`d}
+ \mgr@CodeGreek{#1}{epsilon}{`e}
+ \mgr@CodeGreek{#1}{zeta}{`z}
+ \mgr@CodeGreek{#1}{eta}{`h}
+ \mgr@CodeGreek{#1}{theta}{`q}
+ \mgr@CodeGreek{#1}{iota}{`i}
+ \mgr@CodeGreek{#1}{kappa}{`k}
+ \mgr@CodeGreek{#1}{lambda}{`l}
+ \mgr@CodeGreek{#1}{mu}{`m}
+ \mgr@CodeGreek{#1}{nu}{`n}
+ \mgr@CodeGreek{#1}{xi}{`x}
+ \mgr@CodeGreek{#1}{pi}{`p}
+ \mgr@CodeGreek{#1}{rho}{`r}
+ \mgr@CodeGreek{#1}{sigma}{`s}
+ \mgr@CodeGreek{#1}{tau}{`t}
+ \mgr@CodeGreek{#1}{upsilon}{`u}
+ \mgr@CodeGreek{#1}{phi}{`f}
+ \mgr@CodeGreek{#1}{chi}{`c}
+ \mgr@CodeGreek{#1}{psi}{`y}
+ \mgr@CodeGreek{#1}{omega}{`w}
+ \mgr@CodeGreek{#1}{varepsilon}{`u} % = epsilon
+ \mgr@CodeGreek{#1}{vartheta}{`J}
+ \mgr@CodeGreek{#1}{varpi}{`v}
+ \mgr@CodeGreek{#1}{varrho}{`r} % = rho
+ \mgr@CodeGreek{#1}{varsigma}{`s} % = sigma
+ \mgr@CodeGreek{#1}{varphi}{`j}
+ \else % OML (or U) encoding
+ \mgr@CodeGreek{#1}{Gamma}{"00}
+ \mgr@CodeGreek{#1}{Delta}{"01}
+ \mgr@CodeGreek{#1}{Theta}{"02}
+ \mgr@CodeGreek{#1}{Lambda}{"03}
+ \mgr@CodeGreek{#1}{Xi}{"04}
+ \mgr@CodeGreek{#1}{Pi}{"05}
+ \mgr@CodeGreek{#1}{Sigma}{"06}
+ \mgr@CodeGreek{#1}{Upsilon}{"07}
+ \mgr@CodeGreek{#1}{Phi}{"08}
+ \mgr@CodeGreek{#1}{Psi}{"09}
+ \mgr@CodeGreek{#1}{Omega}{"0A}
+ \mgr@CodeGreek{#1}{alpha}{"0B}
+ \mgr@CodeGreek{#1}{beta}{"0C}
+ \mgr@CodeGreek{#1}{gamma}{"0D}
+ \mgr@CodeGreek{#1}{delta}{"0E}
+ \mgr@CodeGreek{#1}{epsilon}{"0F}
+ \mgr@CodeGreek{#1}{zeta}{"10}
+ \mgr@CodeGreek{#1}{eta}{"11}
+ \mgr@CodeGreek{#1}{theta}{"12}
+ \mgr@CodeGreek{#1}{iota}{"13}
+ \mgr@CodeGreek{#1}{kappa}{"14}
+ \mgr@CodeGreek{#1}{lambda}{"15}
+ \mgr@CodeGreek{#1}{mu}{"16}
+ \mgr@CodeGreek{#1}{nu}{"17}
+ \mgr@CodeGreek{#1}{xi}{"18}
+ \mgr@CodeGreek{#1}{pi}{"19}
+ \mgr@CodeGreek{#1}{rho}{"1A}
+ \mgr@CodeGreek{#1}{sigma}{"1B}
+ \mgr@CodeGreek{#1}{tau}{"1C}
+ \mgr@CodeGreek{#1}{upsilon}{"1D}
+ \mgr@CodeGreek{#1}{phi}{"1E}
+ \mgr@CodeGreek{#1}{chi}{"1F}
+ \mgr@CodeGreek{#1}{psi}{"20}
+ \mgr@CodeGreek{#1}{omega}{"21}
+ \mgr@CodeGreek{#1}{varepsilon}{"22}
+ \mgr@CodeGreek{#1}{vartheta}{"23}
+ \mgr@CodeGreek{#1}{varpi}{"24}
+ \mgr@CodeGreek{#1}{varrho}{"25}
+ \mgr@CodeGreek{#1}{varsigma}{"26}
+ \mgr@CodeGreek{#1}{varphi}{"27}
+ %\mgr@CodeGreek{#1}{varkappa}{"FE}
+ \fi\fi\fi
+}
+
+\newcommand\mgr@DefaultGreeks{%
+ \ifmathgreeks@uppercase
+ \ifmathgreeks@Greekup
+ \let\Gamma\upGamma
+ \let\Delta\upDelta
+ \let\Theta\upTheta
+ \let\Lambda\upLambda
+ \let\Xi\upXi
+ \let\Pi\upPi
+ \let\Sigma\upSigma
+ \let\Upsilon\upUpsilon
+ \let\Phi\upPhi
+ \let\Psi\upPsi
+ \let\Omega\upOmega
+ \else
+ \let\Gamma\itGamma
+ \let\Delta\itDelta
+ \let\Theta\itTheta
+ \let\Lambda\itLambda
+ \let\Xi\itXi
+ \let\Pi\itPi
+ \let\Sigma\itSigma
+ \let\Upsilon\itUpsilon
+ \let\Phi\itPhi
+ \let\Psi\itPsi
+ \let\Omega\itOmega
+ \fi\fi
+ \ifmathgreeks@lowercase
+ \ifmathgreeks@greekup
+ \let\alpha\upalpha
+ \let\beta\upbeta
+ \let\gamma\upgamma
+ \let\delta\updelta
+ \let\epsilon\upepsilon
+ \let\zeta\upzeta
+ \let\eta\upeta
+ \let\theta\uptheta
+ \let\iota\upiota
+ \let\kappa\upkappa
+ \let\lambda\uplambda
+ \let\mu\upmu
+ \let\nu\upnu
+ \let\xi\upxi
+ \let\pi\uppi
+ \let\rho\uprho
+ \let\sigma\upsigma
+ \let\tau\uptau
+ \let\upsilon\upupsilon
+ \let\phi\upphi
+ \let\chi\upchi
+ \let\psi\uppsi
+ \let\omega\upomega
+ \let\varepsilon\upvarepsilon
+ \let\vartheta\upvartheta
+ \let\varpi\upvarpi
+ \let\varrho\upvarrho
+ \let\varsigma\upvarsigma
+ \let\varphi\upvarphi
+ \else
+ \let\alpha\italpha
+ \let\beta\itbeta
+ \let\gamma\itgamma
+ \let\delta\itdelta
+ \let\epsilon\itepsilon
+ \let\zeta\itzeta
+ \let\eta\iteta
+ \let\theta\ittheta
+ \let\iota\itiota
+ \let\kappa\itkappa
+ \let\lambda\itlambda
+ \let\mu\itmu
+ \let\nu\itnu
+ \let\xi\itxi
+ \let\pi\itpi
+ \let\rho\itrho
+ \let\sigma\itsigma
+ \let\tau\ittau
+ \let\upsilon\itupsilon
+ \let\phi\itphi
+ \let\chi\itchi
+ \let\psi\itpsi
+ \let\omega\itomega
+ \let\varepsilon\itvarepsilon
+ \let\vartheta\itvartheta
+ \let\varpi\itvarpi
+ \let\varrho\itvarrho
+ \let\varsigma\itvarsigma
+ \let\varphi\itvarphi
+ \fi\fi
+}
+
+\providecommand\SaveGreeks{%
+ \let\backGamma\Gamma
+ \let\backDelta\Delta
+ \let\backTheta\Theta
+ \let\backLambda\Lambda
+ \let\backXi\Xi
+ \let\backPi\Pi
+ \let\backSigma\Sigma
+ \let\backUpsilon\Upsilon
+ \let\backPhi\Phi
+ \let\backPsi\Psi
+ \let\backOmega\Omega
+ \let\backalpha\alpha
+ \let\backbeta\beta
+ \let\backgamma\gamma
+ \let\backdelta\delta
+ \let\backepsilon\epsilon
+ \let\backzeta\zeta
+ \let\backeta\eta
+ \let\backtheta\theta
+ \let\backiota\iota
+ \let\backkappa\kappa
+ \let\backlambda\lambda
+ \let\backmu\mu
+ \let\backnu\nu
+ \let\backxi\xi
+ \let\backpi\pi
+ \let\backrho\rho
+ \let\backsigma\sigma
+ \let\backtau\tau
+ \let\backupsilon\upsilon
+ \let\backphi\phi
+ \let\backchi\chi
+ \let\backpsi\psi
+ \let\backomega\omega
+ \let\backvarepsilon\varepsilon
+ \let\backvartheta\vartheta
+ \let\backvarpi\varpi
+ \let\backvarrtho\varrho
+ \let\backvarsigma\varsigma
+ \let\backvarphi\varphi
+}
+
+%%%%%%%%%%%%%% Macros for changing font dynamically %%%%%%%%%%%%%
+
+\newif\ifmgrfont@unicodemath
+\define@key{mgrfont}{unicode-math}[Latin Modern Math]{%
+ \def\mgrfont@unicodemath{#1}\mgrfont@unicodemathtrue}
+\newif\ifmgrfont@fontspec
+\define@key{mgrfont}{fontspec}[GFS Didot]{%
+ \def\mgrfont@fontspec{#1}\mgrfont@fontspectrue}
+\define@key{mgrfont}{enc}{\def\mgrfont@enc{#1}}
+\define@key{mgrfont}{fam}{\def\mgrfont@fam{#1}}
+\newcommand*\mgrfont@series{m} % default value
+\define@key{mgrfont}{series}{\renewcommand*\mgrfont@series{#1}}
+\newcommand*\mgrfont@shape{it} % default value
+\define@key{mgrfont}{shape}{\renewcommand*\mgrfont@shape{#1}}
+
+\def\mathgreeksfont#1{%
+ \mgrfont@unicodemathfalse
+ \mgrfont@fontspecfalse
+ \renewcommand*\mgrfont@series{m}
+ \renewcommand*\mgrfont@shape{it}
+ \mathgreeks@lgrmathfalse
+ \mathgreeks@fontspecfalse
+ \mathgreeks@Symbolfalse
+ \mathgreeks@upgreekfalse
+ \setkeys{mgrfont}{#1}
+ \ifmgrfont@unicodemath
+ \setmathfont{\mgrfont@unicodemath}[range=it/{greek,Greek}]
+ \setmathfont{\mgrfont@unicodemath}[range=up/{greek,Greek}]
+ \let\mgr@UnicodeGreek\mgr@UnicodemathGreek
+ \mathgreeks@fontspectrue % for \mgr@CodeGreeks
+ \mgr@CodeGreeks{it}
+ \mgr@CodeGreeks{up}
+ \mgr@DefaultGreeks
+ \else\ifmgrfont@fontspec
+ \let\MathGreeksFont\relax
+ \newfontfamily\MathGreeksFont{\mgrfont@fontspec}
+ \let\mgr@UnicodeGreek\mgr@NewUnicodeGreek
+ \mathgreeks@fontspectrue
+ \mgr@CodeGreeks{it}
+ \mgr@CodeGreeks{up}
+ \mgr@DefaultGreeks
+ \else
+ \let\mgr@CodeGreek\mgr@NewCodeGreek
+ \ifdefstring{\mgrfont@enc}{LGR}{
+ \mathgreeks@lgrmathtrue
+ }{
+ \ifdefstring{\mgrfont@fam}{psy}{
+ \mathgreeks@Symboltrue
+ }{
+ \ifdefstring{\mgrfont@fam}{fsy}{
+ \mathgreeks@Symboltrue
+ }{
+ }}}
+ \mgr@CodeGreeks{}
+ \fi\fi
+}
+
+\def\mgr@NewCodeGreek#1#2#3{\unskip
+ \expandafter\DeclareRobustCommand\csname#1#2\endcsname
+ {\mathalpha{\text{\usefont{\mgrfont@enc}{\mgrfont@fam}
+ {\mgrfont@series}{\mgrfont@shape}\symbol{#3}}
+ }}\ignorespaces
+}
+
+\def\mgr@NewUnicodeGreek#1#2#3{\unskip % only with fontspec
+ \expandafter\DeclareRobustCommand\csname#1#2\endcsname
+ {\mathalpha{\text{\csname#1shape\endcsname%
+ \MathGreeksFont\symbol{#3}}
+ }}\ignorespaces
+}
+
+\providecommand\greektable{
+ $\begin{array}{c}
+ \begin{array}{*{23}{@{\;}c}@{\;}}
+ \alpha & \beta & \gamma & \delta & \epsilon & \zeta & \eta &
+ \theta & \iota & \kappa & \lambda & \mu & \nu & \xi & \pi &
+ \rho & \sigma & \tau & \upsilon & \phi & \chi & \psi & \omega
+ \end{array}
+ \\
+ \begin{array}{*{18}{@{\;}c}@{\;}}
+ \varepsilon & \vartheta & \varpi & \varrho & \varsigma & \varphi
+ & | &
+ \Gamma & \Delta & \Theta & \Lambda & \Xi & \Pi & \Sigma &
+ \Upsilon & \Phi & \Psi & \Omega
+ \end{array}
+ \end{array}$
+}
+
+\endinput
+%%
+%% End of file `mathgreeks.sty'.