summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/ccref/README.md23
-rw-r--r--macros/latex/contrib/ccref/ccref-doc.pdfbin95346 -> 99921 bytes
-rw-r--r--macros/latex/contrib/ccref/ccref-doc.tex70
-rw-r--r--macros/latex/contrib/ccref/ccref.sty212
-rw-r--r--macros/latex/contrib/cutwin/README60
-rw-r--r--macros/latex/contrib/cutwin/README.md71
-rw-r--r--macros/latex/contrib/cutwin/cutwin.dtx221
-rw-r--r--macros/latex/contrib/cutwin/cutwin.ins12
-rw-r--r--macros/latex/contrib/cutwin/cutwin.pdfbin325445 -> 341874 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx101
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin581908 -> 581906 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex52
-rw-r--r--macros/latex/contrib/mathalpha/README10
-rw-r--r--macros/latex/contrib/mathalpha/doc/mathalpha-doc.pdfbin985321 -> 1899045 bytes
-rw-r--r--macros/latex/contrib/mathalpha/doc/mathalpha-doc.tex309
-rw-r--r--macros/latex/contrib/mathalpha/tex/mathalpha.sty1138
-rw-r--r--macros/latex/contrib/spbmark/spbmark.pdfbin67357 -> 67381 bytes
-rw-r--r--macros/latex/contrib/spbmark/spbmark.sty8
-rw-r--r--macros/latex/contrib/spbmark/spbmark.tex6
19 files changed, 1599 insertions, 694 deletions
diff --git a/macros/latex/contrib/ccref/README.md b/macros/latex/contrib/ccref/README.md
index 513140e90c..c2f084b518 100644
--- a/macros/latex/contrib/ccref/README.md
+++ b/macros/latex/contrib/ccref/README.md
@@ -1,6 +1,6 @@
<!-- Copyright (C) 2021 by Jinwen XU -->
-# ccref - cleveref with proper definite articles
+# ccref - cross referencing with proper definite articles
"ccref" is a LaTeX package aimed at helping `\cref` addressing the definite articles properly (especially for the article contractions in many European languages).
@@ -10,14 +10,14 @@ By default, when using cleveref's `\cref` to reference theorem-like environments
As an example, if we define the French names to be:
```latex
-\crefname{theorem}{le théorème}{les théorème}
+\crefname{theorem}{le théorème}{les théorèmes}
\crefname{proposition}{la proposition}{les propositions}
```
-Then when one writes
+Then when one writes (which means "*We can deduce this from ...*"):
```latex
On peut le déduire de \cref{thm1,thm2,prop3}.
```
-(which means "*We can deduce this from ...*") the result would be
+the result would be:
> On peut le déduire **de les** théorèmes 1 et 2 et **la** proposition 3.
which is wrong, as the correct result should be:
@@ -29,10 +29,9 @@ which is wrong, as the correct result should be:
Thus, it would be better to have a new command `\ccref[<prep>]{<labels>}`, and to use it like
```
-\ccref*[de]{thm1,thm2,prop3}
+\ccref[de]{thm1,thm2,prop3}
```
in order to get "*des théorèmes 1 et 2 et de la proposition 3*".
-> The asterisk `*` here indicates that the preposition "de" will act on every definite article.
# Usage
@@ -43,14 +42,16 @@ Just load the package with
> "ccref" uses "cleveref" internally, thus it should usually be placed at the last of your preamble.
And then you can use the command `\ccref` as follows:
- - `\ccref[<prep>]{<labels>}`
- - This will pass the `<prep>` to the first definite article.
- - `\ccref*[<prep>]{<labels>}`
- - This will pass the `<prep>` to every definite article.
+- `\ccref[<prep>]{<labels>}`
+ - This will pass the preposition `<prep>` to the definite articles that follows. Its behavior depends on the current language (for example, in Spanish, `<prep>` is passed only to the first definite article, while in French it is passed to everyone).
+- `\ccref-[<prep>]{<labels>}` and `\ccref+[<prep>]{<labels>}`
+ - In case the automatic version does not meet your needs, here are two manual ones. The `-` version passes the preposition `<prep>` only to the first definite article, while the `+` version passes `<prep>` to every definite article.
+
+> There is also a stared version `\ccref*` for generating the same text but without hyperlinks.
However, before using it, you should first define the `\crefname`s carefully. The definite article in `\crefname`s needs to be marked manually using `\ccmarkart`, for example:
```latex
-\crefname{theorem}{\ccmarkart{le} théorème}{\ccmarkart{les} théorème}
+\crefname{theorem}{\ccmarkart{le} théorème}{\ccmarkart{les} théorèmes}
```
diff --git a/macros/latex/contrib/ccref/ccref-doc.pdf b/macros/latex/contrib/ccref/ccref-doc.pdf
index 85d435a9f6..24a8277d3b 100644
--- a/macros/latex/contrib/ccref/ccref-doc.pdf
+++ b/macros/latex/contrib/ccref/ccref-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/ccref/ccref-doc.tex b/macros/latex/contrib/ccref/ccref-doc.tex
index 992ff0f181..368a4896ac 100644
--- a/macros/latex/contrib/ccref/ccref-doc.tex
+++ b/macros/latex/contrib/ccref/ccref-doc.tex
@@ -32,6 +32,7 @@
{
cref,crefname,
ccref,ccmarkart,
+ selectlanguage,
}
}
\lstnewenvironment{code}%
@@ -67,49 +68,52 @@
title={\scshape\sffamily #1}]%
}{\end{tcolorbox}\ResumeLineNumbers}
+%%================================
+%% demo
+%%================================
\newenvironment{demo}{%
\LocallyStopLineNumbers%
\begin{tcolorbox}[enhanced jigsaw,pad at break*=1mm,breakable,
- left=4mm,right=4mm,top=1mm,bottom=1mm,
+ left=4mm,right=4mm,top=0.5mm,bottom=0mm,
colback=gray!5!paper,boxrule=0pt,frame hidden,
borderline west={1.5mm}{0mm}{gray!55!paper},arc=.7mm]%
}{\end{tcolorbox}\ResumeLineNumbers}
-
\newcommand{\ccrefpackage}{\textsf{ccref}}
\begin{document}
-\title{\ccrefpackage{} - cleveref with proper definite articles}
+\title{\ccrefpackage{} - cross referencing with proper definite articles}
\author{Jinwen XU}
+\thanks{Corresponding to: \texttt{\ccrefpackage{} 2021/10/30}}
\date{October 2021, in Paris}
\maketitle
\begin{abstract}
\raggedleft
- The package \ccrefpackage{} is aimed at helping \lstinline|\cref| addressing the definite articles properly (especially for the article contractions in many European languages).
+ The package \ccrefpackage{} provides a command \lstinline|\ccref| parallel to \textsf{cleveref}'s \lstinline|\cref| for handling definite articles properly (especially for the article contractions in some European languages).
\end{abstract}
\section{The motivation}
-By default, when using \textsf{cleveref}'s \lstinline|\cref| to reference theorem-like environments, the names do not contain definite articles. This may be acceptable for English, but certainly not good enough for languages such as French, Italian, Portuguese, Spanish, etc. -- in these cases there shall be grammatical errors and would give you a strong feeling that it is machine-generated.
+By default, with \textsf{cleveref}'s \lstinline|\cref| to reference theorem-like environments, the names do not contain definite articles. While this might be acceptable for English, it is certainly not good enough for languages such as French, Italian, Portuguese, Spanish, etc. -- in these cases there shall be grammatical errors and would give you a strong feeling that it is machine-generated.
-As an example, if we define the French names to be:
+However, even if we manually add the definite articles to the names, there would still be other problems. As an example, if we define the French names to be:
\begin{code}
-\crefname{theorem}{le théorème}{les théorème}
+\crefname{theorem}{le théorème}{les théorèmes}
\crefname{proposition}{la proposition}{les propositions}
\end{code}
-then when one writes (which means ``\emph{We can deduce this from ...}'' in French)
+then when one writes (which means ``\emph{We can deduce this from ...}'')
\begin{code}
On peut le déduire de \cref{thm1,thm2,prop3}.
\end{code}
-the result would be
+the result would be:
\begin{demo}
On peut le déduire \textbf{de les} théorèmes 1 et 2 et \textbf{la} proposition 3.
@@ -121,23 +125,23 @@ which is wrong, as the correct result should be:
On peut le déduire \textbf{des} théorèmes 1 et 2 et \textbf{de la} proposition 3.
\end{demo}
-\lstinline|\cref| cannot handle such cases correctly --- and that is when \lstinline|\ccref| comes into play.
+\lstinline|\cref| cannot handle such cases automatically --- and that is when \lstinline|\ccref| comes into play.
\section{The usage}
\subsection[How to load it]{How to load it\,?}
-Simply load the package with
+Simply load the package with:
\begin{code}
\usepackage{ccref}
\end{code}
\begin{tip}
- \begin{itemize}\small
- \item \ccrefpackage{} uses \textsf{cleveref} internally, thus it should usually be placed at the last of your preamble.
- \item To handle article contractions correctly, \lstinline|\ccref| shall detect the current language, thus you need to use packages such as \textsf{babel} or \textsf{polyglossia} to set your languages appropriately.
+ \begin{itemize}
+ \item Since \ccrefpackage{} uses \textsf{cleveref} internally, it should usually be placed at the last of your preamble, and notably, after \textsf{varioref} and \textsf{hyperref}.
+ \item To handle article contractions correctly, \lstinline|\ccref| shall detect the current language, thus you need to use packages such as \textsf{babel} or \textsf{polyglossia} to set your languages, and use commands like \lstinline|\selectlanguage| to select them appropriately.
\end{itemize}
\end{tip}
@@ -147,18 +151,22 @@ Then you can use the command \lstinline|\ccref| as follows:
\begin{itemize}
\item \lstinline|\ccref[|\meta{prep}\lstinline|]{|\meta{labels}\lstinline|}|
\begin{itemize}
- \item This will pass the preposition \meta{prep} to the first definite article.
+ \item This will pass the preposition \meta{prep} to the definite articles that follows. Its behavior depends on the current language (for example, in Spanish, \meta{prep} is passed only to the first definite article, while in French it is passed to everyone).
\end{itemize}
- \item \lstinline|\ccref*[|\meta{prep}\lstinline|]{|\meta{labels}\lstinline|}|
+ \item \lstinline|\ccref-[|\meta{prep}\lstinline|]{|\meta{labels}\lstinline|}| and \lstinline|\ccref+[|\meta{prep}\lstinline|]{|\meta{labels}\lstinline|}|
\begin{itemize}
- \item This will pass the preposition \meta{prep} to every definite article.
+ \item In case the automatic version does not meet your needs, here are two manual ones. The \verb|-| version passes the preposition \meta{prep} only to the first definite article, while the \verb|+| version passes \meta{prep} to every definite article.
\end{itemize}
\end{itemize}
+\begin{tip}
+ There is also a stared version \lstinline|\ccref*| for generating the same referencing text but without creating hyperlinks.
+\end{tip}
+
However, before using it, you should first define the \lstinline|\crefname|s carefully. The definite article in \lstinline|\crefname|s needs to be marked manually using \lstinline|\ccmarkart|, for example:
\begin{code}
-\crefname{theorem}{\ccmarkart{le} théorème}{\ccmarkart{les} théorème}
+\crefname{theorem}{\ccmarkart{le} théorème}{\ccmarkart{les} théorèmes}
\end{code}
@@ -168,41 +176,31 @@ Let us come back to the example at the beginning, now you can do this:
\begin{code}
\crefname{theorem}{\ccmarkart{le} théorème}
- {\ccmarkart{les} théorème}
-\crefname{proposition}{\ccmarkart{le} proposition}
+ {\ccmarkart{les} théorèmes}
+\crefname{proposition}{\ccmarkart{la} proposition}
{\ccmarkart{les} propositions}
\end{code}
-And the sentence shall be written as\footnote{Here the stared version is used because we want the preposition ``de'' to be passed to every definite article.}:
+And the sentence shall be written as:
\begin{code}
-On peut le déduire \ccref*[de]{thm1,thm2,prop3}.
+On peut le déduire \ccref[de]{thm1,thm2,prop3}.
\end{code}
-which would result in:
+which would result in (provided that you have done \lstinline|\selectlanguage{french}|):
\begin{demo}
On peut le déduire \textbf{des} théorèmes 1 et 2 et \textbf{de la} proposition 3.
\end{demo}
-As another example, with
-
-\begin{code}
-Pensez \ccref*[à]{thm1,thm2,prop3}.
-\end{code}
-
-one would get something like:
-
-\begin{demo}
- Pensez \textbf{aux} théorèmes 1 et 2 et \textbf{à la} proposition 3.
-\end{demo}
-
+Voilà !
\section{Known issues}
\begin{itemize}
\item \ccrefpackage{} currently only works for French, Italian, Portuguese (both European and Brazilian) and Spanish, certainly more would be added to this list.
- \item In the case that the initial letter of \meta{prep} is capitalized, \ccrefpackage{} cannot yet handle the case changes automatically. However, this should be a rare occurrence.
+ \item The current mechanism does not work for German. However, the author has planed to adopt a more refined approach in later versions in order to support the various situations in German.
+ \item In case that the initial letter of \meta{prep} is capitalized, \ccrefpackage{} cannot yet handle the case changes automatically. However, this should be a rare occurrence.
\item The names of theorem-like environments are not provided --- for the moment you need to define them all by yourself. However, users are encouraged to use the \ProjLib{} toolkit, which already handles everything for you.
\end{itemize}
diff --git a/macros/latex/contrib/ccref/ccref.sty b/macros/latex/contrib/ccref/ccref.sty
index a507a2652c..4358237afa 100644
--- a/macros/latex/contrib/ccref/ccref.sty
+++ b/macros/latex/contrib/ccref/ccref.sty
@@ -12,21 +12,28 @@
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
\ProvidesExplPackage
{ccref}
- {2021/10/29}
+ {2021/10/30}
{}
- {cleveref with article contraction}
+ {Cross referencing with proper definite articles}
\RequirePackage{cleveref}
\tl_gset:Nn \g_ccref_prepf_tl {}
\tl_gset:Nn \g_ccref_prep_tl {}
-\NewDocumentCommand{\ccref}{sO{}m}{
- \IfBooleanTF{ #1 }{
- \tl_gset:Nn \g_ccref_prep_tl { #2 }
+\NewDocumentCommand{\ccref}{st-t+O{}m}{
+ \IfBooleanTF{ #2 }{
+ \tl_gset:Nn \g_ccref_prepf_tl { #4 }
}{
- \tl_gset:Nn \g_ccref_prepf_tl { #2 }
+ \IfBooleanTF{ #3 }{
+ \tl_gset:Nn \g_ccref_prep_tl { #4 }
+ }{
+ \str_case_e:nn { \ccref_prep_mode:nn } {
+ { - } { \tl_gset:Nn \g_ccref_prepf_tl { #4 } }
+ { + } { \tl_gset:Nn \g_ccref_prep_tl { #4 } }
+ }
+ }
}
- \cref {#3}
+ \IfBooleanTF{ #1 } { \cref*{#5} } { \cref{#5} }
\tl_gset:Nn \g_ccref_prep_tl {}
}
@@ -37,97 +44,110 @@
\tl_gset:Nn \g_ccref_prepf_tl {}
}
-\cs_set:Npn \ccref_contraction:nn #1#2 {
+\cs_set:Npn \ccref_prep_mode:nn {
\str_case_e:nn { \languagename }
{
- {french}{
- \str_case_e:nnF {#1~#2} {
- {à~le} {au}
- {à~la} {à~la}
- {à~l'} {à~l'}
- {à~les} {aux}
- {de~le} {du}
- {de~la} {de~la}
- {de~l'} {de~l'}
- {de~les} {des}
- }{#2}
- }
- {italian}{
- \str_case_e:nnF {#1~#2} {
- {a~il} {al}
- {a~lo} {allo}
- {a~l'} {all'}
- {a~la} {alla}
- {di~il} {del}
- {di~lo} {dello}
- {di~l'} {dell'}
- {di~la} {della}
- {da~il} {dal}
- {da~lo} {dallo}
- {da~l'} {dall'}
- {da~la} {dalla}
- {in~il} {nel}
- {in~lo} {nello}
- {in~l'} {nell'}
- {in~la} {nella}
- {su~il} {sul}
- {su~lo} {sullo}
- {su~l'} {sull'}
- {su~la} {sulla}
- {a~i} {ai}
- {a~gli} {agli}
- {a~le} {alle}
- {di~i} {dei}
- {di~gli} {degli}
- {di~le} {delle}
- {da~i} {dai}
- {da~gli} {dagli}
- {da~le} {dalle}
- {in~i} {nei}
- {in~gli} {negli}
- {in~le} {nelle}
- {su~i} {sui}
- {su~gli} {sugli}
- {su~le} {sulle}
- }{#2}
- }
- {portuguese}{
- \str_case_e:nnF {#1~#2} {
- {a~o} {ao}
- {a~a} {à}
- {a~os} {aos}
- {a~as} {às}
- {de~o} {do}
- {de~a} {da}
- {de~os} {dos}
- {de~as} {das}
- {em~o} {no}
- {em~a} {na}
- {em~os} {nos}
- {em~as} {nas}
- }{#2}
- }
- {brazilian}{
- \str_case_e:nnF {#1~#2} {
- {a~o} {ao}
- {a~a} {à}
- {a~os} {aos}
- {a~as} {às}
- {de~o} {do}
- {de~a} {da}
- {de~os} {dos}
- {de~as} {das}
- {em~o} {no}
- {em~a} {na}
- {em~os} {nos}
- {em~as} {nas}
- }{#2}
- }
- {spanish}{
- \str_case_e:nnF {#1~#2} {
- {a~el} {al}
- {de~el} {del}
- }{#2}
+ {french} { + }
+ {italian} { + }
+ {spanish} { - }
+ {portuguese} { + }
+ {brazilian} { + }
+ }
+}
+
+\cs_set:Npn \ccref_contraction:nn #1#2 {
+ \str_if_eq:eeTF {#1} {} {#2} {
+ \str_case_e:nn { \languagename }
+ {
+ {french}{
+ \str_case_e:nnF {#1~#2} {
+ {à~le} {au}
+ {à~la} {à~la}
+ {à~l'} {à~l'}
+ {à~les} {aux}
+ {de~le} {du}
+ {de~la} {de~la}
+ {de~l'} {de~l'}
+ {de~les} {des}
+ }{#1~#2}
+ }
+ {italian}{
+ \str_case_e:nnF {#1~#2} {
+ {a~il} {al}
+ {a~lo} {allo}
+ {a~l'} {all'}
+ {a~la} {alla}
+ {di~il} {del}
+ {di~lo} {dello}
+ {di~l'} {dell'}
+ {di~la} {della}
+ {da~il} {dal}
+ {da~lo} {dallo}
+ {da~l'} {dall'}
+ {da~la} {dalla}
+ {in~il} {nel}
+ {in~lo} {nello}
+ {in~l'} {nell'}
+ {in~la} {nella}
+ {su~il} {sul}
+ {su~lo} {sullo}
+ {su~l'} {sull'}
+ {su~la} {sulla}
+ {a~i} {ai}
+ {a~gli} {agli}
+ {a~le} {alle}
+ {di~i} {dei}
+ {di~gli} {degli}
+ {di~le} {delle}
+ {da~i} {dai}
+ {da~gli} {dagli}
+ {da~le} {dalle}
+ {in~i} {nei}
+ {in~gli} {negli}
+ {in~le} {nelle}
+ {su~i} {sui}
+ {su~gli} {sugli}
+ {su~le} {sulle}
+ }{#1~#2}
+ }
+ {portuguese}{
+ \str_case_e:nnF {#1~#2} {
+ {a~o} {ao}
+ {a~a} {à}
+ {a~os} {aos}
+ {a~as} {às}
+ {de~o} {do}
+ {de~a} {da}
+ {de~os} {dos}
+ {de~as} {das}
+ {em~o} {no}
+ {em~a} {na}
+ {em~os} {nos}
+ {em~as} {nas}
+ }{#1~#2}
+ }
+ {brazilian}{
+ \str_case_e:nnF {#1~#2} {
+ {a~o} {ao}
+ {a~a} {à}
+ {a~os} {aos}
+ {a~as} {às}
+ {de~o} {do}
+ {de~a} {da}
+ {de~os} {dos}
+ {de~as} {das}
+ {em~o} {no}
+ {em~a} {na}
+ {em~os} {nos}
+ {em~as} {nas}
+ }{#1~#2}
+ }
+ {spanish}{
+ \str_case_e:nnF {#1~#2} {
+ {a~el} {al}
+ {de~el} {del}
+ }{#1~#2}
+ }
}
}
}
diff --git a/macros/latex/contrib/cutwin/README b/macros/latex/contrib/cutwin/README
deleted file mode 100644
index 1a9a435fdd..0000000000
--- a/macros/latex/contrib/cutwin/README
+++ /dev/null
@@ -1,60 +0,0 @@
- The cutwin package enables you to create a window in a paragraph.
-Facilities are provided to assist in putting text or a logo into the
-space cutout.
-
- IF THERE ARE ANY QUESTIONS PLEASE ASK THEM ON THE COMP.TEXT.TEX NEWSGROUP
-AS I AM AWAY MORE OFTEN THAN NOT.
-
-
-Changes in version 0.1 (2010/09/29)
-o First public release
-
-------------------------------------------------------------------
- Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net
- and Alan Hoenig
- Copyright 2010 Peter R. Wilson
-
- This work 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 the license is in
- http://www.latex-project.org/lppl.txt
- and version 1.3 or later is part of all distributions of
- LaTeX version 2003/06/01 or later.
-
- This work has the LPPL maintenance status "author-maintained".
-
- This work consists of the files:
- README (this file)
- cutwin.dtx
- cutwin.ins
- cutwin.pdf
- and the derived files
- cutwin.sty
-
-------------------------------------------------------------------
- The distribution consists of the following files:
-README (this file)
-cutwin.dtx
-cutwin.ins
-cutwin.pdf
-
-
- To install the package:
-o run: latex cutwin.ins (which will generate cutwin.sty)
-o Move cutwin.sty to a location where LaTeX will find it,
- for example /usr/TeX/texmf-local/tex/latex/cutwin/cutwin.sty
- (for more information on installation see the FAQ).
-
- To generate a second copy of the manual (which is already supplied as a PDF file):
-o run: (pdf)latex cutwin.dtx
-o (for an index run: makeindex -s gind.ist cutwin.idx)
-o run: (pdf)latex cutwin.dtx
-o Print cutwin.dvi (or cutwin.pdf) for a hardcopy of the package manual
-
-2010/09/29
-Peter Wilson
-herries dot press at earthlink dot net
-
-
diff --git a/macros/latex/contrib/cutwin/README.md b/macros/latex/contrib/cutwin/README.md
new file mode 100644
index 0000000000..b575d8bdcc
--- /dev/null
+++ b/macros/latex/contrib/cutwin/README.md
@@ -0,0 +1,71 @@
+# The cutwin package
+
+The cutwin package enables you to create a window in a paragraph.
+Facilities are provided to assist in putting text or a logo into the
+space cutout.
+
+https://github.com/latex-package-repositories/cutwin/issues
+
+Changes in version 0.1 (2010/09/29)
+
+* First public release
+
+Changes in version 0.2 (2021/10/13)
+
+* Allocate package specific registers replacing \@tempdimb and \@tempdimc
+
+------------------------------------------------------------------
+ Author: Peter Wilson (Herries Press) and Alan Hoenig
+ Copyright 2010 Peter R. Wilson
+
+ Current Maintainer David Carlisle
+ Copyright 2021 Peter R. Wilson, David Carlisle
+
+ This work 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 the license is in
+ http://www.latex-project.org/lppl.txt
+ and version 1.3 or later is part of all distributions of
+ LaTeX version 2003/06/01 or later.
+
+ This work has the LPPL maintenance status "maintained".
+
+This work consists of the files:
+
+ README (this file)
+ cutwin.dtx
+ cutwin.ins
+ cutwin.pdf
+
+and the derived file
+
+ cutwin.sty
+
+------------------------------------------------------------------
+
+The distribution consists of the following files:
+
+README (this file)
+cutwin.dtx
+cutwin.ins
+cutwin.pdf
+
+
+## To install the package:
+
+* run: latex cutwin.ins (which will generate cutwin.sty)
+* Move cutwin.sty to a location where LaTeX will find it,
+ for example /usr/TeX/texmf-local/tex/latex/cutwin/cutwin.sty
+ (for more information on installation see the FAQ).
+
+## To generate a second copy of the manual
+* run: (pdf)latex cutwin.dtx
+* (for an index run: makeindex -s gind.ist cutwin.idx)
+* run: (pdf)latex cutwin.dtx
+* Print cutwin.dvi (or cutwin.pdf) for a hardcopy of the package manual
+
+
+
+
diff --git a/macros/latex/contrib/cutwin/cutwin.dtx b/macros/latex/contrib/cutwin/cutwin.dtx
index e04aca02c8..9c93af47ce 100644
--- a/macros/latex/contrib/cutwin/cutwin.dtx
+++ b/macros/latex/contrib/cutwin/cutwin.dtx
@@ -1,20 +1,23 @@
%% \iffalse meta-comment
%
% cutwin.dtx
-% Author: Peter Wilson, Herries Press (herries dot press at earthlink dot net)
+% Author: Peter Wilson, Herries Press
% and Alan Hoenig
% Copyright 2010 Peter R. Wilson
%
+% Current Maintainer David Carlisle
+% Copyright 2021 Peter R. Wilson, David Carlisle
+%
% This work 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
+% version 1.3 of this license or (at your option) any
% later version.
% The latest version of the license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of
% LaTeX version 2003/06/01 or later.
%
-% This work has the LPPL maintenance status "author-maintained".
+% This work has the LPPL maintenance status "maintained".
%
% This work consists of the files listed in the README file.
%
@@ -47,14 +50,13 @@
%
% \fi
%
-% \CheckSum{720}
%
% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath}
% \DoNotIndex{\@centercr,\@cite}
% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue}
% \DoNotIndex{\@input,\@ixpt,\@m}
% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint}
-% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb}
+% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\c@twdima}
% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt}
% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt}
% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace}
@@ -91,9 +93,10 @@
% \DoNotIndex{\wd,\xiipt,\year,\z@}
%
% \changes{v0.1}{2010/09/29}{First public release}
+% \changes{v0.2}{2021/10/13}{Declare registers}
%
% \def\dtxfile{cutwin.dtx}
-% \def\fileversion{v0.1} \def\filedate{2010/09/29}
+% \def\fileversion{v0.2} \def\filedate{2021/10/13}
% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package
% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option
% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file
@@ -107,8 +110,8 @@
% \filedate.}}
%
% \author{%
-% Peter Wilson\thanks{Herries Press, \texttt{herries dot press at earthlink dot net}}
-% and Alan Hoenig
+% Peter Wilson\thanks{Herries Press} and Alan Hoenig\and
+% Maintained by David Carlisle\thanks{https://github.com/latex-package-repositories/cutwin/issues}%
% }
% \date{\filedate}
% \maketitle
@@ -119,7 +122,7 @@
% \end{abstract}
% \tableofcontents
%
-%
+%
%
% \section{Introduction}
%
@@ -131,8 +134,8 @@
% \LaTeX{} \textsc{docstrip} utility which enables the automatic
% extraction of the \LaTeX{} macro source files~\cite{COMPANION}.
%
-% Section~\ref{sec:usc} describes the usage of the \Lpack{cutwin}
-% package and
+% Section~\ref{sec:usc} describes the usage of the \Lpack{cutwin}
+% package and
% commented source code is in Section~\ref{sec:code}.
%
% \section{The \Lpack{cutwin} package} \label{sec:usc}
@@ -169,7 +172,7 @@
% \centering\bfseries
% Text \\ in \\Window \par}
% \newcommand*{\qinwin}{%
-% \centering\bfseries\Huge ?\,
+% \centering\bfseries\Huge ?\,
% \par}
% \let\windowpagestuff\tinwin
% \begin{cutout}{2}{0.2\textwidth}{0.4\textwidth}{3}
@@ -186,18 +189,18 @@
%
% \DescribeEnv{cutout}
% The |cutout| environment, the body of which must be a single paragraph,
-% enables a rectangular window to be cut out of the paragraph with the
+% enables a rectangular window to be cut out of the paragraph with the
% text flowing across the cutout. Use as:\\
% \verb?\begin{cutout}?\marg{numtop}\marg{leftwidth}\marg{rightwidth}\marg{numcut} \\
% where \meta{numtop} is the number of full lines above the window
-% and \meta{numcut} is the number of lines to be cut (giving the height
+% and \meta{numcut} is the number of lines to be cut (giving the height
% of the window).
% The meaning of the lengths \meta{leftwidth} and \meta{rightwidth} depend
% on the location of the cutout:
% \begin{itemize}
-% \item for a centered cutout \meta{leftwidth} and \meta{rightwidth} are the
+% \item for a centered cutout \meta{leftwidth} and \meta{rightwidth} are the
% lengths of the text lines at the left and right sides of the window;
-% \item for an open left cutout \meta{leftwidth} is ignored and
+% \item for an open left cutout \meta{leftwidth} is ignored and
% \meta{rightwidth} is the length of the lines to the right of the cutout; and
% \item for an open right cutout \meta{rightwidth} is ignored and
% \meta{leftwidth} is the length of the lines at the left of the cutout.
@@ -226,7 +229,7 @@
% satisfaction.
%
% \subsection{Shaped cutouts}
-%
+%
% \newcommand*{\mycut}{%
% 0.1\textwidth, 0.3\textwidth,
% 0.2\textwidth, 0.4\textwidth,
@@ -240,27 +243,27 @@
% bordering the cutout. Normally there is text on either side of the
% window but it could be open at either the left or right side of
% the paragraph. It is possible to put a logo or some text in the
-% window. In this paragraph with a shaped cutout I have used a large
+% window. In this paragraph with a shaped cutout I have used a large
% \$ sign as a simple logo.
% \end{shapedcutout}
%
%
% \DescribeEnv{shapedcutout}
% The |shapedcutout| environment, the body of which must be a single paragraph,
-% enables an arbitrary shaped window to be cut out of the paragraph with the
+% enables an arbitrary shaped window to be cut out of the paragraph with the
% text flowing across the cutout. Use as:\\
% \verb?\begin{shapedcutout}?\marg{numtop}\marg{numcut}\marg{shapespec}
% where \meta{numtop} is the number of full lines above the window,
-% \meta{numcut} is the number of lines to be cut (giving the height of
+% \meta{numcut} is the number of lines to be cut (giving the height of
% the window) and
% \meta{shapespec} is the specification of the length of the lines
% bordering the cutout.
%
-% More precisely \meta{shapespec} is a comma-separated list of the
-% lengths of the
+% More precisely \meta{shapespec} is a comma-separated list of the
+% lengths of the
% text lines bordering the window.
% \begin{itemize}
-% \item For a centered cutout one pair of entries are required for each cut
+% \item For a centered cutout one pair of entries are required for each cut
% line denoting the length of the left and right part of the cut line.
% There must be exactly \meta{numcut} pairs.
% \item
@@ -285,7 +288,7 @@
% of the gap in the first line of the
% cutout. The default \cs{picinwindow} is a zero-sized picture whose contents
% is \cs{putstuffinpic}.
-%
+%
% \cs{picinwindow} and \cs{putstuffinpic} are initially defined as
% \begin{verbatim}
% \newcommand*{\picinwindow}{%
@@ -293,8 +296,8 @@
% \putstuffinpic
% \end{picture}}
% \newcommand*{\putstuffinpic}{}
-% \end{verbatim}
-%
+% \end{verbatim}
+%
% You can change \cs{putstuffinpic} to place what you want in the picture.
% For example, to put the large \$ symbol in the shaped cutout paragraph above
% I used:
@@ -333,8 +336,7 @@
% \begin{macrocode}
%<*pkg>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{cutwin}[2010/09/29 v0.1 cutout windows]
-
+\ProvidesPackage{cutwin}[2021/10/13 v0.2 cutout windows]
% \end{macrocode}
%
%
@@ -348,7 +350,6 @@
\newcount\c@twwinlines % window lines
\newcount\c@twtoplines % top lines
\newcount\c@twcnt % a count
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -364,7 +365,6 @@
\newdimen\c@twrtside % right width
\newdimen\c@twtopht % height of top text
\newdimen\c@twvsilg % Vertical Shift or InterLine Glue
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -377,7 +377,6 @@
% \begin{macrocode}
\newtoks\c@twtoka % build of parshape spec
\newtoks\c@twtokb % build of parshape spec
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -396,7 +395,6 @@
\newbox\c@twfinaltext % final assembled cutout paragraph
\newbox\c@twslicea % slice A of window text
\newbox\c@twsliceb % slice B of window text
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -405,6 +403,16 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\c@twdima}
+% \begin{macro}{\c@twdimb}
+% And some lengths.
+% \begin{macrocode}
+\newdimen\c@twdima % formally \@tempdimb
+\newdimen\c@twdimb % formally \@tempdimc
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\opencutleft}
% \begin{macro}{\opencutright}
% \begin{macro}{\opencutcenter}
@@ -423,17 +431,15 @@
% \end{macro}
% \begin{macrocode}
\opencutcenter
-
% \end{macrocode}
%
% \begin{macro}{\cutfuzz}
% An attempt to stop TeX moaning about over/under full h/v boxes.
% \begin{macrocode}
-\newcommand{\cutfuzz}{\vbadness=50000
+\newcommand{\cutfuzz}{\vbadness=50000
\hbadness=50000
% \hfuzz=1pt
\sloppy}
-
% \end{macrocode}
% \end{macro}
%
@@ -442,9 +448,8 @@
% \begin{macrocode}
\newcommand*{\c@twcalcilg}{%
\c@twvsilg=\baselineskip
- \setbox0=\hbox{(}
+ \setbox0=\hbox{(}%
\advance\c@twvsilg-\ht0 \advance\c@twvsilg-\dp0}
-
% \end{macrocode}
% \end{macro}
%
@@ -454,35 +459,34 @@
% \begin{macro}{\pageinwindow}
% \begin{macro}{\windowpagestuff}
% User modifiable macros for putting (\cs{pageinwindow}), via a
-% zero-sized picture,
+% zero-sized picture,
% stuff (\cs{windowpagestuff}) in a cutout window.
% \begin{macrocode}
\newcommand*{\pageinwindow}{%
- \@tempdimc=\c@twwinlines\baselineskip % cutout height
- \@tempdimb=\hsize
+ \c@twdimb=\c@twwinlines\baselineskip % cutout height
+ \c@twdima=\hsize
\ifnum\c@twl@c=\m@ne % openleft
- \advance\@tempdimb -\c@twrtside
+ \advance\c@twdima -\c@twrtside
\else
\ifnum\c@twl@c=\@ne % openright
- \advance\@tempdimb -\c@twlftside
+ \advance\c@twdima -\c@twlftside
\else% center
- \advance\@tempdimb - \c@twlftside
- \advance\@tempdimb - \c@twrtside
+ \advance\c@twdima - \c@twlftside
+ \advance\c@twdima - \c@twrtside
\fi
\fi
\begin{picture}(0,0)%
\put(0,0){%
\raisebox{4pt}{%
%\fbox{%
- \begin{minipage}[t][\@tempdimc][c]{\@tempdimb}
+ \begin{minipage}[t][\c@twdimb][c]{\c@twdima}%
\windowpagestuff
- \end{minipage}
+ \end{minipage}%
%}% end fbox
}% end raisebox
}% end put
\end{picture}}
\newcommand*{\windowpagestuff}{}
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -493,13 +497,13 @@
% \verb?\begin{cutout}?\marg{numtop}\marg{leftwidth}\marg{rightwidth}\marg{numcut} \\
% where \meta{numtop} is the number of full lines above the window,
% \meta{leftwidth} and \meta{rightwidth} are the widths of the text
-% at the sides of the window,
-% and \meta{numcut} is the number of lines to be cut (giving the height
+% at the sides of the window,
+% and \meta{numcut} is the number of lines to be cut (giving the height
% of the window).
%
% The basic method is to split the paragraph into three parts (a)
-% the top lines above the window, (b) the window lines and (c) the rest
-% (which will be below the window). \cs{parshape} is used to do the
+% the top lines above the window, (b) the window lines and (c) the rest
+% (which will be below the window). \cs{parshape} is used to do the
% splitting. The top lines are left at their natural length, each line
% crossing the window is treated as a pair of short lines, and the rest
% are left at their natural length.
@@ -527,7 +531,7 @@
\c@twwinlines=#4\relax
\c@twcalcshift \vskip-\c@twvsilg
% \end{macrocode}
-% Open the \cs{c@twrawtext} box, call the \cs{parshape} and start
+% Open the \cs{c@twrawtext} box, call the \cs{parshape} and start
% collecting the text to be windowed.
% \begin{macrocode}
\setbox\c@twrawtext=\vbox\bgroup
@@ -538,12 +542,12 @@
% the interline glue.
% \begin{macrocode}
{\egroup% end \box\c@twrawtext
- \parshape=0 % reset parshape;
+ \parshape=0 % reset parshape;
\c@twcalcilg % find ILG using current font
% \end{macrocode}
% If there are lines above the window, split them off from \cs{c@twrawtext}
% into \cs{c@twfinaltext}.
-% \begin{macrocode}
+% \begin{macrocode}
\ifnum\c@twtoplines>\z@
\setbox\c@twfinaltext=\vsplit\c@twrawtext to\c@twtoplines\baselineskip
\fi
@@ -564,17 +568,17 @@
% \begin{macrocode}
\setbox\c@twholdwin=\vsplit\c@twrawtext to\c@twtopht
% \end{macrocode}
-% Now `compose' the window side(s) text (\cs{c@twholdwin})
+% Now `compose' the window side(s) text (\cs{c@twholdwin})
% into the final set of windowed lines (\cs{c@twwindow}).
-% The process depends on whether the cutout is at the left, right, or center.
+% The process depends on whether the cutout is at the left, right, or center.
% \begin{macrocode}
\ifnum\c@twl@c=\z@% center
- \c@twcompctr{\c@twholdwin}{\c@twwindow}
+ \c@twcompctr{\c@twholdwin}{\c@twwindow}%
\else% left or right
- \c@twcomplftrt{\c@twholdwin}{\c@twwindow}
+ \c@twcomplftrt{\c@twholdwin}{\c@twwindow}%
\fi
% \end{macrocode}
-% Assemble the various boxes into the final box (\cs{c@twfinaltext})
+% Assemble the various boxes into the final box (\cs{c@twfinaltext})
% to be output.
% \begin{macrocode}
\setbox\c@twfinaltext=
@@ -585,13 +589,12 @@
% We're done, hand off the paragraph.
% \begin{macrocode}
\box\c@twfinaltext}
-
% \end{macrocode}
% \end{environment}
%
% \begin{macro}{\c@twcompctr}
% \begin{macro}{\c@twfirst}
-% \cs{c@twcompctr}\marg{linepairbox}\marg{composedbox} composes a
+% \cs{c@twcompctr}\marg{linepairbox}\marg{composedbox} composes a
% center window box \meta{linepairbox} consisting of pairs of short
% lines into a box \meta{composedbox} where the pairs have been assembled
% into single lines.
@@ -599,7 +602,7 @@
% \cs{c@twfirst} is used as a flag for indicating the first line of a cutout.
% \begin{macrocode}
\newcommand*{\c@twcompctr}[2]{%
- \def\c@twfirst{1}
+ \def\c@twfirst{1}%
\loop\advance\c@twwinlines\m@ne
% \end{macrocode}
% Get a pair of lines and remove skips.
@@ -626,9 +629,8 @@
\fi
% \end{macrocode}
% \begin{macrocode}
- \def\c@twfirst{2}
+ \def\c@twfirst{2}%
\ifnum\c@twwinlines>\z@\repeat}
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -641,12 +643,12 @@
\loop\advance\c@twwinlines\m@ne
% \end{macrocode}
% For an open window we simply deal with one line at a time, not
-% pairs. In other respects the code is generally similar to that for
+% pairs. In other respects the code is generally similar to that for
% \cs{c@twcompctr}.
% \begin{macrocode}
\setbox\c@twslicea=\vsplit#1 to\baselineskip
\ifnum\c@twl@c=\m@ne% open left, text at right
- \c@twprune{\c@twslicea}{\c@twrtside}
+ \c@twprune{\c@twslicea}{\c@twrtside}%
\ifnum\c@twfirst=\@ne
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\pageinwindow\hfil\box\c@twslicea}}%
@@ -654,10 +656,10 @@
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\mbox{}\hfil\box\c@twslicea}}%
\fi
- \def\c@twfirst{2}
+ \def\c@twfirst{2}%
\else
\ifnum\c@twl@c=\@ne% open right, text at left
- \c@twprune{\c@twslicea}{\c@twlftside}
+ \c@twprune{\c@twslicea}{\c@twlftside}%
\ifnum\c@twfirst=\@ne\relax
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\box\c@twslicea\pageinwindow}}%
@@ -665,11 +667,10 @@
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\box\c@twslicea}}%
\fi
- \def\c@twfirst{2}
+ \def\c@twfirst{2}%
\fi
\fi
\ifnum\c@twwinlines>\z@\repeat}
-
% \end{macrocode}
% \end{macro}
%
@@ -683,7 +684,6 @@
\newcommand*{\c@twprune}[2]{%
\unvbox#1 \setbox#1=\lastbox % \box#1 is now an \hbox
\setbox#1=\hbox to#2{\strut\unhbox#1\unskip}}
-
% \end{macrocode}
% \end{macro}
%
@@ -697,7 +697,7 @@
% the number of the top lines plus (twice) the number of window line
% plus one for the remaining lines.
% \begin{macrocode}
- \c@twcnt=\c@twwinlines
+ \c@twcnt=\c@twwinlines
\ifnum\c@twl@c=\z@
\multiply \c@twcnt by \tw@
\fi
@@ -706,7 +706,7 @@
% If there are top lines generate a \verb?0pt \hsize? for each
% \begin{macrocode}
\ifnum\c@twtoplines>\z@
- \loop\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize}
+ \loop\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize}%
\advance\c@twtoplines -1\relax
\ifnum\c@twtoplines>\z@\repeat
\fi
@@ -728,18 +728,18 @@
% \end{macrocode}
% For open left generate a \verb?\c@twlftside \c@twrtside? for each.
% \begin{macrocode}
- \expandafter{\the\c@twtoka \c@twlftside \c@twrtside}
+ \expandafter{\the\c@twtoka \c@twlftside \c@twrtside}%
\else
\ifnum\c@twl@c=\@ne % openright
% \end{macrocode}
% For open right generate a \verb?\0pt c@twlftside? for each
% \begin{macrocode}
- \expandafter{\the\c@twtoka 0pt \c@twlftside}
+ \expandafter{\the\c@twtoka 0pt \c@twlftside}%
\else %center
% \end{macrocode}
% For centered generate \verb?0pt \c@twlftside 0pt \c@twrtside? for each pair.
% \begin{macrocode}
- \expandafter{\the\c@twtoka 0pt \c@twlftside 0pt \c@twrtside}
+ \expandafter{\the\c@twtoka 0pt \c@twlftside 0pt \c@twrtside}%
\fi
\fi
\advance\c@twwinlines \m@ne
@@ -749,7 +749,6 @@
% paragraph just generate a single \verb?0pt \hsize?.
% \begin{macrocode}
\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize}}
-
% \end{macrocode}
% \end{macro}
%
@@ -767,7 +766,6 @@
\ifnum\c@twl@c=\z@\else
\c@twvsilg=0.5\c@twvsilg
\fi}
-
% \end{macrocode}
% \end{macro}
%
@@ -789,7 +787,6 @@
% Default \cs{putstuffinpic} is empty.
% \begin{macrocode}
\newcommand*{\putstuffinpic}{}
-
% \end{macrocode}
% \end{macro}
%
@@ -798,9 +795,9 @@
% A shaped cutout where the user defines the shape. \\
% \verb?\begin{shapedcutout}?\marg{numtop}\marg{numcut}\marg{shapespec} \\
% where \meta{numtop} is the number of full lines above the window,
-% \meta{numcut} is the number of lines to be cut (giving the height
+% \meta{numcut} is the number of lines to be cut (giving the height
% of the window) and
-% \meta{shapespec} is the user's specification of the shape of the
+% \meta{shapespec} is the user's specification of the shape of the
% surroundings of the cutout. This is in the form of a comma-separated
% list of either the pairs of widths of the left and right texts of a centered
% cutout or the widths of the left or right texts of an open cutout.
@@ -850,42 +847,40 @@
\fi
\setbox\c@twholdwin=\vsplit\c@twrawtext to\c@twtopht
\ifnum\c@twl@c=\z@% center
- \c@twcompoddctr{\c@twholdwin}{\c@twwindow}
- \else% open left or righyt
- \c@twcompoddlftrt{\c@twholdwin}{\c@twwindow}
+ \c@twcompoddctr{\c@twholdwin}{\c@twwindow}%
+ \else% open left or right
+ \c@twcompoddlftrt{\c@twholdwin}{\c@twwindow}%
\fi
\setbox\c@twfinaltext=
\vbox{\ifnum\c@twtoplines>\z@\unvbox\c@twfinaltext\vskip\c@twvsilg\fi
\unvbox\c@twwindow%
\vskip-\c@twvsilg\unvbox\c@twrawtext}%
\box\c@twfinaltext}
-
% \end{macrocode}
% \end{environment}
%
% \begin{macro}{\c@twmaketopoddspec}
-% Make up the easy part of the odd \cs{parshape} specification;
+% Make up the easy part of the odd \cs{parshape} specification;
% total number \cs{c@twcnt} and the toplines spec (\cs{c@twtoka}).
% \begin{macrocode}
\newcommand*{\c@twmaketopoddspec}{%
- \c@twcnt=\c@twwinlines
+ \c@twcnt=\c@twwinlines
\ifnum\c@twl@c=\z@
\multiply \c@twcnt by \tw@
\fi
\advance\c@twcnt by \c@twtoplines \advance\c@twcnt by \@ne
%% \c@twcnt is total of toplines + 2(window lines) + 1
- \c@twtoka={}
+ \c@twtoka={}%
\ifnum\c@twtoplines>\z@
- \loop\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize}
+ \loop\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize}%
\advance\c@twtoplines -1\relax
\ifnum\c@twtoplines>\z@\repeat
\fi}
-
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\c@twaddtospec}
-% Adds a `zero-indented line' to a parshape spec being assembled in
+% Adds a `zero-indented line' to a parshape spec being assembled in
% \cs{c@twtokb}.
% \begin{macrocode}
\newcommand*{\c@twaddtospec}[1]{%
@@ -894,24 +889,23 @@
% \end{macro}
% \begin{macro}{\c@twbuildoddspec}
% \begin{macro}{\c@twxpf}
-% \cs{c@twbuildoddspec}\marg{commalist} builds up the parshape spec for
+% \cs{c@twbuildoddspec}\marg{commalist} builds up the parshape spec for
% the odd cutout lines from the comma-separated list of lengths
% in \meta{commalist}.
%
% \cs{c@twxpf} is a shorthand for \cs{expandafter}
% to try and make the code shorter to read.
% \begin{macro}{\c@twlspec}
-% \cs{c@twlspec} is used as a temporary variable when iterating over
+% \cs{c@twlspec} is used as a temporary variable when iterating over
% a comma-separated list.
% \end{macro}
%
% \begin{macrocode}
\let\c@twxpf\expandafter
\newcommand*{\c@twbuildoddspec}[1]{%
- \c@twtokb={}
+ \c@twtokb={}%
\@for\c@twlspec:=#1\do{%
\c@twxpf\c@twxpf\c@twxpf\c@twaddtospec\c@twxpf{\c@twlspec}}}
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -919,34 +913,33 @@
% \begin{macro}{\c@twcompoddctr}
% \begin{macro}{\c@twrounds}
% Compose the lines of an odd shaped center cutout.
-%
+%
% We go through the user's shape list an item at a time but we need to
% collect pairs of items. The \cs{c@twrounds} variable is for managing the
% pairing. \cs{c@twfirst} is a flag for positioning the \cs{picinwindow} in
% the first line of the cutout.
% \begin{macrocode}
\newcommand*{\c@twcompoddctr}[2]{%
- \def\c@twrounds{1}
- \def\c@twfirst{1}
+ \def\c@twrounds{1}%
+ \def\c@twfirst{1}%
\@for\c@twlspec:=\c@twb\do{%
\ifnum\c@twrounds=1
\setbox\c@twslicea=\vsplit#1 to\baselineskip % first of pair
\c@twprune{\c@twslicea}{\c@twlspec}%
- \def\c@twrounds{2}
+ \def\c@twrounds{2}%
\else
\setbox\c@twsliceb=\vsplit#1 to\baselineskip % second of pair
\c@twprune{\c@twsliceb}{\c@twlspec}%
\ifnum\c@twfirst=1
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\box\c@twslicea\hfil\picinwindow\hfil\box\c@twsliceb}}%
- \def\c@twfirst{2}
+ \def\c@twfirst{2}%
\else
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\box\c@twslicea\hfil\box\c@twsliceb}}%
\fi
- \def\c@twrounds{1}
+ \def\c@twrounds{1}%
\fi}}
-
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -955,7 +948,7 @@
% Compose the open (left or right) lines of an odd shaped cutout.
% \begin{macrocode}
\newcommand*{\c@twcompoddlftrt}[2]{%
- \def\c@twfirst{1}
+ \def\c@twfirst{1}%
\@for\c@twlspec:=\c@twb\do{%
\setbox\c@twslicea=\vsplit#1 to\baselineskip % get a line
\c@twprune{\c@twslicea}{\c@twlspec}%
@@ -963,7 +956,7 @@
\ifnum\c@twfirst=1
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\mbox{}\hfil\picinwindow\hfil\box\c@twslicea}}%
- \def\c@twfirst{2}
+ \def\c@twfirst{2}%
\else
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\mbox{}\hfil\box\c@twslicea}}%
@@ -973,14 +966,13 @@
\ifnum\c@twfirst=1
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\box\c@twslicea\hfil\picinwindow\hfil}}%
- \def\c@twfirst{2}
+ \def\c@twfirst{2}%
\else
\setbox#2=\vbox{\unvbox#2\hbox
to\hsize{\box\c@twslicea\hfil}}%
\fi
\fi
\fi}}
-
% \end{macrocode}
% \end{macro}
%
@@ -1000,20 +992,3 @@
%
\endinput
-%% \CharacterTable
-%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
-
-
diff --git a/macros/latex/contrib/cutwin/cutwin.ins b/macros/latex/contrib/cutwin/cutwin.ins
index e4cd30f2b8..b534e77db8 100644
--- a/macros/latex/contrib/cutwin/cutwin.ins
+++ b/macros/latex/contrib/cutwin/cutwin.ins
@@ -1,8 +1,11 @@
%% cutwin.ins
-%% Author: Peter Wilson, Herries Press (herries dot press at earthlink dot net)
+%% Author: Peter Wilson, Herries Press
%% and Alan Hoenig
%% Copyright 2010 Peter R. Wilson
%%
+%% Current Maintainer David Carlisle
+%% Copyright 2021 Peter R. Wilson, David Carlisle
+%%
%% This work 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
@@ -12,7 +15,7 @@
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2003/06/01 or later.
%%
-%% This work has the LPPL maintenance status "author-maintained".
+%% This work has the LPPL maintenance status "maintained".
%%
%% This work consists of the files listed in the README file.
%%
@@ -34,6 +37,9 @@
and Alan Hoenig
Copyright 2010 Peter R. Wilson
+ Current Maintainer David Carlisle
+ Copyright 2021 Peter R. Wilson, David Carlisle
+
This work 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
@@ -43,7 +49,7 @@
and version 1.3 or later is part of all distributions of
LaTeX version 2003/06/01 or later.
- This work has the LPPL maintenance status "author-maintained".
+ This work has the LPPL maintenance status "maintained".
This work consists of the files listed in the README file.
-----------------------------------------------------------------
diff --git a/macros/latex/contrib/cutwin/cutwin.pdf b/macros/latex/contrib/cutwin/cutwin.pdf
index c4f3de9cb9..fad6fe41da 100644
--- a/macros/latex/contrib/cutwin/cutwin.pdf
+++ b/macros/latex/contrib/cutwin/cutwin.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index fb8203e55f..659bc9e1e8 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/10/25}{1.40H}
+\ProvidesExplClass{easybook}{2021/10/30}{1.40I}
{Typeset Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -325,7 +325,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2021/10/25}{1.40H}
+\ProvidesExplPackage{easybase}{2021/10/30}{1.40I}
{Typeset Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -2302,49 +2302,6 @@
{ color } { theme }
}
{ \eb_color_assign_cmd_set:nn #1 }
-
-\bool_set_false:N \l__eb_toc_number_color_bool
-\ctex_define:nn { refset }
- {
- linktype .choice:,
- linktype .value_required:n = true,
- linktype/edge .code:n =
- { \AtBeginDocument[hyperref]{\tl_set:Nn \@pdfborder { 0~0~1 }} },
- linktype/none .code:n =
- { \AtBeginDocument[hyperref]{\tl_set:Nn \@pdfborder { 0~0~0 }} },
- linktype/colors .code:n =
- {
- \bool_set_true:N \l__eb_toc_number_color_bool
- \colorlet{ctex@toc@number}{ctex@link}
- \eb_put_hyperref:n { colorlinks }
- },
- linktype/various .meta:n = linktype/colors,
- linktype .initial:n = edge,
-
- linktoc .choice:,
- linktoc/unknown .code:n =
- {
- \eb_put_hyperref:n { linktoc = #1 }
- \eb_clist_map_inline:nn { page,none }
- {
- \tl_if_eq:NnT \l_keys_value_tl {##1}
- {
- \colorlet{ctex@toc@number}{black}
- \seq_map_break:
- }
- }
- },
- linktoc .default:n = all,
- linktoc .initial:n = all,
- unknown .code:n =
- {
- \eb_put_hyperref:x
- {
- \l_keys_key_str
- \tl_if_empty:NF \l_keys_value_tl { = {#1} }
- }
- }
- }
\ctex_define:nx { refset }
{
linkcolor .choice:,
@@ -2378,6 +2335,58 @@
{ \eb_define_theme_color:n { \exp_not:n {#1} } }
}
+\bool_set_false:N \l__eb_toc_number_color_bool
+\cs_new_protected:Npn \eb_link_border_set:n #1
+ {
+ \AtBeginDocument
+ {
+ \def\@pdfborder{#1}
+ \def\Hy@colorlink ##1 {\begingroup}
+ \def\Hy@endcolorlink{\endgroup}
+ }
+ }
+\cs_new_protected:Npn \eb_link_colors_set:
+ {
+ \bool_set_true:N \l__eb_toc_number_color_bool
+ \colorlet{ctex@toc@number}{ctex@link}
+ \eb_put_hyperref:n { colorlinks }
+ }
+\cs_new_protected:Npn \eb_link_toc_put:n #1
+ {
+ \eb_put_hyperref:n { linktoc = #1 }
+ \eb_clist_map_inline:nn { page,none }
+ {
+ \tl_if_eq:NnT \l_keys_value_tl {##1}
+ {
+ \colorlet{ctex@toc@number}{black}
+ \seq_map_break:
+ }
+ }
+ }
+\ctex_define:nn { refset }
+ {
+ linktype .choice:,
+ linktype .value_required:n = true,
+ linktype/edge .code:n = \eb_link_border_set:n { 0~0~1 },
+ linktype/none .code:n = \eb_link_border_set:n { 0~0~0 },
+ linktype/colors .code:n = \eb_link_colors_set:,
+ linktype/various .meta:n = linktype/colors,
+ linktype .initial:n = edge,
+
+ linktoc .choice:,
+ linktoc/unknown .code:n = \eb_link_toc_put:n {#1},
+ linktoc .default:n = all,
+ linktoc .initial:n = all,
+ unknown .code:n =
+ {
+ \eb_put_hyperref:x
+ {
+ \l_keys_key_str
+ \tl_if_empty:NF \l_keys_value_tl { = {#1} }
+ }
+ }
+ }
+
\cs_new:Npn \eb_allow_url_break:
{
\eb_appto_cmd:Nn \UrlBreaks
@@ -2445,7 +2454,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2021/10/25}{1.40H}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2021/10/30}{1.40I}
{Customization of tcolorbox for easybook}
\tl_gset:Nn \eb@tc@line@skip { 0.5\baselineskip }
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index c0fe946ad0..43e2e4af1f 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index a97dfc7c4b..abea3e943a 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -20,8 +20,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK 使用手册,
- version = v1.40H,
- date = 2021/10/28,
+ version = v1.40I,
+ date = 2021/10/30,
authors = 瞿毅,
info = 排版简体中文学位论文和书籍,
email = q1jx@foxmail.com,
@@ -49,8 +49,6 @@
\setcounter{tocdepth}{2}
\ExplSyntaxOn\makeatletter
-\NewDocumentCommand{\passto}{smm}
- {\IfBooleanF{#1}{\color{Blue}}#3\ifblank{#2}{}{\ttfamily[#2]}}
\newcommand{\splitmeta}[2][\code{,}]
{
\clist_clear:N \l_tmpa_clist
@@ -77,9 +75,19 @@
\newsplitarg{\splitmarg}{\{}{\}}
\newcommand{\spemmeta}{\splitmeta[\code{|}]}
\newsplitarg[\spemmeta]{\spemcoarg}{[}{]}
-\renewcommand{\cnltx@package@abstract@width}{0.85\linewidth}
-\newcommand{\noitemsep}{\setlength{\itemsep}{0ex}}
+\NewDocumentCommand{\passto}{smm}
+ {\IfBooleanF{#1}{\color{Blue}}#3\ifblank{#2}{}{\ttfamily[#2]}}
+\newcommand{\insertblr}[2]
+ {
+ \begin{center}
+ \begin{tblr}{#1}
+ #2
+ \end{tblr}
+ \end{center}
+ }
\newcommand{\black}[1]{\textcolor{black}{#1}}
+\newcommand{\noitemsep}{\setlength{\itemsep}{0ex}}
+\renewcommand{\cnltx@package@abstract@width}{0.85\linewidth}
\renewcommand{\cmltx@list@setup}
{
\setlength{\leftmargin}{0em}
@@ -177,21 +185,19 @@
\subsection{依赖宏包}
以下为 \pkg*{easybase} 直接调用的关键宏包清单。灰色的宏包表示并未调用它们,但做了一些预配置,可在导言区手动载入以实现相关的功能。
-\begin{center}
- \begin{tblr}
+\insertblr
{
colspec = @{}*{5}{c}@{},
hline{1,6} = {1pt,Blue},
cells = {cmd = \pkg*},
cell{5}{2-5} = {font = \color{gray}}
- }
+ }{
ctex & spbmark & ulem & enumitem & etoolbox \\
siunitx & pifont & amsthm & thmtools & marginnote \\
pdfpages & multicol & fancyhdr & titletoc & tabularray \\
setspace & listings & chemformula & geometry & caption \\
hyperref & bicaption & imakeidx & mathtools & tcolorbox
- \end{tblr}
-\end{center}
+ }
\section{文档类选项}
\label{sec:document class options}
@@ -231,15 +237,14 @@
\begin{options}
\keychoice{font}{noto,garamond,times,times*,libertine,palatino,auto}\Default{auto}
预置的英文字体相关配置方案如下表所示,这些字体已经包含在了 \TeX Live 发行版中,所以通常不需要再专门安装。如果您想使用其他英文字体,可以使用 \pkg*{fontspec} 宏包的相关命令进行设置。
- \begin{center}
- \begin{tblr}
+ \insertblr
{
colspec = @{}*{4}{c}@{},
hline{1,8} = {1pt,Blue},
hline{2} = {0.6pt,Blue},
row{1} = {font = \sffamily},
column{1} = {cmd = \code}
- }
+ }{
& 正文字体 & 无衬线字体 & 等宽字体 \\
noto & Noto Serif & Noto Sans & Noto Sans Mono \\
garamond & EB Garamond & Libertinus Sans & LM Mono \\
@@ -247,8 +252,7 @@
libertine & Libertinus Serif & Libertinus Sans & LM Mono \\
times & XITS & TG Heros & TG Cursor \\
times* & Times New Roman & Arial & Courier New
- \end{tblr}
- \end{center}
+ }
\end{options}
\subsection{数学字体}
@@ -357,21 +361,19 @@
\begin{commands}
\command*{ctexset}[\marg{键值列表}]
\cls*{easybook} 扩展了 C\TeX 宏集 \hologo{LaTeX3} 风格键值的通用控制命令 \cs*{ctexset},接口选项同样可用它设置, 原有的 \meta{键值列表} 仍然可用。本文档类目前有 9 个模块用于实现常规的排版功能,如下表所示,它们既是统一接口 \cs*{ctexset} 的路径,也是相关模块的接口命令名:
- \begin{center}
- \begin{tblr}
+ \insertblr
{
colspec = @{}*{5}{c}@{},
hline{1,5} = {1pt,Blue},
hline{3} = {0.6pt,Blue},
row{1,3} = {font = \sffamily,belowsep = 0pt},
row{2,4} = {cmd = \module*}
- }
+ }{
\hyperref[subsec:style]{风格} & \hyperref[subsec:other font]{其它字体} & \hyperref[subsec:spacing]{行距} & \hyperref[subsec:hyperlinks]{超链接} & \hyperref[subsec:reference]{参考文献} \\
style & subfont & spread & refset & bibset \\
\hyperref[subsec:theorem of style]{定理样式} & \hyperref[subsec:page margins]{页面尺寸} & \hyperref[subsec:header and footer]{页眉页脚} & \hyperref[subsec:catalog style]{目录样式} & \\
thmset & geoset & hdrset & tocset &
- \end{tblr}
- \end{center}
+ }
例如使用下面小节 \ref{subsec:style} 介绍的风格 \module*{style} 模块,路径名与所属下级选项之间可以 \code{/} 或 \code{=} 号分开,斜线 \code{/} 后不能有空格或者换行:
\begin{ctexexam}
@@ -907,19 +909,17 @@
\environment{remark}\default{}
\environment{proof}
这些是预置的定理环境,可使用选项 \option{thmframe} 为它们添加盒子边框,其中注与证明环境不编号,证明末尾会自动添加证明结束符,声明新的定理环境或更改定理盒子样式见小节 \ref{subsec:theorem of style}。环境名与之对应的定理名如下:
- \begin{center}
- \begin{tblr}
+ \insertblr
{
colspec = @{}*{8}{c}@{},
hline{1,3} = {1pt,Blue},
hline{2} = {0.6pt,Blue},
row{1} = {font = \sffamily},
row{2} = {cmd = \env}
- }
+ }{
定理 & 定义 & 引理 & 推论& 性质 & 例 & 注 & 证明 \\
theorem & definition & lemma & corollary & proposition & example & remark & proof
- \end{tblr}
- \end{center}
+ }
\end{environments}
\subsection{悬挂缩进}
diff --git a/macros/latex/contrib/mathalpha/README b/macros/latex/contrib/mathalpha/README
index 229b223094..3fc8cff092 100644
--- a/macros/latex/contrib/mathalpha/README
+++ b/macros/latex/contrib/mathalpha/README
@@ -1,7 +1,7 @@
______________________________________
The MATHALPHA (*AKA MATHALFA) package
-As of version 1.12, the name of the package mathalfa was changed to mathalpha. (When I made the first version over 10 years ago, 8.3 filenames were still preferred iny a few older systems, leasing to what might appear as an unfortunate error in English spelling.) This should make no difference in its usage---though the name is changed, it works the same under both names. On CTAN, though the package will be set up as mathalpha, an alias will find it under the name mathalfa. The documentation name has been changed to mathalpha-doc.{tex,pdf} so some changes in texdoc data and the like will be necessary.
+As of version 1.12, the name of the package mathalfa was changed to mathalpha. (When I made the first version over 10 years ago, 8.3 filenames were still preferred in a few older systems, leading to what might appear as an unfortunate error in English spelling.) This should make no difference in its usage---though the name is changed, it works the same under both names. On CTAN, though the package will be set up as mathalpha, an alias will find it under the name mathalfa. The documentation name has been changed to mathalpha-doc.{tex,pdf} so some changes in texdoc data and the like will be necessary.
This package provides a standard means of setting math alphabets
associated with the macros \mathcal, \mathbb, \mathfrak and \mathscr
@@ -11,6 +11,14 @@ It mostly bypasses the usual fd and sty files used to load these
alphabets in order to allow each to be scaled independently and
without silently quantizing the sizes.
+Current version: 1.14 2021-10-29
+
+Version 1.14 marks a rather major revision, incorporating a number of suggestions from Frank Mittelbach.
+(a) A number of alphabets have been added, including bboldx (an extension of bbold Blackboard Bold) and several from the STIX and STIX2 fonts.
+(b) Most of the original mathalpha internal worked by setting up the alphabets as Math Alphabets rather than as Symbol Fonts, thus limiting the coverage to the Roman alphabet and the digits, but being simpler and more "sixteen math families" friendly. The current mathalpha adds an option to select which setup to use, but this of course is not possible for a particular font unless the support files have been set up appropriately. This is worth doing only for fonts that are sufficiently rich in characters lying outside the range of ordinary alphanumerics---dotlessi, dotlessj, Greek letters and other math symbols, for example. This is a work that will remain in progress for some time.
+(c) There are new options to choose alphabets only from the bold versions, potentially freeing up a math family.
+(d) I changed the name of the macro of bold version of the math alphabets to be close to those used in unicode math, changing from \mathbcal to \mathbfcal, \mathbscr to \mathbfscrb, \mathbfrak to \mathbffrak and\mathbbb to \mathbfbb. In most cases, I \let the old version to the new ones in order to not disrupt old work.
+
Version 1.13 changes the behavior under the option scr, first letting \mathscr to \relax, in case it was previously defined. This corrects a misbehavior under newtxmath 1.6 and newpxmath 1.4. (*)Thanks Evan Couch.)
Version 1.12 Name of package changed from mathalfa to mathalpha.
diff --git a/macros/latex/contrib/mathalpha/doc/mathalpha-doc.pdf b/macros/latex/contrib/mathalpha/doc/mathalpha-doc.pdf
index f7639e1ad6..796fca0016 100644
--- a/macros/latex/contrib/mathalpha/doc/mathalpha-doc.pdf
+++ b/macros/latex/contrib/mathalpha/doc/mathalpha-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/mathalpha/doc/mathalpha-doc.tex b/macros/latex/contrib/mathalpha/doc/mathalpha-doc.tex
index de4de05441..03c3793c37 100644
--- a/macros/latex/contrib/mathalpha/doc/mathalpha-doc.tex
+++ b/macros/latex/contrib/mathalpha/doc/mathalpha-doc.tex
@@ -1,39 +1,53 @@
% !TEX TS-program = pdflatexmk
-\documentclass[11pt]{amsart}
-%\pdfmapfile{+TXUprCal.map}
+\documentclass[11pt]{article}
+%\pdfmapfile{+bboldx.map}
%\pdfmapfile{+BOONDOXUprScr.map}
\usepackage[margin=1in]{geometry}
\usepackage[parfill]{parskip}\usepackage{url}
\usepackage{graphicx}
- \DeclareFontEncoding{LMR}{}{}
+\DeclareFontEncoding{LS1}{}{}
+\DeclareFontSubstitution{LS1}{stix2}{m}{n}
+\DeclareFontEncoding{LMR}{}{}
\DeclareFontSubstitution{LMR}{hlcm}{m}{n}
\DeclareFontFamily{U}{futm}{}
\DeclareFontShape{U}{futm}{m}{n}{
<-> fourier-bb
}{}
\DeclareSymbolFont{Ufutm}{U}{futm}{m}{n}
-\usepackage[T1,OT1]{fontenc}
-\usepackage{amssymb}
+\font\stixtwobb=stix2-mathbb at 11pt
+\font\stixtwobbi=stix2-mathbbit at 11pt
+\font\stixbb=stix-mathbb at 11pt
+\font\stixbbb=stix-mathbb-bold at 11pt
+\font\stixbbob=stix-mathbbit at 11pt
+\font\stixbbbob=stix-mathbbit-bold at 11pt
+
+\usepackage{longtable}
+\usepackage{trace,fonttable}
+\usepackage{ETbb}
+\usepackage[T1]{fontenc}
+\usepackage{amsmath,amssymb}
+\usepackage[bb=stixtwo]{mathalpha}
\usepackage{hyperref}
-\title{The \textsf{mathalpha, AKA mathalfa} package}
+\title{The \textsf{mathalpha,} \textsc{aka} \textsf{mathalfa} package}
\author{Michael Sharpe}
-\email{msharpe at ucsd dot edu}
+%\email{msharpe at ucsd dot edu}
\date{}
-
+\renewcommand{\thefootnote}{\fnsymbol{footnote}}
\begin{document}
\maketitle
%\section{Introduction}
+
The math alphabets normally addressed via the macros \verb|\mathcal|, \verb|\mathbb|, \verb|\mathfrak| and \verb|\mathscr| are in a number of cases not well-adapted to the \LaTeX\ math font structure. Some suffer from one or more of the following defects:
\begin{itemize}
\item
-font sizes are locked into a sequence that was appropriate for \textsf{metafont}--generated rather than scalable fonts;
+font sizes are locked into a size sequence that was appropriate for \textsf{metafont}--generated rather than scalable fonts;
\item there is no option in the loading package to enable scaling;
\item the font metrics are designed for text rather than math mode, leading to awkward spacing, subscript placement and accent placement when used for the latter;
\item the means of selecting a set of math alphabets varies from package to package.
\end{itemize}
The goal of this package is to provide remedies for the above, where possible. This means, in effect, providing virtual fonts with my personal effort at correcting the metric issues, rewriting the font-loading macros usually found in a \textsf{.sty} and/or \textsf{.fd} files to admit a scale factor in all cases, and providing a \textsf{.sty} file which is extensible and from which any such math alphabet may be specified using a standard recipe.
-For example, the following fonts are potentially suitable as targets for \verb|\mathcal| or \verb|\mathscr| and are either included as part of \TeX Live 2011, as free downloads from CTAN or other free sources, or from commercial sites.
+For example, the following fonts are potentially suitable as targets for \verb|\mathcal| or \verb|\mathscr| and are either included as part of \TeX Live, as free downloads from CTAN or other free sources, or from commercial sites.
\begin{verbatim}
cm % Computer Modern Math Italic (cmsy)
euler % euscript
@@ -47,16 +61,20 @@ mt % Mathtime (commercial)
mtc % Mathtime Curly (commercial)
zapfc % Adobe Zapf Chancery (URW clone is part of TeXLive)
esstix % ESSTIX-thirteen
-boondox % calligraphic alphabet derived from stix fonts
+boondox % calligraphic alphabet derived from STIX1 fonts
boondoxo % based on boondox, but less oblique
dutchcal % regular and bold weights derived from ESSTIX13
pxtx % from pxfonts and txfonts
bickham % from commercial Bickham Script
-bickhams
+bickhams % using semibold for Latex regular
stix % from STIX
txupr % upright calligraphic based on txfonts
boondoxupr % upright calligraphic based on STIX script
kp % regular and bold weights from kpfonts---script only
+stixplain % STIX1 calligraphic
+stixfancy % STIX1 script
+stixtwoplain % STIX2 calligraphic
+stixtwofancy % STIX2 script
\end{verbatim}
In all that follows, you may use the package names \textsf{mathalpha} and \textsf{mathalfa} interchangeably. Once you have installed the support packages for these fonts and the \textsf{mathalpha} package, you may select a particular calligraphic font for \verb|\mathcal| using something like
\begin{verbatim}
@@ -75,46 +93,77 @@ As initially configured, \textsf{mathalpha} makes available the following option
\begin{description}
\item[cal=] Select the calligraphic alphabet from the list above.
\item[calscaled=] Select a scale factor for \textsf{cal}.
-\item[scr=] Select the script alphabet from \textsf{rsfs, rsfso, euler, lucida, mathpi, mma, mtc, zapfc, esstix, boondox, boondoxo. dutchcal, pxtx, bickham, bickhams,txupr,boondoxupr,kp}.
+\item[bfcal] Force \verb|\mathcal| to point to the bold version.
+\item[calsymbols] Force the \texttt{cal} alphabet to load as a {\tt symbol} font.
+\item[scr=] Select the script alphabet from the same list.
\item[scrscaled=] Select a scale factor for \textsf{scr}.
-\item[frak=] Select the fraktur alphabet from \textsf{euler, lucida, mathpi, mma, mt, esstix, boondox, pxtx}.
+\item[bfscr] Force \verb|\mathscr| to point to the bold version.
+\item[scrsymbols] Force the \texttt{scr} alphabet to load as a {\tt symbol} font.
+\item[frak=] Select the fraktur alphabet from \textsf{euler, lucida, mathpi, mma, mt, esstix, boondox, pxtx, stixtwo}.
\item[frakscaled=] Select a scale factor for \textsf{frak}.
-\item[bb=] Select the Blackboard bold alphabet from \textsf{ams, lucida, mathpi, mma, mt, mth, pazo, fourier, esstix, boondox, px, tx, txof}.
+\item[bffrak] Force \verb|\mathfrak| to point to the bold version.
+\item[fraksymbols] Force the \texttt{frak} alphabet to load as a {\tt symbol} font.
+\item[bb=] Select the Blackboard bold alphabet from \textsf{ams, lucida, mathpi, mma, mt, mth, pazo, fourier, esstix, boondox, px, tx, txof, libus, dsserif, bboldxLight, bboldx, dsfontserif, dsfontsans, stixtwo, stix}.
\item[bbscaled=] Select a scale factor for \textsf{bb}.
+\item[bfbb] Force \verb|\mathbb| to point to the bold version.
+\item[bbsymbols] Force the \texttt{bb} alphabet to load as a {\tt symbol} font.
+\item[oldbold] Provide aliases to the new names of the bold versions. For example, prior versions of {\tt mathalpha} used the names \verb|\mathbbb|, \verb|\mathbcal|, \verb|\mathbscr| and \verb|\mathbfrak|, while version 1.14 and higher will use names \verb|\mathbfbb|, \verb|\mathbfcal|, \verb|\mathbfscr| and \verb|\mathbffrak|, in line with unicode math usage. This option will make the old names available as aliases to the new names.
\item[scaled=] Select a scale for all alphabets chosen within mathalpha.
\item[showoptions] This option throws an error and shows a list of all installed option values for \textsf{bb}, \textsf{cal}, \textsf{frak} and \textsf{scr} on the console.
\end{description}
\textsc{Notes}
\begin{itemize}
-\item If bold versions exist, they are loaded and may be used with the macros \verb|\mathbcal|, \verb|\mathbbb|, \verb|\mathbfrak| and \verb|\mathbscr|.
-\item If you prefer that the bold weight be the default target from \verb|\mathcal|, enter
-\begin{verbatim}
-\let\mathcal\mathbcal
-\end{verbatim}
-after loading the {\tt mathalpha} package. (You may find this a useful option if you specified {\tt cal=dutchcal}, as that font is quite light.)
+\item If bold versions exist, they are loaded and may be used with the macros \verb|\mathbfcal|, \verb|\mathbfbb|, \verb|\mathbffrak| and \verb|\mathbfscr|. (These macro names changed in 2021.)
+\item If you prefer that the bold weight be the default target from \verb|\mathcal| etc, make use of the new (as of 2021) options {\tt bfcal} etc. If you prefer to use the older names like \verb|\mathbcal|, include the {\tt mathalpha} option {\tt oldbold}.
\item
Use of \textsf{zapfc} as a value for either \textsf{cal} or \textsf{scr} requires that you install the \textsf{urwchancal} package from\\
\url{http://mirror.tug.org/fonts/urwchancal}.\\
- (It is distributed as part of \TeX\ Live as of March 2011.)
+ (It is distributed as part of \TeX\ Live and MiKTeX.)
\item Use of the \textsf{rsfso} as a value for either \textsf{cal} or \textsf{scr} requires that you install the \textsf{rsfso} package from\\
\url{http://mirror.tug.org/fonts/rsfso}.\\
- (It is distributed as part of \TeX\ Live as of March 2011.)
+ (It is distributed as part of \TeX\ Live and MiKTeX.)
\item Use of \textsf{mma} as a value requires that you have access to the older mathematic fonts from Mathematica versions near 3.\\
The support files developed by Jens-Peer Kuska may be downloaded from \textsc{ctan}. (Search for {\tt Mathematica}.)\\
In particular, {\tt wolfram.map} must be enabled. Virtual fonts with metrics that are suitable for math mode are also required.
\item Use of \textsf{mathpi} requires that you purchase and install the Adobe Mathematical Pi fonts (\#2 and \#6) or clones thereof.%If you choose to buy them, you may download support files, including virtual fonts with tuned metrics, from \\
%\url{http://public.me.com/mjsharpe/mathpiTDS.zip}.
-\item The {\tt pxtx} package consists of virtual fonts drawn from the math alphabets in the {\tt pxfonts} and {\tt txfonts} packages, with modified metrics. The calligraphic fonts are identical to those in the Mathematica package, but the others seem distinct. The {\tt pxtx} package is part of \TeX\ Live.
+\item The {\tt pxtx} package consists of virtual fonts drawn from the math alphabets in the {\tt pxfonts} and {\tt txfonts} packages, with modified metrics. The calligraphic fonts are identical to those in the Mathematica package, but the others seem distinct. The {\tt pxtx} package is part of \TeX\ Live and MiKTeX.
\item The Adobe Bickham Script Pro font collection in OpenType format is rather expensive but quite elegant. Its upper-case glyphs are well-suited for adaptation as a math calligraphic font once the slant is reduced. The \textsf{bickham} package makes available virtual fonts and \LaTeX\ support files for these fonts, and can be used as the target for \verb|\mathcal| and \verb|\mathscr| as well as their bold variants. You may use the target \textsf{bickham} to load regular and bold weight of BickhamScriptPro. The target \textsf{bickhams} instead loads \textsf{bickham-s} (the semibold weight) in place of \textsf{bickham-r}, the regular weight. Note that this requires that you install the newest version of the \textsf{bickham} package, which provides support for the semibold weight.
\item The ESSTIX collection is a creation of Elsevier Publishing in 2000, though never officially released by them. Before development was complete, the collection was donated to the STIX math font project, to which it seems to have been a precursor. Distribution has since been deprecated, but in my opinion, math alphabet fonts, especially math script fonts, are so rare that none should be allowed to become extinct. The BlackBoard Bold ESSTIX font (\textsf{ESSTIX14}) is close to both the mathpi and Fourier Blackboard Bold fonts, and the fraktur ESSTIX font (\textsf{ESSTIX15}) is similar to mathpi fraktur. However, the ESSTIX script font (\textsf{ESSTIX13}) seems to be a distinct and interesting face. The PostScript versions of these fonts have been hard to find, but the TrueType versions may be found embedded within the \textsf{Amaya} project, available at\\
\url{http://www.w3.org/Amaya/}.\\
- The ESSTIX PostScript fonts, virtual math fonts and \LaTeX\ support files may be downloaded now from\\
-\url{http://mirror.ctan.org/fonts/esstix}.\\
-This provides virtual fonts with tfm names \textsf{esstixcal}, \textsf{esstixbb} and \textsf{esstixfrak}. As of May 2011, the \textsf{esstix} package is distributed as a part of \TeX\ Live.
-\item The STIX fonts are currently (May 2011) distributed only in OpenType format. The PostScript BOONDOX fonts (in the USA, \emph{the boondocks} and \emph{the sticks} are essentially synonymous) containing their calligraphic, fraktur and double-struck (blackboard bold) alphabets in regular and bold weights were manufactured from STIX {\tt.otf} fonts using \textsf{FontForge}. Virtual fonts were then created using \textsf{fontinst} to customize the metrics for positioning accents and subscripts. A TDS package with the fonts and support files may be downloaded from\\
-\url{http://mirror.ctan.org/fonts/boondox}.\\
-\end{itemize}
+ The ESSTIX PostScript fonts, virtual math fonts and \LaTeX\ support files are distributed as part of \TeX\ Live and MiKTeX.\\
+This provides virtual fonts with tfm names \textsf{esstixcal}, \textsf{esstixbb} and \textsf{esstixfrak}.
+\item The STIX fonts are currently (2021) distributed only in OpenType and PostScript ({\tt pfb}) formats. The PostScript BOONDOX fonts (in the USA, \emph{the boondocks} and \emph{the sticks} are essentially synonymous) containing their calligraphic, fraktur and double-struck (blackboard bold) alphabets in regular and bold weights were manufactured from STIX {\tt.otf} fonts using \textsf{FontForge}. Virtual fonts were then created using \textsf{fontinst} to customize the metrics for positioning accents and subscripts.
+\item STIX has now become a legacy package and is being replaced by STIX2, which has many similarities to STIX but also many dramatic differences. The calligraphic alphabets are quite different, the fraktur and blackboard bold not so much.
+\item TeX permits only 16 different math families, and a typical math font setup can easily lead to 7 or 8 before you even begin. The {\tt bm} package will add 4 additional bold families even if you don't make any use of them. It's easy to see that adding new math alphabets can lead to problems with the math families count, and the problems can be compounded if the alphabets were not set up with these issues in mind.
+
+There are two basic ways to construct a math alphabet. In both cases, one must construct the information normally provided in the {\.fd} file, but which may be set out just as well in the {\tt sty} file. This information links the font name and attributes (bold, medium, etc) to the name of the corresponding {\tt tfm} files.\\
+\textbf{Case 1:} You wish to be able to access at most the upper and lower case letters and the numeral 1 as mathematical symbols. The appropriate command is \verb|\DeclareMathAlphabet|, which does not add to the math families count if not used in the document.\\
+\textbf{Case 2:} You wish to be able to access other slots to create mathematic symbols. These requires that you use the less efficient \verb|\DeclareSymbolFont|, which does add to the math families count even if not used in the document.
+In this package I have tried to maximize the use of \verb|\DeclareMathAlphabet|.
+
+The other significant hazard in using external math alphabets is that, with a normal construction, if you use only the bold version of a math alphabet, you will use up two math family slots---one for normal weight and one for bold. It is therefore advantageous to provide a means of loading only the bold weight and referencing it as if it were the normal weight. This is possible in versions 1.14 and higher, using the options described above.
+\item In view of the information in the preceding above, you may wish to consider, given a choice, of how a given alphabet is constructed. If using \textbf{Case 1}, the available characters that are not Roman alphabetic or the numeral 1 can be accessed only as text characters, and that may be acceptable as you can insert text in a math environment using a simple \verb|\mbox{}| if you are in basic {\tt displaystyle} or {\tt textstyle}, and with the more capable \verb|\text{}| macro if you are using {\tt amsmath}. Here is a small example. Were you to load this package with the line
+\begin{verbatim}
+\usepackage[bb=stixtwo]{mathalpha}
+\end{verbatim}
+the package would start to read the lines
+\begin{verbatim}
+\DeclareFontFamily{U}{stixtwobb}{\skewchar\font=45}%
+\DeclareFontShape{U}{stixtwobb}{m}{n}{<->\mathalfa@bbscaled stix2-mathbb}{}
+\end{verbatim}
+which define a font family {\tt stixtwobb} with encoding {\tt U} (undefined) whose only attribute entry is \verb|{m}{n}| (regular weight, upright shape) which, when invoked, loads its glyph metric data from {\tt stix2-mathbb.tfm} scaled by the factor \verb|\mathalfa@bbscaled| that was set by the option {\tt bbscaled}. Following that, the code test whether the option {\tt bbsymbols} was given, and, since not, it proceeds to use \verb|\DeclareMathAlphabet|. It then makes definitions of the symbols outside the range, like
+\begin{verbatim}
+\def\txtbbGamma{{\usefont{U}{stixtwobb}{m}{n}\char0 }}
+\def\txtbbdotlessi{{\usefont{U}{stixtwobb}{m}{n}\char123 }}
+\def\txtbbzero{{\usefont{U}{stixtwobb}{m}{n}0}}
+\def\txtbbtwo{{\usefont{U}{stixtwobb}{m}{n}2}}
+\end{verbatim}
+Then, assuming {\tt amsmath} is loaded,\\
+\verb|$\text{\txtbbGamma}^2+\text{\txtbbtwo}=\text{\txtbbdotlessi}$|\\
+renders as $\text{\txtbbGamma}^2+\text{\txtbbtwo}=\text{\txtbbdotlessi}$. Obviously, some manual corrections to the spacing may be needed.
+ \end{itemize}
The following are my opinions. No objective judgment should be inferred.
\begin{itemize}
@@ -138,7 +187,7 @@ The CapHeight of a font is supposed to represent the height of capital letters i
For the purpose of making scale factors to mediate between these disparate fonts, the following chart may be helpful.
-\begin{tabular}{l r}
+\begin{longtable}{l r}
Computer Modern Roman (cmr10)&683\\
Zapf Chancery (pzcmi/uzcmi)&595\\
Euler fraktur(eufm10)&690\\
@@ -159,6 +208,7 @@ tx double-struck (txr-ds)&684\\
px double-struck (pxr-ds)&693\\
px double-struck-bold (pxb-ds)&698\\
bickham calligraphic (bickham-r)&683\\
+bickham calligraphic (bickham-s)&683\\
Lucida calligraphic (lbms)&723\\
Lucida Blackboard bold (lbma)&723\\
Lucida fraktur (lbl)&741\\
@@ -177,10 +227,13 @@ ESSTIX fraktur (ESSTIX15)&700\\
BOONDOX Calligraphic &687\\
BOONDOX Blackboard bold &662\\
BOONDOX fraktur &695
-\end{tabular}
+\end{longtable}
Here are some samples from the fonts mentioned above:
\def\alf{A B C D E F G H I J K L M N O P Q R S T U V W X Y Z}
+\def\dtlsbb{\imathbb \jmathbb}
+\def\dtlsfr{\imathfrak \jmathfrak}
+\def\dtlsscr{\imathscr \jmathscr}
\newdimen\pbw \setlength{\pbw}{\textwidth}
\addtolength{\pbw}{-20pt}
\newdimen\cw \setlength{\cw}{\pbw}\divide\cw 26\relax
@@ -211,44 +264,85 @@ Here are some samples from the fonts mentioned above:
\hbox to \cw{\hfil X\hfil}%
\hbox to \cw{\hfil Y\hfil}%
\hbox to \cw{\hfil Z\hfil}}}}}
+\newcommand{\alx}{\hbox to\columnwidth{\hfil\parbox{\the\pbw}{%
+\hbox{\hbox to \cw{\hfil a\hfil}%
+\hbox to \cw{\hfil b\hfil}%
+\hbox to \cw{\hfil c\hfil}%
+\hbox to \cw{\hfil d\hfil}%
+\hbox to \cw{\hfil e\hfil}%
+\hbox to \cw{\hfil f\hfil}%
+\hbox to \cw{\hfil g\hfil}%
+\hbox to \cw{\hfil h\hfil}%
+\hbox to \cw{\hfil i\hfil}%
+\hbox to \cw{\hfil j\hfil}%
+\hbox to \cw{\hfil k\hfil}%
+\hbox to \cw{\hfil l\hfil}%
+\hbox to \cw{\hfil m\hfil}%
+\hbox to \cw{\hfil n\hfil}%
+\hbox to \cw{\hfil o\hfil}%
+\hbox to \cw{\hfil p\hfil}%
+\hbox to \cw{\hfil q\hfil}%
+\hbox to \cw{\hfil r\hfil}%
+\hbox to \cw{\hfil s\hfil}%
+\hbox to \cw{\hfil t\hfil}%
+\hbox to \cw{\hfil u\hfil}%
+\hbox to \cw{\hfil v\hfil}%
+\hbox to \cw{\hfil w\hfil}%
+\hbox to \cw{\hfil x\hfil}%
+\hbox to \cw{\hfil y\hfil}%
+\hbox to \cw{\hfil z\hfil}}}}}
+
\long\def\sample#1#2{%#1=name, #2=font cmd
\vspace{1.5pt plus 1pt minus .5pt}\parbox{\textwidth}{#1\\[2pt plus .5pt minus .5pt]{#2}}}
\textsf{\textbf{Fraktur:}}
{\parindent=0pt
-\sample{{\tt\small esstix} (ESSTIX fraktur):} {\usefont{U}{esstixfrak}{m}{n}\al}
+\sample{{\tt\small esstix} (ESSTIX fraktur):} {\usefont{U}{esstixfrak}{m}{n}\al\\\alx}
-\sample{{\tt\small mathpi} (Mathpi fraktur):} {\usefont{U}{mathpifrak}{m}{n}\al}
+\sample{{\tt\small mathpi} (Mathpi fraktur):} {\usefont{U}{mathpifrak}{m}{n}\al\\\alx}
-\sample{{\tt\small pxtx} (pxtx fraktur):} {\usefont{U}{tx-frak}{m}{n}\al}
+\sample{{\tt\small lucida} (Lucida fraktur):} {\usefont{T1}{hlcf}{m}{n}\al\\\alx}
-\sample{{\tt\small mt} (Mathtime Pro 2 fraktur):} {\usefont{U}{mt2mf}{m}{n}\al}
+\sample{{\tt\small euler} (Euler fraktur):} {\usefont{U}{euf}{m}{n}\al\\\alx}
-\sample{{\tt\small euler} (Euler fraktur):} {\usefont{U}{euf}{m}{n}\al}
+\sample{{\tt\small euler} (Euler fraktur-bold):} {\usefont{U}{euf}{b}{n}\al\\\alx}
-\sample{{\tt\small mma} (Mathematica fraktur):} {\usefont{U}{mmamfrak}{m}{n}\al}
+\font\txrfrk=txr-frak at 11pt
+\sample{{\tt\small pxtx} (pxtx fraktur):} {\txrfrk \al\\\alx}
-\sample{{\tt\small lucida} (Lucida fraktur):} {\usefont{T1}{hlcf}{m}{n}\al}
+\font\txbfrk=txb-frak at 11pt
+\sample{{\tt\small pxtx} (pxtx fraktur-bold):} {\txbfrk \al\\\alx}
-\sample{{\tt\small boondox} (BOONDOX fraktur):} {\usefont{U}{BOONDOX-frak}{m}{n}\al}
+%\sample{{\tt\small pxtx} (pxtx fraktur):} {\usefont{OT1}{tx-frak}{m}{n}\al\\\alx}
+%
+%\sample{{\tt\small pxtx} (pxtx fraktur-bold):} {\usefont{OT1}{tx-frak}{b}{n}\al\\\alx}
+%
+\sample{{\tt\small mt} (Mathtime Pro 2 fraktur):} {\usefont{U}{mt2mf}{m}{n}\al\\\alx}
-\sample{{\tt\small euler} (Euler fraktur-bold):} {\usefont{U}{euf}{b}{n}\al}
+\sample{{\tt\small mt} (Mathtime Pro 2 fraktur-bold):} {\usefont{U}{mt2mf}{b}{n}\al\\\alx}
-\sample{{\tt\small mma} (Mathematica fraktur-bold):} {\usefont{U}{mmamfrak}{b}{n}\al}
+\sample{{\tt\small mma} (Mathematica fraktur):} {\usefont{U}{mmamfrak}{m}{n}\al\\\alx}
-\sample{{\tt\small pxtx} (pxtx fraktur-bold):} {\usefont{U}{tx-frak}{b}{n}\al}
+\sample{{\tt\small mma} (Mathematica fraktur-bold):} {\usefont{U}{mmamfrak}{b}{n}\al\\\alx}
-\sample{{\tt\small mt} (Mathtime Pro 2 fraktur-bold):} {\usefont{U}{mt2mf}{b}{n}\al}
+\sample{{\tt\small boondox} (BOONDOX fraktur):} {\usefont{U}{BOONDOX-frak}{m}{n}\al\\\alx}
-\sample{{\tt\small boondox} (BOONDOX fraktur-bold):} {\usefont{U}{BOONDOX-frak}{b}{n}\al}
+\sample{{\tt\small boondox} (BOONDOX fraktur-bold):} {\usefont{U}{BOONDOX-frak}{b}{n}\al\\\alx}
+
+\sample{{\tt\small stix2} (STIX2 fraktur):} {\usefont{LS1}{stix2frak}{m}{n}\al\\\alx}
+
+\sample{{\tt\small stix2} (STIX2 fraktur-Bold):} {\usefont{LS1}{stix2frak}{b}{n}\al\\\alx}
}
+
+
+
\def\spc{\hspace*{7pt}}
-\textsf{\textbf{Calligraphic:}}
+\textsf{\textbf{Calligraphic and Script:}}
{\parindent=0pt
-\textsc{Upright:}\\[3pt]
+\textsc{Upright:}\\[9pt]
\sample{{\small\tt \spc euler} (Euler script):}{\usefont{U}{eus}{m}{n}\al}
\sample{{\small\tt \spc euler} (Euler script-bold):} {\usefont{U}{eus}{b}{n}\al}
@@ -257,9 +351,9 @@ Here are some samples from the fonts mentioned above:
\sample{{\small\tt\spc txupr} (TXUprCal):} {\usefont{U}{txuprcal}{m}{n}\al}
-\sample{{\small\tt\spc boondoxupr} (BOONDOXUprScr):} {\usefont{U}{boondoxuprscr}{m}{n}\al}
+\sample{{\small\tt\spc boondoxupr} (BOONDOXUprScr):} {\usefont{U}{boondoxuprscr}{m}{n}\al\\\alx}
-\vspace{4pt}\textsc{Restrained:}\\[3pt]
+\vspace{4pt}\textsc{Restrained:}\\[9pt]
\sample{{\small\tt \spc cm} (CM calligraphic, cmsy):} {\usefont{OMS}{cmsy}{m}{n}\al}
\sample{{\small\tt \spc cm} (CM calligraphic-bold, cmbsy):} {\usefont{OMS}{cmsy}{b}{n}\al}
@@ -279,39 +373,62 @@ Here are some samples from the fonts mentioned above:
\sample{{\small\tt\spc pxtx} (pxtx script-bold):} {\usefont{U}{tx-cal}{b}{n}\al}
-\vspace{4pt}\textsc{Embellished:}\\[3pt]
+\font\stixcal=stix-mathcal at 11pt
+\sample{{\small\tt\spc stix-plain} (STIX Calligraphic):} {\stixcal\al}
+
+\font\stixcalb=stix-mathcal-bold at 11pt
+\sample{{\small\tt\spc stix-plain} (STIX Calligraphic-bold):} {\stixcalb\al}
+
+\font\stixcal=stix2-mathcal at 11pt
+\sample{{\small\tt\spc stix2-plain} (STIX2 Calligraphic):} {\stixcal\al}
+
+
+\vspace{4pt}\textsc{Embellished:}\\[9pt]
\sample{{\small\tt\spc mt} (Mathtime Pro 2 script):} {\usefont{U}{mt2ms}{m}{it}\al}
\sample{{\small\tt\spc mt} (Mathtime Pro 2 script-bold):} {\usefont{U}{mt2ms}{b}{it}\al}
\sample{{\small\tt\spc mathpi} (Mathpi script):} {\usefont{U}{mathpical}{m}{n}\al}
-\sample{{\small\tt\spc esstix} (ESSTIX calligraphic):} {\usefont{U}{esstixcal}{m}{n}\al}
+\sample{{\small\tt\spc rsfso}:} {\usefont{U}{rsfso}{m}{n}\al}
-\sample{{\small\tt\spc dutchcal} (dutchcal calligraphic):} {\usefont{U}{dutchcal}{m}{n}\al}
+\sample{{\small\tt\spc esstix} (ESSTIX calligraphic):} {\usefont{U}{esstixcal}{m}{n}\al\\\alx}
-\sample{{\small\tt\spc dutchcal} (dutchcal calligraphic-bold):} {\usefont{U}{dutchcal}{b}{n}\al}
+\sample{{\small\tt\spc dutchcal} (dutchcal calligraphic):} {\usefont{U}{dutchcal}{m}{n}\al\\\alx}
-\sample{{\small\tt\spc bickham} (bickham calligraphic):} {\usefont{U}{bickham}{m}{n}\al}
+\sample{{\small\tt\spc dutchcal} (dutchcal calligraphic-bold):} {\usefont{U}{dutchcal}{b}{n}\al\\\alx}
-\sample{{\small\tt\spc bickham} (bickham calligraphic-bold):} {\usefont{U}{bickham}{b}{n}\al}
+\sample{{\small\tt\spc bickham} (bickham calligraphic):} {\usefont{U}{bickham}{m}{n}\al\\\alx}
-\sample{{\small\tt\spc rsfso}:} {\usefont{U}{rsfso}{m}{n}\al}
+\sample{{\small\tt\spc bickham} (bickham calligraphic-bold):} {\usefont{U}{bickham}{b}{n}\al\\\alx}
+
+\sample{{\small\tt\spc bickhams} (bickham calligraphic semibold):} {\usefont{U}{bickham}{sb}{n}\al\\\alx}
+
+\sample{{\small\tt\spc bickhams} (bickham calligraphic-bold):} {\usefont{U}{bickham}{b}{n}\al\\\alx}
\font\calo=zxxrow7z at 11pt
-\sample{{\small\tt\spc boondoxo} (BOONDOX Calligraphic Oblique):} {\calo \al}
+\sample{{\small\tt\spc boondoxo} (BOONDOX Calligraphic Oblique):} {\calo \al\\\alx}
\font\calo=zxxbow7z at 11pt
-\sample{{\small\tt\spc boondoxo} (BOONDOX Calligraphic Oblique-bold):} {\calo \al}
+\sample{{\small\tt\spc boondoxo} (BOONDOX Calligraphic Oblique-bold):} {\calo \al\\\alx}
-\vspace{4pt}\textsc{Heavily Sloped:}\\[3pt]
-\sample{{\small\tt\spc boondox} (BOONDOX Calligraphic):} {\usefont{U}{BOONDOX-cal}{m}{n}\al}
+\font\stixscr=stix2-mathscr at 11pt
+\sample{{\small\tt\spc stix2-fancy} (STIX2 Script):} {\stixscr\al\\\alx}
-\sample{{\small\tt\spc boondox} (BOONDOX Calligraphic-bold):} {\usefont{U}{BOONDOX-cal}{b}{n}\al}
+\font\stixscrb=stix2-mathscr-bold at 11pt
+\sample{{\small\tt\spc stix2-fancy} (STIX2 Script-bold):} {\stixscrb\al\\\alx}
+\vspace{4pt}\textsc{Heavily Sloped:}\\[9pt]
\font\calo=rsfs10 at 11pt
\sample{{\small\tt\spc rsfs}:} {\calo\al}
+\sample{{\small\tt\spc boondox} (BOONDOX Calligraphic):} {\usefont{U}{BOONDOX-cal}{m}{n}\al\\\alx}
+
+\sample{{\small\tt\spc boondox} (BOONDOX Calligraphic-bold):} {\usefont{U}{BOONDOX-cal}{b}{n}\al\\\alx}
+
+%\font\stixcalb=stix2-mathcal-bold at 11pt
+%\sample{{\small\tt\spc stix-plain} (STIX2 Calligraphic-bold):} {\stixcalb\al\\\alx}
+
\font\calo=jkpsyd at 11pt
\sample{{\small\tt\spc kp}: (kpfonts script regular)} {\calo\al}
@@ -323,7 +440,7 @@ Here are some samples from the fonts mentioned above:
\textsf{\textbf{Double-Struck (Blackboard Bold):}}
{\parindent=0pt
-\textsc{Hollowed-out Shapes:}\\[3pt]
+\textsc{Hollowed-out Shapes:}\\[9pt]
\font\amsbb=msbm10 at 11pt
\sample{{\tt\small\spc ams} (AMS bb):} {\amsbb \al}
@@ -335,20 +452,34 @@ Here are some samples from the fonts mentioned above:
\sample{{\tt\small\spc txof} (tx of bold):} {\usefont{U}{tx-of}{b}{n}\al}
-\vspace{4pt}\textsc{Geometric Shapes:}\\[3pt]
+\vspace{4pt}\textsc{Geometric Shapes, Serifed:}\\[9pt]
+\sample{{\tt\small\spc pazo} (Mathpazo bb):} {\usefont{U}{fplmbb}{m}{n}\al}
+
+\sample{{\tt\small\spc px} (px bb):} {\usefont{U}{px-ds}{m}{n}\al}
+
+\sample{{\tt\small\spc px} (px bb bold):} {\usefont{U}{px-ds}{b}{n}\al}
+
+\sample{{\tt\small\spc tx} (tx bb):} {\usefont{OT1}{tx-ds}{m}{n}\al\\\alx}
+
+\font\libus=libertinust1-mathbb
+\sample{{\tt\small\spc libus} (libertinust1-mathbb):} {\libus \al\\\alx}
+
+\sample{{\tt\small\spc dsfont-serif} (Dsfont Serif):} {\usefont{U}{dsrom}{m}{n}\al\\\alx}
+
+\vspace{4pt}\textsc{Geometric Shapes, Sans Serif:}\\[9pt]
\sample{{\tt\small\spc lucida} (Lucida bb):} {\usefont{LMR}{hlcm}{m}{n}\al}
+\sample{{\tt\small\spc lucida} (Lucida Bold bb):} {\usefont{LMR}{hlcm}{b}{n}\al}
+
\sample{{\tt\small\spc mathpi} (Mathpi bb):} {\usefont{U}{mathpibb}{m}{n}\al}
\sample{{\tt\small\spc mt} (Mathtime Pro 2 bb):} {\usefont{U}{mt2bb}{m}{n}\al}
-\sample{{\tt\small\spc mma} (Mathematica bb):} {\usefont{U}{mmambb}{m}{n}\al}
-
-\sample{{\tt\small\spc pazo} (Mathpazo bb):} {\usefont{U}{fplmbb}{m}{n}\al}
+\sample{{\tt\small\spc mt} (Mathtime Pro 2 bb-bold):} {\usefont{U}{mt2bb}{b}{n}\al}
-\sample{{\tt\small\spc px} (px bb):} {\usefont{U}{px-ds}{m}{n}\al}
+\sample{{\tt\small\spc mma} (Mathematica bb):} {\usefont{U}{mmambb}{m}{n}\al}
-\sample{{\tt\small\spc px} (px bb bold):} {\usefont{U}{px-ds}{b}{n}\al}
+\sample{{\tt\small\spc mma} (Mathematica bb-bold):} {\usefont{U}{mmambb}{b}{n}\al}
\sample{{\tt\small\spc fourier} (Fourier bb):} {\usefont{U}{futm}{m}{n}\al}
@@ -356,22 +487,42 @@ Here are some samples from the fonts mentioned above:
\sample{{\tt\small\spc boondox} (BOONDOX bb):} {\usefont{U}{BOONDOX-ds}{m}{n}\al}
-{\tt\small\spc boondox} (BOONDOX bb-bold):\\[2pt] \hbox to \textwidth{\hspace*{.22in}{\def\spc{\hspace{9pt}}\usefont{U}{BOONDOX-ds}{b}{n}\spc C\spc D\spc H\spc N\spc P\spc Q\spc R\spc Z} (few glyphs available.)\hfil}
+%{\tt\small\spc boondox} (BOONDOX bb-bold):\\[2pt] \hbox to \textwidth{\hspace*{.22in}{\def\spc{\hspace{9pt}}\usefont{U}{BOONDOX-ds}{b}{n}\al}
+\sample{{\tt\small\spc boondox} (BOONDOX bb-bold):}
+{\usefont{U}{BOONDOX-ds}{b}{n}\al}
+%\\[2pt] \hbox to \textwidth{\hspace*{.22in}{\def\spc{\hspace{9pt}}
-\sample{{\tt\small\spc mt} (Mathtime Pro 2 bb-bold):} {\usefont{U}{mt2bb}{b}{n}\al}
+\sample{{\tt\small\spc bboldx} (Bboldx-light):} {\usefont{U}{bboldx}{l}{n}\al\\\alx}
-\sample{{\tt\small\spc mma} (Mathematica bb-bold):} {\usefont{U}{mmambb}{b}{n}\al}
+\sample{{\tt\small\spc bboldx} (Bboldx-regular):} {\usefont{U}{bboldx}{m}{n}\al\\\alx}
-}
+\sample{{\tt\small\spc bboldx} (Bboldx-bold):} {\usefont{U}{bboldx}{b}{n}\al\\\alx}
+
+\sample{{\tt\small\spc dsfont-sans} (Dsfont Sans):} {\usefont{U}{dsss}{m}{n}\al\\\alx}
+
+\sample{{\tt\small\spc stix2} (stix2-mathbb):} {\stixtwobb \al\\\alx}
+%\sample{{\tt\small\spc stix2-bbit} (stix2-mathbbit):} {\traceon\stixtwobbi A\traceoff \al\\\alx}
+
+\sample{{\tt\small\spc stix} (stix-mathbb):} {\stixbb \al\\\alx}
+
+\sample{{\tt\small\spc stix} (stix-mathbb-bold):} {\stixbbb \al\\\alx}
+
+\sample{{\tt\small\spc stix} (stix-mathbbit):} {\stixbbob \al\\\alx}
+
+\sample{{\tt\small\spc stix} (stix-mathbbit-bold):} {\stixbbbob \al\\\alx}
+
+}
\textsc{Notes:}
\begin{itemize}
+\item Not many Blackboard Bold fonts contain Greek alphabets. A notable exception is {\tt bbold} and its new successor, {\tt bboldx}. The latest version of {\tt dsserif} supports most uppercase Greek letters.
+\item A growing number of Blackboard Bold fonts contain numerals: all {\tt STIX} and {\tt BOONDOX}, all {\tt bboldx}, {\tt dsserif}, {\tt tx} offer a full list of numerals, and {\tt pazo} contains the most import figure, $\mathbb{1}$.
+\item Unlike the original \textsc{stix} {\tt type1} fonts, \textsc{stix2} {\tt type1} does not provide bold weight for blackboard bold and blackboard bold italic, and the latter has no alphabetic glyphs as of October 2021.
\item
-Lucida fonts generally need to be reduced in scale to match other math and text fonts.
-\item Zapf Chancery need to be scaled up by 15\% or so. This font is not really suited for use as a math alphabet due to the disparate heights and depths and the long tails on some glyphs. Use with care.
-\item Mathematica fraktur is quite readable, but not very attractive, seeming to have random variations in baseline and height. It's also a bit too heavy to be a good match to most other fonts. Similar comments could apply to Lucida fraktur, which has a very distinctive appearance with some features more similar to \textsf{Duc de Berry} than to other fraktur fonts.
-\item The calligraphic fonts break down into four natural groups---(i) the upright styled Euler and Curly; (ii) the less-embellished CM, Lucida, Zapf Chancery, ESSTIX, dutchcal, Mathematica and pxtx; (iii) the moderately sloped but more embellished Mathpi, Mathtime, bickham, rsfso and boondoxo; (iv) the heavily sloped rsfs and the slightly less sloped boondox. My preference, if not using \textsf{mathtime} or \textsf{lucida}, is to set \verb|\mathcal| to one from group (ii) and \verb|\mathscr| to one from group (iii).
-\item Blackboard bold can look poor in some cases. In my opinion, AMS bb and some of the others show up as ghostly (gray and indistinct) especially on the screen and may not appear to match the weights of other math glyphs. (AMS bb, Mathtime Pro 2 Holey Roman and the txof bb fonts appear to be formed by removing the interiors of solid glyphs from a bold, serifed font. Mathtime Pro 2 Holey Roman Bold is a much better fit to most math fonts of weight heavier than Computer Modern.) Fourier, Mathpi, ESSTIX and boondox bb appear to be very close in style, with mathpi bb a bit less sharp. Mathpazo bb, Mathematica bb, px bb and tx bb have a heavier appearance and should work better with fonts other than Computer Modern.
-
+\textsf{Lucida} fonts generally need to be reduced in scale to match other math and text fonts.
+\item \textsf{Zapf Chancery} needs to be scaled up by 15\% or so. This font is not really suited for use as a math alphabet due to the disparate heights and depths and the long tails on some glyphs. Use with care.
+\item \textsf{Mathematica} fraktur is quite readable, but not very attractive, seeming to have random variations in baseline and height. It's also a bit too heavy to be a good match to most other fonts. Similar comments could apply to \textsf{Lucida} fraktur, which has a very distinctive appearance with some features more similar to \textsf{Duc de Berry} than to other fraktur fonts.
+\item The calligraphic fonts break down into four natural groups---(i) the upright styled \textsf{Euler} and \textsf{Curly}; (ii) the less-embellished \textsf{CM, Lucida, Zapf Chancery, ESSTIX, dutchcal, Mathematica} and \textsf{pxtx}; (iii) the moderately sloped but more embellished {Mathpi, Mathtime, bickham, rsfso} and \textsf{boondoxo}; (iv) the heavily sloped rsfs and the slightly less sloped boondox. My preference, if not using \textsf{mathtime} or \textsf{lucida}, is to set \verb|\mathcal| to one from group (ii) and \verb|\mathscr| to one from group (iii).
+ \item Blackboard bold can look poor in some cases. In my opinion, \textsf{AMS} bb and some of the others show up as ghostly (gray and indistinct) especially on the screen and may not appear to match the weights of other math glyphs. (\textsf{AMS bb, Mathtime Pro 2 Holey Roman} and the \textsf{txof} bb fonts appear to be formed by removing the interiors of solid glyphs from a bold, serifed font. \textsf{Mathtime Pro 2 Holey Roman Bold} is a much better fit to most math fonts of weight heavier than \textsf{Computer Modern}.) \textsf{Fourier, Mathpi, ESSTIX} and \textsf{boondox} bb appear to be very close in style, with \textsf{mathpi} bb a bit less sharp. \textsf{Mathpazo bb, Mathematica bb, px bb} and \textsf{tx bb} have a heavier appearance and should work better with fonts other than \textsf{Computer Modern}.
\end{itemize}
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/macros/latex/contrib/mathalpha/tex/mathalpha.sty b/macros/latex/contrib/mathalpha/tex/mathalpha.sty
index cacc0b5ec0..bde30690ab 100644
--- a/macros/latex/contrib/mathalpha/tex/mathalpha.sty
+++ b/macros/latex/contrib/mathalpha/tex/mathalpha.sty
@@ -1,37 +1,72 @@
\NeedsTeXFormat{LaTeX2e}
-\def\mathalphaVersion{1.13}
-\def\mathalphaDate{2019/10/05}
+\def\mathalphaVersion{1.14}
+\def\mathalphaDate{2021/10/29}
\ProvidesPackage{mathalpha}[\mathalphaDate\space-\space\mathalphaVersion
mathalpha (License LPPL) Michael Sharpe]
\message{`mathalpha' v\mathalphaVersion, \mathalphaDate, a renaming of mathalfa (msharpe)}
\RequirePackage{xkeyval}
+%\def\ma@undefine#1{%
+% \@ifundefined{#1}{}{\let#1=\@undefined}}
+%\def\ma@MathSymbol#1#2#3#4{%
+% \ma@undefine#1%
+% \DeclareMathSymbol{#1}{#2}{#3}{#4}}
+\newif\ifmathalfa@bfrak \newif\ifmathalfa@bbb
+\newif\ifmathalfa@bcal \newif\ifmathalfa@bscr
+\newif\ifmathalfa@fraksym \newif\ifmathalfa@bbsym
+\newif\ifmathalfa@calsym \newif\ifmathalfa@scrsym
+% normal meanings of weights
+\def\mathalfa@bbm{m}
+\def\mathalfa@frakm{m}
+\def\mathalfa@calm{m}
+\def\mathalfa@scrm{m}
+
% available choices
-\def\bb@lst{ams, lucida, mathpi, mma, mt, mth, pazo, fourier, esstix, boondox, px, tx, txof, libus, dsserif}
-\def\cal@lst{cm, euler, rsfso, rsfs, lucida, mathpi, mma, mt, mtc, zapfc, esstix, boondox, boondoxo, dutchcal, pxtx, bickham, bickhams, stix,txupr,boondoxupr}
-\def\frak@lst{euler, lucida, mathpi, mma, mt, esstix, boondox, pxtx}
-\def\scr@lst{rsfs, rsfso, euler, lucida, mathpi, mma, mtc, zapfc, esstix, boondox, boondoxo, dutchcal, pxtx, bickham, bickhams,txupr,boondoxupr,kp}
-\def\mathalfa@bbnr{-1}\def\mathalfa@calnr{-1}
-\def\mathalfa@fraknr{-1}\def\mathalfa@scrnr{-1}
-\def\minusone{-1}
+\def\bb@lst{ams, lucida, mathpi, mma, mt, mth, pazo, fourier, esstix, boondox, px, tx, txof, libus, dsserif, bboldxLight, bboldx, dsfontserif, dsfontsans, stixtwo, stix}
+\def\cal@lst{cm, euler, rsfso, rsfs, lucida, mathpi, mma, mt, mtc, zapfc, esstix, boondox, boondoxo, dutchcal, pxtx, bickham, bickhams, stix, txupr, boondoxupr, kp, stixplain, stixfancy, stixtwoplain, stixtwofancy}
+\def\frak@lst{euler, lucida, mathpi, mma, mt, esstix, boondox, pxtx, stixtwo}
+% aliases
+\newif\ifmathalfa@oldbold
+\define@boolkey{mathalfa}{oldbold}[true]{\@nameuse{mathalfa@oldbold#1}}
+\define@boolkey{mathalfa}{fraksymbols}[true]{\@nameuse{mathalfa@fraksym#1}}
+\define@boolkey{mathalfa}{bbsymbols}[true]{\@nameuse{mathalfa@bbsym#1}}
+\define@boolkey{mathalfa}{calsymbols}[true]{\@nameuse{mathalfa@calsym#1}}
+\define@boolkey{mathalfa}{scrsymbols}[true]{\@nameuse{mathalfa@scrsym#1}}
+
+\edef\mathalfa@bbnr{\m@ne}\edef\mathalfa@calnr{\m@ne}
+\edef\mathalfa@fraknr{\m@ne}\edef\mathalfa@scrnr{\m@ne}
% scaled
-\define@key{mathalfa}{scaled}[1.0]{\def\mathalfa@bbscaled{s*[#1]}\def\mathalfa@calscaled{s*[#1]}\def\mathalfa@frakscaled{s*[#1]}\def\mathalfa@scrscaled{s*[#1]}}% all at once
+\define@key{mathalfa}{scaled}[1.0]{%
+\def\mathalfa@bbscaled{s*[#1]}\def\mathalfa@bbrawscaled{#1} \def\mathalfa@calscaled{s*[#1]}\def\mathalfa@calrawscaled{#1} \def\mathalfa@frakscaled{s*[#1]}\def\mathalfa@frakrawscaled{#1} \def\mathalfa@scrscaled{s*[#1]}\def\mathalfa@scrrawscaled{#1}}% all at once
+\setkeys{mathalfa}{scaled}% initialize all scales to 1.0
% or separately
-\def\@cmd{}
-\define@key{mathalfa}{bbscaled}[1.0]{\def\mathalfa@bbscaled{s*[#1]}}
-\define@key{mathalfa}{calscaled}[1.0]{\def\mathalfa@calscaled{s*[#1]}}
-\define@key{mathalfa}{frakscaled}[1.0]{\def\mathalfa@frakscaled{s*[#1]}}
-\define@key{mathalfa}{scrscaled}[1.0]{\def\mathalfa@scrscaled{s*[#1]}}
+\define@key{mathalfa}{bbscaled}[1.0]{%
+\def\mathalfa@bbscaled{s*[#1]}\def\mathalfa@bbrawscaled{#1}}
+\define@key{mathalfa}{calscaled}[1.0]{%
+\def\mathalfa@calscaled{s*[#1]}\def\mathalfa@calrawscaled{#1}}
+\define@key{mathalfa}{frakscaled}[1.0]{%
+\def\mathalfa@frakscaled{s*[#1]}\def\mathalfa@frakrawscaled{#1}}
+\define@key{mathalfa}{scrscaled}[1.0]{%
+\def\mathalfa@scrscaled{s*[#1]}\def\mathalfa@scrrawscaled{#1}}
% alphabets
+\def\@cmd{}
\edef\@cmd{\noexpand\define@choicekey*{mathalfa}{bb}[\noexpand\mathalfa@val\noexpand\mathalfa@bbnr]{\bb@lst}{}}
\@cmd
\edef\@cmd{\noexpand\define@choicekey*{mathalfa}{cal}[\noexpand\mathalfa@val\noexpand\mathalfa@calnr]{\cal@lst}{}}
\@cmd
\edef\@cmd{\noexpand\define@choicekey*{mathalfa}{frak}[\noexpand\mathalfa@val\noexpand\mathalfa@fraknr]{\frak@lst}{}}
\@cmd
-\edef\@cmd{\noexpand\define@choicekey*{mathalfa}{scr}[\noexpand\mathalfa@val\noexpand\mathalfa@scrnr]{\scr@lst}{}}
+\edef\@cmd{\noexpand\define@choicekey*{mathalfa}{scr}[\noexpand\mathalfa@val\noexpand\mathalfa@scrnr]{\cal@lst}{}}%was scr@lst
\@cmd
+\define@boolkey{mathalfa}{bffrak}[true]{\def\mathalfa@frakm{b}\@nameuse{mathalfa@bfrak#1}}
+\define@boolkey{mathalfa}{bfcal}[true]{\def\mathalfa@calm{b}\@nameuse{mathalfa@bcal#1}}
+\define@boolkey{mathalfa}{bfscr}[true]{\def\mathalfa@scrm{b}\@nameuse{mathalfa@bscr#1}}
+\define@boolkey{mathalfa}{bfbb}[true]{\def\mathalfa@bbm{b}\@nameuse{mathalfa@bbb#1}}
% showoptions
-\DeclareOption{showoptions}{\PackageError{mathalfa}{Package Options:\MessageBreak bb=\bb@lst\MessageBreak cal=\cal@lst\MessageBreak frak=\frak@lst\MessageBreak scr=\scr@lst\MessageBreak bbscaled=1.0, calscaled=1.0, frakscaled=1.0, scrscaled=1.0}{}}
+\DeclareOption{showoptions}{\PackageError{mathalpha}{Package Options:^^J bb=\bb@lst^^J cal=\cal@lst^^J frak=\frak@lst^^J scr=\cal@lst^^J bbscaled=1.0, calscaled=1.0, frakscaled=1.0, scrscaled=1.0^^J Bold versions may be forced by one of options bfbb, bfcal, bffrak, bfscr.^^J The following exceptions should be noted:^^J
+bb: stix2, dsfontsans, dsfontserif, libusbb, tx, esstix,^^J\space\space pazo, mathpi, ams^^J
+cal and scr: esstix, zapfc, mtc, mathpical, rsfs, rsfso^^J
+frak: lucida, esstix, mathpi^^J
+}{}}%was scr=\scr@lst
\DeclareOption*{%
\begingroup
\edef\x{\endgroup
@@ -49,37 +84,53 @@
\expandafter\ifx\csname DeclareLucidaFontShape\endcsname\relax\else\lucid@loadedtrue\fi%
% Check for mtpro2 loaded
%\newif\ifmtp@loaded \mtp@loadedfalse
-\def\mtp@loadedError{\PackageError{mathalfa}{You have already loaded the mtpro2 package. You should not use mathalfa to load additional mtpro2 options.}{}}%
+\def\mtp@loadedError{\PackageError{mathalpha}{You have already loaded the mtpro2 package. You should not use mathalpha to load additional mtpro2 options.}{}}%
% Check for amsfonts
\def\amsloaded{}
\@ifpackageloaded{amsfonts}{%
\let\amsloaded=Y%
}{}%
% Undefine some previous settings
-\ifx\mathalfa@bbnr\minusone\else\let\mathbb\relax\let\mathbbb\relax\fi
-%\ifx\mathalfa@calnr\minusone\else\let\mathcal\relax\fi
-\ifx\mathalfa@fraknr\minusone\else\let\mathfrak\relax\let\mathbfrak\relax\fi
-\ifx\mathalfa@scrnr\minusone\else\let\mathscr\relax\fi
+\ifx\mathalfa@bbnr\m@ne\else\let\mathbb\relax\let\mathbfbb\relax\fi
+%\ifx\mathalfa@calnr\m@ne\else\let\mathcal\relax\fi
+\ifx\mathalfa@fraknr\m@ne\else\let\mathfrak\relax\let\mathbffrak\relax\fi
+\ifx\mathalfa@scrnr\m@ne\else\let\mathscr\relax\fi
+% Some error messages
+\newcommand*\mathalpha@boldError[2]{%#1=item specified, #2 from bb,cal,scr,frak
+\PackageError{mathalpha}{You specified `#2=#1,b#2', but `#1' has no bold\space#2}{}}
+
% Code to set up the math alphabets specified, not necessarily using the fd files
+%
% Blackboard Bold
-\ifcase\mathalfa@bbnr\relax% item 0 of {ams, lucida, mathpi, mma, mt, mth, pazo, fourier, esstix, boondox, px, tx, txof,libus,dsserif}
+%%%%%%%%%%%%%%%%%% START \mathbb
+%
+\ifcase\mathalfa@bbnr\relax% item 0 of {ams, lucida, mathpi, mma, mt, mth, pazo, fourier, esstix, boondox, px, tx, txof, libus, dsserif, bboldx-light, bboldx, dsfont-serif, dsfont-sans, stix}
+% ams
+ \ifmathalfa@bbb\mathalpha@boldError{ams}{bb}\fi
\DeclareFontFamily{U}{msb}{}%
- \DeclareFontShape{U}{msb}{m}{n}{<-7>\mathalfa@bbscaled msbm5
+ \DeclareFontShape{U}{msb}{m}{n}{
+ <-7>\mathalfa@bbscaled msbm5
<7-9>\mathalfa@bbscaled msbm7
<9->\mathalfa@bbscaled msbm10}{}%
\DeclareMathAlphabet{\mathbb}{U}{msb}{m}{n}
\or % lucida
- \iflucid@loaded \PackageError{mathalfa}{Do not use lucida as an option to mathalfa after loading a lucida package}{}\fi
+ \iflucid@loaded \PackageError{mathalpha}{Do not use lucida as an option to mathalpha after loading a lucida package}{}\fi
% \DeclareFontFamily{OMS}{lbm}{\skewchar\font48}
% \DeclareFontShape{OMS}{lbm}{m}{n}{<->\mathalfa@bbscaled hlcry}{}
% \DeclareFontShape{OMS}{lbm}{b}{n}{<->\mathalfa@bbscaled hlcdy}{}
% \DeclareMathAlphabet{\mathcal} {OMS}{lbm}{m}{n}
% \SetMathAlphabet{\mathcal}{bold}{OMS}{lbm}{b}{n}
-% \DeclareMathAlphabet{\mathbcal} {OMS}{lbm}{b}{n}
- \DeclareFontFamily{U}{hlcm}{}
+% \DeclareMathAlphabet{\mathbfcal} {OMS}{lbm}{b}{n}
+ \DeclareFontFamily{U}{hlcm}{\skewchar\font48}
\DeclareFontShape{U}{hlcm}{m}{n}{<->\mathalfa@bbscaled hlcra}{}
- \DeclareMathAlphabet{\mathbb}{U}{hlcm}{m}{n}
+ \DeclareFontShape{U}{hlcm}{b}{n}{<->\mathalfa@bbscaled hlcrb}{}
+ \DeclareMathAlphabet{\mathbb}{U}{hlcm}{\mathalfa@bbm}{n}
+ \ifmathalfa@bbb\else%
+ \SetMathAlphabet{\mathbb}{bold}{U}{hlcm}{b}{n}
+ \DeclareMathAlphabet{\mathbfbb} {U}{hlcm}{b}{n}
+ \fi
\or % mathpi
+ \ifmathalfa@bbb\mathalpha@boldError{mathpi}{bb}\fi
\DeclareFontFamily{U}{mathpibb}{\skewchar \font =45}
\DeclareFontShape{U}{mathpibb}{m}{n}{
<-> \mathalfa@bbscaled mathpibb}{}
@@ -90,21 +141,27 @@
<-> \mathalfa@bbscaled mmambb}{}
\DeclareFontShape{U}{mmambb}{b}{n}{
<-> \mathalfa@bbscaled mmambbb}{}
- \DeclareMathAlphabet{\mathbb}{U}{mmambb}{m}{n}
- \SetMathAlphabet{\mathbb}{bold}{U}{mmambb}{b}{n}
- \DeclareMathAlphabet{\mathbbb} {U}{mmambb}{b}{n}
+ \DeclareMathAlphabet{\mathbb}{U}{mmambb}{\mathalfa@bbm}{n}
+ \ifmathalfa@bbb\else
+ \SetMathAlphabet{\mathbb}{bold}{U}{mmambb}{b}{n}
+ \DeclareMathAlphabet{\mathbfbb} {U}{mmambb}{b}{n}
+ \fi
\or % mt
\@ifpackageloaded{mtpro2}{\mtp@loadedError}{}
\DeclareFontFamily{U}{mtbb}{\skewchar\font45}%
- \DeclareFontShape{U}{mtbb}{m}{n}{<-7>\mathalfa@bbscaled mt2bbf
+ \DeclareFontShape{U}{mtbb}{m}{n}{
+ <-7>\mathalfa@bbscaled mt2bbf
<7-9>\mathalfa@bbscaled mt2bbs
<9->\mathalfa@bbscaled mt2bbt}{}%
- \DeclareFontShape{U}{mtbb}{b}{n}{<-7>\mathalfa@bbscaled mt2bbdf
+ \DeclareFontShape{U}{mtbb}{b}{n}{
+ <-7>\mathalfa@bbscaled mt2bbdf
<7-9>\mathalfa@bbscaled mt2bbds
<9->\mathalfa@bbscaled mt2bbdt}{}%
- \DeclareMathAlphabet{\mathbb} {U}{mtbb}{m}{n}
- \SetMathAlphabet{\mathbb}{bold}{U}{mtbb}{b}{n}
- \DeclareMathAlphabet{\mathbbb} {U}{mtbb}{b}{n}
+ \DeclareMathAlphabet{\mathbb}{U}{mtbb}{\mathalfa@bbm}{n}
+ \ifmathalfa@bbb\else
+ \SetMathAlphabet{\mathbb}{bold}{U}{mtbb}{b}{n}
+ \DeclareMathAlphabet{\mathbfbb} {U}{mtbb}{b}{n}
+ \fi
\or % mth--hollowed out letters with more shape---' Holey Roman'
\@ifpackageloaded{mtpro2}{\mtp@loadedError}{}
\DeclareFontFamily{U}{mthrb}{\skewchar\font45}%
@@ -114,20 +171,25 @@
\DeclareFontShape{U}{mthrb}{b}{n}{<-7>\mathalfa@bbscaled mt2hrbdf
<7-9>\mathalfa@bbscaled mt2hrbds
<9->\mathalfa@bbscaled mt2hrbdt}{}%
- \DeclareMathAlphabet{\mathbb} {U}{mthrb}{m}{n}
- \SetMathAlphabet{\mathbb}{bold}{U}{mthrb}{b}{n}
- \DeclareMathAlphabet{\mathbbb} {U}{mthrb}{b}{n}
+ \DeclareMathAlphabet{\mathbb} {U}{mthrb}{\mathalfa@bbm}{n}
+ \ifmathalfa@bbb\else
+ \SetMathAlphabet{\mathbb}{bold}{U}{mthrb}{b}{n}
+ \DeclareMathAlphabet{\mathbfbb} {U}{mthrb}{b}{n}
+ \fi
\or % pazo
+ \ifmathalfa@bbb\mathalpha@boldError{pazo}{bb}\fi
\DeclareFontFamily{U}{fplmbb}{}
\DeclareFontShape{U}{fplmbb}{m}{n}{
<->\mathalfa@bbscaled fplmbb}{}
\DeclareMathAlphabet{\mathbb} {U}{fplmbb}{m}{n}
\or % fourier
+ \ifmathalfa@bbb\mathalpha@boldError{fourier}{bb}\fi
\DeclareFontFamily{U}{futm}{}
\DeclareFontShape{U}{futm}{m}{n}{
<-> \mathalfa@bbscaled fourier-bb}{}
\DeclareMathAlphabet{\mathbb}{U}{futm}{m}{n}% should this be a symbol font?
\or % esstix
+ \ifmathalfa@bbb\mathalpha@boldError{esstix}{bb}\fi
\DeclareFontFamily{U}{esstixbb}{\skewchar \font =45}
\DeclareFontShape{U}{esstixbb}{m}{n}{
<-> \mathalfa@bbscaled esstixbb}{}
@@ -138,48 +200,222 @@
<-> \mathalfa@bbscaled BOONDOX-r-ds}{}
\DeclareFontShape{U}{BOONDOX-ds}{b}{n}{
<-> \mathalfa@bbscaled BOONDOX-b-ds}{}
- \DeclareMathAlphabet{\mathbb}{U}{BOONDOX-ds}{m}{n}
- \SetMathAlphabet{\mathbb}{bold}{U}{BOONDOX-ds}{b}{n}
- \DeclareMathAlphabet{\mathbbb} {U}{BOONDOX-ds}{b}{n}
+ \DeclareMathAlphabet{\mathbb}{U}{BOONDOX-ds}{\mathalfa@bbm}{n}
+ \ifmathalfa@bbb\else%
+ \SetMathAlphabet{\mathbb}{bold}{U}{BOONDOX-ds}{b}{n}
+ \DeclareMathAlphabet{\mathbfbb} {U}{BOONDOX-ds}{b}{n}
+ \fi
\or %px
+ %\usepackage[scaled=\mathalfa@bbscaled]{px-ds} % has dotlessi, j
\DeclareFontFamily{U}{px-math-ds}{\skewchar \font =45}% double-struck
\DeclareFontShape{U}{px-math-ds}{m}{n}{
<-> \mathalfa@bbscaled pxr-ds}{}
\DeclareFontShape{U}{px-math-ds}{b}{n}{
<-> \mathalfa@bbscaled pxb-ds}{}
- \DeclareMathAlphabet{\mathbb}{U}{px-math-ds}{m}{n}
- \SetMathAlphabet{\mathbb}{bold}{U}{px-math-ds}{b}{n}
- \DeclareMathAlphabet{\mathbbb} {U}{px-math-ds}{b}{n}
+ \DeclareMathAlphabet{\mathbb}{U}{px-math-ds}{\mathalfa@bbm}{n}
+ \ifmathalfa@bbb\else%
+ \SetMathAlphabet{\mathbb}{bold}{U}{px-math-ds}{b}{n}
+ \DeclareMathAlphabet{\mathbfbb} {U}{px-math-ds}{b}{n}
+ \fi
\or %tx
- \DeclareFontFamily{U}{tx-math-ds}{\skewchar \font =45}% double-struck
- \DeclareFontShape{U}{tx-math-ds}{m}{n}{
- <-> \mathalfa@bbscaled txr-ds}{}
- \DeclareMathAlphabet{\mathbb}{U}{tx-math-ds}{m}{n}
+ \ifmathalfa@bbb\mathalpha@boldError{tx}{bb}\fi
+ \usepackage[scaled=\mathalfa@bbscaled]{tx-ds} % has dotlessi, j
+% \DeclareFontFamily{U}{tx-math-ds}{\skewchar \font =127}% double-struck
+% \DeclareFontShape{U}{tx-math-ds}{m}{n}{
+% <-> \mathalfa@bbscaled txr-ds}{}
+% \DeclareMathAlphabet{\mathbb}{U}{tx-math-ds}{m}{n}
\or %txof
+ %\usepackage[scaled=\mathalfa@bbscaled]{tx-of}
\DeclareFontFamily{U}{tx-math-of}{\skewchar \font =45}% openface
\DeclareFontShape{U}{tx-math-of}{m}{n}{
<-> \mathalfa@bbscaled txr-of}{}
\DeclareFontShape{U}{tx-math-of}{b}{n}{
<-> \mathalfa@bbscaled txb-of}{}
- \DeclareMathAlphabet{\mathbb}{U}{tx-math-of}{m}{n}
- \SetMathAlphabet{\mathbb}{bold}{U}{tx-math-of}{b}{n}
- \DeclareMathAlphabet{\mathbbb} {U}{tx-math-of}{b}{n}
+ \DeclareMathAlphabet{\mathbb}{U}{tx-math-of}{\mathalfa@bbm}{n}
+ \ifmathalfa@bbb\else%
+ \SetMathAlphabet{\mathbb}{bold}{U}{tx-math-of}{b}{n}
+ \DeclareMathAlphabet{\mathbfbb} {U}{tx-math-of}{b}{n}
+ \fi
\or %libus
+ \ifmathalfa@bbb\mathalpha@boldError{libus}{bb}\fi
\DeclareFontFamily{U}{libusbb}{\skewchar\font=127}%
\DeclareFontShape{U}{libusbb}{m}{n}{
- <-> \mathalfa@bbscaled libus-mathbb}{}
+ <-> \mathalfa@bbscaled libertinust1-mathbb}{}
\DeclareMathAlphabet{\mathbb}{U}{libusbb}{m}{n}
\or %dsserif
- \DeclareFontFamily{U}{dsserif}{\skewchar\font=45}%
- \DeclareFontShape{U}{dsserif}{m}{n}{
- <-> \mathalfa@bbscaled DSSerif}{}
- \DeclareFontShape{U}{dsserif}{b}{n}{
- <-> \mathalfa@bbscaled DSSerif-Bold}{}
- \DeclareMathAlphabet{\mathbb}{U}{dsserif}{m}{n}
- \SetMathAlphabet{\mathbb}{bold}{U}{dsserif}{b}{n}
- \DeclareMathAlphabet{\mathbbb} {U}{dsserif}{b}{n}
+ \ifmathalfa@bbb
+ \ifmathalfa@bbsym
+ \usepackage[bbsymbols,bfbb,scaled=\mathalfa@bbrawscaled]{dsserif}
+ \else
+ \usepackage[bfbb,scaled=\mathalfa@bbrawscaled]{dsserif}
+ \fi
+ \else % no bfbb
+ \ifmathalfa@bbsym
+ \usepackage[bbsymbols,scaled=\mathalfa@bbrawscaled]{dsserif}
+ \else
+ \usepackage[scaled=\mathalfa@bbrawscaled]{dsserif}
+ \fi
+ \fi
+% \DeclareFontFamily{U}{dsserif}{\skewchar\font=45}%
+% \DeclareFontShape{U}{dsserif}{m}{n}{
+% <-> \mathalfa@bbscaled DSSerif}{}
+% \DeclareFontShape{U}{dsserif}{b}{n}{
+% <-> \mathalfa@bbscaled DSSerif-Bold}{}
+% \DeclareMathAlphabet{\mathbb}{U}{dsserif}{m}{n}
+% \SetMathAlphabet{\mathbb}{bold}{U}{dsserif}{b}{n}
+% \DeclareMathAlphabet{\mathbfbb} {U}{dsserif}{b}{n}
+\or % bboldxlight
+ %\let\boldx@scaled=\mathalfa@bbscaled
+ \ifmathalfa@bbb
+ \ifmathalfa@bbsym
+ \usepackage[bbsymbols,light,bfbb, scaled=\mathalfa@bbrawscaled]{bboldx}
+ \else
+ \usepackage[light,bfbb,scaled=\mathalfa@bbrawscaled]{bboldx}
+ \fi
+ \else
+ \ifmathalfa@bbsym
+ \usepackage[bbsymbols,light,scaled=\mathalfa@bbrawscaled]{bboldx}
+ \else
+ \usepackage[light,scaled=\mathalfa@bbrawscaled]{bboldx}
+ \fi
+ \fi
+\or % bboldx
+ %\let\boldx@scaled=\mathalfa@bbscaled
+ \ifmathalfa@bbb
+ \ifmathalfa@bbsym
+ \usepackage[bbsymbols,bfbb, scaled=\mathalfa@bbrawscaled]{bboldx}
+ \else
+ \usepackage[bfbb,scaled=\mathalfa@bbrawscaled]{bboldx}
+ \fi
+ \else
+ \ifmathalfa@bbsym
+ \usepackage[bbsymbols,scaled=\mathalfa@bbrawscaled]{bboldx}
+ \else
+ \usepackage[scaled=\mathalfa@bbrawscaled]{bboldx}
+ \fi
+ \fi
+\or % dsfontserif
+ \ifmathalfa@bbb\mathalpha@boldError{dsfontserif}{bb}\fi
+ \DeclareFontFamily{U}{dsrom}{}
+ \DeclareFontShape{U}{dsrom}{m}{n}{
+ <-10> \mathalfa@bbscaled dsrom8
+ <10-12> \mathalfa@bbscaled dsrom10
+ <12-> \mathalfa@bbscaled dsrom12}{}
+ \DeclareMathAlphabet{\mathbb}{U}{dsrom}{m}{n}
+\or % dsfontsans
+ \ifmathalfa@bbb\mathalpha@boldError{dsfontsans}{bb}\fi
+ \DeclareFontFamily{U}{dsss}{}
+ \DeclareFontShape{U}{dsss}{m}{n}{
+ <-10> \mathalfa@bbscaled dsss8
+ <10-12> \mathalfa@bbscaled dsss10
+ <12-> \mathalfa@bbscaled dsss12}{}
+ \DeclareMathAlphabet{\mathbb}{U}{dsss}{m}{n}
+\or % stixtwo
+ \ifmathalfa@bbb\mathalpha@boldError{stixtwo}{bb}\fi
+ \DeclareFontFamily{U}{stixtwobb}{\skewchar\font=45}%
+ \DeclareFontShape{U}{stixtwobb}{m}{n}{
+ <-> \mathalfa@bbscaled stix2-mathbb}{}
+ \DeclareFontSubstitution{U}{stixtwobb}{m}{n}
+ \ifmathalfa@bbsym
+ \DeclareSymbolFont{stixtwobbr}{U}{stixtwobb}{m}{n}
+ %\DeclareMathAlphabet{\mathbb}{U}{stixtwobb}{m}{n}
+ \DeclareSymbolFontAlphabet{\mathbb}{stixtwobbr}
+ \DeclareMathSymbol{\bbGamma}{\mathord}{stixtwobbr}{0}
+ \DeclareMathSymbol{\bbPi}{\mathord}{stixtwobbr}{5}
+ \DeclareMathSymbol{\bbgamma}{\mathord}{stixtwobbr}{13}
+ \DeclareMathSymbol{\bbpi}{\mathord}{stixtwobbr}{25}
+ \DeclareMathSymbol{\bbdotlessi}{\mathord}{stixtwobbr}{123}
+ \DeclareMathSymbol{\bbdotlessj}{\mathord}{stixtwobbr}{124}
+ \let\imathbb\bbdotlessi
+ \let\jmathbb\bbdotlessj
+ \else % load symbols as text objects
+ \DeclareMathAlphabet{\mathbb}{U}{stixtwobb}{m}{n}
+ \def\txtbbGamma{{\usefont{U}{stixtwobb}{m}{n}\char0 }}
+ \def\txtbbgamma{{\usefont{U}{stixtwobb}{m}{n}\char13 }}
+ \def\txtbbPi{{\usefont{U}{stixtwobb}{m}{n}\char5 }}
+ \def\txtbbpi{{\usefont{U}{stixtwobb}{m}{n}\char25 }}
+ \def\txtbbdotlessi{{\usefont{U}{stixtwobb}{m}{n}\char123 }}
+ \def\txtbbdotlessj{{\usefont{U}{stixtwobb}{m}{n}\char124 }}
+ \def\txtbbzero{{\usefont{U}{stixtwobb}{m}{n}0}}
+ \def\txtbbone{{\usefont{U}{stixtwobb}{m}{n}1}}
+ \def\txtbbtwo{{\usefont{U}{stixtwobb}{m}{n}2}}
+ \def\txtbbthree{{\usefont{U}{stixtwobb}{m}{n}3}}
+ \def\txtbbfour{{\usefont{U}{stixtwobb}{m}{n}4}}
+ \def\txtbbfive{{\usefont{U}{stixtwobb}{m}{n}5}}
+ \def\txtbbsix{{\usefont{U}{stixtwobb}{m}{n}6}}
+ \def\txtbbseven{{\usefont{U}{stixtwobb}{m}{n}7}}
+ \def\txtbbeight{{\usefont{U}{stixtwobb}{m}{n}8}}
+ \def\txtbbnine{{\usefont{U}{stixtwobb}{m}{n}9}}
+ \fi
+
+\or % stix
+ \DeclareFontFamily{U}{stixonebb}{\skewchar\font=45}%
+ \DeclareFontShape{U}{stixonebb}{m}{n}{
+ <-> \mathalfa@bbscaled stix-mathbb}{}
+ \DeclareFontShape{U}{stixonebb}{m}{it}{
+ <-> \mathalfa@bbscaled stix-mathbbit}{}
+ \DeclareFontShape{U}{stixonebb}{b}{n}{
+ <-> \mathalfa@bbscaled stix-mathbb-bold}{}
+ \DeclareFontShape{U}{stixonebb}{b}{it}{
+ <-> \mathalfa@bbscaled stix-mathbbit-bold}{}
+ \DeclareFontSubstitution{U}{stixonebb}{m}{n}
+ \ifmathalfa@bbsym
+ \DeclareSymbolFont{stixonebbr}{U}{stixonebb}{\mathalfa@bbm}{n}
+ \DeclareSymbolFont{stixonebbi}{U}{stixonebb}{\mathalfa@bbm}{it}
+ \DeclareSymbolFontAlphabet{\mathbb}{stixonebbr}
+ \DeclareSymbolFontAlphabet{\mathbbi}{stixonebbi}
+ \ifmathalfa@bbb\else%
+ \SetSymbolFont{stixonebbr}{bold}{U}{stixonebb}{b}{n}
+ \SetSymbolFont{stixonebbi}{bold}{U}{stixonebb}{b}{it}
+ \DeclareMathAlphabet{\mathbfbbi}{U}{stixonebb}{b}{it}
+ \DeclareMathAlphabet{\mathbfbb}{U}{stixonebb}{b}{n}
+ \fi
+ \DeclareMathSymbol{\bbGamma}{\mathord}{stixonebbr}{0}
+ \DeclareMathSymbol{\bbPi}{\mathord}{stixonebbr}{5}
+ \DeclareMathSymbol{\bbgamma}{\mathord}{stixonebbr}{13}
+ \DeclareMathSymbol{\bbpi}{\mathord}{stixonebbr}{25}
+ \DeclareMathSymbol{\bbdotlessi}{\mathord}{stixonebbr}{123}
+ \DeclareMathSymbol{\bbdotlessj}{\mathord}{stixonebbr}{124}
+ \let\imathbb\bbdotlessi
+ \let\jmathbb\bbdotlessj
+ \else
+ \DeclareMathAlphabet{\mathbb}{U}{stixonebb}{\mathalfa@bbm}{n}
+ \DeclareMathAlphabet{\mathbbi}{U}{stixonebb}{\mathalfa@bbm}{it}
+ \ifmathalfa@bbb\else%
+ \SetMathAlphabet{\mathbb}{bold}{U}{stixonebb}{b}{n}
+ \DeclareMathAlphabet{\mathbfbb} {U}{stixonebb}{b}{n}
+ \SetMathAlphabet{\mathbbi}{bold}{U}{stixonebb}{b}{it}
+ \DeclareMathAlphabet{\mathbfbbi} {U}{stixonebb}{b}{it}
+ \fi
+ \def\txtbbGamma{{\usefont{U}{stixonebb}{m}{n}\char0 }}
+ \def\txtbbgamma{{\usefont{U}{stixonebb}{m}{n}\char13 }}
+ \def\txtbbPi{{\usefont{U}{stixonebb}{m}{n}\char5 }}
+ \def\txtbbpi{{\usefont{U}{stixonebb}{m}{n}\char25 }}
+ \def\txtbbdotlessi{{\usefont{U}{stixonebb}{m}{n}\char123 }}
+ \def\txtbbdotlessj{{\usefont{U}{stixonebb}{m}{n}\char124 }}
+% \def\txtbbzero{{\usefont{U}{stixonebb}{m}{n}0}}
+% \def\txtbbone{{\usefont{U}{stixonebb}{m}{n}1}}
+% \def\txtbbtwo{{\usefont{U}{stixonebb}{m}{n}2}}
+% \def\txtbbthree{{\usefont{U}{stixonebb}{m}{n}3}}
+% \def\txtbbfour{{\usefont{U}{stixonebb}{m}{n}4}}
+% \def\txtbbfive{{\usefont{U}{stixonebb}{m}{n}5}}
+% \def\txtbbsix{{\usefont{U}{stixonebb}{m}{n}6}}
+% \def\txtbbseven{{\usefont{U}{stixonebb}{m}{n}7}}
+% \def\txtbbeight{{\usefont{U}{stixonebb}{m}{n}8}}
+% \def\txtbbnine{{\usefont{U}{stixonebb}{m}{n}9}}
+ \fi
\fi
-% \mathcal
+%%%%%%%%%%%%%%%%%% END \mathbb
+
+
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%% START \mathcal
\ifcase\mathalfa@calnr\relax% item 0 of {cm, euler, rsfso, rsfs, lucida, mathpi, mma, mt, mtc, zapfc, esstix, boondox, boondoxo, dutchcal,pxtx,bickham,stix,txupr,boondoxupr}
\DeclareFontFamily{U}{cmsy}{\skewchar\font48 }
\DeclareFontShape{U}{cmsy}{m}{n}{%
@@ -196,9 +432,11 @@
<7.5-8.5>\mathalfa@calscaled cmbsy8%
<8.5-9.5>\mathalfa@calscaled cmbsy9%
<9.5->\mathalfa@calscaled cmbsy10}{}
- \DeclareMathAlphabet{\mathcal} {U}{cmsy}{m}{n}
- \SetMathAlphabet{\mathcal}{bold}{U}{cmsy}{b}{n}
- \DeclareMathAlphabet{\mathbcal} {U}{cmsy}{b}{n}
+ \DeclareMathAlphabet{\mathcal} {U}{cmsy}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{cmsy}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal} {U}{cmsy}{b}{n}
+ \fi
\or % euler
\DeclareFontFamily{U}{eus}{\skewchar\font'60}
\DeclareFontShape{U}{eus}{m}{n}{<-6>\mathalfa@calscaled eusm5
@@ -207,10 +445,13 @@
\DeclareFontShape{U}{eus}{b}{n}{<-6>\mathalfa@calscaled eusb5
<6-8>\mathalfa@calscaled eusb7
<8->\mathalfa@calscaled eusb10}{}
- \DeclareMathAlphabet{\mathcal} {U}{eus}{m}{n}
- \SetMathAlphabet{\mathcal}{bold}{U}{eus}{b}{n}
- \DeclareMathAlphabet{\mathbcal} {U}{eus}{b}{n}
+ \DeclareMathAlphabet{\mathcal} {U}{eus}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{eus}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal} {U}{eus}{b}{n}
+ \fi
\or % rsfso
+ \ifmathalfa@bcal\mathalpha@boldError{rsfso}{cal}\fi
\DeclareFontFamily{U}{rsfso}{\skewchar \font =45}
\DeclareFontShape{U}{rsfso}{m}{n}{
<-6> \mathalfa@calscaled rsfso5
@@ -218,35 +459,40 @@
<8-> \mathalfa@calscaled rsfso10}{}
\DeclareMathAlphabet{\mathcal}{U}{rsfso}{m}{n}
\or % rsfs
+ \ifmathalfa@bcal\mathalpha@boldError{rsfs}{cal}\fi
\DeclareFontFamily{U}{rsfs}{\skewchar\font127 }
\DeclareFontShape{U}{rsfs}{m}{n}{%
<-6>\mathalfa@calscaled rsfs5%
<6-8>\mathalfa@calscaled rsfs7%
<8->\mathalfa@calscaled rsfs10}{}
- \DeclareSymbolFont{rsfs}{U}{rsfs}{m}{n}
- \DeclareSymbolFontAlphabet{\mathcal}{rsfs}
+ \DeclareMathAlphabet{\mathcal}{U}{rsfs}{m}{n}
\or % lucida
- \iflucid@loaded \PackageError{mathalfa}{Do not use lucida as an option to mathalfa after loading a lucida package}{}\fi
+ \iflucid@loaded \PackageError{mathalpha}{Do not use lucida as an option to mathalpha after loading a lucida package}{}\fi
\DeclareFontFamily{OMS}{lbm}{\skewchar\font48}
\DeclareFontShape{OMS}{lbm}{m}{n}{<->\mathalfa@calscaled hlcry}{}
\DeclareFontShape{OMS}{lbm}{b}{n}{<->\mathalfa@calscaled hlcdy}{}
- \DeclareMathAlphabet{\mathcal} {OMS}{lbm}{m}{n}
- \SetMathAlphabet{\mathcal}{bold}{OMS}{lbm}{b}{n}
- \DeclareMathAlphabet{\mathbcal} {OMS}{lbm}{b}{n}
+ \DeclareMathAlphabet{\mathcal} {OMS}{lbm}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{OMS}{lbm}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal} {OMS}{lbm}{b}{n}
+ \fi
\or % mathpi
- \DeclareFontFamily{U}{mathpical}{\skewchar \font =45}
- \DeclareFontShape{U}{mathpical}{m}{n}{
+ \ifmathalfa@bcal\mathalpha@boldError{mathpi}{cal}\fi
+ \DeclareFontFamily{U}{mathpical}{\skewchar \font =45}
+ \DeclareFontShape{U}{mathpical}{m}{n}{
<-> \mathalfa@calscaled mathpical}{}
- \DeclareMathAlphabet{\mathcal}{U}{mathpical}{m}{n}
+ \DeclareMathAlphabet{\mathcal}{U}{mathpical}{m}{n}
\or % mma
\DeclareFontFamily{U}{mmamcal}{\skewchar \font =45}
\DeclareFontShape{U}{mmamcal}{m}{n}{
<-> \mathalfa@calscaled mmamcal}{}
\DeclareFontShape{U}{mmamcal}{b}{n}{
<-> \mathalfa@calscaled mmambcal}{}
- \DeclareMathAlphabet{\mathcal}{U}{mmamcal}{m}{n}
- \SetMathAlphabet{\mathcal}{bold}{U}{mmamcal}{b}{n}
- \DeclareMathAlphabet{\mathbcal} {U}{mmamcal}{b}{n}
+ \DeclareMathAlphabet{\mathcal}{U}{mmamcal}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{mmamcal}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal} {U}{mmamcal}{b}{n}
+ \fi
\or % mt
\@ifpackageloaded{mtpro2}{\mtp@loadedError}{}
\DeclareFontFamily{U}{mt2ms}{\skewchar\font42}%
@@ -259,10 +505,13 @@
\DeclareFontShape{U}{mt2ms}{b}{it}{<-7>\mathalfa@calscaled mt2bmsf%
<7-9>\mathalfa@calscaled mt2bmss%
<9->\mathalfa@calscaled mt2bmst}{}%
- \DeclareMathAlphabet{\mathcal} {U}{mt2ms}{m}{it}
- \SetMathAlphabet{\mathcal}{bold}{U}{mt2ms}{b}{it}
- \DeclareMathAlphabet{\mathbcal} {U}{mt2ms}{b}{it}
+ \DeclareMathAlphabet{\mathcal} {U}{mt2ms}{\mathalfa@calm}{it}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{mt2ms}{b}{it}
+ \DeclareMathAlphabet{\mathbfcal} {U}{mt2ms}{b}{it}
+ \fi
\or % mtc
+ \ifmathalfa@bcal\mathalpha@boldError{mtc}{cal}\fi
\@ifpackageloaded{mtpro2}{\mtp@loadedError}{}
\DeclareFontFamily{U}{mt2ms}{\skewchar\font42}%
\DeclareFontShape{U}{mt2ms}{m}{n}{<-7>\mathalfa@calscaled mt2mcf%
@@ -270,11 +519,13 @@
<9->\mathalfa@calscaled mt2mct}{}%
\DeclareMathAlphabet{\mathcal} {U}{mt2ms}{m}{n}
\or % zapfc
+ \ifmathalfa@bcal\mathalpha@boldError{zapfc}{cal}\fi
\DeclareFontFamily{U}{urwchancal}{\skewchar \font =45}
\DeclareFontShape{U}{urwchancal}{m}{n}{%
<-> \mathalfa@calscaled urwchancal}{}
\DeclareMathAlphabet{\mathcal}{U}{urwchancal}{m}{n}%
\or % esstix
+ \ifmathalfa@bcal\mathalpha@boldError{esstix}{cal}\fi
\DeclareFontFamily{U}{esstixcal}{\skewchar \font =45}
\DeclareFontShape{U}{esstixcal}{m}{n}{
<-> \mathalfa@calscaled esstixcal}{}
@@ -285,98 +536,190 @@
<-> \mathalfa@calscaled BOONDOX-r-cal}{}
\DeclareFontShape{U}{BOONDOX-cal}{b}{n}{
<-> \mathalfa@calscaled BOONDOX-b-cal}{}
- \DeclareMathAlphabet{\mathcal}{U}{BOONDOX-cal}{m}{n}
- \SetMathAlphabet{\mathcal}{bold}{U}{BOONDOX-cal}{b}{n}
- \DeclareMathAlphabet{\mathbcal} {U}{BOONDOX-cal}{b}{n}
+ \DeclareMathAlphabet{\mathcal}{U}{BOONDOX-cal}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{BOONDOX-cal}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal} {U}{BOONDOX-cal}{b}{n}
+ \fi
\or %boondoxo
\DeclareFontFamily{U}{BOONDOX-calo}{\skewchar \font =45}
\DeclareFontShape{U}{BOONDOX-calo}{m}{n}{
<-> \mathalfa@calscaled BOONDOX-r-calo}{}
\DeclareFontShape{U}{BOONDOX-calo}{b}{n}{
<-> \mathalfa@calscaled BOONDOX-b-calo}{}
- \DeclareMathAlphabet{\mathcal}{U}{BOONDOX-calo}{m}{n}
- \SetMathAlphabet{\mathcal}{bold}{U}{BOONDOX-calo}{b}{n}
- \DeclareMathAlphabet{\mathbcal} {U}{BOONDOX-calo}{b}{n}
+ \DeclareMathAlphabet{\mathcal}{U}{BOONDOX-calo}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{BOONDOX-calo}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal} {U}{BOONDOX-calo}{b}{n}
+ \fi
\or %dutchcal
\DeclareFontFamily{U}{dutchcal}{\skewchar \font =45}
\DeclareFontShape{U}{dutchcal}{m}{n}{
<-> \mathalfa@calscaled dutchcal-r}{}
\DeclareFontShape{U}{dutchcal}{b}{n}{
<-> \mathalfa@calscaled dutchcal-b}{}
- \DeclareMathAlphabet{\mathcal}{U}{dutchcal}{m}{n}
- \SetMathAlphabet{\mathcal}{bold}{U}{dutchcal}{b}{n}
- \DeclareMathAlphabet{\mathbcal} {U}{dutchcal}{b}{n}
+ \DeclareMathAlphabet{\mathcal}{U}{dutchcal}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{dutchcal}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal} {U}{dutchcal}{b}{n}
+ \fi
\or %pxtx
\DeclareFontFamily{U}{txcal}{\skewchar \font =45}
\DeclareFontShape{U}{txcal}{m}{n}{
<-> \mathalfa@calscaled txr-cal}{}
\DeclareFontShape{U}{txcal}{b}{n}{
<-> \mathalfa@calscaled txb-cal}{}
- \DeclareMathAlphabet{\mathcal}{U}{txcal}{m}{n}
- \SetMathAlphabet{\mathcal}{bold}{U}{txcal}{b}{n}
- \DeclareMathAlphabet{\mathbcal} {U}{txcal}{b}{n}
+ \DeclareMathAlphabet{\mathcal}{U}{txcal}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{txcal}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal} {U}{txcal}{b}{n}
+ \fi
\or %bickham
\DeclareFontFamily{U}{bickhamcal}{\skewchar \font =45}
\DeclareFontShape{U}{bickhamcal}{m}{n}{
<-> \mathalfa@calscaled bickham-r}{}
\DeclareFontShape{U}{bickhamcal}{b}{n}{
<-> \mathalfa@calscaled bickham-b}{}
- \DeclareMathAlphabet{\mathcal}{U}{bickhamcal}{m}{n}
- \SetMathAlphabet{\mathcal}{bold}{U}{bickhamcal}{b}{n}
- \DeclareMathAlphabet{\mathbcal} {U}{bickhamcal}{b}{n}
+ \DeclareMathAlphabet{\mathcal}{U}{bickhamcal}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{bickhamcal}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal} {U}{bickhamcal}{b}{n}
+ \fi
\or %bickhams
+ %\let\bickham@scale=\mathalfa@calscaled
\DeclareFontFamily{U}{bickhamcal}{\skewchar \font =45}
\DeclareFontShape{U}{bickhamcal}{m}{n}{
<-> \mathalfa@calscaled bickham-s}{}
\DeclareFontShape{U}{bickhamcal}{b}{n}{
<-> \mathalfa@calscaled bickham-b}{}
- \DeclareMathAlphabet{\mathcal}{U}{bickhamcal}{m}{n}
- \SetMathAlphabet{\mathcal}{bold}{U}{bickhamcal}{b}{n}
- \DeclareMathAlphabet{\mathbcal} {U}{bickhamcal}{b}{n}
+ \DeclareMathAlphabet{\mathcal}{U}{bickhamcal}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{bickhamcal}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal} {U}{bickhamcal}{b}{n}
+ \fi
\or %stix
\DeclareFontFamily{U}{stixcal}{\skewchar\font127 }
\DeclareFontShape{U}{stixcal}{m}{n} {<-> \mathalfa@calscaled stix-mathcal}{}
\DeclareFontShape{U}{stixcal}{b}{n} {<-> \mathalfa@calscaled stix-mathcal-bold}{}
- \DeclareMathAlphabet{\mathcal}{U}{stixcal}{m}{n}
- \SetMathAlphabet{\mathcal}{bold}{U}{stixcal}{b}{n}
- \DeclareMathAlphabet{\mathbcal} {U}{stixcal}{b}{n}
+ \DeclareMathAlphabet{\mathcal}{U}{stixcal}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{stixcal}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal} {U}{stixcal}{b}{n}
+ \fi
\or %txupr
\DeclareFontFamily{U}{TXuprcal}{\skewchar \font =45}
\DeclareFontShape{U}{TXuprcal}{m}{n}{
<-> \mathalfa@calscaled txUprCal-Regular}{}
\DeclareFontShape{U}{TXuprcal}{b}{n}{
<-> \mathalfa@calscaled txUprCal-Bold}{}
- \DeclareMathAlphabet{\mathcal}{U}{TXuprcal}{m}{n}
- \SetMathAlphabet{\mathcal}{bold}{U}{TXuprcal}{b}{n}
- \DeclareMathAlphabet{\mathbcal}{U}{TXuprcal}{b}{n}
+ \DeclareMathAlphabet{\mathcal}{U}{TXuprcal}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{TXuprcal}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal}{U}{TXuprcal}{b}{n}
+ \fi
\or %boondoxupr
\DeclareFontFamily{U}{boondoxuprcal}{\skewchar \font =45}
\DeclareFontShape{U}{boondoxuprcal}{m}{n}{
<-> \mathalfa@calscaled BOONDOXUprScr-Regular}{}
\DeclareFontShape{U}{boondoxuprcal}{b}{n}{
<-> \mathalfa@calscaled BOONDOXUprScr-Bold}{}
- \DeclareMathAlphabet{\mathcal}{U}{boondoxuprcal}{m}{n}
- \SetMathAlphabet{\mathcal}{bold}{U}{boondoxuprcal}{b}{n}
- \DeclareMathAlphabet{\mathbcal}{U}{boondoxuprcal}{b}{n}
+ \DeclareMathAlphabet{\mathcal}{U}{boondoxuprcal}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{boondoxuprcal}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal}{U}{boondoxuprcal}{b}{n}
+ \fi
+\or % kp
+ \DeclareFontFamily{U}{jkpsyd}{\skewchar\font =0}
+ \DeclareFontShape{U}{jkpsyd}{m}{n}{
+ <-> \mathalfa@calscaled jkpsyd%
+ }{}
+ \DeclareFontShape{U}{jkpsyd}{b}{n}{
+ <-> \mathalfa@calscaled jkpbsyd%
+ }{}
+ \DeclareMathAlphabet{\mathcal}{U}{jkpsyd}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{jkpsyd}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal}{U}{jkpsyd}{b}{n}
+ \fi
+\or % stixplain
+ \DeclareFontFamily{U}{stixplain}{\skewchar\font =127}
+ \DeclareFontShape{U}{stixplain}{m}{n} {
+ <-> \mathalfa@calscaled stix-mathcal}{}
+ \DeclareFontShape{U}{stixplain}{b}{n} {
+ <-> \mathalfa@calscaled stix-mathcal-bold}{}
+ \DeclareMathAlphabet{\mathcal}{U}{stixplain}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{stixplain}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal}{U}{stixplain}{b}{n}
+ \fi
+\or % stixfancy
+ \DeclareFontFamily{U}{stixfancy}{\skewchar\font =127}
+ \DeclareFontShape{U}{stixfancy}{m}{n} {
+ <-> \mathalfa@calscaled stix-mathscr}{}
+ \DeclareFontShape{U}{stixfancy}{b}{n} {
+ <-> \mathalfa@calscaled stix-mathscr-bold}{}
+ \DeclareMathAlphabet{\mathcal}{U}{stixfancy}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{stixfancy}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal}{U}{stixfancy}{b}{n}
+ \fi
+\or % stixtwoplain
+ \DeclareFontFamily{U}{stixtwoplain}{\skewchar\font =127}
+ \DeclareFontShape{U}{stixtwoplain}{m}{n} {
+ <-> \mathalfa@calscaled stix2-mathcal}{}
+ \DeclareFontShape{U}{stixtwoplain}{b}{n} {
+ <-> \mathalfa@calscaled stix2-mathcal-bold}{}
+ \DeclareMathAlphabet{\mathcal}{U}{stixtwoplain}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{stixtwoplain}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal}{U}{stixtwoplain}{b}{n}
+ \fi
+\or % stixtwofancy
+ \DeclareFontFamily{U}{stixtwofancy}{\skewchar\font =127}
+ \DeclareFontShape{U}{stixtwofancy}{m}{n} {
+ <-> \mathalfa@calscaled stix2-mathscr}{}
+ \DeclareFontShape{U}{stixtwofancy}{b}{n} {
+ <-> \mathalfa@calscaled stix2-mathscr-bold}{}
+ \DeclareMathAlphabet{\mathcal}{U}{stixtwofancy}{\mathalfa@calm}{n}
+ \ifmathalfa@bcal\else%
+ \SetMathAlphabet{\mathcal}{bold}{U}{stixtwofancy}{b}{n}
+ \DeclareMathAlphabet{\mathbfcal}{U}{stixtwofancy}{b}{n}
+ \fi
\fi
-% \mathfrak
+%%%%%%%%%%%%%%%%%% END \mathcal
+
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%% START \mathfrak
+%
\ifcase\mathalfa@fraknr\relax% item 0 of {euler, lucida, mathpi, mma, mt, esstix, boondox, pxtx}
+% euler
\DeclareFontFamily{U}{euf}{}%
- \DeclareFontShape{U}{euf}{m}{n}{<-7>\mathalfa@frakscaled eufm5
+ \DeclareFontShape{U}{euf}{m}{n}{
+ <-7>\mathalfa@frakscaled eufm5
<7-9>\mathalfa@frakscaled eufm7
<9->\mathalfa@frakscaled eufm10}{}%
\DeclareFontShape{U}{euf}{b}{n}{<-7>\mathalfa@frakscaled eufb5
<7-9>\mathalfa@frakscaled eufb7
<9->\mathalfa@frakscaled eufb10}{}%
\DeclareMathAlphabet{\mathfrak}{U}{euf}{m}{n}
- \SetMathAlphabet{\mathfrak}{bold}{U}{euf}{b}{n}
- \DeclareMathAlphabet{\mathbfrak}{U}{euf}{b}{n}
+ \ifmathalfa@bfrak\else%
+ \SetMathAlphabet{\mathfrak}{bold}{U}{euf}{b}{n}
+ \DeclareMathAlphabet{\mathbffrak}{U}{euf}{b}{n}
\or % lucida
- \iflucid@loaded \PackageError{mathalfa}{Do not use lucida as an option to mathalfa after loading a lucida package}{}\fi
+ \iflucid@loaded \PackageError{mathalpha}{Do not use lucida as an option to mathalpha after loading a lucida package}{}\fi
+ \ifmathalfa@bbb\mathalpha@boldError{lucida}{frak}\fi
\DeclareFontFamily{U}{hlcf}{}
- \DeclareFontShape{U}{hlcf}{m}{n}{<->\mathalfa@frakscaled hlcrf8r}{}
- \DeclareMathAlphabet{\mathfrak}{U}{hlcf}{m}{n}
+ \DeclareFontShape{U}{hlcf}{m}{n}{
+ <->\mathalfa@frakscaled hlcrf8r}{}
+ \DeclareMathAlphabet{\mathfrak}{U}{hlcf}{m}{n}
\or % mathpi
+ \ifmathalfa@bbb\mathalpha@boldError{mathpi}{frak}\fi
\DeclareFontFamily{U}{mathpifrak}{\skewchar \font =45}
\DeclareFontShape{U}{mathpifrak}{m}{n}{
<-> \mathalfa@frakscaled mathpifrak}{}
@@ -388,8 +731,9 @@
\DeclareFontShape{U}{mmamfrak}{b}{n}{
<-> \mathalfa@frakscaled mmambfrak}{}
\DeclareMathAlphabet{\mathfrak}{U}{mmamfrak}{m}{n}
- \SetMathAlphabet{\mathfrak}{bold}{U}{mmamfrak}{b}{n}
- \DeclareMathAlphabet{\mathbfrak}{U}{mmamfrak}{b}{n}
+ \ifmathalfa@bfrak\else%
+ \SetMathAlphabet{\mathfrak}{bold}{U}{mmamfrak}{b}{n}
+ \DeclareMathAlphabet{\mathbffrak}{U}{mmamfrak}{b}{n}
\or % mt
%\@ifpackageloaded{mtpro2}{\mtp@loadedError}{} %allow use with mtpro2
\DeclareFontFamily{U}{mt2mf}{}%
@@ -400,9 +744,11 @@
<7-9>\mathalfa@frakscaled mt2bmfs%
<9->\mathalfa@frakscaled mt2bmft}{}%
\DeclareMathAlphabet{\mathfrak}{U}{mt2mf}{m}{n}
- \SetMathAlphabet{\mathfrak}{bold}{U}{mt2mf}{b}{n}
- \DeclareMathAlphabet{\mathbfrak}{U}{mt2mf}{b}{n}
+ \ifmathalfa@bfrak\else%
+ \SetMathAlphabet{\mathfrak}{bold}{U}{mt2mf}{b}{n}
+ \DeclareMathAlphabet{\mathbffrak}{U}{mt2mf}{b}{n}
\or % esstix
+ \ifmathalfa@bbb\mathalpha@boldError{esstix}{frak}\fi
\DeclareFontFamily{U}{esstixfrak}{\skewchar \font =45}
\DeclareFontShape{U}{esstixfrak}{m}{n}{
<-> \mathalfa@frakscaled esstixfrak}{}
@@ -414,79 +760,148 @@
\DeclareFontShape{U}{BOONDOX-frak}{b}{n}{
<-> \mathalfa@frakscaled BOONDOX-b-frak}{}
\DeclareMathAlphabet{\mathfrak}{U}{BOONDOX-frak}{m}{n}
- \SetMathAlphabet{\mathfrak}{bold}{U}{BOONDOX-frak}{b}{n}
- \DeclareMathAlphabet{\mathbfrak} {U}{BOONDOX-frak}{b}{n}
+ \ifmathalfa@bfrak\else%
+ \SetMathAlphabet{\mathfrak}{bold}{U}{BOONDOX-frak}{b}{n}
+ \DeclareMathAlphabet{\mathbffrak} {U}{BOONDOX-frak}{b}{n}
\or % pxtx
- \DeclareFontFamily{U}{txfrak}{\skewchar \font =45}
+ \DeclareFontFamily{U}{txfrak}{\skewchar \font =127}
\DeclareFontShape{U}{txfrak}{m}{n}{
<-> \mathalfa@frakscaled txr-frak}{}
\DeclareFontShape{U}{txfrak}{b}{n}{
<-> \mathalfa@frakscaled txb-frak}{}
- \DeclareMathAlphabet{\mathfrak}{U}{txfrak}{m}{n}
- \SetMathAlphabet{\mathfrak}{bold}{U}{txfrak}{b}{n}
- \DeclareMathAlphabet{\mathbfrak} {U}{txfrak}{b}{n}
+ \DeclareMathAlphabet{\mathfrak}{U}{txfrak}{\mathalfa@frakm}{n}
+ \ifmathalfa@bfrak\else%
+ \SetMathAlphabet{\mathfrak}{bold}{U}{txfrak}{b}{n}
+ \DeclareMathAlphabet{\mathbffrak} {U}{txfrak}{b}{n}
+\or % stixtwo
+ \DeclareFontFamily{U}{stix2frak}{\skewchar\font127 }
+ \DeclareFontShape{U}{stix2frak}{m}{n} {
+ <-> \mathalfa@frakscaled stix2-mathfrak}{}
+ \DeclareFontShape{U}{stix2frak}{b}{n} {
+ <->\mathalfa@frakscaled stix2-mathfrak-bold}{}
+ \DeclareMathAlphabet{\mathfrak}{U}{stix2frak}{m}{n}
+ \ifmathalfa@bfrak\else%
+ \SetMathAlphabet{\mathfrak}{bold}{U}{stix2frak}{b}{n}
+ \DeclareMathAlphabet{\mathbffrak} {U}{stix2frak}{b}{n}
\fi
-% \mathscr
-\ifcase\mathalfa@scrnr\relax% item 0 of {rsfs, rsfso, euler, lucida, mathpi, mma, mtc, zapfc, esstix, boondox, boondoxo, dutchcal,pxtx, bickham, bickhams,txupr,boondoxupr}
- %rsfs--avoid using mathrsfs so as to avoid rounding of sizes and to get scaling
- \DeclareFontFamily{U}{rsfs}{\skewchar\font127 }
- \DeclareFontShape{U}{rsfs}{m}{n}{%
- <-6>\mathalfa@scrscaled rsfs5%
- <6-8>\mathalfa@scrscaled rsfs7%
- <8->\mathalfa@scrscaled rsfs10}{}
- \DeclareSymbolFont{rsfs}{U}{rsfs}{m}{n}
- \DeclareSymbolFontAlphabet{\mathscr}{rsfs}
+%%%%%%%%%%%%%%%%%% END \mathfrak
+
+
+
+
+
+%%%%%%%%%%%%%%%%%% START \mathscr
+\ifcase\mathalfa@scrnr\relax%
+%cm
+ \DeclareFontFamily{U}{cmsy}{\skewchar\font48 }
+ \DeclareFontShape{U}{cmsy}{m}{n}{%
+ <-5.5>\mathalfa@scrscaled cmsy5%
+ <5.5-6.5>\mathalfa@scrscaled cmsy6%
+ <6.5-7.5>\mathalfa@scrscaled cmsy7%
+ <7.5-8.5>\mathalfa@scrscaled cmsy8%
+ <8.5-9.5>\mathalfa@scrscaled cmsy9%
+ <9.5->\mathalfa@scrscaled cmsy10}{}
+ \DeclareFontShape{U}{cmsy}{b}{n}{%
+ <-5.5>\mathalfa@scrscaled cmbsy5%
+ <5.5-6.5>\mathalfa@scrscaled cmbsy6%
+ <6.5-7.5>\mathalfa@scrscaled cmbsy7%
+ <7.5-8.5>\mathalfa@scrscaled cmbsy8%
+ <8.5-9.5>\mathalfa@scrscaled cmbsy9%
+ <9.5->\mathalfa@scrscaled cmbsy10}{}
+ \DeclareMathAlphabet{\mathscr} {U}{cmsy}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{cmsy}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr} {U}{cmsy}{b}{n}
+ \fi
+\or % euler
+ \DeclareFontFamily{U}{eus}{\skewchar\font'60}
+ \DeclareFontShape{U}{eus}{m}{n}{<-6>\mathalfa@scrscaled eusm5
+ <6-8>\mathalfa@scrscaled eusm7
+ <8->\mathalfa@scrscaled eusm10}{}
+ \DeclareFontShape{U}{eus}{b}{n}{<-6>\mathalfa@scrscaled eusb5
+ <6-8>\mathalfa@scrscaled eusb7
+ <8->\mathalfa@scrscaled eusb10}{}
+ \DeclareMathAlphabet{\mathscr} {U}{eus}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{eus}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr} {U}{eus}{b}{n}
+ \fi
\or % rsfso
+ \ifmathalfa@bscr\mathalpha@boldError{rsfso}{scr}\fi
\DeclareFontFamily{U}{rsfso}{\skewchar \font =45}
\DeclareFontShape{U}{rsfso}{m}{n}{
<-6> \mathalfa@scrscaled rsfso5
<6-8> \mathalfa@scrscaled rsfso7
<8-> \mathalfa@scrscaled rsfso10}{}
\DeclareMathAlphabet{\mathscr}{U}{rsfso}{m}{n}
-\or % euler
- \DeclareFontFamily{U}{eus}{\skewchar\font'60}
- \DeclareFontShape{U}{eus}{m}{n}{<-6>\mathalfa@scrscaled eusm5
- <6-8>\mathalfa@scrscaled eusm7
- <8->\mathalfa@scrscaled eusm10}{}
- \DeclareFontShape{U}{eus}{b}{n}{\mathalfa@scrscaled<-6>eusb5<6-8>eusb7<8->eusb10}{}
- \DeclareMathAlphabet{\mathscr} {U}{eus}{m}{n}
- \SetMathAlphabet{\mathscr}{bold}{U}{eus}{b}{n}
- \DeclareMathAlphabet{\mathbscr} {U}{eus}{b}{n}
+\or % rsfs
+ \ifmathalfa@bscr\mathalpha@boldError{rsfs}{scr}\fi
+ \DeclareFontFamily{U}{rsfs}{\skewchar\font127 }
+ \DeclareFontShape{U}{rsfs}{m}{n}{%
+ <-6>\mathalfa@scrscaled rsfs5%
+ <6-8>\mathalfa@scrscaled rsfs7%
+ <8->\mathalfa@scrscaled rsfs10}{}
+ \DeclareMathAlphabet{\mathscr}{U}{rsfs}{m}{n}
\or % lucida
- \iflucid@loaded \PackageError{mathalfa}{Do not use lucida as an option to mathalfa after loading a lucida package}{}\fi
+ \iflucid@loaded \PackageError{mathalpha}{Do not use lucida as an option to mathalpha after loading a lucida package}{}\fi
\DeclareFontFamily{OMS}{lbm}{\skewchar\font48}
\DeclareFontShape{OMS}{lbm}{m}{n}{<->\mathalfa@scrscaled hlcry}{}
\DeclareFontShape{OMS}{lbm}{b}{n}{<->\mathalfa@scrscaled hlcdy}{}
- \DeclareMathAlphabet{\mathscr} {OMS}{lbm}{m}{n}
- \SetMathAlphabet{\mathscr}{bold}{OMS}{lbm}{b}{n}
- \DeclareMathAlphabet{\mathbscr} {OMS}{lbm}{b}{n}
+ \DeclareMathAlphabet{\mathscr} {OMS}{lbm}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{OMS}{lbm}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr} {OMS}{lbm}{b}{n}
+ \fi
\or % mathpi
- \DeclareFontFamily{U}{mathpical}{\skewchar \font =45}
- \DeclareFontShape{U}{mathpical}{m}{n}{
+ \ifmathalfa@bscr\mathalpha@boldError{mathpi}{scr}\fi
+ \DeclareFontFamily{U}{mathpiscr}{\skewchar \font =45}
+ \DeclareFontShape{U}{mathpiscr}{m}{n}{
<-> \mathalfa@scrscaled mathpical}{}
- \DeclareMathAlphabet{\mathscr}{U}{mathpical}{m}{n}
+ \DeclareMathAlphabet{\mathscr}{U}{mathpiscr}{m}{n}
\or % mma
- \DeclareFontFamily{U}{mmamcal}{\skewchar \font =45}
- \DeclareFontShape{U}{mmamcal}{m}{n}{
+ \DeclareFontFamily{U}{mmamscr}{\skewchar \font =45}
+ \DeclareFontShape{U}{mmamscr}{m}{n}{
<-> \mathalfa@scrscaled mmamcal}{}
- \DeclareFontShape{U}{mmamcal}{b}{n}{
+ \DeclareFontShape{U}{mmamscr}{b}{n}{
<-> \mathalfa@scrscaled mmambcal}{}
- \DeclareMathAlphabet{\mathscr}{U}{mmacal}{m}{n}
- \SetMathAlphabet{\mathscr}{bold}{U}{mmacal}{b}{n}
- \DeclareMathAlphabet{\mathbscr} {U}{mmacal}{b}{n}
+ \DeclareMathAlphabet{\mathscr}{U}{mmamscr}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{mmamscr}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr} {U}{mmamscr}{b}{n}
+ \fi
+\or % mt
+ \@ifpackageloaded{mtpro2}{\mtp@loadedError}{}
+ \DeclareFontFamily{U}{mt2msc}{\skewchar\font42}%
+% \DeclareFontShape{U}{mt2msc}{m}{n}{<-7>\mathalfa@scrscaled mt2mcf%
+% <7-9>\mathalfa@scrscaled mt2mcs%
+% <9->\mathalfa@scrscaled mt2mct}{}%
+ \DeclareFontShape{U}{mt2msc}{m}{it}{<-7>\mathalfa@scrscaled mt2msf%
+ <7-9>\mathalfa@scrscaled mt2mss%
+ <9->\mathalfa@scrscaled mt2mst}{}%
+ \DeclareFontShape{U}{mt2msc}{b}{it}{<-7>\mathalfa@scrscaled mt2bmsf%
+ <7-9>\mathalfa@scrscaled mt2bmss%
+ <9->\mathalfa@scrscaled mt2bmst}{}%
+ \DeclareMathAlphabet{\mathscr} {U}{mt2msc}{\mathalfa@scrm}{it}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{mt2msc}{b}{it}
+ \DeclareMathAlphabet{\mathbfscr} {U}{mt2msc}{b}{it}
+ \fi
\or % mtc
+ \ifmathalfa@bscr\mathalpha@boldError{mtc}{scr}\fi
\@ifpackageloaded{mtpro2}{\mtp@loadedError}{}
\DeclareFontFamily{U}{mt2msc}{\skewchar\font42}%
\DeclareFontShape{U}{mt2msc}{m}{n}{<-7>\mathalfa@scrscaled mt2mcf%
<7-9>\mathalfa@scrscaled mt2mcs%
<9->\mathalfa@scrscaled mt2mct}{}%
\DeclareMathAlphabet{\mathscr} {U}{mt2msc}{m}{n}
-\or % zapfc->urwchancal
+\or % zapfc
+ \ifmathalfa@bscr\mathalpha@boldError{zapfc}{scr}\fi
\DeclareFontFamily{U}{urwchanscr}{\skewchar \font =45}
\DeclareFontShape{U}{urwchanscr}{m}{n}{%
<-> \mathalfa@scrscaled urwchancal}{}
\DeclareMathAlphabet{\mathscr}{U}{urwchanscr}{m}{n}%
\or % esstix
+ \ifmathalfa@bscr\mathalpha@boldError{esstix}{scr}\fi
\DeclareFontFamily{U}{esstixscr}{\skewchar \font =45}
\DeclareFontShape{U}{esstixscr}{m}{n}{
<-> \mathalfa@scrscaled esstixcal}{}
@@ -497,72 +912,98 @@
<-> \mathalfa@scrscaled BOONDOX-r-cal}{}
\DeclareFontShape{U}{BOONDOX-scr}{b}{n}{
<-> \mathalfa@scrscaled BOONDOX-b-cal}{}
- \DeclareMathAlphabet{\mathscr}{U}{BOONDOX-scr}{m}{n}
- \SetMathAlphabet{\mathscr}{bold}{U}{BOONDOX-scr}{b}{n}
- \DeclareMathAlphabet{\mathbscr} {U}{BOONDOX-scr}{b}{n}
+ \DeclareMathAlphabet{\mathscr}{U}{BOONDOX-scr}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{BOONDOX-scr}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr} {U}{BOONDOX-scr}{b}{n}
+ \fi
\or %boondoxo
\DeclareFontFamily{U}{BOONDOX-scro}{\skewchar \font =45}
\DeclareFontShape{U}{BOONDOX-scro}{m}{n}{
<-> \mathalfa@scrscaled BOONDOX-r-calo}{}
\DeclareFontShape{U}{BOONDOX-scro}{b}{n}{
<-> \mathalfa@scrscaled BOONDOX-b-calo}{}
- \DeclareMathAlphabet{\mathscr}{U}{BOONDOX-scro}{m}{n}
- \SetMathAlphabet{\mathscr}{bold}{U}{BOONDOX-scro}{b}{n}
- \DeclareMathAlphabet{\mathbscr} {U}{BOONDOX-scro}{b}{n}
+ \DeclareMathAlphabet{\mathscr}{U}{BOONDOX-scro}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{BOONDOX-scro}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr} {U}{BOONDOX-scro}{b}{n}
+ \fi
\or %dutchcal
\DeclareFontFamily{U}{dutchscr}{\skewchar \font =45}
\DeclareFontShape{U}{dutchscr}{m}{n}{
<-> \mathalfa@scrscaled dutchcal-r}{}
\DeclareFontShape{U}{dutchscr}{b}{n}{
<-> \mathalfa@scrscaled dutchcal-b}{}
- \DeclareMathAlphabet{\mathscr}{U}{dutchscr}{m}{n}
- \SetMathAlphabet{\mathscr}{bold}{U}{dutchscr}{b}{n}
- \DeclareMathAlphabet{\mathbscr}{U}{dutchscr}{b}{n}
+ \DeclareMathAlphabet{\mathscr}{U}{dutchscr}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{dutchscr}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr} {U}{dutchscr}{b}{n}
+ \fi
\or %pxtx
\DeclareFontFamily{U}{txscr}{\skewchar \font =45}
\DeclareFontShape{U}{txscr}{m}{n}{
<-> \mathalfa@scrscaled txr-cal}{}
\DeclareFontShape{U}{txscr}{b}{n}{
<-> \mathalfa@scrscaled txb-cal}{}
- \DeclareMathAlphabet{\mathscr}{U}{txscr}{m}{n}
- \SetMathAlphabet{\mathscr}{bold}{U}{txscr}{b}{n}
- \DeclareMathAlphabet{\mathbscr} {U}{txscr}{b}{n}
+ \DeclareMathAlphabet{\mathscr}{U}{txscr}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{txscr}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr} {U}{txscr}{b}{n}
+ \fi
\or %bickham
\DeclareFontFamily{U}{bickhamscr}{\skewchar \font =45}
\DeclareFontShape{U}{bickhamscr}{m}{n}{
<-> \mathalfa@scrscaled bickham-r}{}
\DeclareFontShape{U}{bickhamscr}{b}{n}{
<-> \mathalfa@scrscaled bickham-b}{}
- \DeclareMathAlphabet{\mathscr}{U}{bickhamscr}{m}{n}
- \SetMathAlphabet{\mathscr}{bold}{U}{bickhamscr}{b}{n}
- \DeclareMathAlphabet{\mathbscr} {U}{bickhamscr}{b}{n}
+ \DeclareMathAlphabet{\mathscr}{U}{bickhamscr}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{bickhamscr}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr} {U}{bickhamscr}{b}{n}
+ \fi
\or %bickhams
+ %\let\bickham@scale=\mathalfa@scrscaled
\DeclareFontFamily{U}{bickhamscr}{\skewchar \font =45}
\DeclareFontShape{U}{bickhamscr}{m}{n}{
<-> \mathalfa@scrscaled bickham-s}{}
\DeclareFontShape{U}{bickhamscr}{b}{n}{
<-> \mathalfa@scrscaled bickham-b}{}
- \DeclareMathAlphabet{\mathscr}{U}{bickhamscr}{m}{n}
- \SetMathAlphabet{\mathscr}{bold}{U}{bickhamscr}{b}{n}
- \DeclareMathAlphabet{\mathbscr} {U}{bickhamscr}{b}{n}
+ \DeclareMathAlphabet{\mathscr}{U}{bickhamscr}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{bickhamscr}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr} {U}{bickhamscr}{b}{n}
+ \fi
+\or %stix
+ \DeclareFontFamily{U}{stixscr}{\skewchar\font127 }
+ \DeclareFontShape{U}{stixscr}{m}{n} {<-> \mathalfa@scrscaled stix-mathcal}{}
+ \DeclareFontShape{U}{stixscr}{b}{n} {<-> \mathalfa@scrscaled stix-mathcal-bold}{}
+ \DeclareMathAlphabet{\mathscr}{U}{stixscr}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{stixscr}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr} {U}{stixscr}{b}{n}
+ \fi
\or %txupr
\DeclareFontFamily{U}{txuprscr}{\skewchar \font =45}
\DeclareFontShape{U}{txuprscr}{m}{n}{
<-> \mathalfa@scrscaled txUprCal-Regular}{}
\DeclareFontShape{U}{txuprscr}{b}{n}{
<-> \mathalfa@scrscaled txUprCal-Bold}{}
- \DeclareMathAlphabet{\mathscr}{U}{txuprscr}{m}{n}
- \SetMathAlphabet{\mathscr}{bold}{U}{txuprscr}{b}{n}
- \DeclareMathAlphabet{\mathbscr}{U}{txuprscr}{b}{n}
+ \DeclareMathAlphabet{\mathscr}{U}{txuprscr}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{txuprscr}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr}{U}{txuprscr}{b}{n}
+ \fi
\or %boondoxupr
- \DeclareFontFamily{U}{Boondoxuprs}{\skewchar \font =45}
- \DeclareFontShape{U}{Boondoxuprs}{m}{n}{
+ \DeclareFontFamily{U}{boondoxuprs}{\skewchar \font =45}
+ \DeclareFontShape{U}{boondoxuprs}{m}{n}{
<-> \mathalfa@scrscaled BOONDOXUprScr-Regular}{}
- \DeclareFontShape{U}{Boondoxuprs}{b}{n}{
+ \DeclareFontShape{U}{boondoxuprs}{b}{n}{
<-> \mathalfa@scrscaled BOONDOXUprScr-Bold}{}
- \DeclareMathAlphabet{\mathscr}{U}{Boondoxuprs}{m}{n}
- \SetMathAlphabet{\mathscr}{bold}{U}{Boondoxuprs}{b}{n}
- \DeclareMathAlphabet{\mathbscr}{U}{Boondoxuprs}{b}{n}
+ \DeclareMathAlphabet{\mathscr}{U}{boondoxuprs}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{boondoxuprs}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr}{U}{boondoxuprs}{b}{n}
+ \fi
\or % kp
\DeclareFontFamily{U}{jkpsyd}{\skewchar\font =0}
\DeclareFontShape{U}{jkpsyd}{m}{n}{
@@ -571,26 +1012,309 @@
\DeclareFontShape{U}{jkpsyd}{b}{n}{
<-> \mathalfa@scrscaled jkpbsyd%
}{}
- \DeclareMathAlphabet{\mathscr}{U}{jkpsyd}{m}{n}
- \SetMathAlphabet{\mathscr}{bold}{U}{jkpsyd}{b}{n}
- \DeclareMathAlphabet{\mathbscr}{U}{jkpsyd}{b}{n}
+ \DeclareMathAlphabet{\mathscr}{U}{jkpsyd}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{jkpsyd}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr}{U}{jkpsyd}{b}{n}
+ \fi
+\or % stixplain
+ \DeclareFontFamily{U}{stixplains}{\skewchar\font =127}
+ \DeclareFontShape{U}{stixplains}{m}{n} {
+ <-> \mathalfa@scrscaled stix-mathcal}{}
+ \DeclareFontShape{U}{stixplains}{b}{n} {
+ <-> \mathalfa@scrscaled stix-mathcal-bold}{}
+ \DeclareMathAlphabet{\mathscr}{U}{stixplains}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{stixplains}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr}{U}{stixplains}{b}{n}
+ \fi
+\or % stixfancy
+ \DeclareFontFamily{U}{stixfancys}{\skewchar\font =127}
+ \DeclareFontShape{U}{stixfancys}{m}{n} {
+ <-> \mathalfa@scrscaled stix-mathscr}{}
+ \DeclareFontShape{U}{stixfancys}{b}{n} {
+ <-> \mathalfa@scrscaled stix-mathscr-bold}{}
+ \DeclareMathAlphabet{\mathscr}{U}{stixfancys}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{stixfancys}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr}{U}{stixfancys}{b}{n}
+ \fi
+\or % stixtwoplain
+ \DeclareFontFamily{U}{stixtwoplains}{\skewchar\font =127}
+ \DeclareFontShape{U}{stixtwoplains}{m}{n} {
+ <-> \mathalfa@scrscaled stix2-mathcal}{}
+ \DeclareFontShape{U}{stixtwoplains}{b}{n} {
+ <-> \mathalfa@scrscaled stix2-mathcal-bold}{}
+ \DeclareMathAlphabet{\mathscr}{U}{stixtwoplains}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{stixtwoplains}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr}{U}{stixtwoplains}{b}{n}
+ \fi
+\or % stixtwofancys
+ \DeclareFontFamily{U}{stixtwofancys}{\skewchar\font =127}
+ \DeclareFontShape{U}{stixtwofancys}{m}{n} {
+ <-> \mathalfa@scrscaled stix2-mathscr}{}
+ \DeclareFontShape{U}{stixtwofancys}{b}{n} {
+ <-> \mathalfa@scrscaled stix2-mathscr-bold}{}
+ \DeclareMathAlphabet{\mathscr}{U}{stixtwofancys}{\mathalfa@scrm}{n}
+ \ifmathalfa@bscr\else%
+ \SetMathAlphabet{\mathscr}{bold}{U}{stixtwofancys}{b}{n}
+ \DeclareMathAlphabet{\mathbfscr}{U}{stixtwofancys}{b}{n}
+ \fi
\fi
-\ifnum\mathalfa@bbnr>-1\relax \def\Bbb{}\let\Bbb\mathbb\fi
-\ifx\mathbcal\@undefined\def\mathbcal{\PackageError{mathalfa}
- {There is no bold variant of the calligraphic font}
- {Type <return> to proceed; \protect\mathbcal\space will be ignored.}
- }\fi%
-\ifx\mathbbb\@undefined\def\mathbbb{\PackageError{mathalfa}
- {There is no bold variant of the blackboard bold font}
- {Type <return> to proceed; \protect\mathbbb\space will be ignored.}
- }\fi%
-\ifx\mathbfrak\@undefined\def\mathbfrak{\PackageError{mathalfa}
- {There is no bold variant of the fraktur font}
- {Type <return> to proceed; \protect\mathbfrak\space will be ignored.}
- }\fi%
-\ifx\mathbscr\@undefined\def\mathbscr{\PackageError{mathalfa}
- {There is no bold variant of the script font}
- {Type <return> to proceed; \protect\mathbscr\space will be ignored.}
- }\fi%
+%%%%%%%%%%%%%%%%%% END \mathscr
+
+\ifmathalfa@bfrak\let\mathbffrak\mathfrak\fi
+\ifmathalfa@bbb\let\mathbfbb\mathbb\fi
+\ifmathalfa@bcal\let\mathbfcal\mathcal\fi
+\ifmathalfa@bscr\let\mathbfscr\mathscr\fi
+
+\ifmathalfa@oldbold\let\mathbbb\mathbfbb \let\mathbfrak\mathbffrak \let\mathbcal\mathbfcal \let\mathbscr\mathbfscr\fi
+
+%%%%%%%%%%%%%%%%%% START old \mathscr
+%
+%\ifcase\mathalfa@scrnr\relax% item 0 of {cm, euler, rsfso, rsfs, lucida, mathpi, mma, mt, mtc, zapfc, esstix, boondox, boondoxo, dutchcal, pxtx, bickham, bickhams, stix, txupr, boondoxupr, kp}
+%% was {rsfs, rsfso, euler, lucida, mathpi, mma, mtc, zapfc, esstix, boondox, boondoxo, dutchcal,pxtx, bickham, bickhams, txupr,boondoxupr}
+% %rsfs--avoid using mathrsfs so as to avoid rounding of sizes and to get scaling
+% \DeclareFontFamily{U}{cmsy}{\skewchar\font48 }
+% \DeclareFontShape{U}{cmsy}{m}{n}{%
+% <-5.5>\mathalfa@scrscaled cmsy5%
+% <5.5-6.5>\mathalfa@scrscaled cmsy6%
+% <6.5-7.5>\mathalfa@scrscaled cmsy7%
+% <7.5-8.5>\mathalfa@scrscaled cmsy8%
+% <8.5-9.5>\mathalfa@scrscaled cmsy9%
+% <9.5->\mathalfa@scrscaled cmsy10}{}
+% \DeclareFontShape{U}{cmsy}{b}{n}{%
+% <-5.5>\mathalfa@scrscaled cmbsy5%
+% <5.5-6.5>\mathalfa@scrscaled cmbsy6%
+% <6.5-7.5>\mathalfa@scrscaled cmbsy7%
+% <7.5-8.5>\mathalfa@scrscaled cmbsy8%
+% <8.5-9.5>\mathalfa@scrscaled cmbsy9%
+% <9.5->\mathalfa@scrscaled cmbsy10}{}
+% \DeclareMathAlphabet{\mathscr} {U}{cmsy}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{cmsy}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr} {U}{cmsy}{b}{n}
+%\or % euler
+% \DeclareFontFamily{U}{eus}{\skewchar\font'60}
+% \DeclareFontShape{U}{eus}{m}{n}{<-6>\mathalfa@scrscaled eusm5
+% <6-8>\mathalfa@scrscaled eusm7
+% <8->\mathalfa@scrscaled eusm10}{}
+% \DeclareFontShape{U}{eus}{b}{n}{\mathalfa@scrscaled<-6>eusb5<6-8>eusb7<8->eusb10}{}
+% \DeclareMathAlphabet{\mathscr} {U}{eus}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{eus}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr} {U}{eus}{b}{n}
+%\or % rsfso
+% \DeclareFontFamily{U}{rsfso}{\skewchar \font =45}
+% \DeclareFontShape{U}{rsfso}{m}{n}{
+% <-6> \mathalfa@scrscaled rsfso5
+% <6-8> \mathalfa@scrscaled rsfso7
+% <8-> \mathalfa@scrscaled rsfso10}{}
+% \DeclareMathAlphabet{\mathscr}{U}{rsfso}{m}{n}
+%\or % rsfs
+% \DeclareFontFamily{U}{rsfs}{\skewchar\font127 }
+% \DeclareFontShape{U}{rsfs}{m}{n}{%
+% <-6>\mathalfa@scrscaled rsfs5%
+% <6-8>\mathalfa@scrscaled rsfs7%
+% <8->\mathalfa@scrscaled rsfs10}{}
+% %\DeclareSymbolFont{rsfs}{U}{rsfs}{m}{n}
+% \DeclareMathAlphabet{\mathscr}{U}{rsfs}{m}{n}
+%\or % lucida
+% \iflucid@loaded \PackageError{mathalpha}{Do not use lucida as an option to mathalpha after loading a lucida package}{}\fi
+% \DeclareFontFamily{OMS}{lbm}{\skewchar\font48}
+% \DeclareFontShape{OMS}{lbm}{m}{n}{<->\mathalfa@scrscaled hlcry}{}
+% \DeclareFontShape{OMS}{lbm}{b}{n}{<->\mathalfa@scrscaled hlcdy}{}
+% \DeclareMathAlphabet{\mathscr} {OMS}{lbm}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{OMS}{lbm}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr} {OMS}{lbm}{b}{n}
+%\or % mathpi
+% \DeclareFontFamily{U}{mathpical}{\skewchar \font =45}
+% \DeclareFontShape{U}{mathpical}{m}{n}{
+% <-> \mathalfa@scrscaled mathpical}{}
+% \DeclareMathAlphabet{\mathscr}{U}{mathpical}{m}{n}
+%\or % mma
+% \DeclareFontFamily{U}{mmamcal}{\skewchar \font =45}
+% \DeclareFontShape{U}{mmamcal}{m}{n}{
+% <-> \mathalfa@scrscaled mmamcal}{}
+% \DeclareFontShape{U}{mmamcal}{b}{n}{
+% <-> \mathalfa@scrscaled mmambcal}{}
+% \DeclareMathAlphabet{\mathscr}{U}{mmacal}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{mmacal}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr} {U}{mmacal}{b}{n}
+%\or % mt
+% \@ifpackageloaded{mtpro2}{\mtp@loadedError}{}
+% \DeclareFontFamily{U}{mt2ms}{\skewchar\font42}%
+%% \DeclareFontShape{U}{mt2ms}{m}{n}{<-7>\mathalfa@calscaled mt2mcf%
+%% <7-9>\mathalfa@calscaled mt2mcs%
+%% <9->\mathalfa@calscaled mt2mct}{}%
+% \DeclareFontShape{U}{mt2ms}{m}{it}{<-7>\mathalfa@scrscaled mt2msf%
+% <7-9>\mathalfa@scrscaled mt2mss%
+% <9->\mathalfa@scrscaled mt2mst}{}%
+% \DeclareFontShape{U}{mt2ms}{b}{it}{<-7>\mathalfa@scrscaled mt2bmsf%
+% <7-9>\mathalfa@scrscaled mt2bmss%
+% <9->\mathalfa@scrscaled mt2bmst}{}%
+% \DeclareMathAlphabet{\mathscr} {U}{mt2ms}{m}{it}
+% \SetMathAlphabet{\mathscr}{bold}{U}{mt2ms}{b}{it}
+% \DeclareMathAlphabet{\mathbfscr} {U}{mt2ms}{b}{it}
+%\or % mtc
+% \@ifpackageloaded{mtpro2}{\mtp@loadedError}{}
+% \DeclareFontFamily{U}{mt2msc}{\skewchar\font42}%
+% \DeclareFontShape{U}{mt2msc}{m}{n}{<-7>\mathalfa@scrscaled mt2mcf%
+% <7-9>\mathalfa@scrscaled mt2mcs%
+% <9->\mathalfa@scrscaled mt2mct}{}%
+% \DeclareMathAlphabet{\mathscr} {U}{mt2msc}{m}{n}
+%\or % zapfc->urwchancal
+% \DeclareFontFamily{U}{urwchanscr}{\skewchar \font =45}
+% \DeclareFontShape{U}{urwchanscr}{m}{n}{%
+% <-> \mathalfa@scrscaled urwchancal}{}
+% \DeclareMathAlphabet{\mathscr}{U}{urwchanscr}{m}{n}%
+%\or % esstix
+% \DeclareFontFamily{U}{esstixscr}{\skewchar \font =45}
+% \DeclareFontShape{U}{esstixscr}{m}{n}{
+% <-> \mathalfa@scrscaled esstixcal}{}
+% \DeclareMathAlphabet{\mathscr}{U}{esstixscr}{m}{n}
+%\or %boondox
+% \DeclareFontFamily{U}{BOONDOX-scr}{\skewchar \font =45}
+% \DeclareFontShape{U}{BOONDOX-scr}{m}{n}{
+% <-> \mathalfa@scrscaled BOONDOX-r-cal}{}
+% \DeclareFontShape{U}{BOONDOX-scr}{b}{n}{
+% <-> \mathalfa@scrscaled BOONDOX-b-cal}{}
+% \DeclareMathAlphabet{\mathscr}{U}{BOONDOX-scr}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{BOONDOX-scr}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr} {U}{BOONDOX-scr}{b}{n}
+%\or %boondoxo
+% \DeclareFontFamily{U}{BOONDOX-scro}{\skewchar \font =45}
+% \DeclareFontShape{U}{BOONDOX-scro}{m}{n}{
+% <-> \mathalfa@scrscaled BOONDOX-r-calo}{}
+% \DeclareFontShape{U}{BOONDOX-scro}{b}{n}{
+% <-> \mathalfa@scrscaled BOONDOX-b-calo}{}
+% \DeclareMathAlphabet{\mathscr}{U}{BOONDOX-scro}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{BOONDOX-scro}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr} {U}{BOONDOX-scro}{b}{n}
+%\or %dutchcal
+% \DeclareFontFamily{U}{dutchscr}{\skewchar \font =45}
+% \DeclareFontShape{U}{dutchscr}{m}{n}{
+% <-> \mathalfa@scrscaled dutchcal-r}{}
+% \DeclareFontShape{U}{dutchscr}{b}{n}{
+% <-> \mathalfa@scrscaled dutchcal-b}{}
+% \DeclareMathAlphabet{\mathscr}{U}{dutchscr}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{dutchscr}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr}{U}{dutchscr}{b}{n}
+%\or %pxtx
+% \DeclareFontFamily{U}{txscr}{\skewchar \font =45}
+% \DeclareFontShape{U}{txscr}{m}{n}{
+% <-> \mathalfa@scrscaled txr-cal}{}
+% \DeclareFontShape{U}{txscr}{b}{n}{
+% <-> \mathalfa@scrscaled txb-cal}{}
+% \DeclareMathAlphabet{\mathscr}{U}{txscr}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{txscr}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr} {U}{txscr}{b}{n}
+%\or %bickham
+% \DeclareFontFamily{U}{bickhamscr}{\skewchar \font =45}
+% \DeclareFontShape{U}{bickhamscr}{m}{n}{
+% <-> \mathalfa@scrscaled bickham-r}{}
+% \DeclareFontShape{U}{bickhamscr}{b}{n}{
+% <-> \mathalfa@scrscaled bickham-b}{}
+% \DeclareMathAlphabet{\mathscr}{U}{bickhamscr}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{bickhamscr}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr} {U}{bickhamscr}{b}{n}
+%\or %bickhams
+% \DeclareFontFamily{U}{bickhamscr}{\skewchar \font =45}
+% \DeclareFontShape{U}{bickhamscr}{m}{n}{
+% <-> \mathalfa@scrscaled bickham-s}{}
+% \DeclareFontShape{U}{bickhamscr}{b}{n}{
+% <-> \mathalfa@scrscaled bickham-b}{}
+% \DeclareMathAlphabet{\mathscr}{U}{bickhamscr}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{bickhamscr}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr} {U}{bickhamscr}{b}{n}
+%\or %stix
+% \DeclareFontFamily{U}{stixscr}{\skewchar\font127 }
+% \DeclareFontShape{U}{stixscr}{m}{n} {<-> \mathalfa@scrscaled stix-mathcal}{}
+% \DeclareFontShape{U}{stixscr}{b}{n} {<-> \mathalfa@scrscaled stix-mathcal-bold}{}
+% \DeclareMathAlphabet{\mathscr}{U}{stixscr}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{stixscr}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr} {U}{stixscr}{b}{n}
+%\or %txupr
+% \DeclareFontFamily{U}{txuprscr}{\skewchar \font =45}
+% \DeclareFontShape{U}{txuprscr}{m}{n}{
+% <-> \mathalfa@scrscaled txUprCal-Regular}{}
+% \DeclareFontShape{U}{txuprscr}{b}{n}{
+% <-> \mathalfa@scrscaled txUprCal-Bold}{}
+% \DeclareMathAlphabet{\mathscr}{U}{txuprscr}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{txuprscr}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr}{U}{txuprscr}{b}{n}
+%\or %boondoxupr
+% \DeclareFontFamily{U}{Boondoxuprs}{\skewchar \font =45}
+% \DeclareFontShape{U}{Boondoxuprs}{m}{n}{
+% <-> \mathalfa@scrscaled BOONDOXUprScr-Regular}{}
+% \DeclareFontShape{U}{Boondoxuprs}{b}{n}{
+% <-> \mathalfa@scrscaled BOONDOXUprScr-Bold}{}
+% \DeclareMathAlphabet{\mathscr}{U}{Boondoxuprs}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{Boondoxuprs}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr}{U}{Boondoxuprs}{b}{n}
+%\or % kp
+% \DeclareFontFamily{U}{jkpsyd}{\skewchar\font =0}
+% \DeclareFontShape{U}{jkpsyd}{m}{n}{
+% <-> \mathalfa@scrscaled jkpsyd%
+% }{}
+% \DeclareFontShape{U}{jkpsyd}{b}{n}{
+% <-> \mathalfa@scrscaled jkpbsyd%
+% }{}
+% \DeclareMathAlphabet{\mathscr}{U}{jkpsyd}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{jkpsyd}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr}{U}{jkpsyd}{b}{n}
+%\or % stixplain
+% \DeclareFontFamily{U}{stixplains}{\skewchar\font =127}
+% \DeclareFontShape{U}{stixplains}{m}{n} {
+% <-> \mathalfa@scrscaled stix-mathcal}{}
+% \DeclareFontShape{U}{stixplains}{b}{n} {
+% <-> \mathalfa@scrscaled stix-mathcal-bold}{}
+% \DeclareMathAlphabet{\mathscr}{U}{stixplains}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{stixplains}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr}{U}{stixplains}{b}{n}
+%\or % stixfancy
+% \DeclareFontFamily{U}{stixfancys}{\skewchar\font =127}
+% \DeclareFontShape{U}{stixfancys}{m}{n} {
+% <-> \mathalfa@scrscaled stix-mathscr}{}
+% \DeclareFontShape{U}{stixfancys}{b}{n} {
+% <-> \mathalfa@scrscaled stix-mathscr-bold}{}
+% \DeclareMathAlphabet{\mathscr}{U}{stixfancys}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{stixfancys}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr}{U}{stixfancys}{b}{n}
+%\or % stixtwoplain
+% \DeclareFontFamily{U}{stixtwoplains}{\skewchar\font =127}
+% \DeclareFontShape{U}{stixtwoplains}{m}{n} {
+% <-> \mathalfa@scrscaled stix2-mathcal}{}
+% \DeclareFontShape{U}{stixtwoplains}{b}{n} {
+% <-> \mathalfa@scrscaled stix2-mathcal-bold}{}
+% \DeclareMathAlphabet{\mathscr}{U}{stixtwoplains}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{stixtwoplains}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr}{U}{stixtwoplains}{b}{n}
+%\or % stixtwofancy
+% \DeclareFontFamily{U}{stixtwofancys}{\skewchar\font =127}
+% \DeclareFontShape{U}{stixtwofancys}{m}{n} {
+% <-> \mathalfa@scrscaled stix2-mathscr}{}
+% \DeclareFontShape{U}{stixtwofancys}{b}{n} {
+% <-> \mathalfa@scrscaled stix2-mathscr-bold}{}
+% \DeclareMathAlphabet{\mathscr}{U}{stixtwofancys}{m}{n}
+% \SetMathAlphabet{\mathscr}{bold}{U}{stixtwofancys}{b}{n}
+% \DeclareMathAlphabet{\mathbfscr}{U}{stixtwofancys}{b}{n}
+%\fi
+
+%\ifx\mathbfcal\@undefined\def\mathbfcal{\PackageError{mathalpha}
+% {There is no bold variant of the calligraphic font}
+% {Type <return> to proceed; \protect\mathbfcal\space will be ignored.}
+% }\fi%
+%\ifx\mathbfbb\@undefined\def\mathbfbb{\PackageError{mathalpha}
+% {There is no bold variant of the blackboard bold font}
+% {Type <return> to proceed; \protect\mathbfbb\space will be ignored.}
+% }\fi%
+%\ifx\mathbffrak\@undefined\def\mathbffrak{\PackageError{mathalpha}
+% {There is no bold variant of the fraktur font}
+% {Type <return> to proceed; \protect\mathbffrak\space will be ignored.}
+% }\fi%
+%\ifx\mathbfscr\@undefined\def\mathbfscr{\PackageError{mathalpha}
+% {There is no bold variant of the script font}
+% {Type <return> to proceed; \protect\mathbfscr\space will be ignored.}
+% }\fi%
\endinput
diff --git a/macros/latex/contrib/spbmark/spbmark.pdf b/macros/latex/contrib/spbmark/spbmark.pdf
index 6031d8553b..7c978d9362 100644
--- a/macros/latex/contrib/spbmark/spbmark.pdf
+++ b/macros/latex/contrib/spbmark/spbmark.pdf
Binary files differ
diff --git a/macros/latex/contrib/spbmark/spbmark.sty b/macros/latex/contrib/spbmark/spbmark.sty
index 8ed460d1b8..6d0fcfd2c4 100644
--- a/macros/latex/contrib/spbmark/spbmark.sty
+++ b/macros/latex/contrib/spbmark/spbmark.sty
@@ -9,7 +9,7 @@
% https://creativecommons.org/licenses/by/4.0/legalcode
\NeedsTeXFormat{LaTeX2e}[2018/12/31]
\RequirePackage{xparse,l3keys2e}
-\ProvidesExplPackage{spbmark}{2021/10/29}{1.1F}
+\ProvidesExplPackage{spbmark}{2021/10/30}{1.1G}
{Customize superscripts and subscripts}
\cs_new_protected:Npn \spb_define:n { \keys_define:nn { spbmark } }
@@ -29,7 +29,9 @@
newsupb .multichoices:nn =
{ text,math,foot,all }
{ \bool_set_true:c { l_spb_newsupb_#1_bool } },
- newsupb .default:n = all
+ newsupb .default:n = all,
+ newsupb/true .meta:n = { newsupb = all },
+ newsupb/false .code:n = { }
}
\ProcessKeysOptions{spbmark/option}
@@ -279,7 +281,7 @@
\bool_if:NT \l_spb_newsupb_foot_bool
{
\cs_set:Npn \@makefnmark
- { \hbox:n { \fnmarkfont\super{\@thefnmark} } }
+ { \hbox:n { \fnmarkfont{\super{\@thefnmark}} } }
}
\cs_set_eq:NN \spb \supersub
\tl_if_exist:NTF \ftntm@font
diff --git a/macros/latex/contrib/spbmark/spbmark.tex b/macros/latex/contrib/spbmark/spbmark.tex
index 73019e147e..967ebbd694 100644
--- a/macros/latex/contrib/spbmark/spbmark.tex
+++ b/macros/latex/contrib/spbmark/spbmark.tex
@@ -6,8 +6,8 @@
{
package = spbmark,
title = the spbmark package,
- version = v1.1F,
- date = 2021/10/29,
+ version = v1.1G,
+ date = 2021/10/30,
authors = Qu Yi,
info = Customize superscript and subscript,
email = q1jx@foxmail.com,
@@ -45,7 +45,7 @@
\opt{ctex}\Default!
This option works with the C\TeX{} document class used by simplified Chinese users, there's actually no functional change. Adding path \module*{style} to \cs*{ctexset} command, which is equivalent to using \cs{spbset}.
\keychoice{newsupb}{text,math,foot,all}\Default
- \option{newsupb} is a compound option that can select multiple values and will redefine the subscript commands of the \LaTeX{} kernel. \code{text} stands for \cs{textsuperscript} and \cs{textsubscript} are equivalent to the \cs{super} and \cs{sub} commands. \code{math} indicates that \cs{sp} and \cs{sb} are equivalent to the \cs{super} and \cs{sub} commands. \code{foot} will make the format of the footnote mark match the superscript offsets and format of the \cs{spbset} global setting. \code{all} will selects all previous three values at the same time.
+ \option{newsupb} is a compound option that can select multiple values and will redefine the scripts commands of the \LaTeX{} kernel. \code{text} stands for \cs{textsuperscript} and \cs{textsubscript} are equivalent to the \cs{super} and \cs{sub} commands. \code{math} indicates that \cs{sp} and \cs{sb} are equivalent to the \cs{super} and \cs{sub} commands. \code{foot} will make the format of the footnote mark match the superscript offsets and format of the \cs{spbset} global setting. \code{all} will selects all previous three values at the same time.
\begin{example}[code-only]
\usepackage[newsupb = {text,math,foot}]{spbmark}
\usepackage[newsupb = all]{spbmark}