diff options
author | Karl Berry <karl@freefriends.org> | 2013-09-05 22:37:53 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-09-05 22:37:53 +0000 |
commit | 9d9546d7063ae0cd4c8d42e86c3fd58e338b4314 (patch) | |
tree | 733fcb06d26f6467ce9590f3939c96fb8ea6de2f /Master/texmf-dist/doc/latex/mathastext/mathastexttestalphabets.tex | |
parent | 708b6d464538f70ef04e1f2128802bbff99da2e8 (diff) |
mathastext (5sep13)
git-svn-id: svn://tug.org/texlive/trunk@31578 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/mathastext/mathastexttestalphabets.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/mathastext/mathastexttestalphabets.tex | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/mathastext/mathastexttestalphabets.tex b/Master/texmf-dist/doc/latex/mathastext/mathastexttestalphabets.tex new file mode 100644 index 00000000000..05a95786181 --- /dev/null +++ b/Master/texmf-dist/doc/latex/mathastext/mathastexttestalphabets.tex @@ -0,0 +1,255 @@ +\def\testfileincipit{Test file to accompany \texttt{mathastext} +version \texttt{1.3} of \texttt{2013/09/02.}} +%% +%% Package `mathastext', for LaTeX2e. +%% Author: Jean-Francois Burnol +%% Copyright (C) 2011, 2012, 2013 by Jean-Francois Burnol +%% +%% This file `mathastexttestalphabets.tex' is for testing the extended +%% scope of the math alphabet commands with package `mathastext', via +%% the package command \MTnonlettersobeymathxx. +%% +%% Compile either with latex, pdflatex, lualatex (pdf output) or xelatex. +%% +%% See `mathastext.dtx' for the copyright and conditions of distribution or +%% modification. +%% +\documentclass{article} +\usepackage[hscale=0.66]{geometry} +\usepackage{amsmath} +\usepackage{mathtools}\mathtoolsset{centercolon} +%% WARNING THIS IS INCOMPATIBLE WITH BABEL+FRENCHB +%% BUT WITH MATHASTEXT LOADED THIS IS CORRECTED +%% *IF* \MTnonlettersobeymathxx IS MADE USE OF. +\usepackage{iftex} +\ifXeTeX +\usepackage[no-math]{fontspec} +\setmainfont[ExternalLocation, + Mapping=tex-text, + BoldFont=texgyretermes-bold, + ItalicFont=texgyretermes-italic, + BoldItalicFont=texgyretermes-bolditalic]{texgyretermes-regular} +\setmonofont[ExternalLocation, + Mapping=tex-text]{texgyrecursor-regular} +\setsansfont[ExternalLocation, + Mapping=tex-text]{texgyreheros-regular} +\else +\ifLuaTeX % for pdf output +\usepackage[no-math]{fontspec} +\setmainfont[Ligatures=TeX]{TeX Gyre Termes} +\setmonofont[Ligatures=TeX]{TeX Gyre Cursor} +\setsansfont[Ligatures=TeX]{TeX Gyre Heros} +\else +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{tgtermes} +\usepackage{tgcursor} +\usepackage{tgheros} +\fi\fi +\usepackage{metalogo} % must be loaded /after/ [no-math]fontspec +\usepackage[french]{babel} +\usepackage[italic,asterisk]{mathastext} +\MTlettershape{n}\Mathastext[upright] +\MTnonlettersobeymathxx +\MTexplicitbracesobeymathxx +\delimitershortfall-1pt +\begin{document} +\testfileincipit + +\begin{center} + \bfseries Two features of \texttt{mathastext}:\\ +extended scope of the math alphabets and added italic corrections\par +\end{center} + +The package makes +${!}\,{?}\,{,}\,{:}\,{;}\,{+}\,{-}\,{=}\,{(}\,{)}\,{[}\,{]}\,{<}\,{>}\,{\{}\,{\}}$, +the asterisk $*$, and $.\,/\,\vert\,\backslash\,{\#}\,{\$}\,{\%}\,{\&}$ obey the +math alphabet commands (this is the maximal list, some characters may have been +excluded by the corresponding package options). For the characters listed first +the mechanism involves a `mathematical activation'. + +As this process may create incompatibilities, it will be put into action +for +${!}\,{?}\,{,}\,{:}\,{;}\,{+}\,{-}\,{=}\,{(}\,{)}\,{[}\,{]}\,{<}\,{>}$ +only if the user makes use of the package command +\verb|\MTnonlettersobeymathxx| (and the braces necessitate +\verb|\MTexplicitbracesobeymathxx|). + +It could be that one such character has been made `active' in the entire +document by some other package, typically a language definition file for the +\verb|babel| system. Here for example we have used \verb|babel| with the +\verb|french| option, which makes the high punctuation characters !?:; active +throughout the document (extra spacing is put in front of the character when +used in text; no change in math but perhaps for other languages and characters +this could happen, it is up to the language definition file to decide). + +When \verb|mathastext| detects that a character it wants to `mathematically +activate' is already `active', it does not go further except if it seems that +the activation was done by Babel. If the activation was done by Babel, then +\verb|mathastext| replaces the expansion of the active character in math mode by +what is necessary to achieve its goal. It does not additionally mathematically +activate the character; rather it makes sure that the character is \emph{not} +mathematically active. In the present document the colon was made mathematically +active by \verb|mathtools| but this was already canceled in the preamble by +\verb|mathastext| as it was loaded later. And it is better so, because the +combination \verb|babel| (with option \verb|frenchb|) +\verb|mathtools| (with +\verb|centercolon|) makes \verb|$:$| create an infinite loop! + +But even if someone had mathematically activated the colon after the preamble, +or after the loading of \verb|mathastext|, this would be canceled again +automatically for each inline or displayed mathematical formula (if the user +does \verb|\MTnonlettersobeymathxx|). + +The conclusion with \verb|\MTnonlettersobeymathxx| is: if some package has tried +to make the character mathematically active, this will be overruled by +\verb|mathastext|; if some package has made the character globally active, then +the package wins except if it is Babel, as \verb|mathastext| may in the latter +case safely modify the action in math mode (paying attention to the fact that +the character should be usable in \verb|\label| and \verb|\ref| in and outside +of math mode). + +The displayed equations next illustrate the extended scope of the math alphabets +which now apply to $=$, $-$, $($, $)$, $[$, $]$ (but not to the large delimiters +of course). Furthermore, for testing purposes the equations were labeled using +such characters, for example the last one has label \verb|eq=7|, to check that +the mathematical activation of $=$ does not cause problems with +\verb|\label/\ref|. + +\def\testformula{\quad\Biggl\lbrace\biggl(\left(\left[[\sin(a) + \cos(b) - \log(c) = +\sec(d)]\right]\right)\biggr)\Biggr\rbrace} +\begin{equation}\testformula\label{eq:1}\end{equation} +\begin{equation}\mathnormalbold{mathnormalbold:\testformula}\label{eq;2}\end{equation} +\begin{equation}\mathrm{mathrm:\testformula}\label{eq?3}\end{equation} +\begin{equation}\mathbf{mathbf:\testformula}\label{eq!4}\end{equation} +\begin{equation}\mathit{mathit:\testformula}\label{eq(5}\end{equation} +\begin{equation}\mathtt{mathtt:\testformula}\label{eq)6}\end{equation} +\begin{equation}\mathsf{mathsf:\testformula}\label{eq=7}\end{equation} + +Equations above are numbered \ref{eq:1}, \ref{eq;2}, \ref{eq?3}, \ref{eq!4}, and +$\ref{eq(5}$, $\ref{eq)6}$, and $\ref{eq=7}$. + +\def\testline#1{$#1$&$\mathnormalbold{#1}$&$\mathrm{#1}$&$\mathbf{#1}$&$\mathit{#1}$&$\mathtt{#1}$&$\mathsf{#1}$} + +\centerline{\begin{tabular}{ccccccc} +\testline{a!b}\\ +\testline{a?b}\\ +\testline{a,b}\\ +\testline{a;b}\\ +\testline{a:b}\\ +\testline{a:=b}\\ +\testline{a\vcentcolon= b}\\ +\testline{a\colon b}\\ +\testline{a.b}\\ +\testline{a-b}\\ +\testline{a+b}\\ +\testline{a=b}\\ +\testline{a<b}\\ +\testline{a>b}\\ +\testline{<x,y>}\\ +\testline{\mathopen{<} x,y\mathclose{>}}\\ +\testline{\left< x,y\right>}\\ +\testline{a/b}\\ +\testline{a\backslash b}\\ +\testline{a\setminus b}\\ +\testline{a|b}\\ +\testline{a\mid b}\\ +\testline{(a,b)}\\ +\testline{[a,b]}\\ +\testline{\{a,b\}} +\end{tabular}} + +The question mark has been made active by \verb|babel+frenchb|. +\verb|mathastext| has imposed in math mode its ways (now \verb|$\mathbf{???}$| +gives $\mathbf{???}$). As the extra spacing is added by \verb|frenchb| only in +text, we had to use the math alphabet to check that indeed \verb|mathastext| +overruled Babel. + +To double-check we will now make \string? mathematically active: +\verb|\mathcode`?="8000|\mathcode`?="8000. This is a sure cause for disaster +normally with Babel (don't do this at home without \verb|mathastext|!). But here +with \verb|$?$| no bad surprise (infinite loop!) awaits us: just $?$. + +Let's take some other character, for example the opening parenthesis, and make +it catcode active: +\verb|\catcode`(=\active \def ({X}|. +Let's try the input +\verb|( and $($|. +\begingroup +\catcode`(=\active \gdef ({X} +This gives ( and $($. +We +see that \verb|mathastext| does not attempt to modify the definition of the +active character, as this activation was not done via the \verb|babel| services. +\catcode`\(=12 +\mathcode`(="8000 +We now revert the parenthesis to catcode other (but maintain \verb|\def ({X}| as +definition of its active version), and then make it mathematically +active using the command \verb|\mathcode`(="8000|. +If we try +\verb|$((($| we see that the parenthesis is not converted into an $X$: $((($. +The mathematically active character was overruled by \verb|mathastext|. + +Issuing \verb|\MTnonlettersdonotobeymathxx|\MTnonlettersdonotobeymathxx\ we do +get the $X$'s from the input \verb|$((($|: $((($ +\endgroup +This shows that \verb|mathastext| now does not modify in math mode the +non-letter \verb|(|. + +\MTversion{upright}\MTnonlettersobeymathxx + +We defined in the preamble of the document a \verb|mathastext|-enhanced +math version (named \verb|upright|) having the Latin letters upright in +math mode. Let's switch to +it: \newline +\hbox to\linewidth{\hss\verb|\MTversion{upright}|\hss} + +With a font which is neither italic nor slanted, \verb|mathastext| automatically +inserts italic corrections for better positioning of the subscript: +\verb|$f_i^i$| gives +$f_i^i$. +After \verb|\MTnoicinmath| which turns off this feature\MTnoicinmath{}, the same +input gives $f_i^i$, which is different. \footnote{last time I tried, this only + worked with + PDF\LaTeX{}, not with \LuaLaTeX{} or \XeTeX{}.} + +Again with italic corrections on (\verb|\MTicinmath|)\MTicinmath{} +\verb|$f_{abc}^{def}$| gives $f_{abc}^{def}$, and here is another one: +$f^{f_{abc}^{def}}_u$. Without italic corrections\MTnoicinmath: $f_{abc}^{def}$, +and respectively $f^{f_{abc}^{def}}_u$.\MTicinmath We can also check that the +added italic corrections do not prevent the formation of ligatures when using +the math alphabets, apart from \verb|\mathnormal| (which comes first): +$\mathnormal{ff}$, $\mathrm{ff}$, $\mathit{ff}$, $\mathbf{ff}$, $\mathtt{ff}$ +(no ligature in teletype) and $\mathsf{ff}$. + +\centerline{\begin{tabular}{ccccccc} +\testline{a!b}\\ +\testline{a?b}\\ +\testline{a,b}\\ +\testline{a;b}\\ +\testline{a:b}\\ +\testline{a:=b}\\ +\testline{a\vcentcolon= b}\\ +\testline{a\colon b}\\ +\testline{a.b}\\ +\testline{a-b}\\ +\testline{a+b}\\ +\testline{a=b}\\ +\testline{a<b}\\ +\testline{a>b}\\ +\testline{<x,y>}\\ +\testline{\mathopen{<} x,y\mathclose{>}}\\ +\testline{\left< x,y\right>}\\ +\testline{a/b}\\ +\testline{a\backslash b}\\ +\testline{a\setminus b}\\ +\testline{a|b}\\ +\testline{a\mid b}\\ +\testline{(a,b)}\\ +\testline{[a,b]}\\ +\testline{\{a,b\}} +\end{tabular}} + +\end{document} +\endinput +%% +%% End of file `mathastexttestalphabets.tex'. |