Skip to content

Commit b22d958

Browse files
authored
Merge pull request #1055 from mathjax/package/bbm
Adds the bbm package.
2 parents 44b3601 + 7467500 commit b22d958

File tree

3 files changed

+98
-0
lines changed

3 files changed

+98
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import './lib/bbm.js';
2+
import {MathJax, combineDefaults} from 'mathjax-full/js/components/global.js';
3+
4+
const FONTPATH = (typeof document === 'undefined' ?
5+
'@mathjax/mathjax-bbm-font-extension' :
6+
'https://cdn.jsdelivr.net/npm/mathjax-bbm-font-extension');
7+
8+
if (MathJax.config?.loader) {
9+
combineDefaults(MathJax.config.loader, 'paths', {
10+
'mathjax-bbm-extension': FONTPATH
11+
});
12+
MathJax.config.loader['[tex]/bbm'] = {
13+
checkReady() {
14+
return MathJax.loader.load(`[mathjax-bbm-extension]/${MathJax.config?.startup?.output || 'chtml'}`);
15+
}
16+
};
17+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"build": {
3+
"id": "[tex]/bbm",
4+
"component": "input/tex/extensions/bbm",
5+
"targets": ["input/tex/bbm"]
6+
},
7+
"webpack": {
8+
"name": "input/tex/extensions/bbm",
9+
"libs": [
10+
"components/src/input/tex-base/lib",
11+
"components/src/core/lib"
12+
]
13+
}
14+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
/*************************************************************
2+
*
3+
* Copyright (c) 2017-2023 The MathJax Consortium
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
18+
19+
/**
20+
* @fileoverview The bbm package.
21+
*
22+
* @author v.sorge@mathjax.org (Volker Sorge)
23+
*/
24+
25+
import {Configuration} from '../Configuration.js';
26+
import {CommandMap} from '../TokenMap.js';
27+
import BaseMethods from '../base/BaseMethods.js';
28+
import {ParseMethod} from '../Types.js';
29+
import TexParser from '../TexParser.js';
30+
31+
/**
32+
* The methods that implement the bbm package.
33+
*/
34+
let BbmMethods: Record<string, ParseMethod> = {};
35+
36+
BbmMethods.MathFont = BaseMethods.MathFont;
37+
BbmMethods.ChooseFont = function(parser: TexParser, name: string,
38+
regular: string, bold: string) {
39+
BaseMethods.MathFont(parser, name, parser.options.bbm.bold ? bold : regular);
40+
}
41+
BbmMethods.ChangeBold = function(parser: TexParser, name: string) {
42+
const font = parser.GetArgument(name);
43+
parser.options.bbm.bold = (font === 'bold' ? true : false);
44+
}
45+
46+
47+
new CommandMap('bbm', {
48+
mathversion: 'ChangeBold',
49+
mathbbm: ['ChooseFont', '-bbm-normal', '-bbm-bold'],
50+
mathbbmss: ['ChooseFont', '-bbm-sans-serif', '-bbm-sans-serif-bold'],
51+
mathbbmtt: ['MathFont', '-bbm-monospace']
52+
}, BbmMethods);
53+
54+
//
55+
// Define the package configuration, including switch for sans serif.
56+
//
57+
export const BbmConfiguration = Configuration.create('bbm', {
58+
handler: {
59+
macro: ['bbm'],
60+
},
61+
options: {
62+
bbm: {
63+
bold: false
64+
}
65+
}
66+
});
67+

0 commit comments

Comments
 (0)