efront 4.35.8 → 4.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -40,6 +40,9 @@
40
40
  - zh-CN: 禁用
41
41
  en: Disable
42
42
 
43
+ - zh-CN: "不要在后端代码中使用相对路径\r\n 文件:$1"
44
+ en: "Do not use relative paths in backend code\nFile: $1"
45
+
43
46
  - zh-CN: 代码结构错误
44
47
  en: Code structure error
45
48
 
@@ -4,7 +4,7 @@ var ASN1 = function (tag) { // tag=tagClass|type|composed_flag
4
4
  for (var cx = 1, dx = arguments.length; cx < dx; cx++) {
5
5
  var bytes = arguments[cx];
6
6
  if (bytes.constructor !== Array) {
7
- bytes = Array.apply(null, bytes);
7
+ bytes = bytes.length !== 1 ? Array.apply(null, bytes) : [bytes[0]];
8
8
  }
9
9
  bytesarr.push(bytes);
10
10
  length += bytes.length;
@@ -104,7 +104,7 @@ function stringify(memery, preload, hasDulp = true) {
104
104
  noDulp = preload === false || hasDulp === false;
105
105
  if (isArrayLike(hasDulp)) preload = hasDulp;
106
106
  if (isArrayLike(preload)) {
107
- preload = Array.apply(null, preload);
107
+ preload = preload.length !== 1 ? Array.apply(null, preload) : [preload[0]];
108
108
  var i = preload.indexOf(memery) + 1;
109
109
  if (i > 0) return i + ',';
110
110
  preload.unshift(memery);
@@ -244,7 +244,7 @@ function scanblock(string, index, preload, obj) {
244
244
  return reg.lastIndex;
245
245
  }
246
246
  function parse(string, preload) {
247
- if (isArrayLike(preload)) preload = Array.apply(null, preload);
247
+ if (isArrayLike(preload)) preload = preload.length !== 1 ? Array.apply(null, preload) : [preload[0]];
248
248
  else preload = [];
249
249
  isjsam = false;
250
250
  preload.unshift(void 0);
@@ -2,10 +2,12 @@ var _dict = [];
2
2
  var _prefix = [];
3
3
  var _buff = [];
4
4
  var _bitDeep = 9;
5
+ var _bitInit = 9;
6
+ var _dictSize = 258;
5
7
  var _half = 0;
6
8
  var _addLength = 0;
7
9
  function _clear() {
8
- _bitDeep = 9;
10
+ _bitDeep = _bitInit;
9
11
  _dict = [];
10
12
  }
11
13
 
@@ -57,9 +59,9 @@ function _readFrom1(buff, cx) {
57
59
  function _addDict(d) {
58
60
  if (d.length > 1) {
59
61
  var dict = _dict;
60
- d.index = dict.length + 258;
62
+ d.index = dict.length + _dictSize;
61
63
  dict.push(d);
62
- if (1 << _bitDeep <= dict.length + 258 + _addLength) {
64
+ if (1 << _bitDeep <= dict.length + _dictSize + _addLength) {
63
65
  if (!_addLength && _bitDeep >= 12) return;
64
66
  _bitDeep++;
65
67
  }
@@ -69,12 +71,12 @@ function _writeTo(dist, b) {
69
71
  var prefix = _prefix;
70
72
  var dict = _dict;
71
73
  var end = false;
72
- if (b < 256) {
74
+ if (b < _dictSize - 2) {
73
75
  prefix.push(b);
74
76
  _addDict(prefix);
75
77
  prefix = [b];
76
- } else if (b >= 258) {
77
- var d = dict[b - 258];
78
+ } else if (b >= _dictSize) {
79
+ var d = dict[b - _dictSize];
78
80
  if (!d) {
79
81
  prefix.push(prefix[0]);
80
82
  _addDict(prefix);
@@ -84,10 +86,10 @@ function _writeTo(dist, b) {
84
86
  _addDict(prefix);
85
87
  prefix = d.slice(0);
86
88
  }
87
- } else if (b === 256) {
89
+ } else if (b === _dictSize - 2) {
88
90
  _clear();
89
91
  prefix = [];
90
- } else if (b === 257) {
92
+ } else if (b === _dictSize - 1) {
91
93
  end = true;
92
94
  prefix = [];
93
95
  }
@@ -100,16 +102,18 @@ function _pass(buff) {
100
102
  var dict = _dict;
101
103
  var half = _half;
102
104
  var end = false;
103
- if (dict.length) {
104
- var dist = [];
105
- if (half) {
106
- var [b, cx] = _readFrom(_buff.concat(buff[0], buff[1]), 0);
107
- if (_writeTo(dist, b)) end = true;
108
- }
109
- cx = cx - 1;
110
- } else {
111
- cx = 0;
112
- var dist = [];
105
+ var dist = [];
106
+ var cx = 0;
107
+ if (_buff.length) {
108
+ var bl = _buff.length;
109
+ do {
110
+ var [b, cx] = _readFrom(_buff.concat(buff[0], buff[1]), cx);
111
+ if (_writeTo(dist, b)) {
112
+ end = true;
113
+ break;
114
+ }
115
+ } while (cx < bl);
116
+ cx = cx - bl;
113
117
  }
114
118
  if (!end) while (cx + 1 < buff.length) {
115
119
  if (cx + 2 === buff.length) {
@@ -119,6 +123,8 @@ function _pass(buff) {
119
123
  if (_writeTo(dist, b)) break;
120
124
  }
121
125
  _buff = buff.slice(cx);
126
+ if (_buff.length === 1) _buff = [_buff[0]];
127
+ else _buff = Array.apply(null, _buff);
122
128
  return dist;
123
129
  }
124
130
  function _end() {
@@ -127,15 +133,22 @@ function _end() {
127
133
  _buff = [];
128
134
  _half = 0;
129
135
  _bitDeep = 9;
136
+ _bitInit = 9;
130
137
  return [];
131
138
  }
132
139
 
133
- function decodeLZW(buff, isBigEndStart) {
134
- if (isBigEndStart !== false) _readFrom = _readFrom1, _addLength = 1;
135
- else _readFrom = _readFrom2, _addLength = 0;
140
+ function decodeLZW(buff, isBigEndStart, lzw_size) {
141
+ open(isBigEndStart, lzw_size);
136
142
  var decoded = _pass(buff);
137
143
  _end();
138
144
  return decoded;
139
145
  }
140
-
146
+ var open = decodeLZW.open = function (isBigEndStart, lzw_size = 8) {
147
+ if (isBigEndStart !== false) _readFrom = _readFrom1, _addLength = 1;
148
+ else _readFrom = _readFrom2, _addLength = 0;
149
+ _dictSize = (1 << lzw_size) + 2;
150
+ _bitDeep = _bitInit = lzw_size + 1;
151
+ };
152
+ decodeLZW.pass = _pass;
153
+ decodeLZW.close = _end;
141
154
  module.exports = decodeLZW;
@@ -8,7 +8,7 @@ var mi = s => `<mi>${s}</mi>`;
8
8
  var mn = s => `<mn>${s}</mn>`;
9
9
  var mi2 = (s, a, n) => {
10
10
  s = n ? `<msup><mi>${s}</mi>${n}</msup>` : `<mi>${s}</mi>`;
11
- return s + `<ms>&thinsp;</ms>` + a;
11
+ return s + `<ms>&thinsp;</ms>` + a + `<ms>&thinsp;</ms>`;
12
12
  }
13
13
  var mrow = (a, quote, deep) => {
14
14
  if (deep === 2) var tag = 'mtd';
@@ -19,7 +19,9 @@ var mrow = (a, quote, deep) => {
19
19
  return a;
20
20
  }
21
21
  var series =/*级数*/(通项, neq, to) =>
22
- `<munderover><mo>∑</mo>${neq}${to}</munderover>${通项}`;
22
+ `<munderover><mo movablelimits=false>∑</mo>${neq}${to}</munderover>${通项}`;
23
+ var Series =/*级数*/(通项, neq, to) =>
24
+ `<math display="block"><munderover><mo>∑</mo>${neq}${to}</munderover>${通项}</math>`;
23
25
  var msub = (a, n) => `<msub>${a}${n}</msub>`;
24
26
  var qt = (t, a, args) => {
25
27
  var b = args.shift();
@@ -34,6 +36,9 @@ var qt = (t, a, args) => {
34
36
 
35
37
  var 三角函数 = {
36
38
  "sin"(a, n) {
39
+ if (!a && n instanceof Array) {
40
+ [a, n] = n;
41
+ }
37
42
  return mi2("sin", a, n);
38
43
  },
39
44
  "cos"(a, n) {
@@ -82,7 +87,7 @@ var toRoman = function (n) {
82
87
  d = ["", "M", "MM", "MMM"][d];
83
88
  return d + c + b + a;
84
89
  };
85
- var circles = "①②③④⑤⑥⑦⑧⑨⑩";
90
+ var circles = "①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿";
86
91
 
87
92
  var tabs = {
88
93
  roman(...args) {
@@ -94,12 +99,22 @@ var tabs = {
94
99
  circle(...args) {
95
100
  return args.map(n => circles.charAt(n - 1)).map(a => `<mn>${a}</mn>`).join('');
96
101
  }
102
+ };
103
+ tabs["@"] = tabs.circle;
104
+ tabs["$"] = tabs.roman;
105
+ var mtable = function (args, prefix, postfix) {
106
+ if (prefix) prefix = `<mo>${prefix}</mo>`;
107
+ if (postfix) postfix = `<mo>${postfix}</mo>`;
108
+ if (args.length === 1) return [prefix, args[0], postfix].join('');
109
+ return `${prefix}<mtable><mtr>${args.join("</mtr><mtr>")}</mtr></mtable>${postfix}`;
97
110
  }
98
-
99
111
  var funcmap = {
100
112
  "+"(...args) {
101
113
  return mo3("+", args);
102
114
  },
115
+ "+."(a, ...args) {
116
+ return a + args.join('<mo>+</mo>');
117
+ },
103
118
  "-"(...args) {
104
119
  return mo3("–", args);
105
120
  },
@@ -134,8 +149,17 @@ var funcmap = {
134
149
  Mul(...args) {
135
150
  return mo3("·", args);
136
151
  },
137
- abs(a) {
138
- return `<mo>|</mo>${a}<mo>|</mo>`;
152
+ conj(A) {
153
+ var m = document.createElementNS('http://www.w3.org/1998/Math/MathML', 'math');
154
+ m.innerHTML = A;
155
+ css(m, 'opacition:0;position:absolute:left-10px;top:-10px;pointer-events:none;z-index:-10');
156
+ document.documentElement.appendChild(m);
157
+ var sp = Array(2 + (m.clientWidth / 6 | 0)).join("\u23bc");
158
+ remove(m);
159
+ return `<mover>${A}<mo stretchy=true symmetric=true fence=true accent=true>${sp}</mo></mover>`
160
+ },
161
+ abs(...args) {
162
+ return mtable(args, "|", "|");
139
163
  },
140
164
  log(x, n) {
141
165
  return `<msub><mo>log</mo>${n}</msub>${x}`
@@ -159,9 +183,16 @@ var funcmap = {
159
183
  return `<munder><ms>limit</ms><mrow>${x}<mo>→</mo>${n}</mrow></munder>${a}`
160
184
  },
161
185
  sigma: series,
186
+ Sigma: Series,
187
+ Series,
162
188
  series,
163
- group(...args) {
164
- return `<mo>{</mo><mtable><mtr><mtd>${args.join("</mtd></mtr><mtr><mtd>")}</mtd></mtr></mtable>`
189
+ "{"(...args) {
190
+ return mtable(args, '{', '');
191
+ // return `<mo>{</mo><mtable columnalign="left"><mtr><mtd>${args.join("</mtd></mtr><mtr><mtd>")}</mtd></mtr></mtable>`
192
+ },
193
+ "["(...args) {
194
+ return mtable(args, '[', ']');
195
+ // return `<mo>[</mo><mtable><mtr>${args.join("</mtr><mtr>")}</mtr></mtable><mo>]</mo>`;
165
196
  },
166
197
  '!='(...args) {
167
198
  return mo3("≉", args);
@@ -172,19 +203,23 @@ var funcmap = {
172
203
  "~="(...args) {
173
204
  return mo3("≈", args);
174
205
  },
175
- "integral"(a, b = '', c = '') {
206
+ integral(a, b = '', c = '') {
176
207
  return `<msubsup><mo>∫</mo>${b}${c}</msubsup>${a}`;
177
208
  },
209
+ Integral(a, b = '', c = '') {
210
+ return `<math display="block"><msubsup><mo>∫</mo>${b}${c}</msubsup>${a}</math>`;
211
+ },
178
212
  "'"(...args) {
179
213
  var b = args.pop();
180
- if (!args.length) return `<msup>${b}<mo>'</mo></msup>`;// 转置
214
+ if (!args.length) return `<msup>${b}<mo>T</mo></msup>`;
181
215
  // 导数
182
- return args.map((a) => `${a}<mo>'</mo>`).join('') + `<mi>(</mi>${b}<mi>)</mi>`;
216
+ return args.map((a) => `${a}<mo>&apos;</mo>`).join('') + `<mi>(</mi>${b}<mi>)</mi>`;
183
217
  },
184
218
  "!"(...args) {
185
219
  return args.map(a => a + `<mo>!</mo>`).join('');
186
220
  }
187
221
  };
222
+ funcmap["^|"] = funcmap.abs;
188
223
  var unary = (u, a) => `<ms>${u}</ms>${a}`;
189
224
  var unarymap = {
190
225
  "+"(a) {
@@ -250,6 +285,7 @@ var puncmap = {
250
285
  // ">=": "≥",
251
286
  // "<=": '≤',
252
287
  };
288
+ puncmap["^*"] = puncmap["**"];
253
289
  var pmap = {};
254
290
 
255
291
  [
@@ -298,23 +334,30 @@ var br = function () {
298
334
  lineBroken = true;
299
335
  return '</mtd></mtr><mtr><mtd>';
300
336
  };
337
+ var Number_isFinite = Number.isFinite;
338
+ var isPostFinite = function (n) {
339
+ return /[^\d]$/.test(n[n.length - 1]);
340
+ }
341
+ var isFinite = function (n, post) {
342
+ if (Number_isFinite(n)) return true;
343
+ if (!n) return false;
344
+ if (n["/"]) return true;
345
+ if (n["+."]) return true;
346
+ if (n["."]) return !post || isPostFinite(n);
347
+ if (n[".."]) return !post || isPostFinite(n);
348
+ return false;
349
+ }
301
350
  function toString(obj, p, deep) {
302
351
  if (obj instanceof Array) {
303
- if (deep == 1 && obj.length === 2 && obj[1].tab) {
304
- return toString(obj[0], 0, deep) + "</mtd><mtd>" + obj.slice(1, obj.length).map(a => toString(a, 0, 0)).join("</mtd><mtd>");
305
- }
306
352
  deep++;
307
353
  var args = obj.map(a => toString(a, deep > 1 ? 0 : p, deep));
308
354
  deep--;
309
355
  if (args instanceof Array) {
310
- if (deep > 2) {
356
+ if (deep >= 2) {
311
357
  if (args.length > 1) args = `<mrow><mo>(</mo>${args.join('<mo>,</mo>')}<mo>)</mo></mrow>`;
312
358
  }
313
- else if (deep === 2) {
314
- args = `<mtd>${args.join('</mtd><mtd>')}</mtd>`;
315
- }
316
359
  else if (deep === 1) {
317
- args = `<mrow><mo>[</mo><mtable><mtr>${args.join("</mtr><mtr>")}</mtr></mtable><mo>]</mo></mrow>`;
360
+ args = args.join('');
318
361
  }
319
362
  }
320
363
  return args;
@@ -324,8 +367,12 @@ function toString(obj, p, deep) {
324
367
  for (var k in obj) break;
325
368
  if (!k) return '';
326
369
  var origin = obj[k];
327
- if (k === '..') {
328
- var [prefix, rep, dots, e] = origin;
370
+ if (k === '.' || k === '..') {
371
+ if (k === '.') {
372
+ var [prefix, e, s] = origin;
373
+ if (/[^\d]$/.test(e)) s = e, e = '';
374
+ }
375
+ else var [prefix, rep, dots, e, s] = origin;
329
376
  prefix = String(prefix).replace(/^\-/, '–');
330
377
  if (typeof rep === 'number') rep = String(rep);
331
378
  if (rep && !/\./.test(prefix)) prefix += '.';
@@ -342,8 +389,25 @@ function toString(obj, p, deep) {
342
389
  else dots = '';
343
390
  if (e) e = `<mo>×</mo><msup><mn>10</mn><mn>${String(e).replace(/^\-/, '–')}</mn></msup>`;
344
391
  else e = '';
392
+ if (s) s = `<mi>${s}</mi>`;
393
+ else s = '';
345
394
  prefix = mn(prefix);
346
- return mrow([prefix, rep, dots, e].join(''), e ? p >= pmap["*"] : false, deep);
395
+ return mrow([prefix, rep, dots, e, s].join(''), e ? p >= pmap["*"] : false, deep);
396
+ }
397
+ if (k === '**') {
398
+ if (origin instanceof Array) {
399
+ var [left, right] = origin;
400
+ if (left instanceof Object && !(left instanceof Array)) {
401
+ for (var k1 in left) break;
402
+ if (!(left[k1] instanceof Array)) {
403
+ var obj = mi2(k1, toString(left[k1], pmap["*"], 0), toString(right));
404
+ return mrow(obj, p >= pmap["**"], deep);
405
+ }
406
+ }
407
+ }
408
+ }
409
+ if (k === '@' || k === '$') {
410
+ return mrow(tabs[k](origin), -1, deep);
347
411
  }
348
412
  if (k === 'tab') {
349
413
  k = origin.shift();
@@ -354,13 +418,24 @@ function toString(obj, p, deep) {
354
418
  return mrow(tabs[k](...origin), -1, deep);
355
419
  }
356
420
  if (k in 三角函数) {
357
- var args = origin.map(a => toString(a, pmap["*"], 0));
358
- obj = 三角函数[k](...args);
359
- return mrow(三角函数[k](...args), p >= pmap["**"], deep);
421
+ if (origin instanceof Array) {
422
+ var args = origin.map(a => toString(a, pmap["*"], 0));
423
+ obj = 三角函数[k](...args);
424
+ }
425
+ else {
426
+ obj = 三角函数[k](toString(origin, pmap["*"], 0));
427
+ }
428
+ return mrow(obj, p >= pmap["**"], deep);
429
+ }
430
+ if (k === '+.') {
431
+ var args = toString(origin, pmap[k], -1);
360
432
  }
361
- var args = toString(origin, pmap[k], 0);
433
+ else var args = toString(origin, k === '/' ? 0 : pmap[k], 0);
362
434
  var addqt = pmap[k] < p && p < pmap["**"];
363
435
  if (args instanceof Array) {
436
+ if (k === "'" && args.length === 1 && !origin[0]["["]) {
437
+ return mrow(args[0] + `<mo>&apos;</mo>`, p > pmap["**"], 0);
438
+ }
364
439
  var f = funcmap[k];
365
440
  if (!f) {
366
441
  addqt = -1;
@@ -372,14 +447,16 @@ function toString(obj, p, deep) {
372
447
  return mrow(`<mi>${希腊[k] || k}</mi>${mrow(args instanceof Array ? args.join('<mo>,</mo>') : args, true)}`, false, deep);
373
448
  }
374
449
  if (args instanceof Array) {
375
-
376
450
  if (k === '*') {
377
- var allnum = true;
378
- var bx = 1;
451
+ var bx = 0;
379
452
  var simple = true;
380
- for (var cx = 0, dx = args.length; cx < dx; cx++) {
381
- if (typeof origin[cx] !== 'number') {
382
- allnum = false;
453
+ var pisnum = isFinite(origin[0], true);
454
+ var allnum = pisnum;
455
+ for (var cx = 1, dx = args.length; cx < dx; cx++) {
456
+ var o = origin[cx];
457
+ var isnum = isFinite(o);
458
+ if (!isnum) allnum = false;
459
+ if (!pisnum && isnum) {
383
460
  if (cx > bx) {
384
461
  while (bx < cx) {
385
462
  args[bx] = args[bx] + "<mo>·</mo>";
@@ -388,6 +465,7 @@ function toString(obj, p, deep) {
388
465
  }
389
466
  bx = cx;
390
467
  }
468
+ pisnum = isnum && isPostFinite(o);
391
469
  }
392
470
  if (allnum) {
393
471
  return mrow(funcmap.mul(...args), false, deep);
@@ -81,17 +81,19 @@ math`S=sqrt(p*(p-a)*(p-b)*(p-c))`
81
81
  ```
82
82
  * 乘法
83
83
  ```mathscript
84
+ // 用`*`会自动转成`×`或`·`或省略
84
85
  1*2
85
86
  a*b
86
87
  2*a
88
+ a*2
87
89
  ```
88
90
  ```math
89
91
  1*2
90
92
  a*b
91
93
  2*a
94
+ a*2
92
95
  ```
93
96
  ```mathscript
94
- // 默认用`*`会自动转成`×`或`·`或省略
95
97
  // 如果自动生成的符号不符合预期
96
98
  // 可以使用`mul(a,b)`以强制生成`×`
97
99
  // `Mul(a,b)`生成`·`
@@ -104,9 +106,11 @@ mul(a,b),Mul(a,b),MUL(a,b)
104
106
  * 分数
105
107
  ```mathscript
106
108
  分子/分母
109
+ 1/(2/3),1/2/3;
107
110
  ```
108
111
  ```math
109
112
  分子/分母
113
+ 1/(2/3),1/2/3;
110
114
  ```
111
115
  * 以除号表示除法
112
116
  ```mathscript
@@ -117,10 +121,19 @@ mul(a,b),Mul(a,b),MUL(a,b)
117
121
  ```
118
122
  * 绝对值
119
123
  ```mathscript
120
- abs(a)
124
+ |a|;
125
+ |1+|a||*2;
121
126
  ```
122
127
  ```math
123
- abs(a)
128
+ |a|;
129
+ |1+|a||*2;
130
+ ```
131
+ * 行列式
132
+ ```mathscript
133
+ |1,2,3,4;5,6,7,8|;
134
+ ```
135
+ ```math
136
+ |1,2,3,4;5,6,7,8|;
124
137
  ```
125
138
  * 阶乘: n!
126
139
  ```mathscript
@@ -131,10 +144,12 @@ mul(a,b),Mul(a,b),MUL(a,b)
131
144
  ```
132
145
  * 幂
133
146
  ```mathscript
134
- 底数 ** 指数
147
+ 底数 ** 指数;
148
+ a**2**x=a**(2*x);
135
149
  ```
136
150
  ```math
137
- 底数 ** 指数
151
+ 底数 ** 指数;
152
+ a**2**x=a**(2*x);
138
153
  ```
139
154
  * 平方根
140
155
  ```mathscript
@@ -162,16 +177,28 @@ mul(a,b),Mul(a,b),MUL(a,b)
162
177
 
163
178
  * 三角函数
164
179
  ```mathscript
165
- sin(theta);
166
- sin(theta,2);
167
- sin(theta**2);
168
- sin(theta)**2;
180
+ // 指令形式,函数形式
181
+ sin theta, sin(theta);
182
+ // 不同位置的指数
183
+ sin(theta**2),sin(theta)**2, (sin theta)**2,"sin"(theta)**2;
184
+ // 和角公式
185
+ sin(alpha+beta)=sin(alpha)*cos(beta)+cos(alpha)*sin(beta);
186
+ // 倍角公式
187
+ sin(2*alpha)=2*sin(alpha)*cos(alpha);
188
+ // 反三角函数
189
+ arctan x+arctan y = arctan ((x+y)/(1-x*y))
169
190
  ```
170
191
  ```math
171
- sin(theta);
172
- sin(theta,2);
173
- sin(theta**2);
174
- sin(theta)**2;
192
+ // 指令形式,函数形式
193
+ sin theta, sin(theta);
194
+ // 不同位置的指数
195
+ sin(theta**2),sin(theta)**2, (sin theta)**2,"sin"(theta)**2;
196
+ // 和角公式
197
+ sin(alpha+beta)=sin(alpha)*cos(beta)+cos(alpha)*sin(beta);
198
+ // 倍角公式
199
+ sin(2*alpha)=2*sin(alpha)*cos(alpha);
200
+ // 反三角函数
201
+ arctan x+arctan y = arctan ((x+y)/(1-x*y))
175
202
  ```
176
203
 
177
204
  * 向量
@@ -211,19 +238,29 @@ sin(theta)**2;
211
238
 
212
239
  * 积分
213
240
  ```mathscript
214
- integral(表达式,下界,上界)
241
+ integral(表达式,下界,上界) // 内联样式
242
+ Integral(表达式,下界,上界) // 块级样式
215
243
  ```
216
244
  ```math
217
245
  integral(表达式,下界,上界)
246
+ Integral(表达式,下界,上界)
218
247
  ```
219
248
  * 级数
220
249
  ```mathscript
250
+ // 内联样式
221
251
  sigma(公式主体,n=1,+Infinity)
222
252
  series(公式主体,n=1,+Infinity)
253
+ // 块级样式
254
+ Sigma(公式主体,n=1,+Infinity)
255
+ Series(公式主体,n=1,+Infinity)
223
256
  ```
224
257
  ```math
258
+ // 内联样式
225
259
  sigma(公式主体,n=1,+Infinity)
226
260
  series(公式主体,n=1,+Infinity)
261
+ // 块级样式
262
+ Sigma(公式主体,n=1,+Infinity)
263
+ Series(公式主体,n=1,+Infinity)
227
264
  ```
228
265
  * 矩阵
229
266
  ```mathscript
@@ -241,10 +278,12 @@ series(公式主体,n=1,+Infinity)
241
278
  ```
242
279
  * 转置
243
280
  ```mathscript
244
- [1,2;3,4]'
281
+ [1,2;3,4]';
282
+ A'*B';
245
283
  ```
246
284
  ```math
247
- [1,2;3,4]'
285
+ [1,2;3,4]';
286
+ A'*B';
248
287
  ```
249
288
  * 离子
250
289
  ```mathscript
@@ -292,39 +331,50 @@ series(公式主体,n=1,+Infinity)
292
331
  1.3.e3;
293
332
  a*1.3e3
294
333
  ```
334
+ * 虚数
335
+ ```mathscript
336
+ 1+2i;
337
+ 1+2.3i;
338
+ 2+3e10k;
339
+ 3e10j;
340
+ ```
341
+ ```math
342
+ 1+2i;
343
+ 1+2.3i;
344
+ 2+3e10k;
345
+ 3e10j;
346
+ ```
295
347
  * 方程组
296
348
  ```mathscript
297
- group(
349
+ {
298
350
  a+1=b;
299
- a+b=3;
300
- )
351
+ a+b**2=3;
352
+ }
301
353
  ```
302
354
  ```math
303
- group(
304
- a+1=b,
305
- a+b**2=3
306
- )
355
+ {
356
+ a+1=b;
357
+ a+b**2=3;
358
+ }
307
359
  ```
308
360
  * 标号
309
361
  ```mathscript
310
362
  tab(1); // 带小括号的数字
311
- tab(circle,1,2,3,10); // 带圆圈的数字
312
- tab(roman,1); //罗马数字
313
- tab(roman,3888); //罗马数字
314
- group(// 方程组中使用
315
- x+y=10 tab(circle,1),
316
- x*y=25 tab(circle,2)
317
- )
318
- ```
319
- ```math
320
- tab(1);
321
- tab(circle,1,2,3,10);
322
- tab(roman,1);
323
- tab(roman,3888);
324
- group(
325
- x+y=10 tab(circle,1),
326
- x*y=25 tab(circle,2)
327
- )
363
+ @1,@2,@3,@4,@20,@50; // 带圆圈的数字
364
+ $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$3888; //罗马数字
365
+ {// 方程组中使用
366
+ x+y=10, @1;
367
+ x*y=25, @2;
368
+ }
369
+ ```
370
+ ```math
371
+ tab(1); // 带小括号的数字
372
+ @1,@2,@3,@4,@20,@50; // 带圆圈的数字
373
+ $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$3888; //罗马数字
374
+ {// 方程组中使用
375
+ x+y=10, @1;
376
+ x*y=25, @2;
377
+ }
328
378
  ```
329
379
  * 角
330
380
  ```mathscript
@@ -349,6 +399,34 @@ series(公式主体,n=1,+Infinity)
349
399
  ln(x);
350
400
  ```
351
401
 
402
+ * 共轭
403
+ ```mathscript
404
+ conj(A);// 上划线
405
+ conj(1+2i);// 上划线
406
+ conj(1+2i)*2;
407
+ ```
408
+ ```math
409
+ conj(A);// 上划线
410
+ conj(1+2i);// 上划线
411
+ conj(1+2i)*2;
412
+ ```
413
+ * 共轭转置
414
+ ```mathscript
415
+ A[*];
416
+ [1+2i, 3+4i;5+6j,7+8k][*];
417
+ ```
418
+ ```math
419
+ A[*];
420
+ [1+2i, 3+4i;5+6j,7+8k][*];
421
+ ```
422
+ * 带整数部分的分数,1右1/2
423
+ ```mathscript
424
+ 1 .(1/2) * 2.(3/5) + 5.(7/8)
425
+ ```
426
+ ```math
427
+ 1 .(1/2) * 2.(3/5) + 5.(7/8)
428
+ ```
429
+
352
430
  ## 希腊字母对照表如下
353
431
  按此表中的英文单词命名的变量将自动转换为希腊字母
354
432
  ```javascript