diff options
author | Karl Berry <karl@freefriends.org> | 2019-02-20 22:41:52 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-02-20 22:41:52 +0000 |
commit | 587c5eb705651253d0929c3203275750444b8f61 (patch) | |
tree | 259a638fc49d9c8881890bd377ecee611097b26a /Master/texmf-dist/source/fonts/yhmath/yhmath.dtx | |
parent | e03eca33baacd4aecc2a486c5f282f2cfddddd29 (diff) |
yhmath (20feb19)
git-svn-id: svn://tug.org/texlive/trunk@50074 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/fonts/yhmath/yhmath.dtx')
-rw-r--r-- | Master/texmf-dist/source/fonts/yhmath/yhmath.dtx | 161 |
1 files changed, 149 insertions, 12 deletions
diff --git a/Master/texmf-dist/source/fonts/yhmath/yhmath.dtx b/Master/texmf-dist/source/fonts/yhmath/yhmath.dtx index 5563c28d2de..62ad1588e61 100644 --- a/Master/texmf-dist/source/fonts/yhmath/yhmath.dtx +++ b/Master/texmf-dist/source/fonts/yhmath/yhmath.dtx @@ -2,7 +2,7 @@ % yhmath.dtx % % originally written by Yannis Haralambous, extended by Norbert Preining -% in 2013. See pdf for details. +% in 2013, 2019. See pdf for details. % % \fi % @@ -12,7 +12,7 @@ \ProvidesFile{yhmath.dtx} %</dtx> %<package>\NeedsTeXFormat{LaTeX2e}[1995/12/01] -%<package>\ProvidesPackage{yhmath} +%<package>\ProvidesPackage{yhmath}[2019/02/18 v1.4] %<driver> \ProvidesFile{yhmath.drv} %<fdfile> \ProvidesFile{OMXyhex.fd} % \fi @@ -33,14 +33,14 @@ % % \GetFileInfo{yhmath.dtx} % -% \def\fileversion{1.3} -% \def\filedate{2018/01/31} +% \def\fileversion{1.4} +% \def\filedate{2019/02/18} % % \title{My humble additions to (La)\TeX{} mathematics\thanks{This file is % \fileversion, last revised \filedate.}} % \author{Yannis Haralambous\\ % \texttt{\small yannis1962@gmail.com}} -% \date{January 4, 1996; adaptions NP July 3, 2013 and Jan 29, 2018} +% \date{January 4, 1996; adaptions NP July 3, 2013 and Feb 4, 2019} % \maketitle % % \CheckSum{107} @@ -48,6 +48,8 @@ % \changes{v1.0}{1996/01/04}{First version} % \changes{v1.1}{2013/07/04}{Merge type1 and metafont packages (NP)} % \changes{v1.2}{2018/01/29}{Replace largesymbols with yhlargesymbols for mtpro cooperation (YH, NP)} +% \changes{v1.3}{2018/01/31}{Add license statements (NP)} +% \changes{v1.4}{2019/02/18}{Package options, dates, backward compatibility (NP)} % % \begin{abstract} % This package provides a set of big delimiters, intermediate to those @@ -71,6 +73,17 @@ % % \section{Changes} % +% \subsection{Version v1.4} +% +% The change in v1.2 triggered a few inconveniences due to the sudden +% change of behavior. This version reverts back to the behavior of +% v1.1 (but with a different implementation), and adds package options +% to switch between different sets of defined operators. +% +% Furthermore, to support cooperation with other packages defining +% the same command \texttt{widering}, a package option to disable this +% definition in \texttt{yhmath} has been added. +% % \subsection{Version v1.3} % % Clarify license (LPPL) and include a LICENSE file in the distribution. @@ -104,6 +117,19 @@ % Norbert Preining merged the various sources, adapted the documentation, % and uploaded the new package to CTAN. % +% \section{Package Options} +% +% \DescribeMacro{full} +% Defines all operators that have been defined in package version up +% to 1.1. See the code appendix for details. +% +% \DescribeMacro{minimal} +% Defines only those operators that were defined in the package +% version 1.2 and 1.3. +% +% \DescribeMacro{nowidering} +% Do not define the macro |\widering|. +% % \section{Availability} % % Don Knuth's code is included in Metafont files, so this code is under @@ -276,7 +302,10 @@ % \widering{ABCDEF}, % \widering{ABCDEFG}, % $$ -% +% +% Other packages have added similar macros |\widering|. To make +% cooperation possible, the package option |nowidering| disables the +% definition of |\widering|. % % % \StopEventually{} @@ -293,6 +322,44 @@ \RequirePackage{amsmath} % \end{macrocode} % +% |\widering| is also defined in other packages (fourier, newtx, newpx etc) +% but they do the definition in AtBeginDocument without checking for the +% existence, so loading this package (yhmath) with others defining +% widering will create problems - use option nowidering to undef it. +% First define the macro, and clear it if the respective package +% option is given. Here is a (clumsy) definition of |\widering|, that is +% a ring over an horizontal parenthesis. +% \begin{macrocode} +\newcommand{\widering}[1]{\overset{\smash{\lower1.333ex\hbox{$% +\displaystyle\ring{}$}}}{\wideparen{#1}}} +% \end{macrocode} +% +% \subsection{Option handling} +% +% Three options are supported: |minimal| which defines only those +% operators that are defined in version 1.2 and 1.3 of yhmath; |full| +% which defines the full set as used up to version 1.1; and +% |nowidering| which prevents the definition of the |\widering| macro. +% +% \begin{macrocode} +\newif\if@yh@full +\DeclareOption{minimal}{% + \@yh@fullfalse% +}% +\DeclareOption{full}{% + \@yh@fulltrue% +}% +\DeclareOption{nowidering}{% + \let\widering\@undefined% +} +% \end{macrocode} +% +% As default we revert back to the status of package version till 1.1 +% \begin{macrocode} +\ExecuteOptions{full}% +\ProcessOptions\relax +% \end{macrocode} +% % First of all we have to ask \LaTeX{} to use our brand new font % for ``large symbols'' % \begin{macrocode} @@ -302,6 +369,9 @@ % Next, the four ``wide'' accents are defined, in a way similar to % \LaTeX{} and not to \AmS-\LaTeX{}, so \texttt{yhmath} must be % loaded after |amsmath|! +% +%% +%% Declaration that remain after YH updated to v1.2 in 2018 % \begin{macrocode} \DeclareMathAccent{\widetilde}{\mathord}{yhlargesymbols}{"65} \DeclareMathAccent{\widehat}{\mathord}{yhlargesymbols}{"62} @@ -309,6 +379,79 @@ \DeclareMathAccent{\wideparen}{\mathord}{yhlargesymbols}{"F3} % \end{macrocode} % +% Instead of redefining the |largesymbols| math alphabet we +% explicitely redefine the operators that are provided by the font. +% +%% +%% Declaration that were there up to version 1.1 (1996-2018) +% \begin{macrocode} +\if@yh@full +\DeclareMathDelimiter{(}{\mathopen} {operators}{"28}{yhlargesymbols}{"00} +\DeclareMathDelimiter{)}{\mathclose}{operators}{"29}{yhlargesymbols}{"01} +\DeclareMathDelimiter{[}{\mathopen} {operators}{"5B}{yhlargesymbols}{"02} +\DeclareMathDelimiter{]}{\mathclose}{operators}{"5D}{yhlargesymbols}{"03} +\DeclareMathDelimiter{<}{\mathopen}{symbols}{"68}{yhlargesymbols}{"0A} +\DeclareMathDelimiter{>}{\mathclose}{symbols}{"69}{yhlargesymbols}{"0B} +\DeclareMathDelimiter{/}{\mathord}{operators}{"2F}{yhlargesymbols}{"0E} +\DeclareMathDelimiter{|}{\mathord}{symbols}{"6A}{yhlargesymbols}{"0C} +\DeclareMathRadical{\sqrtsign}{symbols}{"70}{yhlargesymbols}{"70} +\DeclareMathSymbol{\braceld}{\mathord}{yhlargesymbols}{"7A} +\DeclareMathSymbol{\bracerd}{\mathord}{yhlargesymbols}{"7B} +\DeclareMathSymbol{\bracelu}{\mathord}{yhlargesymbols}{"7C} +\DeclareMathSymbol{\braceru}{\mathord}{yhlargesymbols}{"7D} +\DeclareMathDelimiter{\lmoustache} % top from (, bottom from ) + {\mathopen}{yhlargesymbols}{"7A}{yhlargesymbols}{"40} +\DeclareMathDelimiter{\rmoustache} % top from ), bottom from ( + {\mathclose}{yhlargesymbols}{"7B}{yhlargesymbols}{"41} +\DeclareMathDelimiter{\arrowvert} % arrow without arrowheads + {\mathord}{symbols}{"6A}{yhlargesymbols}{"3C} +\DeclareMathDelimiter{\Arrowvert} % double arrow without arrowheads + {\mathord}{symbols}{"6B}{yhlargesymbols}{"3D} +\DeclareMathDelimiter{\Vert} + {\mathord}{symbols}{"6B}{yhlargesymbols}{"0D} +\DeclareMathDelimiter{\vert} + {\mathord}{symbols}{"6A}{yhlargesymbols}{"0C} +\DeclareMathDelimiter{\uparrow} + {\mathrel}{symbols}{"22}{yhlargesymbols}{"78} +\DeclareMathDelimiter{\downarrow} + {\mathrel}{symbols}{"23}{yhlargesymbols}{"79} +\DeclareMathDelimiter{\updownarrow} + {\mathrel}{symbols}{"6C}{yhlargesymbols}{"3F} +\DeclareMathDelimiter{\Uparrow} + {\mathrel}{symbols}{"2A}{yhlargesymbols}{"7E} +\DeclareMathDelimiter{\Downarrow} + {\mathrel}{symbols}{"2B}{yhlargesymbols}{"7F} +\DeclareMathDelimiter{\Updownarrow} + {\mathrel}{symbols}{"6D}{yhlargesymbols}{"77} +\expandafter\DeclareMathDelimiter\@backslashchar + {\mathord}{symbols}{"6E}{yhlargesymbols}{"0F} +\DeclareMathDelimiter{\backslash} % for double coset G\backslash H + {\mathord}{symbols}{"6E}{yhlargesymbols}{"0F} +\DeclareMathDelimiter{\rangle} + {\mathclose}{symbols}{"69}{yhlargesymbols}{"0B} +\DeclareMathDelimiter{\langle} + {\mathopen}{symbols}{"68}{yhlargesymbols}{"0A} +\DeclareMathDelimiter{\rbrace} + {\mathclose}{symbols}{"67}{yhlargesymbols}{"09} +\DeclareMathDelimiter{\lbrace} + {\mathopen}{symbols}{"66}{yhlargesymbols}{"08} +\DeclareMathDelimiter{\rceil} + {\mathclose}{symbols}{"65}{yhlargesymbols}{"07} +\DeclareMathDelimiter{\lceil} + {\mathopen}{symbols}{"64}{yhlargesymbols}{"06} +\DeclareMathDelimiter{\rfloor} + {\mathclose}{symbols}{"63}{yhlargesymbols}{"05} +\DeclareMathDelimiter{\lfloor} + {\mathopen}{symbols}{"62}{yhlargesymbols}{"04} +\DeclareMathDelimiter{\lgroup} % extensible ( with sharper tips + {\mathopen}{yhlargesymbols}{"3A}{yhlargesymbols}{"3A} +\DeclareMathDelimiter{\rgroup} % extensible ) with sharper tips + {\mathclose}{yhlargesymbols}{"3B}{yhlargesymbols}{"3B} +\DeclareMathDelimiter{\bracevert} % the vertical bar that extends braces + {\mathord}{yhlargesymbols}{"3E}{yhlargesymbols}{"3E} +\fi +% \end{macrocode} +% % The |amatrix| environment is defined % \begin{macrocode} \newenvironment{amatrix}{\left\langle\begin{matrix}}{\end{matrix}\right\rangle} @@ -329,12 +472,6 @@ \@tempa\ring{017} % \end{macrocode} % -% And finally here is a (clumsy) definition of |\widering|, that is -% a ring over an horizontal parenthesis. -% \begin{macrocode} -\newcommand{\widering}[1]{\overset{\smash{\lower1.333ex\hbox{$% -\displaystyle\ring{}$}}}{\wideparen{#1}}} -% \end{macrocode} % % % \begin{macrocode} |