From aca3c88c6c3ea09b39b5ecaea2d97e4c5b3cfc77 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 12 Mar 2011 23:55:50 +0000 Subject: mathastext (12mar11) git-svn-id: svn://tug.org/texlive/trunk@21699 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/mathastext/mathastext.sty | 507 ++++++++++++++------- 1 file changed, 344 insertions(+), 163 deletions(-) (limited to 'Master/texmf-dist/tex') diff --git a/Master/texmf-dist/tex/latex/mathastext/mathastext.sty b/Master/texmf-dist/tex/latex/mathastext/mathastext.sty index b8e168998cb..ef14e342c10 100644 --- a/Master/texmf-dist/tex/latex/mathastext/mathastext.sty +++ b/Master/texmf-dist/tex/latex/mathastext/mathastext.sty @@ -9,8 +9,8 @@ %% %% Copyright (C) 2011 by Jean-Francois Burnol %% -%% Please report errors to jfbu at free dot fr -%% Illustrative examples at +%% Please report errors to jfbu (at) free.fr +%% Numerous examples at %% http://jf.burnol.free.fr/mathastext.html %% %% This file may be distributed and/or modified under the @@ -31,7 +31,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesFile{mathastext.sty} - [2011/02/09 1.12b Use the text font in simple mathematics] + [2011/03/11 1.13 Use the text font in simple mathematics] \newif\ifXeTeX \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname XeTeXinterchartoks\endcsname\relax @@ -61,114 +61,157 @@ \edef\m@stextsh{\shapedefault} \edef\m@stextbold{\bfdefault} \edef\m@stextshletter{\shapedefault} -\newif\ifmt@need@euler\mt@need@eulerfalse -\newif\ifmt@need@symbol\mt@need@symbolfalse -\newif\ifmt@defaultnormal\mt@defaultnormalfalse -\newif\ifmt@defaultrm\mt@defaultrmfalse -\newif\ifmt@defaultbf\mt@defaultbffalse -\newif\ifmt@defaultsizes\mt@defaultsizesfalse -\newif\ifmt@twelve\mt@twelvefalse -%% new behavior in v1.11: -\newif\ifmt@endash\mt@endashtrue -\newif\ifmt@emdash\mt@emdashfalse +\newif\ifmt@proceed +\newif\ifmt@failed \def\mt@oti{OT1}\def\mt@ti{T1} \def\mt@eui{EU1}\def\mt@euii{EU2} -\newif\ifmt@alldelims -\ifx\mt@oti\m@stextenc\mt@alldelimsfalse\else\mt@alldelimstrue\fi -%% new in v1.12b: \def\mt@lyi{LY1} -%% new or modified in v1.11: -\DeclareOption{fouriervec}{\let\mt@fouriervec\@empty} -\DeclareOption{nolessnomore}{\mt@alldelimsfalse} +\newif\ifmt@italic\DeclareOption{italic}{\mt@italictrue + \edef\m@stextshletter{\itdefault}} +\newif\ifmt@frenchmath +\DeclareOption{frenchmath}{\mt@frenchmathtrue + \ExecuteOptions{italic}} +%% +\newif\ifmt@endash\mt@endashtrue \DeclareOption{endash}{\mt@endashtrue} -\DeclareOption{emdash}{\mt@emdashtrue\mt@endashfalse} \DeclareOption{noendash}{\mt@endashfalse} -\DeclareOption{symboldelimiters}{\mt@need@symboltrue - \let\mt@symboldelimiters\@empty} -%% new in v1.1: -\DeclareOption{italic}{\let\mt@italic\@empty\edef\m@stextshletter{\itdefault}} -\DeclareOption{frenchmath}{\let\mt@frenchmath\@empty} -\DeclareOption{noplus}{\let\mtno@plus\@empty} -\DeclareOption{nominus}{\let\mtno@minus\@empty} -\DeclareOption{nohbar}{\let\mtno@hbar\@empty} +\newif\ifmt@emdash\DeclareOption{emdash}{\mt@emdashtrue\mt@endashfalse} +%% +\newif\ifmt@alldelims +\DeclareOption{alldelims}{\mt@alldelimstrue} +\ifx\mt@oti\m@stextenc\else\mt@alldelimstrue\fi +\DeclareOption{nolessnomore}{\mt@alldelimsfalse} %% -\DeclareOption{noparenthesis}{\let\mtno@paren\@empty} -\DeclareOption{nopunctuation}{\let\mtno@punct\@empty} +\newif\ifmt@noplus\DeclareOption{noplus}{\mt@noplustrue} +\newif\ifmt@nominus\DeclareOption{nominus}{\mt@nominustrue} \DeclareOption{noplusnominus}{\ExecuteOptions{noplus,nominus}} -\DeclareOption{noequal}{\let\mtno@equal\@empty} -\DeclareOption{noexclam}{\let\mtno@exclam\@empty} -\DeclareOption{noasterisk}{\let\mtno@ast\@empty} -\DeclareOption{nospecials}{\let\mtno@specials\@empty} +%% +\newif\ifmt@noparen\DeclareOption{noparenthesis}{\mt@noparentrue} +\newif\ifmt@nopunct\DeclareOption{nopunctuation}{\mt@nopuncttrue} +\newif\ifmt@noequal\DeclareOption{noequal}{\mt@noequaltrue} +\newif\ifmt@noexclam\DeclareOption{noexclam}{\mt@noexclamtrue} +\newif\ifmt@noast\DeclareOption{noasterisk}{\mt@noasttrue} +\newif\ifmt@nospecials\DeclareOption{nospecials}{\mt@nospecialstrue} \DeclareOption{basic}{\ExecuteOptions{noparenthesis,nopunctuation,% noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} -\DeclareOption{nodigits}{\let\mtno@digits\@empty} -\DeclareOption{defaultimath}{\let\mt@defaultimath\@empty} -\DeclareOption{alldelims}{\mt@alldelimstrue} -\DeclareOption{mathaccents}{\let\mt@mathaccents\@empty} -\DeclareOption{selfGreek}{\let\mt@selfGreek\@empty} -\DeclareOption{selfgreek}{\let\mt@selfGreek\@empty} -\DeclareOption{symboldigits}{\mt@need@symboltrue - \let\mt@symboldigits\@empty} -\DeclareOption{symbolgreek}{\mt@need@symboltrue - \let\mt@symbolgreek\@empty} -\DeclareOption{symbolre}{\mt@need@symboltrue - \let\mt@symbolre\@empty} -\DeclareOption{symbolmisc}{\mt@need@symboltrue - \let\mt@symbolmisc\@empty} +%% +\newif\ifmt@nohbar\DeclareOption{nohbar}{\mt@nohbartrue} +\newif\ifmt@nodigits\DeclareOption{nodigits}{\mt@nodigitstrue} +\newif\ifmt@defaultimath\DeclareOption{defaultimath}{\mt@defaultimathtrue} +\newif\ifmt@mathaccents\DeclareOption{mathaccents}{\mt@mathaccentstrue} +%% +\newif\ifmt@selfGreek + \DeclareOption{selfGreek}{\mt@selfGreektrue} + \DeclareOption{selfgreek}{\mt@selfGreektrue} +\newif\ifmt@LGRgreek\DeclareOption{LGRgreek}{\mt@LGRgreektrue} +%% +\newif\ifmt@needsymbol +\newif\ifmt@symboldelimiters +\DeclareOption{symboldelimiters}{\mt@needsymboltrue\mt@symboldelimiterstrue} +\newif\ifmt@symboldigits +\DeclareOption{symboldigits}{\mt@needsymboltrue\mt@symboldigitstrue} +\newif\ifmt@symbolgreek +\DeclareOption{symbolgreek}{\mt@needsymboltrue\mt@symbolgreektrue} +\newif\ifmt@symbolre +\DeclareOption{symbolre}{\mt@needsymboltrue\mt@symbolretrue} +\newif\ifmt@symbolmisc +\DeclareOption{symbolmisc}{\mt@needsymboltrue\mt@symbolmisctrue} \DeclareOption{symbol}{\ExecuteOptions{symbolgreek,symbolmisc,symbolre}} \DeclareOption{symbolmax}{\ExecuteOptions{symbol,symboldelimiters}} -\DeclareOption{eulerdigits}{\mt@need@eulertrue\let\mt@eulerdigits\@empty} -\DeclareOption{eulergreek}{\mt@need@eulertrue\let\mt@eulergreek\@empty} +%% +\newif\ifmt@needeuler +\newif\ifmt@eulerdigits +\DeclareOption{eulerdigits}{\mt@needeulertrue\mt@eulerdigitstrue} +\newif\ifmt@eulergreek +\DeclareOption{eulergreek}{\mt@needeulertrue\mt@eulergreektrue} +%% +\newif\ifmt@twoshapesforgreek +\newif\ifmt@upgreek +\newif\ifmt@itgreek +\newif\ifmt@upGreek +\newif\ifmt@itGreek +\DeclareOption{upgreek}{\mt@upgreektrue} +\DeclareOption{itgreek}{\mt@itgreektrue} +\DeclareOption{upGreek}{\mt@twoshapesforgreektrue\mt@upGreektrue} +\DeclareOption{itGreek}{\mt@twoshapesforgreektrue\mt@itGreektrue} +%% +\newif\ifmt@defaultnormal \DeclareOption{defaultnormal}{\mt@defaultnormaltrue} +\newif\ifmt@defaultrm \DeclareOption{defaultrm}{\mt@defaultrmtrue} +\newif\ifmt@defaultbf \DeclareOption{defaultbf}{\mt@defaultbftrue} -\DeclareOption{defaultmathsizes}{\mt@defaultsizestrue} -\DeclareOption{12pt}{\mt@twelvetrue} +\newif\ifmt@defaultsizes\DeclareOption{defaultmathsizes}{\mt@defaultsizestrue} +\newif\ifmt@twelve\DeclareOption{12pt}{\mt@twelvetrue} +\newif\ifmt@fouriervec\DeclareOption{fouriervec}{\mt@fouriervectrue} \DeclareOption*{\PackageWarning{mathastext}{Unknown option `\CurrentOption'}} -\ProcessOptions\relax %% -\DeclareRobustCommand\pmvec[1]{\mathord{\stackrel{\raisebox{-.5ex}% -{\tiny\boldmath$\mathord{\rightarrow}$}}{{}#1}}} -\ifx\mt@fouriervec\@empty - \DeclareFontEncoding{FML}{}{} - \DeclareFontSubstitution{FML}{futm}{m}{it} - \DeclareSymbolFont{mtfourierpourvec}{FML}{futm}{m}{it} - \SetSymbolFont{mtfourierpourvec}{bold}{FML}{futm}{b}{it} - \DeclareMathAccent{\fouriervec}{\mathord}{mtfourierpourvec}{"7E} -\fi +\ProcessOptions\relax \DeclareSymbolFont{mtoperatorfont} {\m@stextenc}{\m@stextfam}{\m@stextser}{\m@stextsh} \DeclareSymbolFont{mtletterfont} {\m@stextenc}{\m@stextfam}{\m@stextser}{\m@stextshletter} \DeclareSymbolFontAlphabet{\Mathnormal}{mtletterfont} \DeclareSymbolFontAlphabet{\Mathrm}{mtoperatorfont} - \def\m@stextenc{\encodingdefault} - \def\m@stextfam{\familydefault} - \def\m@stextser{\seriesdefault} - \def\m@stextsh{\shapedefault} - \def\m@stextbold{\bfdefault} - \def\m@stextshletter{\shapedefault} - \ifx\mt@italic\@empty\def\m@stextshletter{\itdefault}\fi -\ifmt@need@euler +\ifmt@LGRgreek + \DeclareFontEncoding{LGR}{}{} + \DeclareSymbolFont{mtlgrfont}{LGR} + {\m@stextfam}{\m@stextser}{\m@stextshletter} + \def\mtlgrfontupper{mtlgrfont} + \ifmt@twoshapesforgreek + \ifmt@upGreek + \DeclareSymbolFont{mtlgrfontupper}{LGR}{\m@stextfam}{\m@stextser}{n} + \else + \DeclareSymbolFont{mtlgrfontupper}{LGR}{\m@stextfam}{\m@stextser}{it} + \fi + \def\mtlgrfontupper{mtlgrfontupper} + \fi +\else +\ifmt@selfGreek\mt@proceedfalse + \ifmt@upGreek\def\mt@tmp{n}\mt@proceedtrue\else + \ifmt@upgreek\def\mt@tmp{n}\mt@proceedtrue\else + \ifmt@itGreek\def\mt@tmp{it}\mt@proceedtrue\else + \ifmt@itgreek\def\mt@tmp{it}\mt@proceedtrue + \fi\fi\fi\fi + \ifmt@proceed + \def\mt@uppergreekfont{mtselffontupper} + \DeclareSymbolFont{mtselffontupper}{\m@stextenc} % should be OT1! + {\m@stextfam}{\m@stextser}{\mt@tmp} + \else + \ifmt@frenchmath + \def\mt@uppergreekfont{mtoperatorfont} + \else + \def\mt@uppergreekfont{mtletterfont} + \fi + \fi +\fi\fi +\ifmt@needeuler \DeclareSymbolFont{mteulervm}{U}{zeur}{m}{n} \DeclareSymbolFontAlphabet{\MathEuler}{mteulervm} -%% \SetSymbolFont{mteulervm}{bold}{U}{zeur}{\m@stextbold}{n} \fi \newcommand\MTEulerScale[1]{\edef\zeu@Scale{#1}} \let\MathastextEulerScale\MTEulerScale -\ifmt@need@symbol +\ifmt@needsymbol \def\psy@scale{1} \DeclareSymbolFont{mtpsymbol}{U}{psy}{m}{n} -%% \SetSymbolFont{mtpsymbol}{bold}{U}{psy}{\m@stextbold}{n} \DeclareSymbolFontAlphabet{\MathPSymbol}{mtpsymbol} \fi \newcommand\MTSymbolScale[1]{\edef\psy@scale{#1}} \let\MathastextSymbolScale\MTSymbolScale +\DeclareRobustCommand\pmvec[1]{\mathord{\stackrel{\raisebox{-.5ex}% +{\tiny\boldmath$\mathord{\rightarrow}$}}{{}#1}}} +\ifmt@fouriervec + \DeclareFontEncoding{FML}{}{} + \DeclareFontSubstitution{FML}{futm}{m}{it} + \DeclareSymbolFont{mtfourierpourvec}{FML}{futm}{m}{it} + \SetSymbolFont{mtfourierpourvec}{bold}{FML}{futm}{b}{it} + \DeclareMathAccent{\fouriervec}{\mathord}{mtfourierpourvec}{"7E} +\fi \DeclareRobustCommand\MTencoding[1]{\def\m@stextenc{#1}} \DeclareRobustCommand\MTfamily[1]{\def\m@stextfam{#1}} \DeclareRobustCommand\MTseries[1]{\def\m@stextser{#1}} \DeclareRobustCommand\MTshape[1]{\def\m@stextsh{#1} - \ifx\mt@italic\@empty\else\def\m@stextshletter{#1}\fi} + \ifmt@italic\else\def\m@stextshletter{#1}\fi} \DeclareRobustCommand\MTboldvariant[1]{\def\m@stextbold{#1}} \DeclareRobustCommand\MTlettershape[1]{\def\m@stextshletter{#1}} \let\Mathastextencoding\MTencoding @@ -190,6 +233,7 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \fi \Mathastext} \let\MathastextWillUse\MTWillUse +\let\Mathastextwilluse\MTWillUse \DeclareRobustCommand\Mathastext[1][\@empty]{ \mt@font@info@off \ifx\@empty#1 % no optional argument @@ -218,7 +262,7 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} {\mt@family@normal} {\mt@series@normal} {\mt@shape@normal} - \SetSymbolFont{mtoperatorfont}{bold} {\mt@encoding@bold} + \SetSymbolFont{mtoperatorfont}{bold} {\mt@encoding@bold} {\mt@family@bold} {\mt@series@bold} {\mt@shape@bold} @@ -230,17 +274,50 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} {\mt@family@bold} {\mt@series@bold} {\mt@ltshape@bold} - \ifmt@need@euler + \ifmt@needeuler \SetSymbolFont{mteulervm}{bold}{U}{zeur}{\mt@boldvariant@normal}{n} \DeclareMathAlphabet{\MathEulerBold}{U}{zeur}{\mt@boldvariant@normal}{n} \fi - \ifmt@need@symbol\SetSymbolFont{mtpsymbol}{bold} - {U}{psy}{\mt@boldvariant@normal}{n}\fi - \typeout{** Latin letters in math versions normal (resp. bold) are now^^J% + \ifmt@needsymbol\SetSymbolFont{mtpsymbol}{bold} + {U}{psy}{\mt@boldvariant@normal}{n} + \fi + \ifmt@LGRgreek + \ifmt@upgreek\def\mt@tmp{n} + \else\ifmt@itgreek\def\mt@tmp{it} + \else\ifmt@frenchmath\def\mt@tmp{\mt@shape@normal} + \else\def\mt@tmp{\mt@ltshape@normal} + \fi\fi\fi + \SetSymbolFont{mtlgrfont}{normal}{LGR} + {\mt@family@normal}{\mt@series@normal}{\mt@tmp} + \SetSymbolFont{mtlgrfont}{bold}{LGR} + {\mt@family@bold}{\mt@boldvariant@normal}{\mt@tmp} + \ifmt@twoshapesforgreek + \ifmt@upGreek\def\mt@tmp{n}\else\def\mt@tmp{it}\fi + \SetSymbolFont{mtlgrfontupper}{normal}{LGR} + {\mt@family@normal}{\mt@series@normal}{\mt@tmp} + \SetSymbolFont{mtlgrfontupper}{bold}{LGR} + {\mt@family@bold}{\mt@boldvariant@bold}{\mt@tmp} + \fi + \else + \ifmt@selfGreek + \mt@proceedfalse + \ifmt@upGreek\def\mt@tmp{n}\mt@proceedtrue\else + \ifmt@upgreek\def\mt@tmp{n}\mt@proceedtrue\else + \ifmt@itGreek\def\mt@tmp{it}\mt@proceedtrue\else + \ifmt@itgreek\def\mt@tmp{it}\mt@proceedtrue + \fi\fi\fi\fi + \ifmt@proceed + \SetSymbolFont{mtselffontupper}{normal}{\mt@encoding@normal} + {\mt@family@normal}{\mt@series@normal}{\mt@tmp} + \SetSymbolFont{mtselffontupper}{bold}{\mt@encoding@bold} + {\mt@family@bold}{\mt@boldvariant@bold}{\mt@tmp} + \fi +\fi\fi +\typeout{** Latin letters in math versions normal (resp. bold) are now^^J% ** set up to use the fonts \mt@encoding@normal/\mt@family@normal/\mt@series@normal% (\mt@boldvariant@normal)/\mt@ltshape@normal} -\ifx\mtno@digits\@empty\else +\ifmt@nodigits\else \typeout{** Other characters (digits, ...) and \protect\log-like names will be^^J% ** typeset with the \expandafter`\mt@shape@normal' shape.} @@ -258,13 +335,13 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} } \DeclareRobustCommand\MTDeclareVersion[6][\@empty]{ \mt@font@info@off - \edef\mt@tmp{#2} - \DeclareMathVersion{\mt@tmp} - \expandafter\edef\csname mt@encoding@\mt@tmp\endcsname{#3} - \expandafter\edef\csname mt@family@\mt@tmp\endcsname{#4} - \expandafter\edef\csname mt@series@\mt@tmp\endcsname{#5} - \expandafter\edef\csname mt@shape@\mt@tmp\endcsname{#6} - \expandafter\edef\csname mt@boldvariant@\mt@tmp\endcsname{\m@stextbold} + \edef\mt@version{#2} + \DeclareMathVersion{\mt@version} + \expandafter\edef\csname mt@encoding@\mt@version\endcsname{#3} + \expandafter\edef\csname mt@family@\mt@version\endcsname{#4} + \expandafter\edef\csname mt@series@\mt@version\endcsname{#5} + \expandafter\edef\csname mt@shape@\mt@version\endcsname{#6} + \expandafter\edef\csname mt@boldvariant@\mt@version\endcsname{\m@stextbold} \newif\ifmt@reallynoopt\mt@reallynoopttrue \ifx\@empty#1 \else % we check nevertheless for [] situation, will not work with [ ] @@ -272,78 +349,121 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \ifx\mt@@tmp\mt@empty\else\mt@reallynooptfalse\fi \fi \ifmt@reallynoopt - \ifx\mt@italic\@empty + \ifmt@italic \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{\m@stextshletter} \typeout{** Latin letters in math version `#2' will use the font #3/#4/#5/\m@stextshletter^^J% ** Other characters (digits, ...) and \protect\log-like names will be in `#6' shape.} - \expandafter\def\csname mt@ltshape\mt@tmp\endcsname{\m@stextshletter} + \expandafter\edef\csname mt@ltshape@\mt@version\endcsname{\m@stextshletter} \else \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{#6} \typeout{** Latin letters in math version `#2' will use the fonts #3/#4/#5(\m@stextbold)/#6} - \expandafter\edef\csname mt@ltshape\mt@tmp\endcsname{#6} + \expandafter\edef\csname mt@ltshape@\mt@version\endcsname{#6} \fi \else \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{#1} \typeout{** Latin letters in math version `#2' will use the font #3/#4/#5/#1^^J% - ** Other characters (digits, ...) and \protect\log-like names will be in `#6' shape.} - \expandafter\edef\csname mt@ltshape\mt@tmp\endcsname{#1} + ** Other characters (digits, ...) and \protect\log-like + names will be in `#6' shape.} + \expandafter\edef\csname mt@ltshape@\mt@version\endcsname{#1} \fi \SetMathAlphabet{\Mathbf}{#2}{#3}{#4}{\m@stextbold}{#6} \SetSymbolFont{mtoperatorfont}{#2}{#3}{#4}{#5}{#6} - \ifmt@need@euler + \ifmt@needeuler \SetMathAlphabet{\MathEulerBold}{#2}{U}{zeur}{\m@stextbold}{n} \fi + \ifmt@LGRgreek + \ifmt@upgreek\def\mt@tmp{n} + \else\ifmt@itgreek\def\mt@tmp{it} + \else\ifmt@frenchmath\def\mt@tmp{\csname mt@shape@\mt@version\endcsname} + \else\def\mt@tmp{\csname mt@ltshape@\mt@version\endcsname} + \fi\fi\fi + \SetSymbolFont{mtlgrfont}{#2}{LGR}{#4}{#5}{\mt@tmp} +%% \typeout{** Greek letters in math version `#2' will use the font +%% LGR/#4/#5/\mt@tmp} + \ifmt@twoshapesforgreek + \ifmt@upGreek\def\mt@tmp{n}\else\def\mt@tmp{it}\fi + \SetSymbolFont{mtlgrfontupper}{#2}{LGR}{#4}{#5}{\mt@tmp} +%% \typeout{** Uppercase Greek letters in math version `#2' will use the font +%% LGR/#4/#5/\mt@tmp} + \fi +\else + \ifmt@selfGreek + \mt@proceedfalse + \ifmt@upGreek\def\mt@tmp{n}\mt@proceedtrue\else + \ifmt@upgreek\def\mt@tmp{n}\mt@proceedtrue\else + \ifmt@itGreek\def\mt@tmp{it}\mt@proceedtrue\else + \ifmt@itgreek\def\mt@tmp{it}\mt@proceedtrue + \fi\fi\fi\fi + \ifmt@proceed + \SetSymbolFont{mtselffontupper}{#2}{#3}{#4}{#5}{\mt@tmp} + \fi +\fi\fi \mt@font@info@on } \let\MathastextDeclareVersion\MTDeclareVersion -\def\operator@font{\mathgroup\symmtoperatorfont} + \def\m@stextenc{\encodingdefault} + \def\m@stextfam{\familydefault} + \def\m@stextser{\seriesdefault} + \def\m@stextsh{\shapedefault} + \def\m@stextbold{\bfdefault} + \def\m@stextshletter{\shapedefault} + \ifmt@italic\def\m@stextshletter{\itdefault}\fi \Mathastext +\def\operator@font{\mathgroup\symmtoperatorfont} \let\mt@saved@mathnormal\mathnormal \@ifpackageloaded{fourier}{\ifsloped\else\let\mt@saved@mathnormal\mathrm\fi}{} \ifmt@defaultnormal\else\renewcommand{\mathnormal}{\Mathnormal}\fi \ifmt@defaultrm\else\renewcommand{\mathrm}{\Mathrm}\fi \ifmt@defaultbf\else\renewcommand{\mathbf}{\Mathbf}\fi -\ifx\mt@symbolgreek\@empty -\typeout{** Greek letters will use the PostScript Symbol font. Use^^J% -** \protect\MathastextSymbolScale{factor} to scale the font by .} -\fi -\ifx\mt@eulergreek\@empty -\typeout{** Greek letters will use the Euler font. Use^^J% -** \protect\MathastextEulerScale{factor} to scale the font by .} -\fi -\ifx\mt@selfGreek\@empty -\typeout{** Capital Greek letters from the fonts declared for latin letters:^^J% +%% \ifmt@LGRgreek +%% \typeout{** Greek letters will use the font +%% LGR/\mt@family@normal/\mt@series@normal/\mt@ltshape@normal} +%% \else +\ifmt@selfGreek + \typeout{** Capital Greek letters will be taken from the fonts + declared for latin letters:^^J% ** only for OT1 or compatible encodings; glyphs may be unavailable.} -\fi +\else +\ifmt@eulergreek + \typeout{** Greek letters will use the Euler font. Use^^J% +** \protect\MathastextEulerScale{} to scale the font.} +\else +\ifmt@symbolgreek + \typeout{** Greek letters will use the PostScript Symbol font. Use^^J% +** \protect\MathastextSymbolScale{} to scale the font.} +\fi\fi\fi +%%\fi \DeclareRobustCommand\MTVersion[2][\@empty]{% \mathversion{#2}% \ifx\@empty#1% no optional argument - \edef\mt@tmp{@#2} + \edef\mt@tmp{#2} \else% we check nevertheless for [] situation, will not work with [ ] \def\mt@@tmp{#1}\def\mt@empty{}% - \ifx\mt@@tmp\mt@empty\edef\mt@tmp{@#2}% - \else\edef\mt@tmp{@#1}% + \ifx\mt@@tmp\mt@empty\edef\mt@tmp{#2}% + \else\edef\mt@tmp{#1}% \fi% \fi% - \usefont{\csname mt@encoding\mt@tmp\endcsname}% - {\csname mt@family\mt@tmp\endcsname}% - {\csname mt@series\mt@tmp\endcsname}% - {\csname mt@shape\mt@tmp\endcsname}% - \edef\mt@@encoding{\csname mt@encoding\mt@tmp\endcsname}% + \usefont{\csname mt@encoding@\mt@tmp\endcsname}% + {\csname mt@family@\mt@tmp\endcsname}% + {\csname mt@series@\mt@tmp\endcsname}% + {\csname mt@shape@\mt@tmp\endcsname}% + \edef\mt@@encoding{\csname mt@encoding@\mt@tmp\endcsname}% \renewcommand{\encodingdefault}{\mt@@encoding}% - \edef\mt@@family{\csname mt@family\mt@tmp\endcsname}% + \edef\mt@@family{\csname mt@family@\mt@tmp\endcsname}% \renewcommand{\rmdefault}{\mt@@family}% - \edef\mt@@series{\csname mt@series\mt@tmp\endcsname}% + \edef\mt@@series{\csname mt@series@\mt@tmp\endcsname}% \renewcommand{\mddefault}{\mt@@series}% - \edef\mt@@shape{\csname mt@shape\mt@tmp\endcsname}% + \edef\mt@@shape{\csname mt@shape@\mt@tmp\endcsname}% \renewcommand{\updefault}{\mt@@shape}% - \edef\mt@@boldvariant{\csname mt@boldvariant\mt@tmp\endcsname}% + \edef\mt@@boldvariant{\csname mt@boldvariant@\mt@tmp\endcsname}% \renewcommand{\bfdefault}{\mt@@boldvariant}} \let\MathastextVersion\MTVersion +\let\Mathastextversion\MTVersion +\let\MTversion\MTVersion \DeclareMathSymbol{a}{\mathalpha}{mtletterfont}{`a} \DeclareMathSymbol{b}{\mathalpha}{mtletterfont}{`b} \DeclareMathSymbol{c}{\mathalpha}{mtletterfont}{`c} @@ -370,7 +490,7 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareMathSymbol{x}{\mathalpha}{mtletterfont}{`x} \DeclareMathSymbol{y}{\mathalpha}{mtletterfont}{`y} \DeclareMathSymbol{z}{\mathalpha}{mtletterfont}{`z} -\ifx\mt@frenchmath\@empty\def\mt@font@tbu{mtoperatorfont} +\ifmt@frenchmath\def\mt@font@tbu{mtoperatorfont} \else\def\mt@font@tbu{mtletterfont}\fi \DeclareMathSymbol{A}{\mathalpha}{\mt@font@tbu}{`A} \DeclareMathSymbol{B}{\mathalpha}{\mt@font@tbu}{`B} @@ -399,10 +519,10 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareMathSymbol{Y}{\mathalpha}{\mt@font@tbu}{`Y} \DeclareMathSymbol{Z}{\mathalpha}{\mt@font@tbu}{`Z} %% -\ifx\mtno@digits\@empty\else +\ifmt@nodigits\else \def\mt@font@tbu{mtoperatorfont} -\ifx\mt@symboldigits\@empty \def\mt@font@tbu{mtpsymbol} \fi -\ifx\mt@eulerdigits\@empty \def\mt@font@tbu{mteulervm} \fi +\ifmt@symboldigits \def\mt@font@tbu{mtpsymbol} \fi +\ifmt@eulerdigits \def\mt@font@tbu{mteulervm} \fi \DeclareMathSymbol{0}{\mathalpha}{\mt@font@tbu}{`0} \DeclareMathSymbol{1}{\mathalpha}{\mt@font@tbu}{`1} \DeclareMathSymbol{2}{\mathalpha}{\mt@font@tbu}{`2} @@ -414,7 +534,7 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareMathSymbol{8}{\mathalpha}{\mt@font@tbu}{`8} \DeclareMathSymbol{9}{\mathalpha}{\mt@font@tbu}{`9} \fi -\ifx\mt@symboldelimiters\@empty +\ifmt@symboldelimiters \def\mt@font@tbu{mtpsymbol} \mt@endashfalse \mt@emdashfalse @@ -422,25 +542,25 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \def\mt@font@tbu{mtoperatorfont} \fi %% -\ifx\mtno@exclam\@empty\else +\ifmt@noexclam\else \DeclareMathSymbol{!}{\mathclose}{\mt@font@tbu}{"21} \DeclareMathSymbol{?}{\mathclose}{\mt@font@tbu}{"3F} \fi %% -\ifx\mtno@ast\@empty\else +\ifmt@noast\else \DeclareMathSymbol{*}{\mathalpha}{\mt@font@tbu}{"2A} \fi -\ifx\mtno@punct\@empty\else +\ifmt@nopunct\else \DeclareMathSymbol{,}{\mathpunct}{\mt@font@tbu}{"2C} \DeclareMathSymbol{.}{\mathord}{\mt@font@tbu}{"2E} -\DeclareMathSymbol{:}{\mathrel}{\mt@font@tbu}{"3A} +\DeclareMathSymbol{:}{\mathrel}{\mt@font@tbu}{"3A} % relation spacing \@ifpackageloaded{amsmath} - {} - {\let\colon\undefined + {} %\colon defined in amsmath.sty (enlarged punctuation spacing) + {\let\colon\undefined % no amsmath, use punctuation spacing \DeclareMathSymbol{\colon}{\mathpunct}{\mt@font@tbu}{"3A}} \DeclareMathSymbol{;}{\mathpunct}{\mt@font@tbu}{"3B} \fi -\ifx\mtno@minus\@empty\else +\ifmt@nominus\else \edef\mt@minus@sign{\mathord{\expandafter\mathchar\number\mathcode`\-}} \def\relbar{\mathrel{\smash\mt@minus@sign}} \def\rightarrowfill{$\m@th\mt@minus@sign\mkern-7mu% @@ -450,7 +570,6 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \cleaders\hbox{$\mkern-2mu\mt@minus@sign\mkern-2mu$}\hfill \mkern-7mu\smash\mt@minus@sign$} \fi -\newif\ifmt@failed \def\do@the@endashstuff{\edef\mt@enc{\m@stextenc} \ifx\mt@enc\mt@eui % xetex+fontspec \XeTeXmathcode`\-="2 "\the\symmtoperatorfont "2013 \relax @@ -493,7 +612,7 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} {\expandafter\the\expandafter\csname\mt@enc\string\textemdash\endcsname} \fi\fi \fi\fi\fi\fi\fi} -\ifx\mtno@minus\@empty\else +\ifmt@nominus\else \mt@failedfalse \ifmt@endash\do@the@endashstuff\else \ifmt@emdash\do@the@emdashstuff\else @@ -519,16 +638,16 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \fi \def\hbar{\mathrlap{\mt@ltbar{\ }}h} \fi\fi} -\ifx\mtno@hbar\@empty\else\do@the@hbarstuff\fi -\ifx\mtno@plus\@empty\else +\ifmt@nohbar\else\do@the@hbarstuff\fi +\ifmt@noplus\else \DeclareMathSymbol{+}{\mathbin}{\mt@font@tbu}{"2B} \fi -\ifx\mtno@equal\@empty\else +\ifmt@noequal\else \edef\mt@equal@sign{{\expandafter\mathchar\number\mathcode`\=}} \DeclareRobustCommand\Relbar{\mathrel{\mt@equal@sign}} \DeclareMathSymbol{=}{\mathrel}{\mt@font@tbu}{"3D} \fi -\ifx\mtno@paren\@empty\else +\ifmt@noparen\else \DeclareMathDelimiter{(}{\mathopen} {\mt@font@tbu}{"28}{largesymbols}{"00} \DeclareMathDelimiter{)}{\mathclose}{\mt@font@tbu}{"29}{largesymbols}{"01} \DeclareMathDelimiter{[}{\mathopen} {\mt@font@tbu}{"5B}{largesymbols}{"02} @@ -537,7 +656,7 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareMathSymbol{/}{\mathord}{\mt@font@tbu}{"2F} \fi \ifmt@alldelims -%% \ifx\mt@symboldelimiters\@empty\else +%% \ifmt@symboldelimiters\else %% \ifx\mt@ti\mt@enc\else %% \typeout{** mathastext: `alldelims'. Characters <,>,{,},| will be assumed %% to^^J% @@ -562,7 +681,7 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareMathDelimiter{\rbrace} {\mathclose}{\mt@font@tbu}{"7D}{largesymbols}{"09} \fi -\ifx\mtno@specials\@empty\else +\ifmt@nospecials\else \renewcommand{\#}{\ifmmode\edef\ms@tmp{7\the\symmtoperatorfont23}% \mathchar\expandafter"\ms@tmp\relax\else\char"23\relax\fi} \renewcommand{\$}{\ifmmode\edef\ms@tmp{7\the\symmtoperatorfont24}% @@ -572,7 +691,7 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \renewcommand{\&}{\ifmmode\edef\ms@tmp{7\the\symmtoperatorfont26}% \mathchar\expandafter"\ms@tmp\relax\else\char"26\relax\fi} \fi -\ifx\mt@symbolmisc\@empty +\ifmt@symbolmisc \let\prod\undefined \DeclareMathSymbol{\prod}{\mathop}{mtpsymbol}{213} \let\sum\undefined @@ -641,23 +760,32 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareMathDelimiter{\langle} {\mathopen}{mtpsymbol}{225}{largesymbols}{"0A} \fi -\ifx\mt@symbolre\@empty +\ifmt@symbolre \DeclareMathSymbol{\Re}{\mathord}{mtpsymbol}{"C2} \DeclareMathSymbol{\Im}{\mathord}{mtpsymbol}{"C1} \DeclareMathSymbol{\DotTriangle}{\mathord}{mtpsymbol}{92} \fi -\newif\ifmt@dogreek\mt@dogreektrue \let\mt@mathord\mathalpha -\ifx\mt@selfGreek\@empty \def\mt@font@tbu{mtoperatorfont} - \else -\ifx\mt@eulergreek\@empty \def\mt@font@tbu{mteulervm} - \else -\ifx\mt@symbolgreek\@empty \def\mt@font@tbu{mtpsymbol} - \let\mt@mathord\mathord - \else - \mt@dogreekfalse -\fi\fi\fi -\ifmt@dogreek +\mt@proceedtrue +\ifmt@selfGreek + \def\mt@font@tbu{\mt@uppergreekfont} + \else +\ifmt@eulergreek + \def\mt@font@tbu{mteulervm} + \else +\ifmt@symbolgreek + \def\mt@font@tbu{mtpsymbol} + \let\mt@mathord\mathord + \else +\ifmt@LGRgreek + \mt@proceedfalse + \else + \mt@proceedfalse + \ifx\omicron\undefined + \newcommand{\omicron}{\mt@saved@mathnormal{o}} + \fi +\fi\fi\fi\fi +\ifmt@proceed \DeclareMathSymbol{\Alpha}{\mt@mathord}{\mt@font@tbu}{"41} \DeclareMathSymbol{\Beta}{\mt@mathord}{\mt@font@tbu}{"42} \DeclareMathSymbol{\Epsilon}{\mt@mathord}{\mt@font@tbu}{"45} @@ -681,7 +809,7 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareMathSymbol{\Delta}{\mathord}{mtpsymbol}{"44} \DeclareMathSymbol{\Theta}{\mathord}{mtpsymbol}{"51} \DeclareMathSymbol{\Lambda}{\mathord}{mtpsymbol}{"4C} -\DeclareMathSymbol{\Xi}{\mathord}{mtpsymbol}{"58} %% was "59 in v10 +\DeclareMathSymbol{\Xi}{\mathord}{mtpsymbol}{"58} \DeclareMathSymbol{\Pi}{\mathord}{mtpsymbol}{"50} \DeclareMathSymbol{\Sigma}{\mathord}{mtpsymbol}{"53} \DeclareMathSymbol{\Upsilon}{\mathord}{mtpsymbol}{"A1} @@ -703,7 +831,8 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareMathSymbol\Omega {\mathalpha}{\mt@font@tbu}{"0A} \fi \fi -\ifx\mt@eulergreek\@empty +\ifmt@proceed +\ifmt@eulergreek \DeclareMathSymbol{\alpha} {\mathalpha}{mteulervm}{"0B} \DeclareMathSymbol{\beta} {\mathalpha}{mteulervm}{"0C} \DeclareMathSymbol{\gamma} {\mathalpha}{mteulervm}{"0D} @@ -739,7 +868,7 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareMathSymbol{\wp}{\mathalpha}{mteulervm}{"7D} \DeclareMathSymbol{\ell}{\mathalpha}{mteulervm}{"60} \else -\ifx\mt@symbolgreek\@empty +\ifmt@symbolgreek \DeclareMathSymbol{\alpha}{\mathord}{mtpsymbol}{"61} \DeclareMathSymbol{\beta}{\mathord}{mtpsymbol}{"62} \DeclareMathSymbol{\gamma}{\mathord}{mtpsymbol}{"67} @@ -773,11 +902,63 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareMathSymbol{\varphi}{\mathord}{mtpsymbol}{"6A} \DeclareMathSymbol{\partial}{\mathord}{mtpsymbol}{"B6} \DeclareMathSymbol{\wp}{\mathord}{mtpsymbol}{"C3} -\else -\ifx\omicron\undefined -\newcommand{\omicron}{\mt@saved@mathnormal{o}}\fi -\fi\fi -\edef\mt@enc{\m@stextenc}\newif\ifmt@goon\mt@goontrue +\fi\fi\fi +%% +\ifmt@LGRgreek +\DeclareMathSymbol{\Alpha}{\mathalpha}{\mtlgrfontupper}{65} +\DeclareMathSymbol{\Beta}{\mathalpha}{\mtlgrfontupper}{66} +\DeclareMathSymbol{\Gamma}{\mathalpha}{\mtlgrfontupper}{71} +\DeclareMathSymbol{\Delta}{\mathalpha}{\mtlgrfontupper}{68} +\DeclareMathSymbol{\Epsilon}{\mathalpha}{\mtlgrfontupper}{69} +\DeclareMathSymbol{\Zeta}{\mathalpha}{\mtlgrfontupper}{90} +\DeclareMathSymbol{\Eta}{\mathalpha}{\mtlgrfontupper}{72} +\DeclareMathSymbol{\Theta}{\mathalpha}{\mtlgrfontupper}{74} +\DeclareMathSymbol{\Iota}{\mathalpha}{\mtlgrfontupper}{73} +\DeclareMathSymbol{\Kappa}{\mathalpha}{\mtlgrfontupper}{75} +\DeclareMathSymbol{\Lambda}{\mathalpha}{\mtlgrfontupper}{76} +\DeclareMathSymbol{\Mu}{\mathalpha}{\mtlgrfontupper}{77} +\DeclareMathSymbol{\Nu}{\mathalpha}{\mtlgrfontupper}{78} +\DeclareMathSymbol{\Xi}{\mathalpha}{\mtlgrfontupper}{88} +\DeclareMathSymbol{\Omicron}{\mathalpha}{\mtlgrfontupper}{79} +\DeclareMathSymbol{\Pi}{\mathalpha}{\mtlgrfontupper}{80} +\DeclareMathSymbol{\Rho}{\mathalpha}{\mtlgrfontupper}{82} +\DeclareMathSymbol{\Sigma}{\mathalpha}{\mtlgrfontupper}{83} +\DeclareMathSymbol{\Tau}{\mathalpha}{\mtlgrfontupper}{84} +\DeclareMathSymbol{\Upsilon}{\mathalpha}{\mtlgrfontupper}{85} +\DeclareMathSymbol{\Phi}{\mathalpha}{\mtlgrfontupper}{70} +\DeclareMathSymbol{\Chi}{\mathalpha}{\mtlgrfontupper}{81} +\DeclareMathSymbol{\Psi}{\mathalpha}{\mtlgrfontupper}{89} +\DeclareMathSymbol{\Omega}{\mathalpha}{\mtlgrfontupper}{87} +\DeclareMathSymbol{\alpha}{\mathalpha}{mtlgrfont}{97} +\DeclareMathSymbol{\beta}{\mathalpha}{mtlgrfont}{98} +\DeclareMathSymbol{\gamma}{\mathalpha}{mtlgrfont}{103} +\DeclareMathSymbol{\delta}{\mathalpha}{mtlgrfont}{100} +\DeclareMathSymbol{\epsilon}{\mathalpha}{mtlgrfont}{101} +\DeclareMathSymbol{\zeta}{\mathalpha}{mtlgrfont}{122} +\DeclareMathSymbol{\eta}{\mathalpha}{mtlgrfont}{104} +\DeclareMathSymbol{\theta}{\mathalpha}{mtlgrfont}{106} +\DeclareMathSymbol{\iota}{\mathalpha}{mtlgrfont}{105} +\DeclareMathSymbol{\kappa}{\mathalpha}{mtlgrfont}{107} +\DeclareMathSymbol{\lambda}{\mathalpha}{mtlgrfont}{108} +\DeclareMathSymbol{\mu}{\mathalpha}{mtlgrfont}{109} +\DeclareMathSymbol{\nu}{\mathalpha}{mtlgrfont}{110} +\DeclareMathSymbol{\xi}{\mathalpha}{mtlgrfont}{120} +\DeclareMathSymbol{\omicron}{\mathalpha}{mtlgrfont}{111} +\DeclareMathSymbol{\pi}{\mathalpha}{mtlgrfont}{112} +\DeclareMathSymbol{\rho}{\mathalpha}{mtlgrfont}{114} +\DeclareMathSymbol{\varsigma}{\mathalpha}{mtlgrfont}{99} +\DeclareMathSymbol{\sigma}{\mathalpha}{mtlgrfont}{115} +\DeclareMathSymbol{\tau}{\mathalpha}{mtlgrfont}{116} +\DeclareMathSymbol{\upsilon}{\mathalpha}{mtlgrfont}{117} +\DeclareMathSymbol{\phi}{\mathalpha}{mtlgrfont}{102} +\DeclareMathSymbol{\chi}{\mathalpha}{mtlgrfont}{113} +\DeclareMathSymbol{\psi}{\mathalpha}{mtlgrfont}{121} +\DeclareMathSymbol{\omega}{\mathalpha}{mtlgrfont}{119} +\DeclareMathSymbol{\digamma}{\mathalpha}{mtlgrfont}{147} +\DeclareMathSymbol{\Digamma}{\mathalpha}{mtlgrfont}{195} +\fi +\edef\mt@enc{\m@stextenc} +\mt@proceedtrue \ifx\mt@enc\mt@eui % xetex and unicode font \XeTeXmathchardef\inodot="7 "\the\symmtletterfont "0131 \relax \XeTeXmathchardef\jnodot="7 "\the\symmtletterfont "0237 \relax @@ -798,15 +979,15 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareMathSymbol{\inodot}{\mathalpha}{mtletterfont}{16} \DeclareMathSymbol{\jnodot}{\mathalpha}{mtletterfont}{17} \else - \ifXeTeX\mt@goonfalse\else\ifLuaTeX\mt@goonfalse\else + \ifXeTeX\mt@proceedfalse\else\ifLuaTeX\mt@proceedfalse\else \DeclareMathSymbol{\inodot}{\mathalpha}{mtletterfont} {\expandafter\the\expandafter\csname\mt@enc\string\i\endcsname} \DeclareMathSymbol{\jnodot}{\mathalpha}{mtletterfont} {\expandafter\the\expandafter\csname\mt@enc\string\j\endcsname} \fi\fi \fi\fi\fi\fi\fi -\ifx\mt@defaultimath\@empty\else - \ifmt@goon +\ifmt@defaultimath\else + \ifmt@proceed \renewcommand{\imath}{\inodot} \renewcommand{\jmath}{\jnodot} \let\mt@oldi\i \let\mt@oldj\j @@ -815,7 +996,7 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \fi \fi \edef\mt@enc{\m@stextenc} %% rather one too many than sorry -\ifx\mt@mathaccents\@empty +\ifmt@mathaccents \ifx\mt@ti\mt@enc \DeclareMathAccent{\acute}{\mathalpha}{mtoperatorfont}{1} \DeclareMathAccent{\grave}{\mathalpha}{mtoperatorfont}{0} @@ -874,7 +1055,7 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} ** To keep LaTeX defaults, use option `defaultmathsizes'.} \fi \AtBeginDocument{ - \ifmt@need@symbol + \ifmt@needsymbol \DeclareFontFamily{U}{psy}{} \DeclareFontShape{U}{psy}{m}{n}{<->s*[\psy@scale] psyr}{} \fi -- cgit v1.2.3