From bbe35c83c2f2607cd6671d6afaf0cfe4be54f947 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 25 Oct 2012 22:10:33 +0000 Subject: mathastext (25oct12) git-svn-id: svn://tug.org/texlive/trunk@28077 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/mathastext/README | 25 +- .../texmf-dist/doc/latex/mathastext/mathastext.pdf | Bin 167640 -> 174320 bytes .../source/latex/mathastext/mathastext.dtx | 1617 +++++++++++--------- .../source/latex/mathastext/mathastext.ins | 9 +- .../texmf-dist/tex/latex/mathastext/mathastext.sty | 785 +++++----- 5 files changed, 1341 insertions(+), 1095 deletions(-) (limited to 'Master') diff --git a/Master/texmf-dist/doc/latex/mathastext/README b/Master/texmf-dist/doc/latex/mathastext/README index 341396900b2..6447eec4131 100644 --- a/Master/texmf-dist/doc/latex/mathastext/README +++ b/Master/texmf-dist/doc/latex/mathastext/README @@ -1,8 +1,8 @@ +-------------------------------------------+ - + mathastext + + + mathastext + + + - + `Use the text font in math mode' + - + v1.15e 2012/10/22 + + + `Use the text font in math mode' + + + v1.15g 2012/10/25 + + jfbu (at) free.fr + +-------------------------------------------+ @@ -86,6 +86,23 @@ source code, run latex on mathastext.dtx CHANGE LOG +1.15f and 1.15g [2012/10/25] + + * \$, \#, \&, and \% had been re-defined by mathastext since its + inception in a rather strange (but working) way, which + could cause surprises to other packages. Fixed. + + * The subdued mechanism for the math alphabets is implemented + in a simpler and more efficient manner than in 1.15e. + + * The `defaultxx' options act a bit differently, and are more + useful in case of a `too many math alphabets' situation. + + * Various improvements in the documentation. + + * General clean up and better commenting of the source code. + + 1.15e [2012/10/22] * New user commands to specify skip or glue to be @@ -194,7 +211,7 @@ CHANGE LOG * the en-dash and dotless i and j now work with all encodings, Unicode inclusive. -1.11 [2011/03/11] New optional argument to \Mathastext macro. +1.11 [2011/02/06] New optional argument to \Mathastext macro. 1.1 [2011/02/01] options italic and frenchmath. diff --git a/Master/texmf-dist/doc/latex/mathastext/mathastext.pdf b/Master/texmf-dist/doc/latex/mathastext/mathastext.pdf index 7abcf613c2b..3ae496f2449 100644 Binary files a/Master/texmf-dist/doc/latex/mathastext/mathastext.pdf and b/Master/texmf-dist/doc/latex/mathastext/mathastext.pdf differ diff --git a/Master/texmf-dist/source/latex/mathastext/mathastext.dtx b/Master/texmf-dist/source/latex/mathastext/mathastext.dtx index abb85d3a681..cc3e92703c5 100644 --- a/Master/texmf-dist/source/latex/mathastext/mathastext.dtx +++ b/Master/texmf-dist/source/latex/mathastext/mathastext.dtx @@ -1,7 +1,7 @@ % \iffalse -*- coding: iso-latin-1; -*- %<*dtx> -\def\mstdocrevdate{2012/10/22} -\ProvidesFile{mathastext.dtx}[2012/10/22 v1.15e ] +\def\mstdocrevdate{2012/10/25} +\ProvidesFile{mathastext.dtx}[2012/10/25 v1.15g ] % % \fi % \iffalse meta-comment @@ -26,17 +26,17 @@ %<*driver> \documentclass[a4paper]{ltxdoc} %\OnlyDescription -\CheckSum{3978} +\CheckSum{3901} \usepackage{color}\usepackage{xspace} \definecolor{DarkMagenta}{RGB}{139,0,139} \definecolor{ChoisiJeNeSaisPlusComment}{RGB}{225,95,0} \usepackage{metalogo} \usepackage{amsmath}\allowdisplaybreaks \usepackage[hscale=0.66]{geometry} -\usepackage[dvipdfmx,% pdftex creates a 3 to 4 times bigger file! +\usepackage[%dvipdfmx,% pdftex creates a 3 to 4 times bigger file! pdfencoding=pdfdoc,% bookmarks=true,% -bookmarksopen=true,dvipdfmx-outline-open,% +bookmarksopen=true,%dvipdfmx-outline-open,% ]{hyperref} % \hypersetup{,% @@ -55,7 +55,7 @@ pdfpagemode=UseOutlines,% \let\oldexists\exists\let\oldforall\forall \usepackage[T1]{fontenc} \usepackage{lmodern} -\usepackage[subdued,italic,defaultmathsizes,% +\usepackage[italic,subdued,defaultmathsizes,% symbolmisc,symbolre,LGRgreek]{mathastext} \MTupgreek\MTgreekfont{cmtt} \MTDeclareVersion[n]{lmvtt}{T1}{lmvtt}{m}{n} @@ -121,7 +121,7 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % Latin Modern typewriter proportional: % % {\advance\leftskip.1\linewidth\advance\rightskip.1\linewidth -% \MTversion{lmvtt} +% \MTversion{lmvtt}% % Let $(X,Y)$ be two functions of a variable $a$. If they obey the differential % system $(VI_{\nu,n})$: % \begin{align*} @@ -150,7 +150,8 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % insist on obeying the standardized habits: % % -% {\advance\leftskip.1\linewidth\advance\rightskip.1\linewidth\MTversion{times} +% {\advance\leftskip.1\linewidth\advance\rightskip.1\linewidth +% \MTversion{times}% % Let $(X,Y)$ be two functions of a variable $a$. If they obey the differential % system $(VI_{\nu,n})$: % \begin{align*} @@ -183,7 +184,7 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % % % {\advance\leftskip.1\linewidth\advance\rightskip.1\linewidth -% \MTversion[newcent]{helvet} +% \MTversion[newcent]{helvet}% % Let $(X,Y)$ be two functions of a variable $a$. If they obey the differential % system $(VI_{\nu,n})$: % \begin{align*} @@ -210,7 +211,7 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % } % % And after all that, we may wish to return to the default math typesetting: -% +% % {\advance\leftskip.1\linewidth\advance\rightskip.1\linewidth % Let $(X,Y)$ be two functions of a variable $a$. If they obey the differential % system $(VI_{\nu,n})$: @@ -224,20 +225,23 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % satisfies as function of $b= a^2$ the $P_{VI}$ differential equation with % parameters % $(\alpha,\beta,\gamma,\delta) = (\frac{(\nu+n)^2}2, -% \frac{-(\nu+n+1)^2}2, \frac{n^2}2, \frac{1 - n^2}2)$.\par} -% -% \vskip\baselineskip Notice that the Greek letters also changed -% according to the \emph{math version}: \mst has indeed some -% (limited) capabilities to this effect, with its §LGRgreek§ option. -% This document uses the |LGR| encoded fonts |cmtt| and |cmss|, which -% (transparently to the user) pick up their glyphs in the |cbfonts| -% (|cbgreek-complete|) package +% \frac{-(\nu+n+1)^2}2, \frac{n^2}2, \frac{1 - n^2}2)$.\par +% } +% +% \vskip\baselineskip Notice that the Greek letters also changed +% according to the \emph{math version}: \mst has indeed some (limited) +% capabilities to this effect, with its §LGRgreek§ option. This +% document uses the |LGR| encoded fonts |cmtt|, |cmss|, and |txr|, +% which are part of standard \TeX{} +% distributions.\footnote{The first two are available (with no need to +% load explicitely any package in the document) via the combination +% |cbfonts| (|cbgreek-complete|) \& |babel|, and the |LGR| encoded |txr| font +% (again no package loading is necessary) is part of the files of the +% |txfonstb| package.} +% % ^^A \href{http://mirrors.ctan.org/help/Catalogue/entries/cbgreek-complete.html}{cbfonts}, -% and the |LGR| encoded |txr| font which is provided by % ^^A \href{http://mirrors.ctan.org/help/Catalogue/entries/txfontsb.html}{txfontsb}. -% the |txfontsb| package. Both being included in standard \TeX{} -% distributions. -% +% % \subsection{Basic use} % % The initial ideology of \mst was to produce mathematical texts with @@ -263,8 +267,8 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % did not know the excellent |txfonts| package which employs Times for text % and has a % very complete math support, including many additional mathematical glyphs -% in comparison to the CM fonts.} Here is the precise list of -% characters concerned by \mst, all from the basic |ASCII| set:\\ +% in comparison to the CM fonts.} The exact list of +% characters concerned by \mst belongs to the basic |ASCII| set:\\ % {\color{ChoisiJeNeSaisPlusComment}\bfseries % \centerline{abcdefghijklmnopqrstuvwxyz}\\ % \centerline{ABCDEFGHIJKLMNOPQRSTUVWXYZ}\\ @@ -299,7 +303,7 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % \centerline{\itshape abcdefghijklmnopqrstuvwxyz} % \centerline{$abcdefghijklmnopqrstuvwxyz$} % -% Furthermore (and more importantly perhaps) the math parentheses are not the +% Furthermore the math parentheses are not the % same as the text parentheses, compare {\itshape (ab)} (text italic) with % ^^A\begingroup \mathcode`\(=16424\relax \mathcode`\)=20521 % $(ab)$ (math): the math @@ -312,13 +316,14 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % so well in math). % % -% I briefly alluded to the complex spacings in math mode, and it seems indeed -% to be a complicated affair to construct a math font for \TeX{}. When there -% are thousands of free text fonts and a handful of math ones, if your -% favorite text font does not mix so well with the available math ones, try -% out \mst. The following set-up often gives -% esthetically pleasing results: it is to use the sans-serif member of the -% font family for math, and the serif for text. This can be +% I briefly alluded to the complex spacings in math mode, and it seems +% indeed to be a complicated affair to construct a math font for +% \TeX{}. When there are hundreds of free text fonts packaged for +% \LaTeX{} and a handful of math ones, chances are your favorite text +% font does not mix so well with the available math ones, so try out +% \mst. The following set-up often gives esthetically pleasing +% results: it is to use the sans-serif member of the font family for +% math, and the serif for text. This can be % done the following way: \\[\baselineskip] % \begin{minipage}{.5\linewidth} % \begin{verbatim} @@ -329,27 +334,27 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % \end{verbatim} % \end{minipage}\\ % -% As said already none of the ``large'' math symbols is modified in any way by -% \mst. Only loading some math font packages such as |fourier|, |kpfonts|, -% |mathdesign|, -% |txfonts|, etc\dots{} will change them. Think of loading these packages -% before \mst, else they might undo what \mst did. An option §symbolmisc§ -% picks up many symbols (arrows for example) from the Symbol font. +% As said already none of the ``large'' math symbols is modified in +% any way by \mst. Only loading some math font packages such as +% |fourier|, |kpfonts|, |mathabx|, |mathdesign|, |txfonts|, etc\dots{} +% will change them. Think of loading these packages before \mst, else +% they might undo what \mst did. The more common symbols can be taken +% from the Symbol font (option §symbolmisc§, or §symbolmax§ to get +% also the Greek letters from Symbol). % -% There is also the issue of Greek letters. Sometimes the text font -% has Greek glyphs, in |LGR| encoding (this will be mentioned in -% the documentation of the font package). Then option §LGRgreek§ -% tells \mst to pick up these Greek letters. And it is then -% possible to specify whether the Greek letters should be upright, -% or ``italic''.\footnote{a more detailed discussion comes next. -% Note that the default CM and its replacement Latin Modern for -% european languages are (transparently to the user) extended with -% |LGR| encoded fonts from the |cbfonts| (|cbgreek-complete|) -% ^^A \href{http://mirrors.ctan.org/help/Catalogue/entries/cbgreek-complete.html}{cbfonts} -% package.} And if your text font is not distributed with Greek -% glyphs, and does not mix well with the CM ones then there is -% always the possibility to load, prior to \mst, some math packages -% such as |fourier|, |kpfonts|, |mathdesign|, |txfonts|, \dots{} +% There is the issue of Greek letters. Sometimes the text font has +% Greek glyphs, in |LGR| encoding (this will be mentioned in the +% documentation of the font package). Then option §LGRgreek§ tells +% \mst to pick up these Greek letters. And it is possible to specify +% whether the Greek letters should be upright, or +% ``italic''.\footnote{a more detailed discussion comes next. Note +% that the default CM and its replacement Latin Modern for european +% languages are (transparently to the user) extended with |LGR| +% encoded fonts from the |cbfonts| (|cbgreek-complete|) ^^A +% \href{http://mirrors.ctan.org/help/Catalogue/entries/cbgreek-complete.html}{cbfonts} +% package.} Of course it is always possible to leave the +% responsability to set up Greek letters in math mode to packages +% loaded previously to \mst. % % % We specified in our minimal working example a |T1| encoding (|LY1| would @@ -358,10 +363,10 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % $\mathord{<}\,\mathord{>}\,\mathord{|}$\,\{\,\}} and % {\color{ChoisiJeNeSaisPlusComment}$\backslash$\MakeShortVerb{\|}} glyphs. If % \mst detects |OT1| as the default encoding it will leave these characters to -% their defaults from the math fonts (the §subdued§ option, described next, +% their defaults from the math fonts.\footnote{the §subdued§ option, described next, % acts a bit otherwise, it forces, contrarily to its usual low-key character, % the replacement of |OT1| by |T1| for the fonts ultimately used with letters -% and digits in math mode.) +% and digits in math mode.} % % The present document illustrated the use of various fonts, so its preamble % set-up is accordingly a bit more complicated:\footnote{I have removed the Greek and Symbol font related stuff. See the |.dtx| source for the real thing.} @@ -395,25 +400,56 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % \mst. % % Once these |math versions| are defined, -% \cs{MTversion\{name\_of\_version\}} in the \emph{body} of the document +% §\MTversion\{name\_of\_version\}§ in the \emph{body} of the document % enacts the font switches. As is usual with \LaTeX{} one can limit the % scope to the inside of a group, or also switch back to the main set-up -% through issuing a \cs{MTversion\{normal\}}. -% -% \textbf{Important:} the |normal| and |bold| versions are the only ones for -% which the command \cs{MTversion} sets up (possibly) different fonts used -% in text vs math. With all other versions, and also with normal and bold if the -% §subdued§ option is absent, the \cs{MTversion} command will -% set up the same fonts for text and math (letters, digits, and the few -% other signs listed before). -% -% An optional argument to \cs{MTversion} allows to specify possibly distinct -% fonts for text and math: we used in the source of this document -% \cs{MTversion[newcent]\{helvet\}} in order to get New Century Schoolbook for -% the text and Helvetica for the math. The \LaTeX{} command -% \cs{mathversion\{name\_of\_version\}} will change only the fonts used in math -% mode. -% +% through issuing §\MTversion\{normal\}§. +% +% +% When \cs{Mathastext} is used in the preamble, it records the current font +% defaults and (except for the |normal| and |bold| versions under the §subdued§ +% regime) sets up the math font to be used in that version to be the text font +% as found in \cs{familydefault}. But it is still possible for a \mst-declared +% math version to have distinct fonts for text and math: +% \begin{enumerate} +% \item in the body of the \TeX{} source, an optional argument (the name +% of a \mst-declared math version) to \cs{MTversion} is allowed, and +% for example we used in the source of this document +% \cs{MTversion[newcent]\{helvet\}} meaning ``New Century Schoolbook +% for the text and Helvetica for the math.'' +% \item there are preamble-only commands \cs{MTencoding}, \cs{MTfamily}, +% \cs{MTseries}, \cs{MTshape}, \cs{MTlettershape} which tell \mst what +% to do (for math \emph{only}) in each math version declared +% \emph{afterwards}, independently of the text fonts. +% \end{enumerate} +% +% The \LaTeX{} command +% \cs{mathversion}\marg{version\_name} will change only the fonts +% used in math mode. It is recommended to use the package +% command \cs{MTversion}\marg{version\_name} which does additional +% things for math mode (especially in relation to the |subdued| +% situation), and also sets up the text fonts, in the manner +% described above. +% +% It is sometimes not compatible with \mst to load a font package after +% it, as we did here: the font package may contain instructions to +% modify the math set-up. This may be a bit hidden to the user: for +% example the |epigrafica| package loads |pxfonts|. Hence it will +% interfere with \mst if it is loaded after it.\footnote{may typically +% give a `too many math alphabets' error message.} But one can use +% instead |\renewcommand{\rmdefault}{epigrafica}|,\footnote{sometimes +% one needs to look in the |.sty| file of the font package to figure out +% the font name (it is rarely as |epigrafica|, the same as the +% package name), and, if one does not know the arcanes of finding |.fd| +% files in one's \TeX{} distribution, one should look at the log file of +% a test document to see if for example |T1| is available for that font; +% for |epigrafica| it is not, only |OT1| and |LGR| are possible.} +% followed with \cs{Mathastext}, or also +% |\MTfamily{epigrafica}\Mathastext| which will only change the font in +% math. To use |epigrafica| for Greek, one can do for example +% |\MTgreekfont{epigrafica}\Mathastext| with package option §LGRgreek§. +% Or alternatively |\usepackage{epigrafica}| followed with +% |\usepackage[LGRgreek]{mathastext}|. % % \subsection{The \texorpdfstring{\texttt{\color{blue}defaultmathsizes}}{defaultmathsizes} option} % @@ -452,28 +488,55 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % % \subsection{The \texorpdfstring{\texttt{\color{blue}subdued}}{subdued} option} % -% This option was introduced in |v1.15|. It provides a manner to switch on -% the \mst-\emph{ification} only for limited portions of the document, -% with the mechanism of math versions. Without the §subdued§ option, the -% \emph{mathastextification} applies by default to the whole of the document -% (and one may define additional math versions in the preamble); with the -% §subdued§ option the \emph{mathastextification} has to be activated by an -% explicit use of a \cs{MTversion} (also written \cs{Mathastextversion}) -% command in the document body, and the document preamble must contain at +% This option was introduced in |v1.15|. It provides a manner to +% switch on the \mst-\emph{ification} only for limited portions of +% the document, with the mechanism of math versions. Without the +% §subdued§ option, the \emph{mathastextification} applies by default +% to the whole of the document (and one may also define additional +% math versions in the preamble); with the §subdued§ option the +% \emph{mathastextification} has to be activated by an explicit use +% of a \cs{MTversion} (also written \cs{Mathastextversion}) command +% in the document body, and the document preamble \emph{must} contain at % least one \cs{Mathastext} command (with the version name in square -% brackets) to define a math version, to be later used in the body. -% -% What do I do to really mute this annoying \mst? well, you should -% use additionally to §subdued§ the already mentioned option -% §defaultmathsizes§, and further options which will be explained -% next: §basic§, §defaultalphabets§, §defaultimath§, §nohbar§. The -% Greek related options dicussed next will not be subdued except for -% §LGRgreek§ and §LGRgreeks§. +% brackets) to define a math version (other than the |normal| and +% |bold|, which are subdued), to be later used in the body. +% +% The previous description is in fact a bit optimistic: \mst was not +% written initially in order to allow its action to be completely +% cancelled, and achieving this would require a complete rewrite of +% large portions of the code. In order to have the displayed math +% (almost) as if \mst had not been loaded, one must at a minimum also +% use the option §defaultmathsizes§. This does not quite suffice, +% because, for example, the colon, the dot, and the minus sign belong +% in the default \LaTeX{} math mode set-up to three distinct fonts +% whereas \mst will pick (even subdued) the three of them in the same +% font, and although it will make a reasonable choice of this font, +% this is not a return to the previously prevailing situation. And +% then arbitrary packages could have done arbitrary things... so to +% be on the safe side one needs the §basic§ option which limits the +% mathastextification to letters and digits (and should also be +% accompanied by §defaultimath§ which prevents redefinition of the +% \cs{imath} macro, and §nohbar§ which prevents redefinition of the +% \cs{hbar} macro\dots). And even then, in some circumstances, this +% will still not suffice; for example the \emph{euler} package puts +% the digits in the same font as the Latin letters in math mode, but +% the subdued \mst will pick them up in the same font as used in +% operator names, and in the case of the \emph{euler} package, this +% is the main document font. So, even subdued, \mst still kicks. But, +% as I think is illustrated by the examples given at the start of +% this document, the §subdued§ option has its utility, and works +% reasonably well. +% +% Furthermore, the §subdued§ action does \emph{not} extinguish +% package options §eulergreek§, §symbolgreek§ or §symbol§. But +% §LGRgreek§ is receptive to it. +% % % \subsection{Basic example with math versions} % % % \begin{verbatim} +% \documentclass{article} % \usepackage[T1]{fontenc} % \usepackage{newcent} % \usepackage[subdued]{mathastext} @@ -483,7 +546,14 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % \renewcommand\familydefault\sfdefault % \Mathastext[avantgarde] % \renewcommand\familydefault\rmdefault -% \begin{document} stuff and $stuff$ etc\dots +% \begin{document} text in NewCentury and $math\ as\ in\ default$,% +% \MTversion{courier} text in Courier and $math\ in\ Courier$,% +% \MTversion{avantgarde} text in AvantGarde and $math\ in\ AvantGarde$,% +% \MTversion[newcent]{courier} text in NewCentury and $math\ in\ +% Courier$,\MTversion{bold} texte in bold NewCentury and $math\ as\ in\ +% bold\ default$,\MTversion[courier]{avantgarde} text in Courier and +% $math\ in\ AvantGarde$. +% \end{document} % \end{verbatim} % % The |newcent| package from the |psnfss| standard bundle of \LaTeX{} @@ -506,17 +576,23 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % \cs{renewcommand} on \cs{familydefault} if we want the initial font % to be used in the text to be roman one, here NCS. % -% In the body of a document \cs{MTversion} with a version name -% does three things:\footnote{well, it also sets up the LGR Greek -% letters, in case of option §LGRgreek§, and it turns on depending -% on the math version the user-defined extra glue after $\oldexists$ and -% $\oldforall$.} it changes the font for letters, digits, operator -% names in math mode; it changes the font for text; and it resets -% the |\(family,rm,sf,tt)default|s to their values as registered -% at the time of definition of the version. You may wish to limit -% its scope to the inside of some group.% -% One may also use the \LaTeX{} command \cs{mathversion} in order -% to only change the fonts in math. +% The package provides other techniques to tell \cs{Mathastext} which +% fonts to use in a math version: see the explanations of the +% commands \cs{MTencoding}, \cs{MTfamily}, \cs{MTseries}, +% \cs{MTshape}, \cs{MTlettershape} in the section describing all +% package defined commands. +% +% In the body of a document \cs{MTversion} (with a mandatory version +% name) does three things:\footnote{well, it also sets up the LGR +% Greek letters, in case of option §LGRgreek§, and it turns on +% the (math versions dependent) user-defined extra glue after +% $\oldexists$ and $\oldforall$.} it changes the font for letters, +% digits, operator names in \emph{math}; it changes the font +% for \emph{text}; and it resets the +% |\(family,rm,sf,tt)default|s to their values as registered at the +% time of definition of the version. You may wish to limit its scope +% to the inside of some group, if it is to be used for the short +% portion of the document. % % \subsection{Greek letters} % @@ -544,12 +620,15 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % |cbfonts| package. To get these letters in your \mst math % mode, you can do the following: % \begin{verbatim} -%% instructions to load the document fonts, -%% and then: +% % instructions to load the document fonts: +% \usepackage{nice_font} +% % and then the following: % \renewcommand{\familydefault}{cmr} % or cmss or cmtt for sans resp. mono % \usepackage[LGRgreek]{mathastext} % \renewcommand{\familydefault}{\rmdefault} -% \Mathastext % re-initializes mathastext with the correct fonts. +% \Mathastext % this re-initializes mathastext with the nice_font, +% % without changing the LGR font cmr/cmss/cmtt used for Greek letters +% % in math mode. % \begin{document} % \end{verbatim} % If you use the §italic§ option note that the italic Greek @@ -574,14 +653,15 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % and §selfGreeks§ to tell \mst to do as for §selfGreek§ but % separately in all math versions. % -% The §subdued§ option will preserve the Greek letters to their -% defaults in the normal and bold math versions only in the case of -% the options §LGRgreek§/§LGRgreeks§ (and of course in the case no -% Greek option was used). \textbf{Important}: to maintain Greek -% letters in -% normal and bold math to their initial state it is necessary to -% circumscribe the scope of each call to a |\MTversion{another_version}| -% to the inside of a group. +% The §subdued§ option interacts with the options for Greek letters in the +% following way: +% \begin{enumerate} +% \item in its presence, the §LGRgreek§ and §LGRgreeks§ options cease +% to have any effect in the normal and bold math versions, +% \item §selfGreek(s)§, §eulergreek§ and §symbolgreek§ act normally, +% they are not affected by the presence or absence of §subdued§. +% \end{enumerate} +% % % \subsection{Shape of Greek letters} % @@ -663,13 +743,10 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % The |amsmath| package, if used, \emph{must} be loaded before \mst. % % Some of the functionality of \mst is less fully realized under -% the \LuaLaTeX{} engine than it is with \XeTeX{}. However this -% should be visible only under unusual circumstances and to the -% expert eye, and will probably be fixed in the future, if the -% author learns more about \LuaLaTeX{}.\footnote{I have been told -% by the developpers that -% the needed feature will be implemented in the next release.} -% +% the \LuaLaTeX{} engine than it is with \XeTeX{}. This is temporary +% as I have been told that the needed feature of \LuaLaTeX{} will be +% implemented in its next release. +% % To specify math versions using unicode fonts, use the % |fontspec| \cs{setmainfont} command (with arbitrary optional % features). This command can be issued before loading \mst, @@ -685,88 +762,88 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % option, and \emph{prior} to \mst. % % The package was not extensively tested with unicode engines, but I include -% here two examples which compiled successfully with \XeTeX{}, the first one -% on a Linux machine, the second one on a Mac OS X machine. +% here two examples which compiled successfully with \XeTeX{} and +% \LuaLaTeX{}, the first one on a Linux machine, the second one on a Mac OS X +% machine. % \begin{verbatim} % \documentclass{article} % \usepackage[hscale=0.8]{geometry} % \usepackage{multicol} -% \usepackage{amsmath} -% %\usepackage{mathtools} % \usepackage[no-math]{fontspec} % \usepackage{lmodern} % \usepackage[subdued,italic]{mathastext} -% \setmainfont{Andale Mono} -% \Mathastext[Andale] -% \setmainfont[Color=0000FF]{Arial} -% \Mathastext[Arial] -% \setmainfont{DejaVu Serif} -% \Mathastext[DejaVu] +% \setmainfont[Color=FF0000]{Andale Mono} \Mathastext[Andale] +% \setmainfont[Color=0000FF]{Arial} \Mathastext[Arial] +% \setmainfont[Color=00FF00]{DejaVu Serif} \Mathastext[DejaVu] % \MathastextDeclareVersion{times}{T1}{ptm}{m}{n} % \MTlettershape{n}\MTshape{it} -% \setmainfont{Verdana}\Mathastext[Verdana] +% \setmainfont[Color=999999]{Verdana} \Mathastext[Verdana] % \begin{document} -% \begin{multicols}2 -% \centerline{\textbf{math mode}} -% \columnbreak -% \centerline{ text } -% \end{multicols} -% \MTversion{DejaVu} % or any other, as defined in the preamble -% \begin{multicols}2 -% \centerline{ $abcdefghijklmnopqrstuvwxyz$} -% \centerline{ $ABCDEFGHIJKLMNOPQRSTUVWXYZ$} -% \centerline{ $0123456789$} +% \newcommand\TEST[1]{\MTversion{#1}% +% \begin{multicols}{2} +% \hbox to\columnwidth{\hbox to\columnwidth{\hfil +% $abcdefghijklmnopqrstuvwxyz$\hfil}\kern-2.5em{#1}} +% \centerline{ $ABCDEFGHIJKLMNOPQRSTUVWXYZ$ } +% \centerline{ $0123456789$ } % \centerline{ $!\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,% % \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\backslash$ } % \columnbreak -% \centerline{ abcdefghijklmnopqrstuvwxyz} -% \centerline{ ABCDEFGHIJKLMNOPQRSTUVWXYZ} +% \centerline{ abcdefghijklmnopqrstuvwxyz } +% \centerline{ ABCDEFGHIJKLMNOPQRSTUVWXYZ } % \centerline{ 0123456789} % \centerline{ !\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,% % \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\char92 } +% \end{multicols}} +% \begin{multicols}2 +% \centerline{\textbf{math mode}} +% \columnbreak +% \centerline{ text } % \end{multicols} -% (repeat with the other fonts) +% \TEST{DejaVu}\TEST{Verdana}\TEST{times}\TEST{Andale} +% \TEST{Arial}\TEST{bold}\TEST{normal} % \end{document} % \end{verbatim} -% And now an example with fonts available on Mac OS X: +% And now the same thing with fonts available on Mac OS X: % \begin{verbatim} % \documentclass{article} % \usepackage[hscale=0.8]{geometry} % \usepackage{multicol} -% \usepackage{amsmath} % \usepackage[no-math]{fontspec} +% \usepackage{lmodern} % \usepackage[subdued,italic]{mathastext} -% \setmainfont{Hoefler Text}\Mathastext[Hoefler] -% \setmainfont{Osaka}\Mathastext[Osaka] -% \setmainfont{Herculanum}\Mathastext[Herculanum] -% \setmainfont{Didot}\Mathastext[Didot] -% \setmainfont{Comic Sans MS}\Mathastext[Comic] +% \setmainfont[Color=FF0000]{Hoefler Text} \Mathastext[Hoefler] +% \setmainfont[Color=00FF00]{Osaka} \Mathastext[Osaka] +% \setmainfont[Color=0000FF]{Herculanum} \Mathastext[Herculanum] +% \setmainfont[Color=FF00FF]{Didot} \Mathastext[Didot] +% \setmainfont[Color=999999]{Comic Sans MS} \Mathastext[Comic] % \begin{document} -% \begin{multicols}2 -% \centerline{\textbf{math mode}} -% \columnbreak -% \centerline{ text } -% \end{multicols} -% \MTversion{Hoefler} -% \begin{multicols}2 -% \centerline{ $abcdefghijklmnopqrstuvwxyz$} -% \centerline{ $ABCDEFGHIJKLMNOPQRSTUVWXYZ$} -% \centerline{ $0123456789$} +% \newcommand\TEST[1]{\MTversion{#1}% +% \begin{multicols}{2} +% \hbox to\columnwidth{\hbox to\columnwidth{\hfil +% $abcdefghijklmnopqrstuvwxyz$\hfil}\kern-2.5em{#1}} +% \centerline{ $ABCDEFGHIJKLMNOPQRSTUVWXYZ$ } +% \centerline{ $0123456789$ } % \centerline{ $!\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,% % \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\backslash$ } % \columnbreak -% \centerline{ abcdefghijklmnopqrstuvwxyz} -% \centerline{ ABCDEFGHIJKLMNOPQRSTUVWXYZ} -% \centerline{ 0123456789} +% \centerline{ abcdefghijklmnopqrstuvwxyz } +% \centerline{ ABCDEFGHIJKLMNOPQRSTUVWXYZ } +% \centerline{ 0123456789 } % \centerline{ !\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,% % \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\char92 } +% \end{multicols}} +% \begin{multicols}2 +% \centerline{\textbf{math mode}} +% \columnbreak +% \centerline{ text } % \end{multicols} -% (repeat with the other fonts) +% \TEST{Didot}\TEST{Comic}\TEST{normal}\TEST{Herculanum} +% \TEST{Hoefler}\TEST{Osaka}\TEST{bold} % \end{document} % \end{verbatim} % % -% \section{The package options and commands} +% \section{Package options and commands} % % \subsection{Summary of main options} % \begin{description} @@ -903,10 +980,9 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % the bold version of the \cs{mathnormal} alphabet % (rather than using either the \cs{bm} command from % the |bm| package or the \cs{boldsymbol} command -% from the |amsbsy| package). Notice that as it does not +% from the |amsbsy| package). As it does not % exist in the default \LaTeX{} math font set-up, this -% alphabet is \emph{not} {subdued} in the normal and bold math -% versions, when option §subdued§ was used. +% alphabet is \emph{not} subjected to the {subdued option} action. % \item The other math alphabet changing commands % defined by the package are \cs{MathEulerBold}, % \cs{MathEuler} and \cs{MathPSymbol}. @@ -918,9 +994,10 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % Note though that it is not possible % to use too many of such commands in the same % document, due to some limitations of -% \LaTeX{}. Declaring them does not seem to be a -% problem, and I will welcome any information by -% knowledgeable people. +% \LaTeX{}. +% ^^A Declaring them does not seem to be a +% ^^A problem, and I will welcome any information by +% ^^A knowledgeable people. % % \item[math accents:] an option §mathaccents§ is % provided to pick up the accents in math mode from the @@ -1026,28 +1103,32 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % \item §\MTgreekfont§\marg{fontfamily}: optional command with a mandatory % argument which specifies the font for Greek letters in all \mst math % versions declared afterwards via \cs{Mathastext} or \cs{MTDeclareVersion}. Only effective with §LGRgreek§ option. -% \item §\MTexistsskip§\marg{math glue}: specifies the amount of skip -% or more generally glue to put after each $\oldexists$ math -% symbol. Indeed, upright letters (or digits for that matter) often -% appear to be positioned a bit too close to the quantifier: -% $\oldexists\mathrm{B}$. The package default is to add a |1mu| -% skip: $\oldexists\mskip 1mu\mathrm{B}$. You can change this -% default with, for example, |\MTexistsskip{2mu plus 1mu minus 1mu}|. -% This must be followed with a \cs{Mathastext} command (or +% \item §\MTexistsskip§\marg{math glue}: specifies the amount of skip or +% more generally glue to put after each $\oldexists$ math symbol. +% Indeed, upright letters (or digits for that matter) often appear to +% be positioned a bit too close to the quantifier: +% $\oldexists\mathrm{B}$. The package default is to add a |1mu| skip +% (this default is set to zero in the case of §italic§): +% $\oldexists\mskip 1mu\mathrm{B}$. One can change the default with +% the following syntax: |\MTexistsskip{2mu plus 1mu minus 1mu}|, which +% must be followed with a \cs{Mathastext} command (or % \cs{MTDeclareVersion}), with or without version name, and will -% remain effective in all subsequently declared math versions. In -% the case of the options §subdued§ and §italic§, the skip is set -% to zero in the normal and bold math versions, whether or not the -% command has been used. +% remain effective in all subsequently declared math versions. In the +% case of the option §subdued§, the skips are set to zero for the +% normal and bold math versions and the command has no effect for +% them. In the case of the option §italic§, the command has to be +% used, as the default skip is zero. % % \item §\MTforallskip§\marg{math glue}: the default is to add a -% |.6667mu| math skip after each $\oldforall$. Compare +% |.6667mu| math skip after each $\oldforall$ (except with the option +% §italic§ for which the default is set to zero). Compare % $\oldforall\mskip.6667mu\mathrm{F}$ (has the skip) with % $\oldforall\mathrm{F}$ (has no skip). Use this command to set up % the skip or glue to be used in the \emph{next to be declared} math -% versions. In the case of option §subdued§ or §italic§, the -% command is made ineffective for the normal and bold math -% versions. +% versions. In the case of the option §subdued§, the +% command has no effect for the normal and bold math +% versions. In the case of the option §italic§, the command must be +% used because the default skip is zero. % \end{itemize} % % \subsubsection{Commands to be used in the body} @@ -1081,12 +1162,19 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % size in subscripts and exponents. % \item §\Mathnormal§, §\Mathrm§, §\Mathbf§, §\Mathit§, §\Mathsf§, % §\Mathtt§: modifications of the original \cs{mathnormal}, -% \cs{mathrm}, \cs{mathbf}, \cs{mathit}, \cs{mathsf}, \cs{mathtt}. -% By default, the originals are overwritten with the new commands. -% Note that starting with version |1.15e|, with the §subdued§ -% option all these math alphabets act in the normal and bold math -% versions as would have been the case without loading \mst. -% \item §\mathnormalbold§: a bold version of \cs{mathnormal}. +% \cs{mathrm}, \cs{mathbf}, \cs{mathit}, \cs{mathsf}, \cs{mathtt} to +% use the mathastextified font. By +% default, the originals are identified with the new commands. The +% underlying internal \LaTeX{} structures related to the original +% commands are not overwritten, and these commands can thus be stored +% with a \cs{let} before |\usepackage{mathastext}|, to be used in case of +% necessity (this is what option |subdued| does.) +% \item §\mathnormalbold§: a bold version of \cs{mathnormal}. Differs +% from §\mathbf§ when the §italic§ option has been used, or when use +% has been made of §\MTlettershape§ to specify a shape for letters +% distinct from the one for digits and operator names, or similarly +% when the math version has been declared via §\MTDeclareVersion§ with +% its optional parameter for shape of letters. % \item §\inodot§, §\jnodot§: the corresponding glyphs in % the chosen font for math mode. By default, will % overwrite |\imath| and |\jmath|. With version |1.12| @@ -1228,12 +1316,20 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % accents. As in vanilla \LaTeX{}, they are taken from the font % for the digits and \cs{log}-like names. Obey the alphabet % changing commands. Will work only for |T1|, |LY1|, or |OT1|-compatible encodings. -% \item §defaultrm§, §defaultbf§, §defaulnormal§, §defaultit§, §defaultsf§, §defaulttt§: do not -% overwrite, respectively: \cs{mathrm}, \cs{mathbf}, -% \cs{mathnormal}, \cs{mathit}, \cs{mathsf}, and -% \cs{mathtt}. -% \item §defaultalphabets§: do not change any of the math alphabets from the -% previous item. +% \item §defaultbf§, §defaultit§, §defaultsf§, §defaulttt§: do not +% modify, respectively, the \cs{mathbf}, \cs{mathit}, \cs{mathsf}, +% and \cs{mathtt} commands to use the mathastextified +% font. This also prevents \mst to create internally +% \cs{Mathxx} alphabets (it never overwrites the original +% \cs{mathxx} things but let \cs{mathxx} point to \cs{Mathxx} +% instead), so one can use these options if one encounters a `too +% many math alphabets' \LaTeX{} error. +% \item §defaulnormal§, §defaultrm§: do not identify the default +% \cs{mathnormal} (resp. \cs{mathrm}) with the newly created +% \cs{Mathnormal} (resp. \cs{Mathrm}) commands which use the +% mathastextified fonts in each math version. +% \item §defaultalphabets§: all the §defaultxx§ options together, and +% additionally tells \mst not to create the \cs{mathnormalbold} alphabet either. % \item §defaultimath§: do not overwrite \cs{imath} and % \cs{jmath}, do not extend \cs{i} and \cs{j} to math mode use. % \item §defaultmathsizes§: do not change the \LaTeX{} defaults for the sizes @@ -1255,12 +1351,18 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % \catcode`\§=12 % \StopEventually{} % +% \clearpage % \section{Implementation} % +% At my initial point I had at my disposal only the commands of a normal +% user, and little by little I started using more macros of the \LaTeX{} +% internals. So now the code has bits and pieces of various styles, +% although for |1.15f| I have tried to cut down the number of too +% amateurish looking branches. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{mathastext} - [2012/10/22 v1.15e Use the text font in math mode (jfB)] + [2012/10/25 v1.15g Use the text font in math mode (jfB)] % \end{macrocode} % Testing for XeTeX and LuaLaTeX. I should load some package for this % code picked up somewhere. @@ -1279,19 +1381,12 @@ symbolmisc,symbolre,LGRgreek]{mathastext} \else \LuaTeXtrue \fi -% \end{macrocode} -% We turn off (only inside the \cs{MTDeclareVersion} macro) the -% official loggings. -% \begin{macrocode} -\def\mt@font@info@off{ -\let\m@stext@info\@font@info -\let\m@stext@warning\@font@warning -\let\@font@info\@gobble -\let\@font@warning\@gobble} -\def\mt@font@info@on{ -\let\@font@info\m@stext@info -\let\@font@warning\m@stext@warning} -%\mt@font@info@off +%% +\def\mt@oti{OT1}\def\mt@ti{T1}\def\mt@lyi{LY1} +\def\mt@eui{EU1}\def\mt@euii{EU2} +\newif\ifmt@goahead +\newif\ifmt@abort +\newif\ifmt@optionalparam % \end{macrocode} % \begin{macro}{\m@t@enc} % \begin{macro}{\m@t@fam} @@ -1299,8 +1394,8 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % \begin{macro}{\m@t@opsh} % \begin{macro}{\m@t@bold} % \begin{macro}{\m@t@ltsh} -% We store the font settings, each math version will have its -% actualized own records. +% Macros to Store the font settings, each math version will have its +% own records. % \begin{macrocode} \def\m@t@enc{\encodingdefault} \def\m@t@fam{\familydefault} @@ -1316,10 +1411,10 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % \end{macro} % \end{macro} % \begin{macro}{\m@t@greekfont} -% v1.15c adds \cs{m@t@greekfont} for use by the LGRgreek and -% selfGreek options. Defined as an \cs{edef} in order to be able -% to set-up once and for all the Greek at the time of -% \cs{usepackage}. +% v1.15c: for use by the LGRgreek and selfGreek options. Defined as +% an \cs{edef} in order to be able to set-up once and for all the +% Greek at the time of \cs{usepackage}. Modifiable in the preamble +% via \cs{MTgreekfont}\marg{font\_name}\cs{Mathastext}. % \begin{macrocode} \edef\m@t@greekfont{\familydefault} %% v 1.15c % \end{macrocode} @@ -1331,12 +1426,12 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % letters in math mode. User control (via \cs{MTexistsskip} and % \cs{MTforallskip} in the preamble, which must be followed by a % \cs{Mathastext} call, with or without version name) is defined -% later in the code. Redefinitions of \cs{exists} and \cs{forall} -% are also done at the end of the code, to allow taking into -% account a possible |symbol| option. The actual skips used are -% set up by \cs{MTversion} in the body of the document, or by -% \cs{Mathastext} in the preamble. The subdued and italic options -% cancel this mechanism for the normal and bold versions. +% later in the code. Redefinitions of \cs{exists} and \cs{forall} are +% also done at the end of the code (allows taking account of a +% possible |symbol| option.) The actual skips used are set up by +% \cs{MTversion} in the body of the document, or by \cs{Mathastext} +% in the preamble. The subdued and italic options cancel this +% mechanism for the normal and bold versions. % \begin{macrocode} \newmuskip\m@t@existsmuskip %% v 1.15e \newmuskip\m@t@forallmuskip @@ -1345,18 +1440,10 @@ symbolmisc,symbolre,LGRgreek]{mathastext} % \end{macrocode} % \end{macro} % \end{macro} -% \begin{macrocode} -\newif\ifmt@proceed -\newif\ifmt@failed -% \end{macrocode} -% March 9, 2011: v1.13 introduces the option LGRgreek; and I -% make systematic use of \cs{if...} conditionals, for better -% readability of the code. -% \begin{macrocode} -\def\mt@oti{OT1}\def\mt@ti{T1}\def\mt@eui{EU1}\def\mt@euii{EU2}\def\mt@lyi{LY1} -% \end{macrocode} % \begin{macro}{Package options} -% Almost each option has an associated \cs{if...} conditional +% 2011/03/09: v1.13 introduces the option LGRgreek and systematic use +% of \cs{if...} conditionals, for better readability (by myself) of +% the code. % \begin{macrocode} \newif\ifmt@italic \DeclareOption{italic}{\mt@italictrue @@ -1445,6 +1532,14 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareOption{itGreek}{\def\mt@greek@select{1}} \DeclareOption{upGreek}{\def\mt@greek@select{2}} %% +% \end{macrocode} +% Starting with |1.15f| the meaning of the `defaultxx' options has +% changed. They now prevent |mathastext| from defining additional +% alphabets rather than prevent it from identifying the `mathxx' with +% the new `Mathxx'. The `Mathnormal' and `Mathrm' alphabet commands are +% always created as they are SymbolFontAlphabets, so costless for \LaTeX{} +% mecanisms (once the associated symbol fonts are declared). +% \begin{macrocode} \newif\ifmt@defaultnormal \DeclareOption{defaultnormal}{\mt@defaultnormaltrue} \newif\ifmt@defaultrm @@ -1457,8 +1552,9 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareOption{defaultsf}{\mt@defaultsftrue} \newif\ifmt@defaulttt \DeclareOption{defaulttt}{\mt@defaulttttrue} +\newif\ifmt@nonormalbold \DeclareOption{defaultalphabets}{\ExecuteOptions{defaultnormal,defaultrm,% -defaultbf,defaultit,defaultsf,defaulttt}} +defaultbf,defaultit,defaultsf,defaulttt}\mt@nonormalboldtrue} % \end{macrocode} % |mathastext| considers the default script and especially scriptscript sizes to % be far too small, and it will modify them. An option maintains the default. @@ -1494,124 +1590,114 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \end{macrocode} % \end{macro} % \begin{macro}{subdued} -% v1.15: The subdued code was initiated during May 2011. I returned to -% |mathastext| on Sep 24, 2012, and finished this piece of code -% giving thus version 1.15. The point is to extract the data about -% how are letters and operators in the normal and bold versions. -% Due to the reassignements done for characters I also had decided -% in 2011 that the OT1 encoding should be replaced by T1. -% -% This is only the first half of the subdued code, there is a -% second half near the end of the package. +% v1.15: The subdued code was initiated in May 2011. I returned to +% |mathastext| on the fateful day Sep 24, 2012, and decided to +% complete what I had started then, in the mean time I had forgotten +% almost all I knew about \LaTeX{} macro programming. +% +% This is only the first half of the subdued code, the second half to +% activate it is near the end of the package. +% +% The point was to extract the data about how are `letters' and +% `operators' in the normal and bold versions, through obtaining the +% math families of `a' and `1', respectively$^1$. Due to the +% reassignements done for characters by |mathastext| I also had +% decided in 2011 that the OT1 encoding, if detected, should be +% replaced by T1 ($(1)$: but the \emph{euler} package for example +% assigns the digits to the \emph{letters} symbol font...) % % v1.15d: Oct 13, 2012. The \cs{mathcode} thing has to be used with % care under Unicode engines. Unfortunately the \cs{luatexUmathcode} -% macro is completley helpless as it is not possible to know if it -% will return a legacy mathcode or a Unicode mathcode. On the other -% hand the much saner \cs{XeTeXmathcodenum} always return a Unicode -% mathcode. All these complications are because we do not know what -% other packages did before with letters and digits. I just can not -% assume that they only modified math fonts number 0 and 1, they could -% do as mathastext does, define new math fonts. Of course it is +% macro is helpless [update: I have since been told by TH that the +% next LuaLaTeX release will change this] as it is not possible to +% know if it will return a legacy mathcode or a Unicode mathcode. On +% the other hand the much saner \cs{XeTeXmathcodenum} always return a +% Unicode mathcode. All these complications are because we do not know +% what other packages did before with letters and digits. I just can +% not assume that they only modified math fonts number 0 and 1, they +% could do as mathastext does, define new math fonts. Of course it is % assumed here that all digits are assigned to one and the same font, % and same for letters. % % v1.15e: Oct 22, 2012. Based on a better understanding of the % LaTeX2e internals, I have tremendously simplified the code and -% can now avoid entirely the LuaLaTeX problems. Moreover, I add the +% can now avoid entirely the LuaLaTeX problems [but see below, I +% completely forgot what I was saying in the previous paragraph about +% families 0 and 1...]. Moreover, I add the % necessary things to also subdue the \cs{mathbf}, \cs{mathit}, % \cs{mathsf} and \cs{mathtt} macros (previous version only took -% care of the symbol alphabets \cs{mathnormal} and \cs{mathrm}.) +% care of the symbol alphabets \cs{mathnormal} and \cs{mathrm}.) [update: +% v1.15f does that in a completely different and much simpler way] % Notice that the package defines a \cs{mathnormalbold} macro, but % it will not be subdued in the normal and bold math versions. +% +% v1.15f: Oct 23, 2012. What did I have for lunch yesterday? first, my +% code is indeed simpler, but it does not accomplish quite the same +% thing. The previous code queried the math family of a, respectively +% 1, to guess and then extract the fonts to be reassigned to +% mtletterfont and mtoperatorfont (which is done at the end of this +% .sty file). The present code simply directly uses letters and +% operators (so mathastext could not subdue itself... if it was +% somehow cloned), but obtains indeed the corresponding font +% specifications in normal and bold in a cleaner manner. But it is so +% much shorter (and avoids the \LuaLaTeX{} problem with +% \cs{luatexUmathcode}). Anyhow, for example the euler package puts +% the digits in the letters math family! so the previous method was +% also error prone. In fact there is no way to do this subdued +% mechanism on the basis of the legacy code of mathastext. The only +% way is to rewrite entirely the package to query all mathcodes of +% things it changes in order to be able to revert these changes (and +% one would have to do even more hacking for |\mathversion{normal}| +% and not only |\MTversion{normal}| to work). +% +% v1.15f: and also I take this opportunity to do the subdued math +% alphabets things in a much much easier way, see below. % \begin{macrocode} \ifmt@subdued -\def\mt@reserveda#1\getanddefine@fonts\symletters#2#3\@nil{% +\def\mt@reserved#1\getanddefine@fonts\symletters#2#3\@nil{% \def\mt@normalmv@letter{#2}} -\expandafter\mt@reserveda\mv@normal\@nil -\def\mt@reserveda#1\getanddefine@fonts\symletters#2#3\@nil{% +\expandafter\mt@reserved\mv@normal\@nil +\def\mt@reserved#1\getanddefine@fonts\symletters#2#3\@nil{% \def\mt@boldmv@letter{#2}} -\expandafter\mt@reserveda\mv@bold\@nil -\def\mt@reserveda#1\getanddefine@fonts\symoperators#2#3\@nil{% +\expandafter\mt@reserved\mv@bold\@nil +\def\mt@reserved#1\getanddefine@fonts\symoperators#2#3\@nil{% \def\mt@normalmv@operator{#2}} -\expandafter\mt@reserveda\mv@normal\@nil -\def\mt@reserveda#1\getanddefine@fonts\symoperators#2#3\@nil{% +\expandafter\mt@reserved\mv@normal\@nil +\def\mt@reserved#1\getanddefine@fonts\symoperators#2#3\@nil{% \def\mt@boldmv@operator{#2}} -\expandafter\mt@reserveda\mv@bold\@nil -%% -\edef\mt@funnyoti{\expandafter\expandafter\expandafter\@gobble\expandafter\string\csname OT1\endcsname} -\def\mt@@debut#1/#2/#3/#4/{#1} -\def\mt@@reste#1/#2/#3/#4/{#2/#3/#4} -%% -\edef\mt@tmp{\expandafter\expandafter\expandafter\@gobble\expandafter\string\mt@normalmv@operator} -\edef\mt@debut{\expandafter\mt@@debut\mt@tmp/} -\edef\mt@reste{\expandafter\mt@@reste\mt@tmp/} +\expandafter\mt@reserved\mv@bold\@nil %% \edef\mt@tmp{\encodingdefault} -\ifx\mt@debut\mt@funnyoti -\ifx\mt@tmp\mt@oti -\edef\mt@normalmv@operator{\expandafter\noexpand\csname T1/\mt@reste\endcsname} -\else +\def\mt@reserved#1/#2/#3/#4/{\gdef\mt@debut{#1}\gdef\mt@reste{#2/#3/#4}} +\begingroup\escapechar\m@ne +\xdef\mt@funnyoti{\expandafter\string\csname OT1\endcsname} +\expandafter\expandafter\expandafter +\mt@reserved\expandafter\string\mt@normalmv@operator/ +\endgroup +\ifx\mt@debut\mt@funnyoti\ifx\mt@tmp\mt@oti\def\mt@tmp{T1}\fi\fi \edef\mt@normalmv@operator{\expandafter\noexpand\csname \mt@tmp/\mt@reste\endcsname} -\fi\fi -%% -\edef\mt@tmp{\expandafter\expandafter\expandafter\@gobble\expandafter\string\mt@boldmv@operator} -\edef\mt@debut{\expandafter\mt@@debut\mt@tmp/} -\edef\mt@reste{\expandafter\mt@@reste\mt@tmp/} -%% -\edef\mt@tmp{\encodingdefault} -\ifx\mt@debut\mt@funnyoti -\ifx\mt@tmp\mt@oti -\edef\mt@boldmv@operator{\expandafter\noexpand\csname T1/\mt@reste\endcsname} -\else +\begingroup\escapechar\m@ne +\expandafter\expandafter\expandafter +\mt@reserved\expandafter\string\mt@boldmv@operator/ +\endgroup +\ifx\mt@debut\mt@funnyoti\ifx\mt@tmp\mt@oti\def\mt@tmp{T1}\fi\fi \edef\mt@boldmv@operator{\expandafter\noexpand\csname \mt@tmp/\mt@reste\endcsname} -\fi\fi -% \end{macrocode} -% The following will take care of the math alphabets. The second half -% of the code is near the end of the package. -% \begin{macrocode} -\def\mt@reservedc#1#2#3#4{\def\mt@normalmv@mathbf{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@normal\@nil} -\expandafter\mt@reserveda\csname mathbf\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@normalmv@mathit{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@normal\@nil} -\expandafter\mt@reserveda\csname mathit\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@normalmv@mathsf{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@normal\@nil} -\expandafter\mt@reserveda\csname mathsf\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@normalmv@mathtt{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@bold\@nil} -\expandafter\mt@reserveda\csname mathtt\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@boldmv@mathbf{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@bold\@nil} -\expandafter\mt@reserveda\csname mathbf\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@boldmv@mathit{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@bold\@nil} -\expandafter\mt@reserveda\csname mathit\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@boldmv@mathsf{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@bold\@nil} -\expandafter\mt@reserveda\csname mathsf\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@boldmv@mathtt{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@bold\@nil} -\expandafter\mt@reserveda\csname mathtt\space\endcsname \fi % fin de ce \ifmt@subdued % \end{macrocode} +% In the short-lived 1.15e I was doing the following for alphabets:\\ +% |\def\mt@reservedc#1#2#3#4{\def\mt@normalmv@mathbf{#4#3}}|\\ +% |\def\mt@reserveda#1{%|\\ +% |\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}%|\\ +% |\expandafter\mt@reservedb\mv@normal\@nil}|\\ +% |\expandafter\mt@reserveda\csname mathbf\space\endcsname|\\ +% and later in the code:\\ +% |\expandafter\expandafter\expandafter\SetMathAlphabet@|\\ +% |\expandafter\expandafter\expandafter\mv@normal|\\ +% |\expandafter\mt@normalmv@mathbf\csname Mathbf\space \endcsname\Mathbf|\\ +% It does work! but |\let\mt@original@bf\mathbf| is so +% much simpler. And also safer, because \cs{mathbf} could have been +% redefined using \cs{DeclareSymbolFontAlphabet}... (I could have +% provided the necessary check to the already bloated code...) % \end{macro} % \begin{macro}{mtoperatorfont} % Declaration of the current default font as our math @@ -1626,6 +1712,20 @@ defaultbf,defaultit,defaultsf,defaulttt}} {\m@t@enc}{\m@t@fam}{\m@t@ser}{\m@t@opsh} % \end{macrocode} % \end{macro} +% \begin{macro}{\operator@font} +% We modify this \LaTeX{} internal variable in order for the +% predefined \cs{cos}, \cs{sin}, etc\dots to be typeset with the +% |mathastext| font. This will also work for things declared +% through the |amsmath| package command +% \cs{DeclareMathOperator}. The alternative would have been to +% redefine the `operators' Math Symbol Font. Obviously people +% who expect that \cs{operator@font} will always refer to the +% `operators' math font might be in for a surprise\dots{} well, +% we'll see. +% \begin{macrocode} +\def\operator@font{\mathgroup\symmtoperatorfont} +% \end{macrocode} +% \end{macro} % \begin{macro}{mtletterfont} % In version 1.1, we add the possibility to mimick the standard % behavior, that is to have italic letters and upright @@ -1636,25 +1736,81 @@ defaultbf,defaultit,defaultsf,defaulttt}} {\m@t@enc}{\m@t@fam}{\m@t@ser}{\m@t@ltsh} % \end{macrocode} % \end{macro} -% \begin{macro}{Math alphabets} -% We follow the standard \LaTeX{} behavior for \cs{mathbf}, which is to pick up -% the bold series of the roman font (digits and operator names). -% \begin{macrocode} +% \begin{macro}{\Mathnormal} +% \begin{macro}{\Mathrm} +% \begin{macro}{\Mathbf} +% \begin{macro}{\Mathit} +% \begin{macro}{\Mathsf} +% \begin{macro}{\Mathtt} +% \begin{macro}{\mathnormalbold} +% We redefine the default normal, rm, bf, it, sf, and tt alphabets, +% but this will be done via |\renewcommand{\mathrm}{\Mathrm}| etc\dots +% and (|1.15f|) the previous status of the math alphabets is recorded for the +% sake of the |subdued| option. +% +% We follow the standard \LaTeX{} behavior for \cs{mathbf}, which is +% to pick up the bold series of the roman font (digits and operator +% names). +% +% We will access (if no option is passed for Greek) the \cs{omicron} +% via \cs{mathnormal}. But unfortunately the |fourier| package with the +% upright option does not have an upright omicron obtainable by simply +% typing \cs{mathnormal}|{o}|. So if |fourier| is loaded we use +% \cs{mathrm} and not \cs{mathnormal}. +% +% |1.15f| (2012/10/24): I should have tested here for the `defaultxx' +% options and then avoid declaring the corresponding `Mathxx' +% alphabet. In this way, the `defaultxx' option can be tried by the +% user if the presence of other packages results in some `too many +% math alphabets' error. On the other hand the previous method allowed +% to have both \cs{Mathbf} and \cs{mathbf} at one's disposal. But I never +% used it, and the |subdued| option will probably serve in cases one +% would have found some utility in this possibility. +% \begin{macrocode} +\let\mt@alph@omicron\mathnormal +\@ifpackageloaded{fourier}{\ifsloped\else\let\mt@alph@omicron\mathrm\fi}{} \DeclareSymbolFontAlphabet{\Mathnormal}{mtletterfont} \DeclareSymbolFontAlphabet{\Mathrm}{mtoperatorfont} +\ifmt@nonormalbold\else + \DeclareMathAlphabet{\mathnormalbold}{\m@t@enc}{\m@t@fam}{\m@t@bold}{\m@t@ltsh} +\fi\ifmt@defaultbf\else \DeclareMathAlphabet{\Mathbf}{\m@t@enc}{\m@t@fam}{\m@t@bold}{\m@t@opsh} +\fi\ifmt@defaultit\else \DeclareMathAlphabet{\Mathit}{\m@t@enc}{\m@t@fam}{\m@t@ser}{\itdefault} +\fi\ifmt@defaultsf\else \DeclareMathAlphabet{\Mathsf}{\m@t@enc}{\sfdefault}{\m@t@ser}{\m@t@opsh} +\fi\ifmt@defaulttt\else \DeclareMathAlphabet{\Mathtt}{\m@t@enc}{\ttdefault}{\m@t@ser}{\m@t@opsh} -% \end{macrocode} -% \begin{macro}{\mathnormalbold} -% We add a new alphabet changing macro to standard \LaTeX{} -% \begin{macrocode} - \DeclareMathAlphabet{\mathnormalbold} - {\m@t@enc}{\m@t@fam}{\m@t@bold}{\m@t@ltsh} +\fi +\let\mt@original@normal\mathnormal +\let\mt@original@rm\mathrm +\let\mt@original@bf\mathbf +\let\mt@original@it\mathit +\let\mt@original@sf\mathsf +\let\mt@original@tt\mathtt +\def\mt@restorealphabets{% for subdued +\let\mathnormal\mt@original@normal +\let\mathrm\mt@original@rm +\let\mathbf\mt@original@bf +\let\mathit\mt@original@it +\let\mathsf\mt@original@sf +\let\mathtt\mt@original@tt} +\def\mt@setalphabets{% +\ifmt@defaultnormal\else\renewcommand{\mathnormal}{\Mathnormal}\fi +\ifmt@defaultrm\else\renewcommand{\mathrm}{\Mathrm}\fi +\ifmt@defaultbf\else\renewcommand{\mathbf}{\Mathbf}\fi +\ifmt@defaultit\else\renewcommand{\mathit}{\Mathit}\fi +\ifmt@defaultsf\else\renewcommand{\mathsf}{\Mathsf}\fi +\ifmt@defaulttt\else\renewcommand{\mathtt}{\Mathtt}\fi} +\ifmt@subdued\else\mt@setalphabets\fi % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % \begin{macro}{LGRgreek} % \begin{macro}{selfGreek} % \begin{macro}{mtlgrfontupper} @@ -1825,13 +1981,18 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \begin{macro}{\MTshape} % \begin{macro}{\MTboldvariant} % \begin{macro}{\MTlettershape} -% Some public macros to modifyour private internals, and +% Some public macros to modify our private internals, and % we will use them also ourself. % % In version 1.1 we add the possibility to have two % distinct font shapes for letters and digits. So in fact % we could as well have two really unrelated fonts but % this is really not the spirit of the package. +% +% Note that using these macros in the preamble allows \cs{Mathastext} +% to set up math versions with a given font for math mode, and at the +% same time not modifying the \cs{familydefault} or \cs{romandefault} +% etc\dots % \begin{macrocode} \newcommand*\MTencoding[1]{\def\m@t@enc{#1}} \newcommand*\MTfamily[1]{\def\m@t@fam{#1}} @@ -1840,6 +2001,12 @@ defaultbf,defaultit,defaultsf,defaulttt}} \ifmt@italic\else\def\m@t@ltsh{#1}\fi} \newcommand*\MTboldvariant[1]{\def\m@t@bold{#1}} \newcommand*\MTlettershape[1]{\def\m@t@ltsh{#1}} +\@onlypreamble\MTencoding +\@onlypreamble\MTfamily +\@onlypreamble\MTseries +\@onlypreamble\MTshape +\@onlypreamble\MTboldvariant +\@onlypreamble\MTlettershape \let\Mathastextencoding\MTencoding \let\Mathastextfamily\MTfamily \let\Mathastextseries\MTseries @@ -1870,11 +2037,16 @@ defaultbf,defaultit,defaultsf,defaulttt}} \mt@upgreektrue\mt@itgreekfalse\def\mt@greek@select{0}} \newcommand\MTitGreek{\def\mt@greek@select{1}} \newcommand\MTupGreek{\def\mt@greek@select{2}} +\@onlypreamble\MTitgreek +\@onlypreamble\MTupgreek +\@onlypreamble\MTitGreek +\@onlypreamble\MTitGreek \let\Mathastextitgreek\MTitgreek \let\Mathastextupgreek\MTupgreek \let\MathastextitGreek\MTitGreek \let\MathastextupGreek\MTupGreek \newcommand*\MTgreekfont[1]{\def\m@t@greekfont{#1}} +\@onlypreamble\MTgreekfont \let\Mathastextgreekfont\MTgreekfont % \end{macrocode} % \end{macro} @@ -1893,6 +2065,8 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \begin{macrocode} \newcommand*\MTexistsskip[1]{\def\m@t@existsskip{#1}} \newcommand*\MTforallskip[1]{\def\m@t@forallskip{#1}} +\@onlypreamble\MTexistsskip +\@onlypreamble\MTforallskip \let\Mathastextexistsskip\MTexistsskip \let\Mathastextforallskip\MTforallskip % \end{macrocode} @@ -1901,8 +2075,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \begin{macro}{\MTWillUse} % This is a preamble-only command, which can be used more than once, only the % latest one counts. Sets up the math fonts in the normal and bold -% versions, as does \cs{Mathastext}, but specifying directly here the -% mathastext font. +% versions, as does \cs{Mathastext}. % \begin{macrocode} \newcommand*\MTWillUse[5][\@empty]{ \MTencoding{#2} @@ -1913,10 +2086,11 @@ defaultbf,defaultit,defaultsf,defaulttt}} \ifx\@empty#1 \else %% we check if optional argument was [], this does not detect [ ] - \def\mt@empty{}\def\mt@tmp{#1} - \ifx\mt@empty\mt@tmp \else \MTlettershape{#1}\fi + \def\mt@tmp{#1} + \ifx\@empty\mt@tmp\else\MTlettershape{#1}\fi \fi \Mathastext} +\@onlypreamble\MTWillUse \let\MathastextWillUse\MTWillUse \let\Mathastextwilluse\MTWillUse % \end{macrocode} @@ -1935,10 +2109,9 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \cs{Mathastext} act as the Declaration of a math % version, to be later used in the document. % -% Version 1.15 leads to some adaptations related to the subdued option. +% Versions 1.15x brought some adaptations related to the subdued option. % \begin{macrocode} \newcommand*\Mathastext[1][\@empty]{ -% \mt@font@info@off \ifx\@empty#1 % no optional argument \mt@update@greeksh \edef\mt@encoding@normal{\m@t@enc} @@ -1984,7 +2157,18 @@ defaultbf,defaultit,defaultsf,defaulttt}} \expandafter\m@t@existsmuskip\m@t@existsskip \expandafter\m@t@forallmuskip\m@t@forallskip \fi\fi -%% +%% v1.15f +\ifmt@nonormalbold\else + \SetMathAlphabet{\mathnormalbold}{normal}{\mt@encoding@normal} + {\mt@family@normal} + {\mt@boldvariant@normal} + {\mt@ltshape@normal} + \SetMathAlphabet{\mathnormalbold}{bold}{\mt@encoding@bold} + {\mt@family@bold} + {\mt@boldvariant@bold} + {\mt@ltshape@bold} +\fi +%% v1.15f adds \ifmt@default.. checks \ifmt@subdued\else \SetSymbolFont{mtletterfont}{normal}{\mt@encoding@normal} {\mt@family@normal} @@ -2002,48 +2186,43 @@ defaultbf,defaultit,defaultsf,defaulttt}} {\mt@family@bold} {\mt@series@bold} {\mt@shape@bold} +\ifmt@defaultbf\else \SetMathAlphabet{\Mathbf}{normal}{\mt@encoding@normal} {\mt@family@normal} {\mt@series@bold} {\mt@shape@normal} - \SetMathAlphabet{\Mathit}{normal}{\mt@encoding@normal} - {\mt@family@normal} - {\mt@series@normal} - {\mt@itdefault@normal} - \SetMathAlphabet{\Mathsf}{normal}{\mt@encoding@normal} - {\mt@sfdefault@normal} - {\mt@series@normal} - {\mt@shape@normal} - \SetMathAlphabet{\Mathtt}{normal}{\mt@encoding@normal} - {\mt@ttdefault@normal} - {\mt@series@normal} - {\mt@shape@normal} \SetMathAlphabet{\Mathbf}{bold}{\mt@encoding@bold} {\mt@family@bold} {\mt@series@bold} {\mt@shape@bold} +\fi\ifmt@defaultit\else + \SetMathAlphabet{\Mathit}{normal}{\mt@encoding@normal} + {\mt@family@normal} + {\mt@series@normal} + {\mt@itdefault@normal} \SetMathAlphabet{\Mathit}{bold}{\mt@encoding@bold} {\mt@family@bold} {\mt@series@bold} {\mt@itdefault@bold} +\fi\ifmt@defaultsf\else + \SetMathAlphabet{\Mathsf}{normal}{\mt@encoding@normal} + {\mt@sfdefault@normal} + {\mt@series@normal} + {\mt@shape@normal} \SetMathAlphabet{\Mathsf}{bold}{\mt@encoding@bold} {\mt@sfdefault@bold} {\mt@series@bold} {\mt@shape@bold} +\fi\ifmt@defaulttt\else + \SetMathAlphabet{\Mathtt}{normal}{\mt@encoding@normal} + {\mt@ttdefault@normal} + {\mt@series@normal} + {\mt@shape@normal} \SetMathAlphabet{\Mathtt}{bold}{\mt@encoding@bold} {\mt@ttdefault@bold} {\mt@series@bold} {\mt@shape@bold} -\fi % v1.15e moved the \fi here - \SetMathAlphabet{\mathnormalbold}{normal}{\mt@encoding@normal} - {\mt@family@normal} - {\mt@boldvariant@normal} - {\mt@ltshape@normal} - \SetMathAlphabet{\mathnormalbold}{bold}{\mt@encoding@bold} - {\mt@family@bold} - {\mt@boldvariant@bold} - {\mt@ltshape@bold} -%% \fi % former location +\fi\fi % de \ifmt@subdued % \end{macrocode} % \begin{macro}{\MathEulerBold} % v1.14c: We reset |mteulervm| and \cs{MathEulerBold} here as the @@ -2069,6 +2248,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \begin{macro}{selfGreek*} % LGRgreek, LGRgreeks, selfGreek, and selfGreeks options. % \begin{macrocode} +\ifmt@subdued\else \ifmt@LGRgreek \SetSymbolFont{mtlgrfontlower}{normal}{LGR} {\m@t@greekfont}{\mt@series@normal}{\m@t@greek@lsh} @@ -2084,34 +2264,37 @@ defaultbf,defaultit,defaultsf,defaulttt}} {\m@t@greekfont}{\mt@series@normal}{\m@t@greek@ush} \SetSymbolFont{mtselfGreekfont}{bold}{OT1} {\m@t@greekfont}{\mt@boldvariant@bold}{\m@t@greek@ush} -\fi\fi +\fi\fi\fi % \end{macrocode} % \end{macro} % \end{macro} % \begin{macrocode} +\ifmt@subdued +\typeout{** subdued mode will be activated for the normal and bold math versions} +\else \typeout{** Latin letters in the normal (resp. bold) math versions are now^^J% ** set up to use the fonts \mt@encoding@normal/\mt@family@normal/\mt@series@normal% -(\mt@boldvariant@normal)/\mt@ltshape@normal\space\ifmt@subdued(will be subdued)\fi} -\ifmt@LGRgreek - \typeout{** Greek letters (\m@t@greek@lsh/\m@t@greek@ush) will use - LGR/\m@t@greekfont\space\ifmt@subdued(will be subdued)\fi} +(\mt@boldvariant@normal)/\mt@ltshape@normal} +\ifmt@LGRgreek\typeout{** Greek letters (\m@t@greek@lsh/\m@t@greek@ush) +will use LGR/\m@t@greekfont} \fi -\ifmt@nodigits\else - \typeout{** Other characters (digits, ...) and \protect\log-like names will be^^J% +\ifmt@nodigits\else\typeout{** Other characters (digits, ...) +and \protect\log-like names will be^^J% ** typeset with the \mt@shape@normal\space shape.} - \fi +\fi +\fi \else % optional argument, then we rather do DeclareVersion - \edef\mt@tmp{#1}\def\mt@empty{} - \ifx\mt@tmp\mt@empty + \edef\mt@tmp{#1} + \ifx\mt@tmp\@empty \Mathastext % no infinite loop! \else \MTDeclareVersion[\m@t@ltsh]{#1} {\m@t@enc}{\m@t@fam}{\m@t@ser}{\m@t@opsh} \fi \fi -% \mt@font@info@on } +\@onlypreamble\Mathastext % \end{macrocode} % \end{macro} % \begin{macro}{\MTDeclareVersion} @@ -2127,9 +2310,12 @@ defaultbf,defaultit,defaultsf,defaulttt}} % % For version 1.1 we add an optional parameter specifying the shape % to be used for letters. +% +% Note: [2010/10/24] I really should check whether the user attempts to +% redefine the `normal' and `bold' versions and issue a warning in +% that case! % \begin{macrocode} \newcommand*\MTDeclareVersion[6][\@empty]{ - \mt@font@info@off \edef\mt@version{#2} \DeclareMathVersion{\mt@version} \expandafter\edef\csname mt@encoding@\mt@version\endcsname{#3} @@ -2143,13 +2329,20 @@ defaultbf,defaultit,defaultsf,defaulttt}} \expandafter\edef\csname mt@ttdefault@\mt@version\endcsname{\ttdefault} \expandafter\edef\csname mt@existsskip@\mt@version\endcsname{\m@t@existsskip} \expandafter\edef\csname mt@forallskip@\mt@version\endcsname{\m@t@forallskip} - \newif\ifmt@reallynoopt\mt@reallynoopttrue + \mt@optionalparamfalse \ifx\@empty#1 \else % we check nevertheless for [] situation, will not work with [ ] - \def\m@t@@tmp{#1}\def\mt@empty{} - \ifx\m@t@@tmp\mt@empty\else\mt@reallynooptfalse\fi + \def\mt@tmp{#1} + \ifx\mt@tmp\@empty\else\mt@optionalparamtrue\fi \fi - \ifmt@reallynoopt + \ifmt@optionalparam + \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@version\endcsname{#1} + \else \ifmt@italic \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{\m@t@ltsh} \typeout{** Latin letters in math version `#2' will use the font @@ -2163,32 +2356,29 @@ defaultbf,defaultit,defaultsf,defaulttt}} #3/#4/#5(\m@t@bold)/#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@version\endcsname{#1} \fi - \SetMathAlphabet{\Mathbf}{#2}{#3}{#4}{\m@t@bold}{#6} - \SetMathAlphabet{\Mathit}{#2}{#3}{#4}{#5}{\itdefault} - \SetMathAlphabet{\Mathsf}{#2}{#3}{\sfdefault}{#5}{#6} - \SetMathAlphabet{\Mathtt}{#2}{#3}{\ttdefault}{#5}{#6} - \SetMathAlphabet{\mathnormalbold}{#2}{#3}{#4}{\m@t@bold} - {\csname mt@ltshape@\mt@version\endcsname} - \SetSymbolFont{mtoperatorfont}{#2}{#3}{#4}{#5}{#6} + \ifmt@nonormalbold\else + \SetMathAlphabet{\mathnormalbold}{#2}{#3}{#4}{\m@t@bold} + {\csname + mt@ltshape@\mt@version\endcsname} + \fi + \SetSymbolFont{mtoperatorfont}{#2}{#3}{#4}{#5}{#6} + \ifmt@defaultbf\else\SetMathAlphabet{\Mathbf}{#2}{#3}{#4}{\m@t@bold}{#6}\fi + \ifmt@defaultit\else\SetMathAlphabet{\Mathit}{#2}{#3}{#4}{#5}{\itdefault}\fi + \ifmt@defaultsf\else\SetMathAlphabet{\Mathsf}{#2}{#3}{\sfdefault}{#5}{#6}\fi + \ifmt@defaulttt\else\SetMathAlphabet{\Mathtt}{#2}{#3}{\ttdefault}{#5}{#6}\fi \ifmt@needeuler \SetMathAlphabet{\MathEulerBold}{#2}{U}{zeur}{\m@t@bold}{n} \fi % \end{macrocode} % \begin{macro}{LGRgreeks} % \begin{macro}{selfGreeks} -% In the case of option LGRgreeks (selfGreeks), it is expected that the -% fonts used in each math versions exist in LGR (OT1) encoding. We must -% first of all recalculate the shapes for lowercase and uppercase Greek -% letters depending on the frenchmath and [it/up][g/G]reek options as well -% as on the local to this version shapes for letters and digits. +% In the case of option LGRgreeks (selfGreeks), it is expected that +% the fonts used in each math versions exist in LGR (OT1) encoding. We +% first recalculate the shapes to be used for lowercase and uppercase +% Greek letters depending on the frenchmath and [it/up][g/G]reek +% options as well as on the (local to this version) shapes for letters +% and digits. % \begin{macrocode} \def\m@t@greek@lsh@loc{\csname mt@ltshape@\mt@version\endcsname} \def\m@t@greek@ush@loc{\csname mt@shape@\mt@version\endcsname} @@ -2229,8 +2419,9 @@ defaultbf,defaultit,defaultsf,defaulttt}} \typeout{** Capital Greek letters (\m@t@greek@lsh@loc/\m@t@greek@ush@loc) will use OT1 font \m@t@greekfont} \fi\fi\fi\fi -\mt@font@info@on +%\mt@font@info@on } +\@onlypreamble\MTDeclareVersion % \end{macrocode} % \end{macro} % \end{macro} @@ -2238,71 +2429,6 @@ defaultbf,defaultit,defaultsf,defaulttt}} \let\MathastextDeclareVersion\MTDeclareVersion % \end{macrocode} % \end{macro} -% \begin{macro}{\Mathastext} -% Initialization call: -% \begin{macrocode} -\Mathastext -% \end{macrocode} -% \end{macro} -% \begin{macro}{\operator@font} -% We modify this \LaTeX{} internal variable in order for the -% predefined \cs{cos}, \cs{sin}, etc\dots to be typeset with the -% |mathastext| font. This will also work for things declared -% through the |amsmath| package command -% \cs{DeclareMathOperator}. The alternative would have been to -% redefine the `operators' Math Symbol Font. Obviously people -% who expect that \cs{operator@font} will always refer to the -% `operators' math font might be in for a surprise\dots{} well, -% we'll see. -% -% Oct 2012: retrospectively, one sees that proceeding this way made -% it easier for me to create at a later stage the subdued option. -% \begin{macrocode} -\def\operator@font{\mathgroup\symmtoperatorfont} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\mathnormal} -% \begin{macro}{\mathrm} -% \begin{macro}{\mathbf} -% \begin{macro}{\mathit} -% \begin{macro}{\mathsf} -% \begin{macro}{\mathtt} -% We redefine the default normal, rm, bf, it, sf, and tt alphabets. -% This is done via |\renewcommand{\mathrm}{\Mathrm}| etc\dots -% -% We will access by default (if no option is passed for Greek) the -% \cs{omicron} via \cs{mathnormal}. So we save it for future use. -% But unfortunately the Fourier package with the upright option -% does not have an upright omicron obtainable by simply typing -% \cs{mathnormal}|{o}|. So in this case we shall use \cs{mathrm} -% and not \cs{mathnormal}. -% \begin{macrocode} -\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 -\ifmt@defaultit\else\renewcommand{\mathit}{\Mathit}\fi -\ifmt@defaultsf\else\renewcommand{\mathsf}{\Mathsf}\fi -\ifmt@defaulttt\else\renewcommand{\mathtt}{\Mathtt}\fi -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% We write appropriate messages to the terminal and the log. -% \begin{macrocode} -\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 -% \end{macrocode} % \begin{macro}{\MTVersion} % This is a wrapper around \LaTeX{}'s \cs{mathversion}: here we have an % optional argument allowing a quick and easy change of the text fonts @@ -2317,8 +2443,8 @@ defaultbf,defaultit,defaultsf,defaulttt}} \ifx\@empty#1% no optional argument \edef\mt@tmp{#2} \else% we check nevertheless for [] situation, will not work with [ ] - \def\m@t@@tmp{#1}\def\mt@empty{}% - \ifx\m@t@@tmp\mt@empty\edef\mt@tmp{#2}% + \def\mt@tmpa{#1}% + \ifx\mt@tmpa\@empty\edef\mt@tmp{#2}% \else\edef\mt@tmp{#1}% \fi% \fi% @@ -2349,72 +2475,41 @@ defaultbf,defaultit,defaultsf,defaulttt}} \expandafter\m@t@existsmuskip\csname mt@existsskip@\mt@tmp\endcsname \expandafter\m@t@forallmuskip\csname mt@forallskip@\mt@tmp\endcsname %% v1.15c: extending subdued to LGRgreek +%% v1.15f: subdueing math alphabets in a simpler way than in 1.15e \ifmt@subdued -\ifmt@LGRgreek -\edef\mt@tmp{#2}% -\def\mt@@tmp{normal}% -\ifx\mt@tmp\mt@@tmp\else -\def\mt@@tmp{bold}% -\ifx\mt@tmp\mt@@tmp\else -\let\Alpha\Alpha@m@t -\let\Beta\Beta@m@t -\let\Gamma\Gamma@m@t -\let\Delta\Delta@m@t -\let\Epsilon\Epsilon@m@t -\let\Zeta\Zeta@m@t -\let\Eta\Eta@m@t -\let\Theta\Theta@m@t -\let\Iota\Iota@m@t -\let\Kappa\Kappa@m@t -\let\Lambda\Lambda@m@t -\let\Mu\Mu@m@t -\let\Nu\Nu@m@t -\let\Xi\Xi@m@t -\let\Omicron\Omicron@m@t -\let\Pi\Pi@m@t -\let\Rho\Rho@m@t -\let\Sigma\Sigma@m@t -\let\Tau\Tau@m@t -\let\Upsilon\Upsilon@m@t -\let\Phi\Phi@m@t -\let\Chi\Chi@m@t -\let\Psi\Psi@m@t -\let\Omega\Omega@m@t -% -\let\alpha\alpha@m@t -\let\beta\beta@m@t -\let\gamma\gamma@m@t -\let\delta\delta@m@t -\let\epsilon\epsilon@m@t -\let\zeta\zeta@m@t -\let\eta\eta@m@t -\let\theta\theta@m@t -\let\iota\iota@m@t -\let\kappa\kappa@m@t -\let\lambda\lambda@m@t -\let\mu\mu@m@t -\let\nu\nu@m@t -\let\xi\xi@m@t -\let\omicron\omicron@m@t -\let\pi\pi@m@t -\let\rho\rho@m@t -\let\varsigma\varsigma@m@t -\let\sigma\sigma@m@t -\let\tau\tau@m@t -\let\upsilon\upsilon@m@t -\let\phi\phi@m@t -\let\chi\chi@m@t -\let\psi\psi@m@t -\let\omega\omega@m@t -\let\Digamma\Digamma@m@t -\let\digamma\digamma@m@t -\fi\fi\fi\fi +\edef\mt@tmp{#2}\def\mt@tmpa{normal}% +\ifx\mt@tmp\mt@tmpa +\mt@restorealphabets\ifmt@LGRgreek\mt@restoregreek\fi +\else +\def\mt@tmpa{bold}% +\ifx\mt@tmp\mt@tmpa +\mt@restorealphabets\ifmt@LGRgreek\mt@restoregreek\fi +\else +\mt@setalphabets\ifmt@LGRgreek\mt@setuplgrgreek\fi +\fi\fi\fi } \let\MathastextVersion\MTVersion \let\Mathastextversion\MTVersion \let\MTversion\MTVersion % \end{macrocode} % \end{macro} +% \begin{macro}{\Mathastext} +% Initialization call: +% \begin{macrocode} +\Mathastext +% \end{macrocode} +% \end{macro} +% Additional appropriate messages to the terminal and the log. +% \begin{macrocode} +\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 +% \end{macrocode} % At (long...) last we now change the font for the letters of the % latin alphabet. In version 1.1, Latin letters have their own font % (shape). @@ -2548,7 +2643,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \ifXeTeX \XeTeXmathcharnumdef\mt@minus@sign=\XeTeXmathcodenum`\-\relax % \end{macrocode} -% We could also have used +% We could also have used\\ % \verb|\edef\mt@minus@sign{\expandafter\XeTeXmathcharnum\the\XeTeXmathcodenum`\-\relax}| % but not \verb|\def\mt@minus@sign{\XeTeXmathcharnum\XeTeXmathcodenum`\-}| % \begin{macrocode} @@ -2558,7 +2653,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} %% marche pas pour le moment car \luatexUmathcodenum retourne parfois un %% legacy mathcode, parfois un Unicode mathcode, \`a mon avis c'est un bug %% de LuaLatex. En fait Taco H me dit que la prochaine version -%% réglera ce problčme. \luatexUmathchardef\mt@minus@sign="2 "2 "0\relax +%% r\'eglera ce probl\`eme. \luatexUmathchardef\mt@minus@sign="2 "2 "0\relax \mathchardef\mt@minus@sign=8704\relax % "2200 \else \mathchardef\mt@minus@sign=\mathcode`\-\relax @@ -2576,21 +2671,14 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \end{macrocode} % \end{macro} % \begin{macro}{endash} -% 2011/01/29, v1.1 Producing this next piece of code was -% not a piece of cake for a novice like myself! I got -% some LaTeX internal info from ltoutenc.dtx. However this -% will only work in the math versions having the same -% encoding as defined by default. -% -% 2011/02/05, v1.11. Compatibility with Unicode (via -% fontspec encodings EU1 and EU2) -% -% 2011/02/07, v1.12. Improved dealing of unicode engines. -% -% 2011/04/02, v1.14b. Same bug as for \$ etc in math mode (see below -% redefinitions of \$, \#, \%, \&), when 10 or more math groups had been -% allocated (bug was only in the part dealing with EU1/EU2 encoding) -% +% 2011/01/29, v1.1. Producing this next piece of code was not a piece +% of cake for a novice like myself!\\% +% 2011/02/05, v1.11. Compatibility with Unicode (via use of fontspec +% encodings EU1 and EU2)\\% +% 2011/02/07, v1.12. Improved dealing of Unicode possibility.\\% +% 2011/04/02, v1.14b. Corrected some very irresponsible bug in the +% Unicode part which caused a problem when 10 or more math families have +% been allocated.\\% % 2012/09/24, v1.15. Added AtBeginDocument to circumvent some amsmath % problem with unicode engines. % \begin{macrocode} @@ -2609,7 +2697,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \ifx\mt@tmp@enc\mt@lyi % LY1 \DeclareMathSymbol{-}{\mathbin}{mtoperatorfont}{150} \else % make sure we have neither xetex nor luatex - \ifXeTeX\mt@failedtrue\else\ifLuaTeX\mt@failedtrue\else + \ifXeTeX\mt@aborttrue\else\ifLuaTeX\mt@aborttrue\else \DeclareMathSymbol{-}{\mathbin}{mtoperatorfont} {\expandafter\the\expandafter\csname\mt@tmp@enc\string\textendash\endcsname} \fi\fi @@ -2629,18 +2717,18 @@ defaultbf,defaultit,defaultsf,defaulttt}} \ifx\mt@tmp@enc\mt@lyi % LY1 \DeclareMathSymbol{-}{\mathbin}{mtoperatorfont}{151} \else % make sure we have neither xetex nor luatex - \ifXeTeX\mt@failedtrue\else\ifLuaTeX\mt@failedtrue\else + \ifXeTeX\mt@aborttrue\else\ifLuaTeX\mt@aborttrue\else \DeclareMathSymbol{-}{\mathbin}{mtoperatorfont} {\expandafter\the\expandafter\csname\mt@tmp@enc\string\textemdash\endcsname} \fi\fi \fi\fi\fi\fi\fi} \ifmt@nominus\else -\mt@failedfalse +\mt@abortfalse \ifmt@endash\do@the@endashstuff\else \ifmt@emdash\do@the@emdashstuff\else \DeclareMathSymbol{-}{\mathbin}{\mt@font@tbu}{"2D} \fi\fi -\ifmt@failed\DeclareMathSymbol{-}{\mathbin}{\mt@font@tbu}{"2D}\fi +\ifmt@abort\DeclareMathSymbol{-}{\mathbin}{\mt@font@tbu}{"2D}\fi \fi % \end{macrocode} % \end{macro} @@ -2663,7 +2751,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} % Alexander~R.~\textsc{Perlis} in his TugBoat article 22 (2001), 350--352, % which I found by googling |rlap|. % (as an aside, I am only now (04/02) aware that the package |mathtools| -% provides the |mathrlap| etc... ) +% provides the |mathrlap| tc... ) % % v1.14b (2011/04/02): again this bug in the EU1/EU2 encoding part, as in the % code redefining \$ etc in math mode (see below). Fixed. @@ -2780,8 +2868,8 @@ defaultbf,defaultit,defaultsf,defaulttt}} \mathord{\mt@font@tbu}{"7C}{largesymbols}{"0C} \DeclareMathSymbol\mid\mathrel{\mt@font@tbu}{"7C} % \end{macrocode} -% 24sep12: la redéclaration directe de \cs{lbrace} enclenchait une -% erreur sous xetex/luatex avec mathtools il semble. +% 24sep12: la red\'eclaration directe de \cs{lbrace} enclenchait une +% erreur sous xetex/luatex avec mathtools si je me souviens bien. % \begin{macrocode} \let\lbrace\undefined \DeclareMathDelimiter{\lbrace} @@ -2793,42 +2881,51 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \end{macrocode} % \end{macro} % \begin{macro}{specials} -% We never take the specials from the Symbol (Adobe) font, as they are not all -% available there. -% -% 1.14b (2011/04/02): the redefinitions of \#, \$, \% and \& were buggy (this -% showed up when 10 or more mathgroups had been allocated). Fixed. +% \leavevmode\kern\parindent 1.14b (2011/04/02): the redefinitions of +% \#, \$, \% and \& were buggy (this showed up when 10 or more math +% families had been created). +% +% 1.15f (2012/10/23): the code, although working, was a bit insane and +% had definitions which could surprise other packages. I (finally) +% correct this: I had been told that my earlier definitions caused a +% problem with |microtype|... +% +% 1.15g (2012/10/25): ... but it was \emph{not} that insane, I just had +% forgotten the reason I did it that way! I just extended to the other +% specials what latex was doing with \char92\$ (\cs{mathdollar}!)... Apart +% from that the \cs{mathalpha} (=7) thing +% makes me nuts and reminds me that \TeX{} is not satisfying at all +% here: why exclude the variable family from being assigned a type for +% spacings? yes he had only 3 bits but perhaps that was too clever. I am +% stuck as I just can't change for example $>$ to be of type +% \cs{mathalpha} as it is \cs{mathrel}, etc\dots so perhaps I should +% stop being stubborn and renounce doing \cs{mathalpha} here. +% % \begin{macrocode} \ifmt@nospecials\else -\ifXeTeX % more than 16 math families possible - \XeTeXmathchardef\mt@mmode@hash=7 \symmtoperatorfont "0023 \relax - \XeTeXmathchardef\mt@mmode@dollar=7 \symmtoperatorfont "0024 \relax - \XeTeXmathchardef\mt@mmode@percent=7 \symmtoperatorfont "0025 \relax - \XeTeXmathchardef\mt@mmode@ampersand=7 \symmtoperatorfont "0026 \relax +\ifXeTeX + \XeTeXmathcode`\#=7 \symmtoperatorfont "0023 \relax + \XeTeXmathchardef\mathdollar=7 \symmtoperatorfont "0024 \relax + \XeTeXmathcode`\%=7 \symmtoperatorfont "0025 \relax + \XeTeXmathcode`\&=7 \symmtoperatorfont "0026 \relax +\else +\ifLuaTeX + \luatexUmathcode`\#=7 \symmtoperatorfont "0023 \relax + \luatexUmathchardef\mathdollar=7 \symmtoperatorfont "0024 \relax + \luatexUmathcode`\%=7 \symmtoperatorfont "0025 \relax + \luatexUmathcode`\&=7 \symmtoperatorfont "0026 \relax \else -\ifLuaTeX % I think no more than 16 math families are possible but this way I -%% can check the stuff (as I can't install xetex on my system) - \luatexUmathchardef\mt@mmode@hash=7 \symmtoperatorfont "0023 \relax - \luatexUmathchardef\mt@mmode@dollar=7 \symmtoperatorfont "0024 \relax - \luatexUmathchardef\mt@mmode@percent=7 \symmtoperatorfont "0025 \relax - \luatexUmathchardef\mt@mmode@ampersand=7 \symmtoperatorfont "0026 \relax -\else % hope that there are no more than 16 math families! \count255=\symmtoperatorfont \multiply\count255 by 256 \advance\count255 by 28707 % "7023 - \mathchardef\mt@mmode@hash\count255 + \mathcode`\#\count255 \advance\count255 by 1 - \mathchardef\mt@mmode@dollar\count255 + \mathchardef\mathdollar\count255 \advance\count255 by 1 - \mathchardef\mt@mmode@percent\count255 + \mathcode`\%\count255 \advance\count255 by 1 - \mathchardef\mt@mmode@ampersand\count255 -\fi\fi -\renewcommand{\#}{\ifmmode\mt@mmode@hash\else\char35\relax\fi} -\renewcommand{\$}{\ifmmode\mt@mmode@dollar\else\char36\relax\fi} -\renewcommand{\%}{\ifmmode\mt@mmode@percent\else\char37\relax\fi} -\renewcommand{\&}{\ifmmode\mt@mmode@ampersand\else\char38\relax\fi} -\fi + \mathcode`\&\count255 +\fi\fi\fi % \end{macrocode} % \end{macro} % \begin{macro}{symbolmisc} @@ -2968,7 +3065,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} % Greek-related option was passed to the package. This was a bug. % \begin{macrocode} \let\mt@mathord\mathalpha -\mt@proceedtrue +\mt@goaheadtrue \ifmt@selfGreek \def\mt@font@tbu{mtselfGreekfont} \else @@ -2980,7 +3077,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \let\mt@mathord\mathord \else \ifmt@LGRgreek - \mt@proceedfalse + \mt@goaheadfalse \else % \end{macrocode} % The \cs{omicron} requires special treatment. By default we use the o from the @@ -2988,12 +3085,12 @@ defaultbf,defaultit,defaultsf,defaulttt}} % also a special adjustment if the package |fourier| was loaded in its % |upright| variant: we then take \cs{omicron} from the (original) rm alphabet. % \begin{macrocode} - \mt@proceedfalse + \mt@goaheadfalse \ifx\omicron\undefined - \newcommand{\omicron}{\mt@saved@mathnormal{o}} + \newcommand{\omicron}{\mt@alph@omicron{o}} \fi \fi\fi\fi\fi -\ifmt@proceed +\ifmt@goahead \DeclareMathSymbol{\Alpha}{\mt@mathord}{\mt@font@tbu}{"41} \DeclareMathSymbol{\Beta}{\mt@mathord}{\mt@font@tbu}{"42} \DeclareMathSymbol{\Epsilon}{\mt@mathord}{\mt@font@tbu}{"45} @@ -3059,7 +3156,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} % we use the Euler font it is perhaps better to have them be of type % |mathalpha| % \begin{macrocode} -\ifmt@proceed +\ifmt@goahead \ifmt@eulergreek \DeclareMathSymbol{\alpha} {\mathalpha}{mteulervm}{"0B} \DeclareMathSymbol{\beta} {\mathalpha}{mteulervm}{"0C} @@ -3132,61 +3229,225 @@ defaultbf,defaultit,defaultsf,defaulttt}} \DeclareMathSymbol{\wp}{\mathord}{mtpsymbol}{"C3} \fi\fi\fi %% -\ifmt@LGRgreek % internal names for subdued implementation (1.15c) -\DeclareMathSymbol{\Alpha@m@t}{\mathalpha}{mtlgrfontupper}{65} -\DeclareMathSymbol{\Beta@m@t}{\mathalpha}{mtlgrfontupper}{66} -\DeclareMathSymbol{\Gamma@m@t}{\mathalpha}{mtlgrfontupper}{71} -\DeclareMathSymbol{\Delta@m@t}{\mathalpha}{mtlgrfontupper}{68} -\DeclareMathSymbol{\Epsilon@m@t}{\mathalpha}{mtlgrfontupper}{69} -\DeclareMathSymbol{\Zeta@m@t}{\mathalpha}{mtlgrfontupper}{90} -\DeclareMathSymbol{\Eta@m@t}{\mathalpha}{mtlgrfontupper}{72} -\DeclareMathSymbol{\Theta@m@t}{\mathalpha}{mtlgrfontupper}{74} -\DeclareMathSymbol{\Iota@m@t}{\mathalpha}{mtlgrfontupper}{73} -\DeclareMathSymbol{\Kappa@m@t}{\mathalpha}{mtlgrfontupper}{75} -\DeclareMathSymbol{\Lambda@m@t}{\mathalpha}{mtlgrfontupper}{76} -\DeclareMathSymbol{\Mu@m@t}{\mathalpha}{mtlgrfontupper}{77} -\DeclareMathSymbol{\Nu@m@t}{\mathalpha}{mtlgrfontupper}{78} -\DeclareMathSymbol{\Xi@m@t}{\mathalpha}{mtlgrfontupper}{88} -\DeclareMathSymbol{\Omicron@m@t}{\mathalpha}{mtlgrfontupper}{79} -\DeclareMathSymbol{\Pi@m@t}{\mathalpha}{mtlgrfontupper}{80} -\DeclareMathSymbol{\Rho@m@t}{\mathalpha}{mtlgrfontupper}{82} -\DeclareMathSymbol{\Sigma@m@t}{\mathalpha}{mtlgrfontupper}{83} -\DeclareMathSymbol{\Tau@m@t}{\mathalpha}{mtlgrfontupper}{84} -\DeclareMathSymbol{\Upsilon@m@t}{\mathalpha}{mtlgrfontupper}{85} -\DeclareMathSymbol{\Phi@m@t}{\mathalpha}{mtlgrfontupper}{70} -\DeclareMathSymbol{\Chi@m@t}{\mathalpha}{mtlgrfontupper}{81} -\DeclareMathSymbol{\Psi@m@t}{\mathalpha}{mtlgrfontupper}{89} -\DeclareMathSymbol{\Omega@m@t}{\mathalpha}{mtlgrfontupper}{87} -% -\DeclareMathSymbol{\alpha@m@t}{\mathalpha}{mtlgrfontlower}{97} -\DeclareMathSymbol{\beta@m@t}{\mathalpha}{mtlgrfontlower}{98} -\DeclareMathSymbol{\gamma@m@t}{\mathalpha}{mtlgrfontlower}{103} -\DeclareMathSymbol{\delta@m@t}{\mathalpha}{mtlgrfontlower}{100} -\DeclareMathSymbol{\epsilon@m@t}{\mathalpha}{mtlgrfontlower}{101} -\DeclareMathSymbol{\zeta@m@t}{\mathalpha}{mtlgrfontlower}{122} -\DeclareMathSymbol{\eta@m@t}{\mathalpha}{mtlgrfontlower}{104} -\DeclareMathSymbol{\theta@m@t}{\mathalpha}{mtlgrfontlower}{106} -\DeclareMathSymbol{\iota@m@t}{\mathalpha}{mtlgrfontlower}{105} -\DeclareMathSymbol{\kappa@m@t}{\mathalpha}{mtlgrfontlower}{107} -\DeclareMathSymbol{\lambda@m@t}{\mathalpha}{mtlgrfontlower}{108} -\DeclareMathSymbol{\mu@m@t}{\mathalpha}{mtlgrfontlower}{109} -\DeclareMathSymbol{\nu@m@t}{\mathalpha}{mtlgrfontlower}{110} -\DeclareMathSymbol{\xi@m@t}{\mathalpha}{mtlgrfontlower}{120} -\DeclareMathSymbol{\omicron@m@t}{\mathalpha}{mtlgrfontlower}{111} -\DeclareMathSymbol{\pi@m@t}{\mathalpha}{mtlgrfontlower}{112} -\DeclareMathSymbol{\rho@m@t}{\mathalpha}{mtlgrfontlower}{114} -\DeclareMathSymbol{\varsigma@m@t}{\mathalpha}{mtlgrfontlower}{99} -\DeclareMathSymbol{\sigma@m@t}{\mathalpha}{mtlgrfontlower}{115} -\DeclareMathSymbol{\tau@m@t}{\mathalpha}{mtlgrfontlower}{116} -\DeclareMathSymbol{\upsilon@m@t}{\mathalpha}{mtlgrfontlower}{117} -\DeclareMathSymbol{\phi@m@t}{\mathalpha}{mtlgrfontlower}{102} -\DeclareMathSymbol{\chi@m@t}{\mathalpha}{mtlgrfontlower}{113} -\DeclareMathSymbol{\psi@m@t}{\mathalpha}{mtlgrfontlower}{121} -\DeclareMathSymbol{\omega@m@t}{\mathalpha}{mtlgrfontlower}{119} -\DeclareMathSymbol{\digamma@m@t}{\mathalpha}{mtlgrfontlower}{147} -\DeclareMathSymbol{\Digamma@m@t}{\mathalpha}{mtlgrfontlower}{195} +\ifmt@LGRgreek % internal names for subdued implementation (1.15c-1.15e) +\let\m@t@origAlpha\Alpha +\let\m@t@origBeta\Beta +\let\m@t@origGamma\Gamma +\let\m@t@origDelta\Delta +\let\m@t@origEpsilon\Epsilon +\let\m@t@origZeta\Zeta +\let\m@t@origEta\Eta +\let\m@t@origTheta\Theta +\let\m@t@origIota\Iota +\let\m@t@origKappa\Kappa +\let\m@t@origLambda\Lambda +\let\m@t@origMu\Mu +\let\m@t@origNu\Nu +\let\m@t@origXi\Xi +\let\m@t@origOmicron\Omicron +\let\m@t@origPi\Pi +\let\m@t@origRho\Rho +\let\m@t@origSigma\Sigma +\let\m@t@origTau\Tau +\let\m@t@origUpsilon\Upsilon +\let\m@t@origPhi\Phi +\let\m@t@origChi\Chi +\let\m@t@origPsi\Psi +\let\m@t@origOmega\Omega +% +\let\m@t@origalpha\alpha +\let\m@t@origbeta\beta +\let\m@t@origgamma\gamma +\let\m@t@origdelta\delta +\let\m@t@origepsilon\epsilon +\let\m@t@origzeta\zeta +\let\m@t@origeta\eta +\let\m@t@origtheta\theta +\let\m@t@origiota\iota +\let\m@t@origkappa\kappa +\let\m@t@origlambda\lambda +\let\m@t@origmu\mu +\let\m@t@orignu\nu +\let\m@t@origxi\xi +\let\m@t@origomicron\omicron +\let\m@t@origpi\pi +\let\m@t@origrho\rho +\let\m@t@origvarsigma\varsigma +\let\m@t@origsigma\sigma +\let\m@t@origtau\tau +\let\m@t@origupsilon\upsilon +\let\m@t@origphi\phi +\let\m@t@origchi\chi +\let\m@t@origpsi\psi +\let\m@t@origomega\omega +\let\m@t@origDigamma\Digamma +\let\m@t@origdigamma\digamma +%% +\def\mt@restoregreek{% +\let\Alpha\m@t@origAlpha +\let\Beta\m@t@origBeta +\let\Gamma\m@t@origGamma +\let\Delta\m@t@origDelta +\let\Epsilon\m@t@origEpsilon +\let\Zeta\m@t@origZeta +\let\Eta\m@t@origEta +\let\Theta\m@t@origTheta +\let\Iota\m@t@origIota +\let\Kappa\m@t@origKappa +\let\Lambda\m@t@origLambda +\let\Mu\m@t@origMu +\let\Nu\m@t@origNu +\let\Xi\m@t@origXi +\let\Omicron\m@t@origOmicron +\let\Pi\m@t@origPi +\let\Rho\m@t@origRho +\let\Sigma\m@t@origSigma +\let\Tau\m@t@origTau +\let\Upsilon\m@t@origUpsilon +\let\Phi\m@t@origPhi +\let\Chi\m@t@origChi +\let\Psi\m@t@origPsi +\let\Omega\m@t@origOmega +% +\let\alpha\m@t@origalpha +\let\beta\m@t@origbeta +\let\gamma\m@t@origgamma +\let\delta\m@t@origdelta +\let\epsilon\m@t@origepsilon +\let\zeta\m@t@origzeta +\let\eta\m@t@origeta +\let\theta\m@t@origtheta +\let\iota\m@t@origiota +\let\kappa\m@t@origkappa +\let\lambda\m@t@origlambda +\let\mu\m@t@origmu +\let\nu\m@t@orignu +\let\xi\m@t@origxi +\let\omicron\m@t@origomicron +\let\pi\m@t@origpi +\let\rho\m@t@origrho +\let\varsigma\m@t@origvarsigma +\let\sigma\m@t@origsigma +\let\tau\m@t@origtau +\let\upsilon\m@t@origupsilon +\let\phi\m@t@origphi +\let\chi\m@t@origchi +\let\psi\m@t@origpsi +\let\omega\m@t@origomega +\let\Digamma\m@t@origDigamma +\let\digamma\m@t@origdigamma +} +%% +\def\mt@setuplgrgreek{% +\let\Alpha\m@t@Alpha +\let\Beta\m@t@Beta +\let\Gamma\m@t@Gamma +\let\Delta\m@t@Delta +\let\Epsilon\m@t@Epsilon +\let\Zeta\m@t@Zeta +\let\Eta\m@t@Eta +\let\Theta\m@t@Theta +\let\Iota\m@t@Iota +\let\Kappa\m@t@Kappa +\let\Lambda\m@t@Lambda +\let\Mu\m@t@Mu +\let\Nu\m@t@Nu +\let\Xi\m@t@Xi +\let\Omicron\m@t@Omicron +\let\Pi\m@t@Pi +\let\Rho\m@t@Rho +\let\Sigma\m@t@Sigma +\let\Tau\m@t@Tau +\let\Upsilon\m@t@Upsilon +\let\Phi\m@t@Phi +\let\Chi\m@t@Chi +\let\Psi\m@t@Psi +\let\Omega\m@t@Omega +% +\let\alpha\m@t@alpha +\let\beta\m@t@beta +\let\gamma\m@t@gamma +\let\delta\m@t@delta +\let\epsilon\m@t@epsilon +\let\zeta\m@t@zeta +\let\eta\m@t@eta +\let\theta\m@t@theta +\let\iota\m@t@iota +\let\kappa\m@t@kappa +\let\lambda\m@t@lambda +\let\mu\m@t@mu +\let\nu\m@t@nu +\let\xi\m@t@xi +\let\omicron\m@t@omicron +\let\pi\m@t@pi +\let\rho\m@t@rho +\let\varsigma\m@t@varsigma +\let\sigma\m@t@sigma +\let\tau\m@t@tau +\let\upsilon\m@t@upsilon +\let\phi\m@t@phi +\let\chi\m@t@chi +\let\psi\m@t@psi +\let\omega\m@t@omega +\let\Digamma\m@t@Digamma +\let\digamma\m@t@digamma +} +%% +\DeclareMathSymbol{\m@t@Alpha}{\mathalpha}{mtlgrfontupper}{65} +\DeclareMathSymbol{\m@t@Beta}{\mathalpha}{mtlgrfontupper}{66} +\DeclareMathSymbol{\m@t@Gamma}{\mathalpha}{mtlgrfontupper}{71} +\DeclareMathSymbol{\m@t@Delta}{\mathalpha}{mtlgrfontupper}{68} +\DeclareMathSymbol{\m@t@Epsilon}{\mathalpha}{mtlgrfontupper}{69} +\DeclareMathSymbol{\m@t@Zeta}{\mathalpha}{mtlgrfontupper}{90} +\DeclareMathSymbol{\m@t@Eta}{\mathalpha}{mtlgrfontupper}{72} +\DeclareMathSymbol{\m@t@Theta}{\mathalpha}{mtlgrfontupper}{74} +\DeclareMathSymbol{\m@t@Iota}{\mathalpha}{mtlgrfontupper}{73} +\DeclareMathSymbol{\m@t@Kappa}{\mathalpha}{mtlgrfontupper}{75} +\DeclareMathSymbol{\m@t@Lambda}{\mathalpha}{mtlgrfontupper}{76} +\DeclareMathSymbol{\m@t@Mu}{\mathalpha}{mtlgrfontupper}{77} +\DeclareMathSymbol{\m@t@Nu}{\mathalpha}{mtlgrfontupper}{78} +\DeclareMathSymbol{\m@t@Xi}{\mathalpha}{mtlgrfontupper}{88} +\DeclareMathSymbol{\m@t@Omicron}{\mathalpha}{mtlgrfontupper}{79} +\DeclareMathSymbol{\m@t@Pi}{\mathalpha}{mtlgrfontupper}{80} +\DeclareMathSymbol{\m@t@Rho}{\mathalpha}{mtlgrfontupper}{82} +\DeclareMathSymbol{\m@t@Sigma}{\mathalpha}{mtlgrfontupper}{83} +\DeclareMathSymbol{\m@t@Tau}{\mathalpha}{mtlgrfontupper}{84} +\DeclareMathSymbol{\m@t@Upsilon}{\mathalpha}{mtlgrfontupper}{85} +\DeclareMathSymbol{\m@t@Phi}{\mathalpha}{mtlgrfontupper}{70} +\DeclareMathSymbol{\m@t@Chi}{\mathalpha}{mtlgrfontupper}{81} +\DeclareMathSymbol{\m@t@Psi}{\mathalpha}{mtlgrfontupper}{89} +\DeclareMathSymbol{\m@t@Omega}{\mathalpha}{mtlgrfontupper}{87} +% +\DeclareMathSymbol{\m@t@alpha}{\mathalpha}{mtlgrfontlower}{97} +\DeclareMathSymbol{\m@t@beta}{\mathalpha}{mtlgrfontlower}{98} +\DeclareMathSymbol{\m@t@gamma}{\mathalpha}{mtlgrfontlower}{103} +\DeclareMathSymbol{\m@t@delta}{\mathalpha}{mtlgrfontlower}{100} +\DeclareMathSymbol{\m@t@epsilon}{\mathalpha}{mtlgrfontlower}{101} +\DeclareMathSymbol{\m@t@zeta}{\mathalpha}{mtlgrfontlower}{122} +\DeclareMathSymbol{\m@t@eta}{\mathalpha}{mtlgrfontlower}{104} +\DeclareMathSymbol{\m@t@theta}{\mathalpha}{mtlgrfontlower}{106} +\DeclareMathSymbol{\m@t@iota}{\mathalpha}{mtlgrfontlower}{105} +\DeclareMathSymbol{\m@t@kappa}{\mathalpha}{mtlgrfontlower}{107} +\DeclareMathSymbol{\m@t@lambda}{\mathalpha}{mtlgrfontlower}{108} +\DeclareMathSymbol{\m@t@mu}{\mathalpha}{mtlgrfontlower}{109} +\DeclareMathSymbol{\m@t@nu}{\mathalpha}{mtlgrfontlower}{110} +\DeclareMathSymbol{\m@t@xi}{\mathalpha}{mtlgrfontlower}{120} +\DeclareMathSymbol{\m@t@omicron}{\mathalpha}{mtlgrfontlower}{111} +\DeclareMathSymbol{\m@t@pi}{\mathalpha}{mtlgrfontlower}{112} +\DeclareMathSymbol{\m@t@rho}{\mathalpha}{mtlgrfontlower}{114} +\DeclareMathSymbol{\m@t@varsigma}{\mathalpha}{mtlgrfontlower}{99} +\DeclareMathSymbol{\m@t@sigma}{\mathalpha}{mtlgrfontlower}{115} +\DeclareMathSymbol{\m@t@tau}{\mathalpha}{mtlgrfontlower}{116} +\DeclareMathSymbol{\m@t@upsilon}{\mathalpha}{mtlgrfontlower}{117} +\DeclareMathSymbol{\m@t@phi}{\mathalpha}{mtlgrfontlower}{102} +\DeclareMathSymbol{\m@t@chi}{\mathalpha}{mtlgrfontlower}{113} +\DeclareMathSymbol{\m@t@psi}{\mathalpha}{mtlgrfontlower}{121} +\DeclareMathSymbol{\m@t@omega}{\mathalpha}{mtlgrfontlower}{119} +\DeclareMathSymbol{\m@t@digamma}{\mathalpha}{mtlgrfontlower}{147} +\DeclareMathSymbol{\m@t@Digamma}{\mathalpha}{mtlgrfontlower}{195} % cf http://milde.users.sourceforge.net/LGR/lgrxenc.def.html % et greek.ldf du package babel +\ifmt@subdued\else\mt@setuplgrgreek\fi \fi % \end{macrocode} % \end{macro} @@ -3199,7 +3460,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} % code redefining \$ etc in math mode (see above). Fixed. % \begin{macrocode} \edef\mt@tmp@enc{\encodingdefault} -\mt@proceedtrue +\mt@goaheadtrue \ifx\mt@tmp@enc\mt@eui % xetex and unicode font \XeTeXmathchardef\inodot="7 \symmtletterfont "0131 \relax \XeTeXmathchardef\jnodot="7 \symmtletterfont "0237 \relax @@ -3220,7 +3481,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \DeclareMathSymbol{\inodot}{\mathalpha}{mtletterfont}{16} \DeclareMathSymbol{\jnodot}{\mathalpha}{mtletterfont}{17} \else - \ifXeTeX\mt@proceedfalse\else\ifLuaTeX\mt@proceedfalse\else + \ifXeTeX\mt@goaheadfalse\else\ifLuaTeX\mt@goaheadfalse\else \DeclareMathSymbol{\inodot}{\mathalpha}{mtletterfont} {\expandafter\the\expandafter\csname\mt@tmp@enc\string\i\endcsname} \DeclareMathSymbol{\jnodot}{\mathalpha}{mtletterfont} @@ -3228,7 +3489,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \fi\fi \fi\fi\fi\fi\fi \ifmt@defaultimath\else - \ifmt@proceed + \ifmt@goahead \renewcommand{\imath}{\inodot} \renewcommand{\jmath}{\jnodot} \let\mt@oldi\i \let\mt@oldj\j @@ -3340,8 +3601,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \end{macrocode} % \end{macro} % \begin{macro}{subdued} -% v1.15: the subdued option (second half of the implementation). The code -% for the math alphabets added with version v1.15e. +% v1.15: the subdued option (second half of the implementation). % \begin{macrocode} \ifmt@subdued \typeout{** ...entering subdued mode...} @@ -3349,74 +3609,11 @@ defaultbf,defaultit,defaultsf,defaulttt}} \expandafter\SetSymbolFont@ \expandafter\mv@bold\mt@boldmv@letter\symmtletterfont \expandafter\SetSymbolFont@ \expandafter\mv@normal\mt@normalmv@operator\symmtoperatorfont \expandafter\SetSymbolFont@ \expandafter\mv@bold\mt@boldmv@operator\symmtoperatorfont -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@normal\expandafter\mt@normalmv@mathbf\csname Mathbf\space \endcsname\Mathbf -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@normal\expandafter\mt@normalmv@mathit\csname Mathit\space \endcsname\Mathit -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@normal\expandafter\mt@normalmv@mathsf\csname Mathsf\space \endcsname\Mathsf -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@normal\expandafter\mt@normalmv@mathtt\csname Mathtt\space \endcsname\Mathtt -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@bold\expandafter\mt@boldmv@mathbf\csname Mathbf\space \endcsname\Mathbf -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@bold\expandafter\mt@boldmv@mathit\csname Mathit\space \endcsname\Mathit -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@bold\expandafter\mt@boldmv@mathsf\csname Mathsf\space \endcsname\Mathsf -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@bold\expandafter\mt@boldmv@mathtt\csname Mathtt\space \endcsname\Mathtt \typeout{** ...done.} +\fi % \end{macrocode} % \end{macro} % \begin{macrocode} -\else -\ifmt@LGRgreek -\let\Alpha\Alpha@m@t -\let\Beta\Beta@m@t -\let\Gamma\Gamma@m@t -\let\Delta\Delta@m@t -\let\Epsilon\Epsilon@m@t -\let\Zeta\Zeta@m@t -\let\Eta\Eta@m@t -\let\Theta\Theta@m@t -\let\Iota\Iota@m@t -\let\Kappa\Kappa@m@t -\let\Lambda\Lambda@m@t -\let\Mu\Mu@m@t -\let\Nu\Nu@m@t -\let\Xi\Xi@m@t -\let\Omicron\Omicron@m@t -\let\Pi\Pi@m@t -\let\Rho\Rho@m@t -\let\Sigma\Sigma@m@t -\let\Tau\Tau@m@t -\let\Upsilon\Upsilon@m@t -\let\Phi\Phi@m@t -\let\Chi\Chi@m@t -\let\Psi\Psi@m@t -\let\Omega\Omega@m@t -% -\let\alpha\alpha@m@t -\let\beta\beta@m@t -\let\gamma\gamma@m@t -\let\delta\delta@m@t -\let\epsilon\epsilon@m@t -\let\zeta\zeta@m@t -\let\eta\eta@m@t -\let\theta\theta@m@t -\let\iota\iota@m@t -\let\kappa\kappa@m@t -\let\lambda\lambda@m@t -\let\mu\mu@m@t -\let\nu\nu@m@t -\let\xi\xi@m@t -\let\omicron\omicron@m@t -\let\pi\pi@m@t -\let\rho\rho@m@t -\let\varsigma\varsigma@m@t -\let\sigma\sigma@m@t -\let\tau\tau@m@t -\let\upsilon\upsilon@m@t -\let\phi\phi@m@t -\let\chi\chi@m@t -\let\psi\psi@m@t -\let\omega\omega@m@t -\let\Digamma\Digamma@m@t -\let\digamma\digamma@m@t -\fi\fi -%\mt@font@info@on \endinput % \end{macrocode} % \Finale diff --git a/Master/texmf-dist/source/latex/mathastext/mathastext.ins b/Master/texmf-dist/source/latex/mathastext/mathastext.ins index 2d1eb78160a..c1d3a6a4669 100644 --- a/Master/texmf-dist/source/latex/mathastext/mathastext.ins +++ b/Master/texmf-dist/source/latex/mathastext/mathastext.ins @@ -5,8 +5,6 @@ %% Copyright (C) 2011, 2012 by Jean-Francois Burnol %% %% Please report errors to jfbu (at) free.fr -%% Many examples available at -%% http://jf.burnol.free.fr/mathastext.html %% %% This file be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -19,7 +17,7 @@ %% %% --------------- start of docstrip commands ------------------ %% -\def\filedate{2012/10/04} +\def\filedate{2012/10/23} \def\batchfile{mathastext.ins} \input docstrip.tex @@ -39,13 +37,12 @@ \fi} \declarepreamble\mainpreamble -This is a generated file. Copyright (C) 2011, 2012 by Jean-Francois Burnol - Please report errors to jfbu (at) free.fr - Many examples available here: + Many examples available at http://jf.burnol.free.fr/mathastext.html + Please report errors to jfbu (at) free.fr This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either diff --git a/Master/texmf-dist/tex/latex/mathastext/mathastext.sty b/Master/texmf-dist/tex/latex/mathastext/mathastext.sty index 7a97e9ca0de..bdb5db3fac8 100644 --- a/Master/texmf-dist/tex/latex/mathastext/mathastext.sty +++ b/Master/texmf-dist/tex/latex/mathastext/mathastext.sty @@ -5,13 +5,12 @@ %% The original source files were: %% %% mathastext.dtx (with options: `package') -%% This is a generated file. %% %% Copyright (C) 2011, 2012 by Jean-Francois Burnol %% -%% Please report errors to jfbu (at) free.fr -%% Many examples available here: +%% Many examples available at %% http://jf.burnol.free.fr/mathastext.html +%% Please report errors to jfbu (at) free.fr %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -29,11 +28,9 @@ %% unpacking scripts (with extension .ins) which are part %% of the distribution. %% -%% instructions to load the document fonts, -%% and then: \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{mathastext} - [2012/10/22 v1.15e Use the text font in math mode (jfB)] + [2012/10/25 v1.15g Use the text font in math mode (jfB)] \newif\ifXeTeX \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname XeTeXinterchartoks\endcsname\relax @@ -48,14 +45,12 @@ \else \LuaTeXtrue \fi -\def\mt@font@info@off{ -\let\m@stext@info\@font@info -\let\m@stext@warning\@font@warning -\let\@font@info\@gobble -\let\@font@warning\@gobble} -\def\mt@font@info@on{ -\let\@font@info\m@stext@info -\let\@font@warning\m@stext@warning} +%% +\def\mt@oti{OT1}\def\mt@ti{T1}\def\mt@lyi{LY1} +\def\mt@eui{EU1}\def\mt@euii{EU2} +\newif\ifmt@goahead +\newif\ifmt@abort +\newif\ifmt@optionalparam \def\m@t@enc{\encodingdefault} \def\m@t@fam{\familydefault} \def\m@t@ser{\seriesdefault} @@ -67,9 +62,6 @@ \newmuskip\m@t@forallmuskip \def\m@t@existsskip{1mu} \def\m@t@forallskip{.6667mu} -\newif\ifmt@proceed -\newif\ifmt@failed -\def\mt@oti{OT1}\def\mt@ti{T1}\def\mt@eui{EU1}\def\mt@euii{EU2}\def\mt@lyi{LY1} \newif\ifmt@italic \DeclareOption{italic}{\mt@italictrue \def\m@t@ltsh{\itdefault} @@ -169,8 +161,9 @@ noplusnominus,noequal,noexclam,noasterisk,nospecials,nolessnomore}} \DeclareOption{defaultsf}{\mt@defaultsftrue} \newif\ifmt@defaulttt \DeclareOption{defaulttt}{\mt@defaulttttrue} +\newif\ifmt@nonormalbold \DeclareOption{defaultalphabets}{\ExecuteOptions{defaultnormal,defaultrm,% -defaultbf,defaultit,defaultsf,defaulttt}} +defaultbf,defaultit,defaultsf,defaulttt}\mt@nonormalboldtrue} \newif\ifmt@defaultsizes \DeclareOption{defaultmathsizes}{\mt@defaultsizestrue} \newif\ifmt@twelve @@ -185,99 +178,76 @@ defaultbf,defaultit,defaultsf,defaulttt}} {\let\newmcodes@\relax} % brutal, but bye bye and don't come back. {} \ifmt@subdued -\def\mt@reserveda#1\getanddefine@fonts\symletters#2#3\@nil{% +\def\mt@reserved#1\getanddefine@fonts\symletters#2#3\@nil{% \def\mt@normalmv@letter{#2}} -\expandafter\mt@reserveda\mv@normal\@nil -\def\mt@reserveda#1\getanddefine@fonts\symletters#2#3\@nil{% +\expandafter\mt@reserved\mv@normal\@nil +\def\mt@reserved#1\getanddefine@fonts\symletters#2#3\@nil{% \def\mt@boldmv@letter{#2}} -\expandafter\mt@reserveda\mv@bold\@nil -\def\mt@reserveda#1\getanddefine@fonts\symoperators#2#3\@nil{% +\expandafter\mt@reserved\mv@bold\@nil +\def\mt@reserved#1\getanddefine@fonts\symoperators#2#3\@nil{% \def\mt@normalmv@operator{#2}} -\expandafter\mt@reserveda\mv@normal\@nil -\def\mt@reserveda#1\getanddefine@fonts\symoperators#2#3\@nil{% +\expandafter\mt@reserved\mv@normal\@nil +\def\mt@reserved#1\getanddefine@fonts\symoperators#2#3\@nil{% \def\mt@boldmv@operator{#2}} -\expandafter\mt@reserveda\mv@bold\@nil -%% -\edef\mt@funnyoti{\expandafter\expandafter\expandafter\@gobble\expandafter\string\csname OT1\endcsname} -\def\mt@@debut#1/#2/#3/#4/{#1} -\def\mt@@reste#1/#2/#3/#4/{#2/#3/#4} -%% -\edef\mt@tmp{\expandafter\expandafter\expandafter\@gobble\expandafter\string\mt@normalmv@operator} -\edef\mt@debut{\expandafter\mt@@debut\mt@tmp/} -\edef\mt@reste{\expandafter\mt@@reste\mt@tmp/} +\expandafter\mt@reserved\mv@bold\@nil %% \edef\mt@tmp{\encodingdefault} -\ifx\mt@debut\mt@funnyoti -\ifx\mt@tmp\mt@oti -\edef\mt@normalmv@operator{\expandafter\noexpand\csname T1/\mt@reste\endcsname} -\else +\def\mt@reserved#1/#2/#3/#4/{\gdef\mt@debut{#1}\gdef\mt@reste{#2/#3/#4}} +\begingroup\escapechar\m@ne +\xdef\mt@funnyoti{\expandafter\string\csname OT1\endcsname} +\expandafter\expandafter\expandafter +\mt@reserved\expandafter\string\mt@normalmv@operator/ +\endgroup +\ifx\mt@debut\mt@funnyoti\ifx\mt@tmp\mt@oti\def\mt@tmp{T1}\fi\fi \edef\mt@normalmv@operator{\expandafter\noexpand\csname \mt@tmp/\mt@reste\endcsname} -\fi\fi -%% -\edef\mt@tmp{\expandafter\expandafter\expandafter\@gobble\expandafter\string\mt@boldmv@operator} -\edef\mt@debut{\expandafter\mt@@debut\mt@tmp/} -\edef\mt@reste{\expandafter\mt@@reste\mt@tmp/} -%% -\edef\mt@tmp{\encodingdefault} -\ifx\mt@debut\mt@funnyoti -\ifx\mt@tmp\mt@oti -\edef\mt@boldmv@operator{\expandafter\noexpand\csname T1/\mt@reste\endcsname} -\else +\begingroup\escapechar\m@ne +\expandafter\expandafter\expandafter +\mt@reserved\expandafter\string\mt@boldmv@operator/ +\endgroup +\ifx\mt@debut\mt@funnyoti\ifx\mt@tmp\mt@oti\def\mt@tmp{T1}\fi\fi \edef\mt@boldmv@operator{\expandafter\noexpand\csname \mt@tmp/\mt@reste\endcsname} -\fi\fi -\def\mt@reservedc#1#2#3#4{\def\mt@normalmv@mathbf{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@normal\@nil} -\expandafter\mt@reserveda\csname mathbf\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@normalmv@mathit{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@normal\@nil} -\expandafter\mt@reserveda\csname mathit\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@normalmv@mathsf{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@normal\@nil} -\expandafter\mt@reserveda\csname mathsf\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@normalmv@mathtt{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@bold\@nil} -\expandafter\mt@reserveda\csname mathtt\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@boldmv@mathbf{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@bold\@nil} -\expandafter\mt@reserveda\csname mathbf\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@boldmv@mathit{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@bold\@nil} -\expandafter\mt@reserveda\csname mathit\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@boldmv@mathsf{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@bold\@nil} -\expandafter\mt@reserveda\csname mathsf\space\endcsname -\def\mt@reservedc#1#2#3#4{\def\mt@boldmv@mathtt{#4#3}} -\def\mt@reserveda#1{% -\def\mt@reservedb##1\install@mathalphabet#1##2##3\@nil{\mt@reservedc##2}% -\expandafter\mt@reservedb\mv@bold\@nil} -\expandafter\mt@reserveda\csname mathtt\space\endcsname \fi % fin de ce \ifmt@subdued \DeclareSymbolFont{mtoperatorfont} {\m@t@enc}{\m@t@fam}{\m@t@ser}{\m@t@opsh} +\def\operator@font{\mathgroup\symmtoperatorfont} \DeclareSymbolFont{mtletterfont} {\m@t@enc}{\m@t@fam}{\m@t@ser}{\m@t@ltsh} +\let\mt@alph@omicron\mathnormal +\@ifpackageloaded{fourier}{\ifsloped\else\let\mt@alph@omicron\mathrm\fi}{} \DeclareSymbolFontAlphabet{\Mathnormal}{mtletterfont} \DeclareSymbolFontAlphabet{\Mathrm}{mtoperatorfont} +\ifmt@nonormalbold\else + \DeclareMathAlphabet{\mathnormalbold}{\m@t@enc}{\m@t@fam}{\m@t@bold}{\m@t@ltsh} +\fi\ifmt@defaultbf\else \DeclareMathAlphabet{\Mathbf}{\m@t@enc}{\m@t@fam}{\m@t@bold}{\m@t@opsh} +\fi\ifmt@defaultit\else \DeclareMathAlphabet{\Mathit}{\m@t@enc}{\m@t@fam}{\m@t@ser}{\itdefault} +\fi\ifmt@defaultsf\else \DeclareMathAlphabet{\Mathsf}{\m@t@enc}{\sfdefault}{\m@t@ser}{\m@t@opsh} +\fi\ifmt@defaulttt\else \DeclareMathAlphabet{\Mathtt}{\m@t@enc}{\ttdefault}{\m@t@ser}{\m@t@opsh} - \DeclareMathAlphabet{\mathnormalbold} - {\m@t@enc}{\m@t@fam}{\m@t@bold}{\m@t@ltsh} +\fi +\let\mt@original@normal\mathnormal +\let\mt@original@rm\mathrm +\let\mt@original@bf\mathbf +\let\mt@original@it\mathit +\let\mt@original@sf\mathsf +\let\mt@original@tt\mathtt +\def\mt@restorealphabets{% for subdued +\let\mathnormal\mt@original@normal +\let\mathrm\mt@original@rm +\let\mathbf\mt@original@bf +\let\mathit\mt@original@it +\let\mathsf\mt@original@sf +\let\mathtt\mt@original@tt} +\def\mt@setalphabets{% +\ifmt@defaultnormal\else\renewcommand{\mathnormal}{\Mathnormal}\fi +\ifmt@defaultrm\else\renewcommand{\mathrm}{\Mathrm}\fi +\ifmt@defaultbf\else\renewcommand{\mathbf}{\Mathbf}\fi +\ifmt@defaultit\else\renewcommand{\mathit}{\Mathit}\fi +\ifmt@defaultsf\else\renewcommand{\mathsf}{\Mathsf}\fi +\ifmt@defaulttt\else\renewcommand{\mathtt}{\Mathtt}\fi} +\ifmt@subdued\else\mt@setalphabets\fi \def\mt@update@greeksh{ \def\m@t@greek@lsh{\m@t@ltsh} %% default behavior \def\m@t@greek@ush{\m@t@opsh} @@ -338,6 +308,12 @@ defaultbf,defaultit,defaultsf,defaulttt}} \ifmt@italic\else\def\m@t@ltsh{#1}\fi} \newcommand*\MTboldvariant[1]{\def\m@t@bold{#1}} \newcommand*\MTlettershape[1]{\def\m@t@ltsh{#1}} +\@onlypreamble\MTencoding +\@onlypreamble\MTfamily +\@onlypreamble\MTseries +\@onlypreamble\MTshape +\@onlypreamble\MTboldvariant +\@onlypreamble\MTlettershape \let\Mathastextencoding\MTencoding \let\Mathastextfamily\MTfamily \let\Mathastextseries\MTseries @@ -350,14 +326,21 @@ defaultbf,defaultit,defaultsf,defaulttt}} \mt@upgreektrue\mt@itgreekfalse\def\mt@greek@select{0}} \newcommand\MTitGreek{\def\mt@greek@select{1}} \newcommand\MTupGreek{\def\mt@greek@select{2}} +\@onlypreamble\MTitgreek +\@onlypreamble\MTupgreek +\@onlypreamble\MTitGreek +\@onlypreamble\MTitGreek \let\Mathastextitgreek\MTitgreek \let\Mathastextupgreek\MTupgreek \let\MathastextitGreek\MTitGreek \let\MathastextupGreek\MTupGreek \newcommand*\MTgreekfont[1]{\def\m@t@greekfont{#1}} +\@onlypreamble\MTgreekfont \let\Mathastextgreekfont\MTgreekfont \newcommand*\MTexistsskip[1]{\def\m@t@existsskip{#1}} \newcommand*\MTforallskip[1]{\def\m@t@forallskip{#1}} +\@onlypreamble\MTexistsskip +\@onlypreamble\MTforallskip \let\Mathastextexistsskip\MTexistsskip \let\Mathastextforallskip\MTforallskip \newcommand*\MTWillUse[5][\@empty]{ @@ -369,10 +352,11 @@ defaultbf,defaultit,defaultsf,defaulttt}} \ifx\@empty#1 \else %% we check if optional argument was [], this does not detect [ ] - \def\mt@empty{}\def\mt@tmp{#1} - \ifx\mt@empty\mt@tmp \else \MTlettershape{#1}\fi + \def\mt@tmp{#1} + \ifx\@empty\mt@tmp\else\MTlettershape{#1}\fi \fi \Mathastext} +\@onlypreamble\MTWillUse \let\MathastextWillUse\MTWillUse \let\Mathastextwilluse\MTWillUse \newcommand*\Mathastext[1][\@empty]{ @@ -421,7 +405,18 @@ defaultbf,defaultit,defaultsf,defaulttt}} \expandafter\m@t@existsmuskip\m@t@existsskip \expandafter\m@t@forallmuskip\m@t@forallskip \fi\fi -%% +%% v1.15f +\ifmt@nonormalbold\else + \SetMathAlphabet{\mathnormalbold}{normal}{\mt@encoding@normal} + {\mt@family@normal} + {\mt@boldvariant@normal} + {\mt@ltshape@normal} + \SetMathAlphabet{\mathnormalbold}{bold}{\mt@encoding@bold} + {\mt@family@bold} + {\mt@boldvariant@bold} + {\mt@ltshape@bold} +\fi +%% v1.15f adds \ifmt@default.. checks \ifmt@subdued\else \SetSymbolFont{mtletterfont}{normal}{\mt@encoding@normal} {\mt@family@normal} @@ -439,48 +434,43 @@ defaultbf,defaultit,defaultsf,defaulttt}} {\mt@family@bold} {\mt@series@bold} {\mt@shape@bold} +\ifmt@defaultbf\else \SetMathAlphabet{\Mathbf}{normal}{\mt@encoding@normal} {\mt@family@normal} {\mt@series@bold} {\mt@shape@normal} - \SetMathAlphabet{\Mathit}{normal}{\mt@encoding@normal} - {\mt@family@normal} - {\mt@series@normal} - {\mt@itdefault@normal} - \SetMathAlphabet{\Mathsf}{normal}{\mt@encoding@normal} - {\mt@sfdefault@normal} - {\mt@series@normal} - {\mt@shape@normal} - \SetMathAlphabet{\Mathtt}{normal}{\mt@encoding@normal} - {\mt@ttdefault@normal} - {\mt@series@normal} - {\mt@shape@normal} \SetMathAlphabet{\Mathbf}{bold}{\mt@encoding@bold} {\mt@family@bold} {\mt@series@bold} {\mt@shape@bold} +\fi\ifmt@defaultit\else + \SetMathAlphabet{\Mathit}{normal}{\mt@encoding@normal} + {\mt@family@normal} + {\mt@series@normal} + {\mt@itdefault@normal} \SetMathAlphabet{\Mathit}{bold}{\mt@encoding@bold} {\mt@family@bold} {\mt@series@bold} {\mt@itdefault@bold} +\fi\ifmt@defaultsf\else + \SetMathAlphabet{\Mathsf}{normal}{\mt@encoding@normal} + {\mt@sfdefault@normal} + {\mt@series@normal} + {\mt@shape@normal} \SetMathAlphabet{\Mathsf}{bold}{\mt@encoding@bold} {\mt@sfdefault@bold} {\mt@series@bold} {\mt@shape@bold} +\fi\ifmt@defaulttt\else + \SetMathAlphabet{\Mathtt}{normal}{\mt@encoding@normal} + {\mt@ttdefault@normal} + {\mt@series@normal} + {\mt@shape@normal} \SetMathAlphabet{\Mathtt}{bold}{\mt@encoding@bold} {\mt@ttdefault@bold} {\mt@series@bold} {\mt@shape@bold} -\fi % v1.15e moved the \fi here - \SetMathAlphabet{\mathnormalbold}{normal}{\mt@encoding@normal} - {\mt@family@normal} - {\mt@boldvariant@normal} - {\mt@ltshape@normal} - \SetMathAlphabet{\mathnormalbold}{bold}{\mt@encoding@bold} - {\mt@family@bold} - {\mt@boldvariant@bold} - {\mt@ltshape@bold} -%% \fi % former location +\fi\fi % de \ifmt@subdued \ifmt@needeuler \SetSymbolFont{mteulervm}{bold}{U}{zeur}{\mt@boldvariant@normal}{n} \SetMathAlphabet{\MathEulerBold}{normal} @@ -491,6 +481,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \ifmt@needsymbol\SetSymbolFont{mtpsymbol}{bold} {U}{psy}{\mt@boldvariant@normal}{n} \fi +\ifmt@subdued\else \ifmt@LGRgreek \SetSymbolFont{mtlgrfontlower}{normal}{LGR} {\m@t@greekfont}{\mt@series@normal}{\m@t@greek@lsh} @@ -506,22 +497,25 @@ defaultbf,defaultit,defaultsf,defaulttt}} {\m@t@greekfont}{\mt@series@normal}{\m@t@greek@ush} \SetSymbolFont{mtselfGreekfont}{bold}{OT1} {\m@t@greekfont}{\mt@boldvariant@bold}{\m@t@greek@ush} -\fi\fi +\fi\fi\fi +\ifmt@subdued +\typeout{** subdued mode will be activated for the normal and bold math versions} +\else \typeout{** Latin letters in the normal (resp. bold) math versions are now^^J% ** set up to use the fonts \mt@encoding@normal/\mt@family@normal/\mt@series@normal% -(\mt@boldvariant@normal)/\mt@ltshape@normal\space\ifmt@subdued(will be subdued)\fi} -\ifmt@LGRgreek - \typeout{** Greek letters (\m@t@greek@lsh/\m@t@greek@ush) will use - LGR/\m@t@greekfont\space\ifmt@subdued(will be subdued)\fi} +(\mt@boldvariant@normal)/\mt@ltshape@normal} +\ifmt@LGRgreek\typeout{** Greek letters (\m@t@greek@lsh/\m@t@greek@ush) +will use LGR/\m@t@greekfont} \fi -\ifmt@nodigits\else - \typeout{** Other characters (digits, ...) and \protect\log-like names will be^^J% +\ifmt@nodigits\else\typeout{** Other characters (digits, ...) +and \protect\log-like names will be^^J% ** typeset with the \mt@shape@normal\space shape.} - \fi +\fi +\fi \else % optional argument, then we rather do DeclareVersion - \edef\mt@tmp{#1}\def\mt@empty{} - \ifx\mt@tmp\mt@empty + \edef\mt@tmp{#1} + \ifx\mt@tmp\@empty \Mathastext % no infinite loop! \else \MTDeclareVersion[\m@t@ltsh]{#1} @@ -529,8 +523,8 @@ defaultbf,defaultit,defaultsf,defaulttt}} \fi \fi } +\@onlypreamble\Mathastext \newcommand*\MTDeclareVersion[6][\@empty]{ - \mt@font@info@off \edef\mt@version{#2} \DeclareMathVersion{\mt@version} \expandafter\edef\csname mt@encoding@\mt@version\endcsname{#3} @@ -544,13 +538,20 @@ defaultbf,defaultit,defaultsf,defaulttt}} \expandafter\edef\csname mt@ttdefault@\mt@version\endcsname{\ttdefault} \expandafter\edef\csname mt@existsskip@\mt@version\endcsname{\m@t@existsskip} \expandafter\edef\csname mt@forallskip@\mt@version\endcsname{\m@t@forallskip} - \newif\ifmt@reallynoopt\mt@reallynoopttrue + \mt@optionalparamfalse \ifx\@empty#1 \else % we check nevertheless for [] situation, will not work with [ ] - \def\m@t@@tmp{#1}\def\mt@empty{} - \ifx\m@t@@tmp\mt@empty\else\mt@reallynooptfalse\fi + \def\mt@tmp{#1} + \ifx\mt@tmp\@empty\else\mt@optionalparamtrue\fi \fi - \ifmt@reallynoopt + \ifmt@optionalparam + \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@version\endcsname{#1} + \else \ifmt@italic \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{\m@t@ltsh} \typeout{** Latin letters in math version `#2' will use the font @@ -564,21 +565,17 @@ defaultbf,defaultit,defaultsf,defaulttt}} #3/#4/#5(\m@t@bold)/#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@version\endcsname{#1} \fi - \SetMathAlphabet{\Mathbf}{#2}{#3}{#4}{\m@t@bold}{#6} - \SetMathAlphabet{\Mathit}{#2}{#3}{#4}{#5}{\itdefault} - \SetMathAlphabet{\Mathsf}{#2}{#3}{\sfdefault}{#5}{#6} - \SetMathAlphabet{\Mathtt}{#2}{#3}{\ttdefault}{#5}{#6} - \SetMathAlphabet{\mathnormalbold}{#2}{#3}{#4}{\m@t@bold} - {\csname mt@ltshape@\mt@version\endcsname} - \SetSymbolFont{mtoperatorfont}{#2}{#3}{#4}{#5}{#6} + \ifmt@nonormalbold\else + \SetMathAlphabet{\mathnormalbold}{#2}{#3}{#4}{\m@t@bold} + {\csname + mt@ltshape@\mt@version\endcsname} + \fi + \SetSymbolFont{mtoperatorfont}{#2}{#3}{#4}{#5}{#6} + \ifmt@defaultbf\else\SetMathAlphabet{\Mathbf}{#2}{#3}{#4}{\m@t@bold}{#6}\fi + \ifmt@defaultit\else\SetMathAlphabet{\Mathit}{#2}{#3}{#4}{#5}{\itdefault}\fi + \ifmt@defaultsf\else\SetMathAlphabet{\Mathsf}{#2}{#3}{\sfdefault}{#5}{#6}\fi + \ifmt@defaulttt\else\SetMathAlphabet{\Mathtt}{#2}{#3}{\ttdefault}{#5}{#6}\fi \ifmt@needeuler \SetMathAlphabet{\MathEulerBold}{#2}{U}{zeur}{\m@t@bold}{n} \fi @@ -621,34 +618,16 @@ defaultbf,defaultit,defaultsf,defaulttt}} \typeout{** Capital Greek letters (\m@t@greek@lsh@loc/\m@t@greek@ush@loc) will use OT1 font \m@t@greekfont} \fi\fi\fi\fi -\mt@font@info@on } +\@onlypreamble\MTDeclareVersion \let\MathastextDeclareVersion\MTDeclareVersion -\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 -\ifmt@defaultit\else\renewcommand{\mathit}{\Mathit}\fi -\ifmt@defaultsf\else\renewcommand{\mathsf}{\Mathsf}\fi -\ifmt@defaulttt\else\renewcommand{\mathtt}{\Mathtt}\fi -\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 \newcommand*\MTVersion[2][\@empty]{% \mathversion{#2}% \ifx\@empty#1% no optional argument \edef\mt@tmp{#2} \else% we check nevertheless for [] situation, will not work with [ ] - \def\m@t@@tmp{#1}\def\mt@empty{}% - \ifx\m@t@@tmp\mt@empty\edef\mt@tmp{#2}% + \def\mt@tmpa{#1}% + \ifx\mt@tmpa\@empty\edef\mt@tmp{#2}% \else\edef\mt@tmp{#1}% \fi% \fi% @@ -679,69 +658,31 @@ defaultbf,defaultit,defaultsf,defaulttt}} \expandafter\m@t@existsmuskip\csname mt@existsskip@\mt@tmp\endcsname \expandafter\m@t@forallmuskip\csname mt@forallskip@\mt@tmp\endcsname %% v1.15c: extending subdued to LGRgreek +%% v1.15f: subdueing math alphabets in a simpler way than in 1.15e \ifmt@subdued -\ifmt@LGRgreek -\edef\mt@tmp{#2}% -\def\mt@@tmp{normal}% -\ifx\mt@tmp\mt@@tmp\else -\def\mt@@tmp{bold}% -\ifx\mt@tmp\mt@@tmp\else -\let\Alpha\Alpha@m@t -\let\Beta\Beta@m@t -\let\Gamma\Gamma@m@t -\let\Delta\Delta@m@t -\let\Epsilon\Epsilon@m@t -\let\Zeta\Zeta@m@t -\let\Eta\Eta@m@t -\let\Theta\Theta@m@t -\let\Iota\Iota@m@t -\let\Kappa\Kappa@m@t -\let\Lambda\Lambda@m@t -\let\Mu\Mu@m@t -\let\Nu\Nu@m@t -\let\Xi\Xi@m@t -\let\Omicron\Omicron@m@t -\let\Pi\Pi@m@t -\let\Rho\Rho@m@t -\let\Sigma\Sigma@m@t -\let\Tau\Tau@m@t -\let\Upsilon\Upsilon@m@t -\let\Phi\Phi@m@t -\let\Chi\Chi@m@t -\let\Psi\Psi@m@t -\let\Omega\Omega@m@t -\let\alpha\alpha@m@t -\let\beta\beta@m@t -\let\gamma\gamma@m@t -\let\delta\delta@m@t -\let\epsilon\epsilon@m@t -\let\zeta\zeta@m@t -\let\eta\eta@m@t -\let\theta\theta@m@t -\let\iota\iota@m@t -\let\kappa\kappa@m@t -\let\lambda\lambda@m@t -\let\mu\mu@m@t -\let\nu\nu@m@t -\let\xi\xi@m@t -\let\omicron\omicron@m@t -\let\pi\pi@m@t -\let\rho\rho@m@t -\let\varsigma\varsigma@m@t -\let\sigma\sigma@m@t -\let\tau\tau@m@t -\let\upsilon\upsilon@m@t -\let\phi\phi@m@t -\let\chi\chi@m@t -\let\psi\psi@m@t -\let\omega\omega@m@t -\let\Digamma\Digamma@m@t -\let\digamma\digamma@m@t -\fi\fi\fi\fi +\edef\mt@tmp{#2}\def\mt@tmpa{normal}% +\ifx\mt@tmp\mt@tmpa +\mt@restorealphabets\ifmt@LGRgreek\mt@restoregreek\fi +\else +\def\mt@tmpa{bold}% +\ifx\mt@tmp\mt@tmpa +\mt@restorealphabets\ifmt@LGRgreek\mt@restoregreek\fi +\else +\mt@setalphabets\ifmt@LGRgreek\mt@setuplgrgreek\fi +\fi\fi\fi } \let\MathastextVersion\MTVersion \let\Mathastextversion\MTVersion \let\MTversion\MTVersion +\Mathastext +\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 \DeclareMathSymbol{a}{\mathalpha}{mtletterfont}{`a} \DeclareMathSymbol{b}{\mathalpha}{mtletterfont}{`b} \DeclareMathSymbol{c}{\mathalpha}{mtletterfont}{`c} @@ -847,7 +788,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} %% marche pas pour le moment car \luatexUmathcodenum retourne parfois un %% legacy mathcode, parfois un Unicode mathcode, \`a mon avis c'est un bug %% de LuaLatex. En fait Taco H me dit que la prochaine version -%% réglera ce problčme. \luatexUmathchardef\mt@minus@sign="2 "2 "0\relax +%% r\'eglera ce probl\`eme. \luatexUmathchardef\mt@minus@sign="2 "2 "0\relax \mathchardef\mt@minus@sign=8704\relax % "2200 \else \mathchardef\mt@minus@sign=\mathcode`\-\relax @@ -877,7 +818,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \ifx\mt@tmp@enc\mt@lyi % LY1 \DeclareMathSymbol{-}{\mathbin}{mtoperatorfont}{150} \else % make sure we have neither xetex nor luatex - \ifXeTeX\mt@failedtrue\else\ifLuaTeX\mt@failedtrue\else + \ifXeTeX\mt@aborttrue\else\ifLuaTeX\mt@aborttrue\else \DeclareMathSymbol{-}{\mathbin}{mtoperatorfont} {\expandafter\the\expandafter\csname\mt@tmp@enc\string\textendash\endcsname} \fi\fi @@ -897,18 +838,18 @@ defaultbf,defaultit,defaultsf,defaulttt}} \ifx\mt@tmp@enc\mt@lyi % LY1 \DeclareMathSymbol{-}{\mathbin}{mtoperatorfont}{151} \else % make sure we have neither xetex nor luatex - \ifXeTeX\mt@failedtrue\else\ifLuaTeX\mt@failedtrue\else + \ifXeTeX\mt@aborttrue\else\ifLuaTeX\mt@aborttrue\else \DeclareMathSymbol{-}{\mathbin}{mtoperatorfont} {\expandafter\the\expandafter\csname\mt@tmp@enc\string\textemdash\endcsname} \fi\fi \fi\fi\fi\fi\fi} \ifmt@nominus\else -\mt@failedfalse +\mt@abortfalse \ifmt@endash\do@the@endashstuff\else \ifmt@emdash\do@the@emdashstuff\else \DeclareMathSymbol{-}{\mathbin}{\mt@font@tbu}{"2D} \fi\fi -\ifmt@failed\DeclareMathSymbol{-}{\mathbin}{\mt@font@tbu}{"2D}\fi +\ifmt@abort\DeclareMathSymbol{-}{\mathbin}{\mt@font@tbu}{"2D}\fi \fi %%\def\hbar{{\mathchar'26\mkern-9muh}} %% (original definition from latex.ltx) @@ -991,35 +932,29 @@ defaultbf,defaultit,defaultsf,defaulttt}} {\mathclose}{\mt@font@tbu}{"7D}{largesymbols}{"09} \fi \ifmt@nospecials\else -\ifXeTeX % more than 16 math families possible - \XeTeXmathchardef\mt@mmode@hash=7 \symmtoperatorfont "0023 \relax - \XeTeXmathchardef\mt@mmode@dollar=7 \symmtoperatorfont "0024 \relax - \XeTeXmathchardef\mt@mmode@percent=7 \symmtoperatorfont "0025 \relax - \XeTeXmathchardef\mt@mmode@ampersand=7 \symmtoperatorfont "0026 \relax +\ifXeTeX + \XeTeXmathcode`\#=7 \symmtoperatorfont "0023 \relax + \XeTeXmathchardef\mathdollar=7 \symmtoperatorfont "0024 \relax + \XeTeXmathcode`\%=7 \symmtoperatorfont "0025 \relax + \XeTeXmathcode`\&=7 \symmtoperatorfont "0026 \relax +\else +\ifLuaTeX + \luatexUmathcode`\#=7 \symmtoperatorfont "0023 \relax + \luatexUmathchardef\mathdollar=7 \symmtoperatorfont "0024 \relax + \luatexUmathcode`\%=7 \symmtoperatorfont "0025 \relax + \luatexUmathcode`\&=7 \symmtoperatorfont "0026 \relax \else -\ifLuaTeX % I think no more than 16 math families are possible but this way I -%% can check the stuff (as I can't install xetex on my system) - \luatexUmathchardef\mt@mmode@hash=7 \symmtoperatorfont "0023 \relax - \luatexUmathchardef\mt@mmode@dollar=7 \symmtoperatorfont "0024 \relax - \luatexUmathchardef\mt@mmode@percent=7 \symmtoperatorfont "0025 \relax - \luatexUmathchardef\mt@mmode@ampersand=7 \symmtoperatorfont "0026 \relax -\else % hope that there are no more than 16 math families! \count255=\symmtoperatorfont \multiply\count255 by 256 \advance\count255 by 28707 % "7023 - \mathchardef\mt@mmode@hash\count255 + \mathcode`\#\count255 \advance\count255 by 1 - \mathchardef\mt@mmode@dollar\count255 + \mathchardef\mathdollar\count255 \advance\count255 by 1 - \mathchardef\mt@mmode@percent\count255 + \mathcode`\%\count255 \advance\count255 by 1 - \mathchardef\mt@mmode@ampersand\count255 -\fi\fi -\renewcommand{\#}{\ifmmode\mt@mmode@hash\else\char35\relax\fi} -\renewcommand{\$}{\ifmmode\mt@mmode@dollar\else\char36\relax\fi} -\renewcommand{\%}{\ifmmode\mt@mmode@percent\else\char37\relax\fi} -\renewcommand{\&}{\ifmmode\mt@mmode@ampersand\else\char38\relax\fi} -\fi + \mathcode`\&\count255 +\fi\fi\fi \ifmt@symbolmisc \let\mst@prod\prod \let\defaultprod\prod @@ -1099,7 +1034,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \DeclareMathSymbol{\DotTriangle}{\mathord}{mtpsymbol}{92} \fi \let\mt@mathord\mathalpha -\mt@proceedtrue +\mt@goaheadtrue \ifmt@selfGreek \def\mt@font@tbu{mtselfGreekfont} \else @@ -1111,14 +1046,14 @@ defaultbf,defaultit,defaultsf,defaulttt}} \let\mt@mathord\mathord \else \ifmt@LGRgreek - \mt@proceedfalse + \mt@goaheadfalse \else - \mt@proceedfalse + \mt@goaheadfalse \ifx\omicron\undefined - \newcommand{\omicron}{\mt@saved@mathnormal{o}} + \newcommand{\omicron}{\mt@alph@omicron{o}} \fi \fi\fi\fi\fi -\ifmt@proceed +\ifmt@goahead \DeclareMathSymbol{\Alpha}{\mt@mathord}{\mt@font@tbu}{"41} \DeclareMathSymbol{\Beta}{\mt@mathord}{\mt@font@tbu}{"42} \DeclareMathSymbol{\Epsilon}{\mt@mathord}{\mt@font@tbu}{"45} @@ -1164,7 +1099,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \DeclareMathSymbol\Omega {\mathalpha}{\mt@font@tbu}{"0A} \fi \fi -\ifmt@proceed +\ifmt@goahead \ifmt@eulergreek \DeclareMathSymbol{\alpha} {\mathalpha}{mteulervm}{"0B} \DeclareMathSymbol{\beta} {\mathalpha}{mteulervm}{"0C} @@ -1237,61 +1172,222 @@ defaultbf,defaultit,defaultsf,defaulttt}} \DeclareMathSymbol{\wp}{\mathord}{mtpsymbol}{"C3} \fi\fi\fi %% -\ifmt@LGRgreek % internal names for subdued implementation (1.15c) -\DeclareMathSymbol{\Alpha@m@t}{\mathalpha}{mtlgrfontupper}{65} -\DeclareMathSymbol{\Beta@m@t}{\mathalpha}{mtlgrfontupper}{66} -\DeclareMathSymbol{\Gamma@m@t}{\mathalpha}{mtlgrfontupper}{71} -\DeclareMathSymbol{\Delta@m@t}{\mathalpha}{mtlgrfontupper}{68} -\DeclareMathSymbol{\Epsilon@m@t}{\mathalpha}{mtlgrfontupper}{69} -\DeclareMathSymbol{\Zeta@m@t}{\mathalpha}{mtlgrfontupper}{90} -\DeclareMathSymbol{\Eta@m@t}{\mathalpha}{mtlgrfontupper}{72} -\DeclareMathSymbol{\Theta@m@t}{\mathalpha}{mtlgrfontupper}{74} -\DeclareMathSymbol{\Iota@m@t}{\mathalpha}{mtlgrfontupper}{73} -\DeclareMathSymbol{\Kappa@m@t}{\mathalpha}{mtlgrfontupper}{75} -\DeclareMathSymbol{\Lambda@m@t}{\mathalpha}{mtlgrfontupper}{76} -\DeclareMathSymbol{\Mu@m@t}{\mathalpha}{mtlgrfontupper}{77} -\DeclareMathSymbol{\Nu@m@t}{\mathalpha}{mtlgrfontupper}{78} -\DeclareMathSymbol{\Xi@m@t}{\mathalpha}{mtlgrfontupper}{88} -\DeclareMathSymbol{\Omicron@m@t}{\mathalpha}{mtlgrfontupper}{79} -\DeclareMathSymbol{\Pi@m@t}{\mathalpha}{mtlgrfontupper}{80} -\DeclareMathSymbol{\Rho@m@t}{\mathalpha}{mtlgrfontupper}{82} -\DeclareMathSymbol{\Sigma@m@t}{\mathalpha}{mtlgrfontupper}{83} -\DeclareMathSymbol{\Tau@m@t}{\mathalpha}{mtlgrfontupper}{84} -\DeclareMathSymbol{\Upsilon@m@t}{\mathalpha}{mtlgrfontupper}{85} -\DeclareMathSymbol{\Phi@m@t}{\mathalpha}{mtlgrfontupper}{70} -\DeclareMathSymbol{\Chi@m@t}{\mathalpha}{mtlgrfontupper}{81} -\DeclareMathSymbol{\Psi@m@t}{\mathalpha}{mtlgrfontupper}{89} -\DeclareMathSymbol{\Omega@m@t}{\mathalpha}{mtlgrfontupper}{87} -\DeclareMathSymbol{\alpha@m@t}{\mathalpha}{mtlgrfontlower}{97} -\DeclareMathSymbol{\beta@m@t}{\mathalpha}{mtlgrfontlower}{98} -\DeclareMathSymbol{\gamma@m@t}{\mathalpha}{mtlgrfontlower}{103} -\DeclareMathSymbol{\delta@m@t}{\mathalpha}{mtlgrfontlower}{100} -\DeclareMathSymbol{\epsilon@m@t}{\mathalpha}{mtlgrfontlower}{101} -\DeclareMathSymbol{\zeta@m@t}{\mathalpha}{mtlgrfontlower}{122} -\DeclareMathSymbol{\eta@m@t}{\mathalpha}{mtlgrfontlower}{104} -\DeclareMathSymbol{\theta@m@t}{\mathalpha}{mtlgrfontlower}{106} -\DeclareMathSymbol{\iota@m@t}{\mathalpha}{mtlgrfontlower}{105} -\DeclareMathSymbol{\kappa@m@t}{\mathalpha}{mtlgrfontlower}{107} -\DeclareMathSymbol{\lambda@m@t}{\mathalpha}{mtlgrfontlower}{108} -\DeclareMathSymbol{\mu@m@t}{\mathalpha}{mtlgrfontlower}{109} -\DeclareMathSymbol{\nu@m@t}{\mathalpha}{mtlgrfontlower}{110} -\DeclareMathSymbol{\xi@m@t}{\mathalpha}{mtlgrfontlower}{120} -\DeclareMathSymbol{\omicron@m@t}{\mathalpha}{mtlgrfontlower}{111} -\DeclareMathSymbol{\pi@m@t}{\mathalpha}{mtlgrfontlower}{112} -\DeclareMathSymbol{\rho@m@t}{\mathalpha}{mtlgrfontlower}{114} -\DeclareMathSymbol{\varsigma@m@t}{\mathalpha}{mtlgrfontlower}{99} -\DeclareMathSymbol{\sigma@m@t}{\mathalpha}{mtlgrfontlower}{115} -\DeclareMathSymbol{\tau@m@t}{\mathalpha}{mtlgrfontlower}{116} -\DeclareMathSymbol{\upsilon@m@t}{\mathalpha}{mtlgrfontlower}{117} -\DeclareMathSymbol{\phi@m@t}{\mathalpha}{mtlgrfontlower}{102} -\DeclareMathSymbol{\chi@m@t}{\mathalpha}{mtlgrfontlower}{113} -\DeclareMathSymbol{\psi@m@t}{\mathalpha}{mtlgrfontlower}{121} -\DeclareMathSymbol{\omega@m@t}{\mathalpha}{mtlgrfontlower}{119} -\DeclareMathSymbol{\digamma@m@t}{\mathalpha}{mtlgrfontlower}{147} -\DeclareMathSymbol{\Digamma@m@t}{\mathalpha}{mtlgrfontlower}{195} +\ifmt@LGRgreek % internal names for subdued implementation (1.15c-1.15e) +\let\m@t@origAlpha\Alpha +\let\m@t@origBeta\Beta +\let\m@t@origGamma\Gamma +\let\m@t@origDelta\Delta +\let\m@t@origEpsilon\Epsilon +\let\m@t@origZeta\Zeta +\let\m@t@origEta\Eta +\let\m@t@origTheta\Theta +\let\m@t@origIota\Iota +\let\m@t@origKappa\Kappa +\let\m@t@origLambda\Lambda +\let\m@t@origMu\Mu +\let\m@t@origNu\Nu +\let\m@t@origXi\Xi +\let\m@t@origOmicron\Omicron +\let\m@t@origPi\Pi +\let\m@t@origRho\Rho +\let\m@t@origSigma\Sigma +\let\m@t@origTau\Tau +\let\m@t@origUpsilon\Upsilon +\let\m@t@origPhi\Phi +\let\m@t@origChi\Chi +\let\m@t@origPsi\Psi +\let\m@t@origOmega\Omega +\let\m@t@origalpha\alpha +\let\m@t@origbeta\beta +\let\m@t@origgamma\gamma +\let\m@t@origdelta\delta +\let\m@t@origepsilon\epsilon +\let\m@t@origzeta\zeta +\let\m@t@origeta\eta +\let\m@t@origtheta\theta +\let\m@t@origiota\iota +\let\m@t@origkappa\kappa +\let\m@t@origlambda\lambda +\let\m@t@origmu\mu +\let\m@t@orignu\nu +\let\m@t@origxi\xi +\let\m@t@origomicron\omicron +\let\m@t@origpi\pi +\let\m@t@origrho\rho +\let\m@t@origvarsigma\varsigma +\let\m@t@origsigma\sigma +\let\m@t@origtau\tau +\let\m@t@origupsilon\upsilon +\let\m@t@origphi\phi +\let\m@t@origchi\chi +\let\m@t@origpsi\psi +\let\m@t@origomega\omega +\let\m@t@origDigamma\Digamma +\let\m@t@origdigamma\digamma +%% +\def\mt@restoregreek{% +\let\Alpha\m@t@origAlpha +\let\Beta\m@t@origBeta +\let\Gamma\m@t@origGamma +\let\Delta\m@t@origDelta +\let\Epsilon\m@t@origEpsilon +\let\Zeta\m@t@origZeta +\let\Eta\m@t@origEta +\let\Theta\m@t@origTheta +\let\Iota\m@t@origIota +\let\Kappa\m@t@origKappa +\let\Lambda\m@t@origLambda +\let\Mu\m@t@origMu +\let\Nu\m@t@origNu +\let\Xi\m@t@origXi +\let\Omicron\m@t@origOmicron +\let\Pi\m@t@origPi +\let\Rho\m@t@origRho +\let\Sigma\m@t@origSigma +\let\Tau\m@t@origTau +\let\Upsilon\m@t@origUpsilon +\let\Phi\m@t@origPhi +\let\Chi\m@t@origChi +\let\Psi\m@t@origPsi +\let\Omega\m@t@origOmega +\let\alpha\m@t@origalpha +\let\beta\m@t@origbeta +\let\gamma\m@t@origgamma +\let\delta\m@t@origdelta +\let\epsilon\m@t@origepsilon +\let\zeta\m@t@origzeta +\let\eta\m@t@origeta +\let\theta\m@t@origtheta +\let\iota\m@t@origiota +\let\kappa\m@t@origkappa +\let\lambda\m@t@origlambda +\let\mu\m@t@origmu +\let\nu\m@t@orignu +\let\xi\m@t@origxi +\let\omicron\m@t@origomicron +\let\pi\m@t@origpi +\let\rho\m@t@origrho +\let\varsigma\m@t@origvarsigma +\let\sigma\m@t@origsigma +\let\tau\m@t@origtau +\let\upsilon\m@t@origupsilon +\let\phi\m@t@origphi +\let\chi\m@t@origchi +\let\psi\m@t@origpsi +\let\omega\m@t@origomega +\let\Digamma\m@t@origDigamma +\let\digamma\m@t@origdigamma +} +%% +\def\mt@setuplgrgreek{% +\let\Alpha\m@t@Alpha +\let\Beta\m@t@Beta +\let\Gamma\m@t@Gamma +\let\Delta\m@t@Delta +\let\Epsilon\m@t@Epsilon +\let\Zeta\m@t@Zeta +\let\Eta\m@t@Eta +\let\Theta\m@t@Theta +\let\Iota\m@t@Iota +\let\Kappa\m@t@Kappa +\let\Lambda\m@t@Lambda +\let\Mu\m@t@Mu +\let\Nu\m@t@Nu +\let\Xi\m@t@Xi +\let\Omicron\m@t@Omicron +\let\Pi\m@t@Pi +\let\Rho\m@t@Rho +\let\Sigma\m@t@Sigma +\let\Tau\m@t@Tau +\let\Upsilon\m@t@Upsilon +\let\Phi\m@t@Phi +\let\Chi\m@t@Chi +\let\Psi\m@t@Psi +\let\Omega\m@t@Omega +\let\alpha\m@t@alpha +\let\beta\m@t@beta +\let\gamma\m@t@gamma +\let\delta\m@t@delta +\let\epsilon\m@t@epsilon +\let\zeta\m@t@zeta +\let\eta\m@t@eta +\let\theta\m@t@theta +\let\iota\m@t@iota +\let\kappa\m@t@kappa +\let\lambda\m@t@lambda +\let\mu\m@t@mu +\let\nu\m@t@nu +\let\xi\m@t@xi +\let\omicron\m@t@omicron +\let\pi\m@t@pi +\let\rho\m@t@rho +\let\varsigma\m@t@varsigma +\let\sigma\m@t@sigma +\let\tau\m@t@tau +\let\upsilon\m@t@upsilon +\let\phi\m@t@phi +\let\chi\m@t@chi +\let\psi\m@t@psi +\let\omega\m@t@omega +\let\Digamma\m@t@Digamma +\let\digamma\m@t@digamma +} +%% +\DeclareMathSymbol{\m@t@Alpha}{\mathalpha}{mtlgrfontupper}{65} +\DeclareMathSymbol{\m@t@Beta}{\mathalpha}{mtlgrfontupper}{66} +\DeclareMathSymbol{\m@t@Gamma}{\mathalpha}{mtlgrfontupper}{71} +\DeclareMathSymbol{\m@t@Delta}{\mathalpha}{mtlgrfontupper}{68} +\DeclareMathSymbol{\m@t@Epsilon}{\mathalpha}{mtlgrfontupper}{69} +\DeclareMathSymbol{\m@t@Zeta}{\mathalpha}{mtlgrfontupper}{90} +\DeclareMathSymbol{\m@t@Eta}{\mathalpha}{mtlgrfontupper}{72} +\DeclareMathSymbol{\m@t@Theta}{\mathalpha}{mtlgrfontupper}{74} +\DeclareMathSymbol{\m@t@Iota}{\mathalpha}{mtlgrfontupper}{73} +\DeclareMathSymbol{\m@t@Kappa}{\mathalpha}{mtlgrfontupper}{75} +\DeclareMathSymbol{\m@t@Lambda}{\mathalpha}{mtlgrfontupper}{76} +\DeclareMathSymbol{\m@t@Mu}{\mathalpha}{mtlgrfontupper}{77} +\DeclareMathSymbol{\m@t@Nu}{\mathalpha}{mtlgrfontupper}{78} +\DeclareMathSymbol{\m@t@Xi}{\mathalpha}{mtlgrfontupper}{88} +\DeclareMathSymbol{\m@t@Omicron}{\mathalpha}{mtlgrfontupper}{79} +\DeclareMathSymbol{\m@t@Pi}{\mathalpha}{mtlgrfontupper}{80} +\DeclareMathSymbol{\m@t@Rho}{\mathalpha}{mtlgrfontupper}{82} +\DeclareMathSymbol{\m@t@Sigma}{\mathalpha}{mtlgrfontupper}{83} +\DeclareMathSymbol{\m@t@Tau}{\mathalpha}{mtlgrfontupper}{84} +\DeclareMathSymbol{\m@t@Upsilon}{\mathalpha}{mtlgrfontupper}{85} +\DeclareMathSymbol{\m@t@Phi}{\mathalpha}{mtlgrfontupper}{70} +\DeclareMathSymbol{\m@t@Chi}{\mathalpha}{mtlgrfontupper}{81} +\DeclareMathSymbol{\m@t@Psi}{\mathalpha}{mtlgrfontupper}{89} +\DeclareMathSymbol{\m@t@Omega}{\mathalpha}{mtlgrfontupper}{87} +\DeclareMathSymbol{\m@t@alpha}{\mathalpha}{mtlgrfontlower}{97} +\DeclareMathSymbol{\m@t@beta}{\mathalpha}{mtlgrfontlower}{98} +\DeclareMathSymbol{\m@t@gamma}{\mathalpha}{mtlgrfontlower}{103} +\DeclareMathSymbol{\m@t@delta}{\mathalpha}{mtlgrfontlower}{100} +\DeclareMathSymbol{\m@t@epsilon}{\mathalpha}{mtlgrfontlower}{101} +\DeclareMathSymbol{\m@t@zeta}{\mathalpha}{mtlgrfontlower}{122} +\DeclareMathSymbol{\m@t@eta}{\mathalpha}{mtlgrfontlower}{104} +\DeclareMathSymbol{\m@t@theta}{\mathalpha}{mtlgrfontlower}{106} +\DeclareMathSymbol{\m@t@iota}{\mathalpha}{mtlgrfontlower}{105} +\DeclareMathSymbol{\m@t@kappa}{\mathalpha}{mtlgrfontlower}{107} +\DeclareMathSymbol{\m@t@lambda}{\mathalpha}{mtlgrfontlower}{108} +\DeclareMathSymbol{\m@t@mu}{\mathalpha}{mtlgrfontlower}{109} +\DeclareMathSymbol{\m@t@nu}{\mathalpha}{mtlgrfontlower}{110} +\DeclareMathSymbol{\m@t@xi}{\mathalpha}{mtlgrfontlower}{120} +\DeclareMathSymbol{\m@t@omicron}{\mathalpha}{mtlgrfontlower}{111} +\DeclareMathSymbol{\m@t@pi}{\mathalpha}{mtlgrfontlower}{112} +\DeclareMathSymbol{\m@t@rho}{\mathalpha}{mtlgrfontlower}{114} +\DeclareMathSymbol{\m@t@varsigma}{\mathalpha}{mtlgrfontlower}{99} +\DeclareMathSymbol{\m@t@sigma}{\mathalpha}{mtlgrfontlower}{115} +\DeclareMathSymbol{\m@t@tau}{\mathalpha}{mtlgrfontlower}{116} +\DeclareMathSymbol{\m@t@upsilon}{\mathalpha}{mtlgrfontlower}{117} +\DeclareMathSymbol{\m@t@phi}{\mathalpha}{mtlgrfontlower}{102} +\DeclareMathSymbol{\m@t@chi}{\mathalpha}{mtlgrfontlower}{113} +\DeclareMathSymbol{\m@t@psi}{\mathalpha}{mtlgrfontlower}{121} +\DeclareMathSymbol{\m@t@omega}{\mathalpha}{mtlgrfontlower}{119} +\DeclareMathSymbol{\m@t@digamma}{\mathalpha}{mtlgrfontlower}{147} +\DeclareMathSymbol{\m@t@Digamma}{\mathalpha}{mtlgrfontlower}{195} +\ifmt@subdued\else\mt@setuplgrgreek\fi \fi \edef\mt@tmp@enc{\encodingdefault} -\mt@proceedtrue +\mt@goaheadtrue \ifx\mt@tmp@enc\mt@eui % xetex and unicode font \XeTeXmathchardef\inodot="7 \symmtletterfont "0131 \relax \XeTeXmathchardef\jnodot="7 \symmtletterfont "0237 \relax @@ -1312,7 +1408,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \DeclareMathSymbol{\inodot}{\mathalpha}{mtletterfont}{16} \DeclareMathSymbol{\jnodot}{\mathalpha}{mtletterfont}{17} \else - \ifXeTeX\mt@proceedfalse\else\ifLuaTeX\mt@proceedfalse\else + \ifXeTeX\mt@goaheadfalse\else\ifLuaTeX\mt@goaheadfalse\else \DeclareMathSymbol{\inodot}{\mathalpha}{mtletterfont} {\expandafter\the\expandafter\csname\mt@tmp@enc\string\i\endcsname} \DeclareMathSymbol{\jnodot}{\mathalpha}{mtletterfont} @@ -1320,7 +1416,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \fi\fi \fi\fi\fi\fi\fi \ifmt@defaultimath\else - \ifmt@proceed + \ifmt@goahead \renewcommand{\imath}{\inodot} \renewcommand{\jmath}{\jnodot} \let\mt@oldi\i \let\mt@oldj\j @@ -1403,69 +1499,8 @@ defaultbf,defaultit,defaultsf,defaulttt}} \expandafter\SetSymbolFont@ \expandafter\mv@bold\mt@boldmv@letter\symmtletterfont \expandafter\SetSymbolFont@ \expandafter\mv@normal\mt@normalmv@operator\symmtoperatorfont \expandafter\SetSymbolFont@ \expandafter\mv@bold\mt@boldmv@operator\symmtoperatorfont -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@normal\expandafter\mt@normalmv@mathbf\csname Mathbf\space \endcsname\Mathbf -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@normal\expandafter\mt@normalmv@mathit\csname Mathit\space \endcsname\Mathit -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@normal\expandafter\mt@normalmv@mathsf\csname Mathsf\space \endcsname\Mathsf -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@normal\expandafter\mt@normalmv@mathtt\csname Mathtt\space \endcsname\Mathtt -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@bold\expandafter\mt@boldmv@mathbf\csname Mathbf\space \endcsname\Mathbf -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@bold\expandafter\mt@boldmv@mathit\csname Mathit\space \endcsname\Mathit -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@bold\expandafter\mt@boldmv@mathsf\csname Mathsf\space \endcsname\Mathsf -\expandafter\expandafter\expandafter\SetMathAlphabet@ \expandafter\expandafter\expandafter\mv@bold\expandafter\mt@boldmv@mathtt\csname Mathtt\space \endcsname\Mathtt \typeout{** ...done.} -\else -\ifmt@LGRgreek -\let\Alpha\Alpha@m@t -\let\Beta\Beta@m@t -\let\Gamma\Gamma@m@t -\let\Delta\Delta@m@t -\let\Epsilon\Epsilon@m@t -\let\Zeta\Zeta@m@t -\let\Eta\Eta@m@t -\let\Theta\Theta@m@t -\let\Iota\Iota@m@t -\let\Kappa\Kappa@m@t -\let\Lambda\Lambda@m@t -\let\Mu\Mu@m@t -\let\Nu\Nu@m@t -\let\Xi\Xi@m@t -\let\Omicron\Omicron@m@t -\let\Pi\Pi@m@t -\let\Rho\Rho@m@t -\let\Sigma\Sigma@m@t -\let\Tau\Tau@m@t -\let\Upsilon\Upsilon@m@t -\let\Phi\Phi@m@t -\let\Chi\Chi@m@t -\let\Psi\Psi@m@t -\let\Omega\Omega@m@t -\let\alpha\alpha@m@t -\let\beta\beta@m@t -\let\gamma\gamma@m@t -\let\delta\delta@m@t -\let\epsilon\epsilon@m@t -\let\zeta\zeta@m@t -\let\eta\eta@m@t -\let\theta\theta@m@t -\let\iota\iota@m@t -\let\kappa\kappa@m@t -\let\lambda\lambda@m@t -\let\mu\mu@m@t -\let\nu\nu@m@t -\let\xi\xi@m@t -\let\omicron\omicron@m@t -\let\pi\pi@m@t -\let\rho\rho@m@t -\let\varsigma\varsigma@m@t -\let\sigma\sigma@m@t -\let\tau\tau@m@t -\let\upsilon\upsilon@m@t -\let\phi\phi@m@t -\let\chi\chi@m@t -\let\psi\psi@m@t -\let\omega\omega@m@t -\let\Digamma\Digamma@m@t -\let\digamma\digamma@m@t -\fi\fi +\fi \endinput %% %% End of file `mathastext.sty'. -- cgit v1.2.3