diff options
Diffstat (limited to 'macros/latex/contrib/nchairx/source/chairxmathFonts.dtx')
-rw-r--r-- | macros/latex/contrib/nchairx/source/chairxmathFonts.dtx | 288 |
1 files changed, 288 insertions, 0 deletions
diff --git a/macros/latex/contrib/nchairx/source/chairxmathFonts.dtx b/macros/latex/contrib/nchairx/source/chairxmathFonts.dtx new file mode 100644 index 0000000000..64b4dafd10 --- /dev/null +++ b/macros/latex/contrib/nchairx/source/chairxmathFonts.dtx @@ -0,0 +1,288 @@ +% \iffalse meta-comment +% +% Copyright (C) 2018 - 2021 by ChairX +% +% This file may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3 of this license or (at your option) any later +% version. The latest version of this license is in: +% +% http://www.latex-project.org/lppl.txt +% +% and version 1.3 or later is part of all distributions of +% LaTeX version 2005/12/01 or later. +% +% This file contains the implementation of all algebra related macros. +% +% Macros have to be described by (delete the first %) +% %\begin{macro}{\macro} +% % Description of the implementation. +% % \begin{macrocode} +%\newcommand{\macro}[] {} +% % \end{macrocode} +% %\end{macro} +% +% The implementation and description will appear in the implementation +% part of the documentation. Use \subsubsection{} etc. for structuring. +% +% The documentation of the macros defined here has to be written in +% chairxmathFontsDoc.dtx +%\fi +% +% First we check of macros should be included: +% \begin{macrocode} +\if@loadmath +% \end{macrocode} +% +% +% We provide several font names for easier usage and +% customization. The fonts are used in our macro definitions and can +% be changed by according to the individual needs. +% +% +% +% \subsubsection{Default Values for some Math Fonts} +% +% +% \begin{macro}{\mathbb} +% +% Redefine |\mathbb| to use the nicer |\mathbbm|. +% +% \begin{macrocode} +\DeclareMathAlphabet{\ch@airxmathbbm}{U}{bbm}{m}{n} +\SetMathAlphabet\ch@airxmathbbm{bold}{U}{bbm}{bx}{n} +\renewcommand{\mathbb}[1]{\ch@airxmathbbm{#1}} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\mathscr} +% +% We load a script font and provide the command |\mathscr| +% +% \begin{macrocode} +\DeclareMathAlphabet{\mathscr}{U}{rsfso}{m}{n} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\mathcal} +% +% We redefine the |\mathcal| command using the Euler font. +% +% \begin{macrocode} +\DeclareSymbolFont{EulerScript}{U}{eus}{m}{n} +\SetSymbolFont{EulerScript}{bold}{U}{eus}{b}{n} +\DeclareSymbolFontAlphabet\mathcal{EulerScript} +% \end{macrocode} +% +% \end{macro} +% +% +% \subsubsection{Setting Fonts for Various Math Groups} +% +% Definitions of fonts for the different groups. +% +% \begin{macro}{\ch@irxalgebrafont} +% \begin{macro}{\ch@irxbasisfont} +% \begin{macro}{\ch@irxcategoryfont} +% \begin{macro}{\ch@irxcategorynamefont} +% \begin{macro}{\ch@irxfieldfont} +% \begin{macro}{\ch@irxfilterfont} +% \begin{macro}{\ch@irxfunctorfont} +% \begin{macro}{\ch@irxgerstenhaberfont} +% \begin{macro}{\ch@irxgroupfont} +% \begin{macro}{\ch@irxgroupoidfont} +% \begin{macro}{\ch@irxhilbertfont} +% \begin{macro}{\ch@irxliealgfont} +% \begin{macro}{\ch@irxmodulefont} +% \begin{macro}{\ch@irxprehilbfont} +% \begin{macro}{\ch@irxoperatorfont} +% \begin{macro}{\ch@irxringfont} +% \begin{macro}{\ch@irxscriptfont} +% \begin{macro}{\ch@irxsheaffont} +% \begin{macro}{\ch@irxspacesfont} +% \begin{macro}{\ch@irxtopologyfont} +% +% We use |xkeyval| to define keys setting the different font +% groups. These keys can be used for the macro |\chairxfonts|. +% We use |\providecommand| to create the font macros if they do +% not already exist. +% +% \begin{macrocode} +\define@key[chairx]{fonts}{algebrafont}{ + \providecommand{\ch@irxalgebrafont}[1]{ } + \renewcommand{\ch@irxalgebrafont}{#1} +} +\define@key[chairx]{fonts}{basisfont}{ + \providecommand{\ch@irxbasisfont}[1]{ } + \renewcommand{\ch@irxbasisfont}{#1} +} +\define@key[chairx]{fonts}{categoryfont}{ + \providecommand{\ch@irxcategoryfont}[1]{ } + \renewcommand{\ch@irxcategoryfont}{#1} +} +\define@key[chairx]{fonts}{categorynamefont}{ + \providecommand{\ch@irxcategorynamefont}[1]{ } + \renewcommand{\ch@irxcategorynamefont}{#1} +} +\define@key[chairx]{fonts}{fieldfont}{ + \providecommand{\ch@irxfieldfont}[1]{ } + \renewcommand{\ch@irxfieldfont}{#1} +} +\define@key[chairx]{fonts}{filterfont}{ + \providecommand{\ch@irxfilterfont}[1]{ } + \renewcommand{\ch@irxfilterfont}{#1} +} +\define@key[chairx]{fonts}{functorfont}{ + \providecommand{\ch@irxfunctorfont}[1]{ } + \renewcommand{\ch@irxfunctorfont}{#1} +} +\define@key[chairx]{fonts}{gerstenhaberfont}{ + \providecommand{\ch@irxgerstenhaberfont}[1]{ } + \renewcommand{\ch@irxgerstenhaberfont}{#1} +} +\define@key[chairx]{fonts}{groupfont}{ + \providecommand{\ch@irxgroupfont}[1]{ } + \renewcommand{\ch@irxgroupfont}{#1} +} +\define@key[chairx]{fonts}{groupoidfont}{ + \providecommand{\ch@irxgroupoidfont}[1]{ } + \renewcommand{\ch@irxgroupoidfont}{#1} +} +\define@key[chairx]{fonts}{hilbertfont}{ + \providecommand{\ch@irxhilbertfont}[1]{ } + \renewcommand{\ch@irxhilbertfont}{#1} +} +\define@key[chairx]{fonts}{liealgfont}{ + \providecommand{\ch@irxliealgfont}[1]{ } + \renewcommand{\ch@irxliealgfont}{#1} +} +\define@key[chairx]{fonts}{modulefont}{ + \providecommand{\ch@irxmodulefont}[1]{ } + \renewcommand{\ch@irxmodulefont}{#1} +} +\define@key[chairx]{fonts}{prehilbfont}{ + \providecommand{\ch@irxprehilbfont}[1]{ } + \renewcommand{\ch@irxprehilbfont}{#1} +} +% \end{macrocode} +% +% Here we need to change the default operatorfont in order to get the +% chairxoperatorfont also for |\operatorname| and +% |\DeclareMathOperator|. Note that redefining |\operator@font| with +% a symbol alphabet and not a symbol font forces us to use an +% additional bracket in all definitions using |\operatorname| and +% |\DeclareMathOperator|. +% +% \begin{macrocode} +\define@key[chairx]{fonts}{operatorfont}{ + \providecommand{\ch@irxoperatorfont}[1]{ } + \renewcommand{\ch@irxoperatorfont}{#1} +} +\define@key[chairx]{fonts}{ringfont}{ + \providecommand{\ch@irxringfont}[1]{ } + \renewcommand{\ch@irxringfont}{#1} +} +\define@key[chairx]{fonts}{scriptfont}{ + \providecommand{\ch@irxscriptfont}[1]{ } + \renewcommand{\ch@irxscriptfont}{#1} +} +\define@key[chairx]{fonts}{sheaffont}{ + \providecommand{\ch@irxsheaffont}[1]{ } + \renewcommand{\ch@irxsheaffont}{#1} +} +\define@key[chairx]{fonts}{spacefont}{ + \providecommand{\ch@irxspacefont}[1]{ } + \renewcommand{\ch@irxspacefont}{#1} +} +\define@key[chairx]{fonts}{topologyfont}{ + \providecommand{\ch@irxtopologyfont}[1]{ } + \renewcommand{\ch@irxtopologyfont}{#1} +} +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\chairxfonts} +% +% Command for setting the fonts. +% +% \begin{macrocode} +\newcommand{\chairxfonts}[1]{ + \setkeys[chairx]{fonts}{#1} +} +% \end{macrocode} +% +% \end{macro} +% +% We use the following default settings for fonts. +% +% \begin{macrocode} +\chairxfonts{ + algebrafont = \mathscr, + basisfont = \mathit, + categoryfont = \mathfrak, + categorynamefont = \mathsf, + fieldfont = \mathbb, + filterfont = \mathfrak, + functorfont = \mathsf, + groupfont = \mathrm, + groupoidfont = \mathfrak, + gerstenhaberfont = \mathfrak, + hilbertfont = \mathfrak, + liealgfont = \mathfrak, + modulefont = \mathscr, + prehilbfont = \mathcal, + operatorfont = \mathrm, + ringfont = \mathsf, + scriptfont = \mathrm, + sheaffont = \mathscr, + spacefont = \mathscr, + topologyfont = \mathscr +} +% \end{macrocode} +% +% code for grabbing a single glyph from some random font without +% investing a new math alphabet: use only the wrapper macro as +% |\ch@irxmathsymbol[mathtype]{fontname}{glyph}| with |mathtype| being +% the optional type of the symbol with default being|\mathord|, +% |fontname| the name of the font where the symbol is to be found and +% |glyph| the number of the symbol inside the specified font. +% +% \begin{macrocode} +\newcommand{\ch@irxfont}[1]{\fontfamily{#1}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont} +\newcommand{\ch@irxsymbol}[2]{{\ch@irxfont{#1}\char#2}} +\newcommand\ch@irxmathsymbol[3][\mathord]{% + #1{\ch@irxm@thsymbol{#2}{#3}}} +\def\ch@irxm@thsymbol#1#2{\mathchoice + {\@ch@irxm@thsymbol{#1}{#2}\tf@size} + {\@ch@irxm@thsymbol{#1}{#2}\tf@size} + {\@ch@irxm@thsymbol{#1}{#2}\sf@size} + {\@ch@irxm@thsymbol{#1}{#2}\ssf@size}} +\def\@ch@irxm@thsymbol#1#2#3{\mbox{\fontsize{#3}{#3}\ch@irxsymbol{#1}{#2}}} +% +% \end{macrocode} +% +% \begin{macrocode} +\fi +% \end{macrocode}
\ No newline at end of file |