@drghaliasri/butex 5.5.5 → 5.6.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.
- package/README.md +1 -1
- package/dist/document.js +36 -0
- package/dist/document.js.map +1 -1
- package/dist/document.mjs +36 -0
- package/dist/document.mjs.map +1 -1
- package/dist/document2.d.mts +4 -2
- package/dist/document2.d.ts +4 -2
- package/dist/document2.js +173 -20
- package/dist/document2.js.map +1 -1
- package/dist/document2.mjs +173 -20
- package/dist/document2.mjs.map +1 -1
- package/dist/index.d.mts +39 -1
- package/dist/index.d.ts +39 -1
- package/dist/index.global.js +79 -14
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +79 -14
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +79 -14
- package/dist/index.mjs.map +1 -1
- package/dist/react-document.js +254 -7
- package/dist/react-document.js.map +1 -1
- package/dist/react-document.mjs +254 -7
- package/dist/react-document.mjs.map +1 -1
- package/dist/react-document2.d.mts +5 -3
- package/dist/react-document2.d.ts +5 -3
- package/dist/react-document2.js +375 -33
- package/dist/react-document2.js.map +1 -1
- package/dist/react-document2.mjs +375 -33
- package/dist/react-document2.mjs.map +1 -1
- package/dist/react.d.mts +35 -0
- package/dist/react.d.ts +35 -0
- package/dist/react.js +1277 -7
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +1277 -7
- package/dist/react.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.global.js
CHANGED
|
@@ -735,6 +735,27 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
735
735
|
return COMMAND_MAP3;
|
|
736
736
|
}
|
|
737
737
|
|
|
738
|
+
// src/register/colonRelations.ts
|
|
739
|
+
var COMMAND_MAP4 = "butex-colon-relation-macros";
|
|
740
|
+
var COLON_RELATIONS = {
|
|
741
|
+
coloneqq: "\u2254",
|
|
742
|
+
eqqcolon: "\u2255"
|
|
743
|
+
};
|
|
744
|
+
function colonRelation(parser, name) {
|
|
745
|
+
const commandName = name.replace(/^\\/, "");
|
|
746
|
+
const label = COLON_RELATIONS[commandName] ?? commandName;
|
|
747
|
+
const node = parser.create("token", "mo", { texClass: 3 }, label);
|
|
748
|
+
parser.Push(node);
|
|
749
|
+
}
|
|
750
|
+
var colonRelationTyped = colonRelation;
|
|
751
|
+
function registerColonRelationCommandMacros(CommandMap) {
|
|
752
|
+
const mappings = Object.fromEntries(
|
|
753
|
+
Object.keys(COLON_RELATIONS).map((name) => [name, colonRelationTyped])
|
|
754
|
+
);
|
|
755
|
+
new CommandMap(COMMAND_MAP4, mappings);
|
|
756
|
+
return COMMAND_MAP4;
|
|
757
|
+
}
|
|
758
|
+
|
|
738
759
|
// src/editor/characterFonts.ts
|
|
739
760
|
var CHARACTER_FONT_SPECS = [
|
|
740
761
|
{
|
|
@@ -808,7 +829,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
808
829
|
}
|
|
809
830
|
|
|
810
831
|
// src/register/fontText.ts
|
|
811
|
-
var
|
|
832
|
+
var COMMAND_MAP5 = "butex-font-text-macros";
|
|
812
833
|
function fontText(className, parser, name) {
|
|
813
834
|
const text = parser.GetArgument(name);
|
|
814
835
|
const node = parser.create(
|
|
@@ -826,12 +847,12 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
826
847
|
((parser, name) => fontText(font.mathJaxClass, parser, name))
|
|
827
848
|
])
|
|
828
849
|
);
|
|
829
|
-
new CommandMap(
|
|
830
|
-
return
|
|
850
|
+
new CommandMap(COMMAND_MAP5, mappings);
|
|
851
|
+
return COMMAND_MAP5;
|
|
831
852
|
}
|
|
832
853
|
|
|
833
854
|
// src/register/mirror.ts
|
|
834
|
-
var
|
|
855
|
+
var COMMAND_MAP6 = "butex-mirror-macros";
|
|
835
856
|
function mirrorContent(parser, name) {
|
|
836
857
|
const arg = parser.GetArgument(name);
|
|
837
858
|
const TexParserClass = parser.constructor;
|
|
@@ -842,12 +863,12 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
842
863
|
}
|
|
843
864
|
var mirrorContentTyped = mirrorContent;
|
|
844
865
|
function registerMirrorCommand(CommandMap) {
|
|
845
|
-
new CommandMap(
|
|
846
|
-
return
|
|
866
|
+
new CommandMap(COMMAND_MAP6, { butexmirror: mirrorContentTyped });
|
|
867
|
+
return COMMAND_MAP6;
|
|
847
868
|
}
|
|
848
869
|
|
|
849
870
|
// src/register/passthrough.ts
|
|
850
|
-
var
|
|
871
|
+
var COMMAND_MAP7 = "butex-passthrough-macros";
|
|
851
872
|
function passthroughArgument(parser, name) {
|
|
852
873
|
const arg = parser.GetArgument(name);
|
|
853
874
|
const TexParserClass = parser.constructor;
|
|
@@ -864,12 +885,12 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
864
885
|
var passthroughArgumentTyped = passthroughArgument;
|
|
865
886
|
var arabvecArgumentTyped = arabvecArgument;
|
|
866
887
|
function registerPassthroughCommandMacros(CommandMap) {
|
|
867
|
-
new CommandMap(
|
|
888
|
+
new CommandMap(COMMAND_MAP7, {
|
|
868
889
|
unit: passthroughArgumentTyped,
|
|
869
890
|
idx: passthroughArgumentTyped,
|
|
870
891
|
arabvec: arabvecArgumentTyped
|
|
871
892
|
});
|
|
872
|
-
return
|
|
893
|
+
return COMMAND_MAP7;
|
|
873
894
|
}
|
|
874
895
|
|
|
875
896
|
// src/register.ts
|
|
@@ -896,6 +917,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
896
917
|
registerArabSqrtCommand(CommandMap),
|
|
897
918
|
registerPrescriptCommand(CommandMap),
|
|
898
919
|
registerAtomicCommandMacros(CommandMap),
|
|
920
|
+
registerColonRelationCommandMacros(CommandMap),
|
|
899
921
|
registerFontTextCommands(CommandMap),
|
|
900
922
|
registerMirrorCommand(CommandMap),
|
|
901
923
|
registerPassthroughCommandMacros(CommandMap)
|
|
@@ -2117,6 +2139,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2117
2139
|
category: "operators1",
|
|
2118
2140
|
Tex: "\\neq",
|
|
2119
2141
|
mirror: true,
|
|
2142
|
+
compileMirror: true,
|
|
2120
2143
|
Label: "\u2260",
|
|
2121
2144
|
title: "\u0644\u0627 \u064A\u0633\u0627\u0648\u064A",
|
|
2122
2145
|
svg_path: null
|
|
@@ -2156,6 +2179,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2156
2179
|
Tex: "\\leq",
|
|
2157
2180
|
mirror: true,
|
|
2158
2181
|
displayMirror: false,
|
|
2182
|
+
compileMirror: true,
|
|
2159
2183
|
Label: "\u2264",
|
|
2160
2184
|
title: "\u0623\u0635\u063A\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
|
|
2161
2185
|
svg_path: null
|
|
@@ -2166,6 +2190,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2166
2190
|
Tex: "\\geq",
|
|
2167
2191
|
mirror: true,
|
|
2168
2192
|
displayMirror: false,
|
|
2193
|
+
compileMirror: true,
|
|
2169
2194
|
Label: "\u2265",
|
|
2170
2195
|
title: "\u0623\u0643\u0628\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
|
|
2171
2196
|
svg_path: null
|
|
@@ -2176,6 +2201,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2176
2201
|
Tex: "\\coloneqq",
|
|
2177
2202
|
mirror: true,
|
|
2178
2203
|
displayMirror: false,
|
|
2204
|
+
compileMirror: true,
|
|
2179
2205
|
Label: "\u2254",
|
|
2180
2206
|
title: "\u064A\u0639\u0631\u0641 \u0628\u0623\u0646\u0647 \u064A\u0633\u0627\u0648\u064A",
|
|
2181
2207
|
svg_path: null
|
|
@@ -2186,6 +2212,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2186
2212
|
Tex: "\\eqqcolon",
|
|
2187
2213
|
mirror: true,
|
|
2188
2214
|
displayMirror: false,
|
|
2215
|
+
compileMirror: true,
|
|
2189
2216
|
Label: "\u2255",
|
|
2190
2217
|
title: "\u064A\u0633\u0627\u0648\u064A \u0628\u0627\u0644\u062A\u0639\u0631\u064A\u0641",
|
|
2191
2218
|
svg_path: null
|
|
@@ -2197,6 +2224,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2197
2224
|
Tex: "\\propto",
|
|
2198
2225
|
mirror: true,
|
|
2199
2226
|
displayMirror: false,
|
|
2227
|
+
compileMirror: true,
|
|
2200
2228
|
Label: "\u221D",
|
|
2201
2229
|
title: "\u064A\u062A\u0646\u0627\u0633\u0628 \u0645\u0639",
|
|
2202
2230
|
svg_path: null
|
|
@@ -2207,6 +2235,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2207
2235
|
Tex: "\\in",
|
|
2208
2236
|
mirror: true,
|
|
2209
2237
|
displayMirror: false,
|
|
2238
|
+
compileMirror: true,
|
|
2210
2239
|
Label: "\u2208",
|
|
2211
2240
|
title: "\u064A\u0646\u062A\u0645\u064A \u0625\u0644\u0649",
|
|
2212
2241
|
svg_path: null
|
|
@@ -2227,6 +2256,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2227
2256
|
Tex: "\\subset",
|
|
2228
2257
|
mirror: true,
|
|
2229
2258
|
displayMirror: false,
|
|
2259
|
+
compileMirror: true,
|
|
2230
2260
|
Label: "\u2282",
|
|
2231
2261
|
title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0645\u0646",
|
|
2232
2262
|
svg_path: null
|
|
@@ -2237,6 +2267,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2237
2267
|
Tex: "\\supset",
|
|
2238
2268
|
mirror: true,
|
|
2239
2269
|
displayMirror: false,
|
|
2270
|
+
compileMirror: true,
|
|
2240
2271
|
Label: "\u2283",
|
|
2241
2272
|
title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0644\u0640",
|
|
2242
2273
|
svg_path: null
|
|
@@ -2247,6 +2278,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2247
2278
|
Tex: "\\subseteq",
|
|
2248
2279
|
mirror: true,
|
|
2249
2280
|
displayMirror: false,
|
|
2281
|
+
compileMirror: true,
|
|
2250
2282
|
Label: "\u2286",
|
|
2251
2283
|
title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
|
|
2252
2284
|
svg_path: null
|
|
@@ -2257,6 +2289,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2257
2289
|
Tex: "\\supseteq",
|
|
2258
2290
|
mirror: true,
|
|
2259
2291
|
displayMirror: false,
|
|
2292
|
+
compileMirror: true,
|
|
2260
2293
|
Label: "\u2287",
|
|
2261
2294
|
title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
|
|
2262
2295
|
svg_path: null
|
|
@@ -2297,6 +2330,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2297
2330
|
Tex: "\\nsubseteq",
|
|
2298
2331
|
mirror: true,
|
|
2299
2332
|
displayMirror: false,
|
|
2333
|
+
compileMirror: true,
|
|
2300
2334
|
Label: "\u2288",
|
|
2301
2335
|
title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
|
|
2302
2336
|
svg_path: null
|
|
@@ -2307,6 +2341,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2307
2341
|
Tex: "\\nsupseteq",
|
|
2308
2342
|
mirror: true,
|
|
2309
2343
|
displayMirror: false,
|
|
2344
|
+
compileMirror: true,
|
|
2310
2345
|
Label: "\u2289",
|
|
2311
2346
|
title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
|
|
2312
2347
|
svg_path: null
|
|
@@ -2354,6 +2389,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2354
2389
|
Tex: "\\ddots",
|
|
2355
2390
|
mirror: true,
|
|
2356
2391
|
displayMirror: false,
|
|
2392
|
+
compileMirror: true,
|
|
2357
2393
|
Label: "\u22F1",
|
|
2358
2394
|
title: "\u0646\u0642\u0627\u0637 \u0642\u0637\u0631\u064A\u0629",
|
|
2359
2395
|
svg_path: null
|
|
@@ -2373,6 +2409,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2373
2409
|
category: "operators3",
|
|
2374
2410
|
Tex: "\\implies",
|
|
2375
2411
|
mirror: true,
|
|
2412
|
+
compileMirror: true,
|
|
2376
2413
|
Label: "\u21D2",
|
|
2377
2414
|
title: "\u064A\u0633\u062A\u0644\u0632\u0645",
|
|
2378
2415
|
svg_path: null
|
|
@@ -2382,6 +2419,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2382
2419
|
category: "operators3",
|
|
2383
2420
|
Tex: "\\impliedby",
|
|
2384
2421
|
mirror: true,
|
|
2422
|
+
compileMirror: true,
|
|
2385
2423
|
Label: "\u21D0",
|
|
2386
2424
|
title: "\u0645\u0633\u062A\u0644\u0632\u0645 \u0645\u0646",
|
|
2387
2425
|
svg_path: null
|
|
@@ -2400,6 +2438,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2400
2438
|
category: "operators3",
|
|
2401
2439
|
Tex: "\\Longrightarrow",
|
|
2402
2440
|
mirror: true,
|
|
2441
|
+
compileMirror: true,
|
|
2403
2442
|
Label: "\u27F9",
|
|
2404
2443
|
title: "\u0633\u0647\u0645 \u0645\u0632\u062F\u0648\u062C \u0637\u0648\u064A\u0644 \u0625\u0644\u0649 \u0627\u0644\u064A\u0645\u064A\u0646",
|
|
2405
2444
|
svg_path: null
|
|
@@ -2409,6 +2448,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2409
2448
|
category: "operators3",
|
|
2410
2449
|
Tex: "\\Longleftarrow",
|
|
2411
2450
|
mirror: true,
|
|
2451
|
+
compileMirror: true,
|
|
2412
2452
|
Label: "\u27F8",
|
|
2413
2453
|
title: "\u0633\u0647\u0645 \u0645\u0632\u062F\u0648\u062C \u0637\u0648\u064A\u0644 \u0625\u0644\u0649 \u0627\u0644\u064A\u0633\u0627\u0631",
|
|
2414
2454
|
svg_path: null
|
|
@@ -2418,6 +2458,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2418
2458
|
category: "operators3",
|
|
2419
2459
|
Tex: "\\to",
|
|
2420
2460
|
mirror: true,
|
|
2461
|
+
compileMirror: true,
|
|
2421
2462
|
Label: "\u2192",
|
|
2422
2463
|
title: "\u064A\u0624\u0648\u0644 \u0625\u0644\u0649",
|
|
2423
2464
|
svg_path: null
|
|
@@ -2427,6 +2468,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2427
2468
|
category: "operators3",
|
|
2428
2469
|
Tex: "\\rightleftharpoons",
|
|
2429
2470
|
mirror: true,
|
|
2471
|
+
compileMirror: true,
|
|
2430
2472
|
Label: "\u21CC",
|
|
2431
2473
|
title: "\u0627\u062A\u0632\u0627\u0646",
|
|
2432
2474
|
svg_path: null
|
|
@@ -2436,6 +2478,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2436
2478
|
category: "operators3",
|
|
2437
2479
|
Tex: "\\leftarrow",
|
|
2438
2480
|
mirror: true,
|
|
2481
|
+
compileMirror: true,
|
|
2439
2482
|
Label: "\u2190",
|
|
2440
2483
|
title: "\u0633\u0647\u0645 \u0625\u0644\u0649 \u0627\u0644\u064A\u0633\u0627\u0631",
|
|
2441
2484
|
svg_path: null
|
|
@@ -2445,6 +2488,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2445
2488
|
category: "operators3",
|
|
2446
2489
|
Tex: "\\rightarrow",
|
|
2447
2490
|
mirror: true,
|
|
2491
|
+
compileMirror: true,
|
|
2448
2492
|
Label: "\u2192",
|
|
2449
2493
|
title: "\u0633\u0647\u0645 \u0625\u0644\u0649 \u0627\u0644\u064A\u0645\u064A\u0646",
|
|
2450
2494
|
svg_path: null
|
|
@@ -2454,6 +2498,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2454
2498
|
category: "operators3",
|
|
2455
2499
|
Tex: "\\Leftarrow",
|
|
2456
2500
|
mirror: true,
|
|
2501
|
+
compileMirror: true,
|
|
2457
2502
|
Label: "\u21D0",
|
|
2458
2503
|
title: "\u0633\u0647\u0645 \u0645\u0632\u062F\u0648\u062C \u0625\u0644\u0649 \u0627\u0644\u064A\u0633\u0627\u0631",
|
|
2459
2504
|
svg_path: null
|
|
@@ -2463,6 +2508,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2463
2508
|
category: "operators3",
|
|
2464
2509
|
Tex: "\\Rightarrow",
|
|
2465
2510
|
mirror: true,
|
|
2511
|
+
compileMirror: true,
|
|
2466
2512
|
Label: "\u21D2",
|
|
2467
2513
|
title: "\u0633\u0647\u0645 \u0645\u0632\u062F\u0648\u062C \u0625\u0644\u0649 \u0627\u0644\u064A\u0645\u064A\u0646",
|
|
2468
2514
|
svg_path: null
|
|
@@ -2472,6 +2518,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2472
2518
|
category: "operators3",
|
|
2473
2519
|
Tex: "\\leftharpoonup",
|
|
2474
2520
|
mirror: true,
|
|
2521
|
+
compileMirror: true,
|
|
2475
2522
|
Label: "\u21BC",
|
|
2476
2523
|
title: "\u0633\u0647\u0645 \u062E\u0637\u0627\u0641\u064A \u0639\u0644\u0648\u064A \u0625\u0644\u0649 \u0627\u0644\u064A\u0633\u0627\u0631",
|
|
2477
2524
|
svg_path: null
|
|
@@ -2481,6 +2528,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2481
2528
|
category: "operators3",
|
|
2482
2529
|
Tex: "\\rightharpoonup",
|
|
2483
2530
|
mirror: true,
|
|
2531
|
+
compileMirror: true,
|
|
2484
2532
|
Label: "\u21C0",
|
|
2485
2533
|
title: "\u0633\u0647\u0645 \u062E\u0637\u0627\u0641\u064A \u0639\u0644\u0648\u064A \u0625\u0644\u0649 \u0627\u0644\u064A\u0645\u064A\u0646",
|
|
2486
2534
|
svg_path: null
|
|
@@ -2490,6 +2538,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2490
2538
|
category: "operators3",
|
|
2491
2539
|
Tex: "\\leftharpoondown",
|
|
2492
2540
|
mirror: true,
|
|
2541
|
+
compileMirror: true,
|
|
2493
2542
|
Label: "\u21BD",
|
|
2494
2543
|
title: "\u0633\u0647\u0645 \u062E\u0637\u0627\u0641\u064A \u0633\u0641\u0644\u064A \u0625\u0644\u0649 \u0627\u0644\u064A\u0633\u0627\u0631",
|
|
2495
2544
|
svg_path: null
|
|
@@ -2499,6 +2548,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2499
2548
|
category: "operators3",
|
|
2500
2549
|
Tex: "\\rightharpoondown",
|
|
2501
2550
|
mirror: true,
|
|
2551
|
+
compileMirror: true,
|
|
2502
2552
|
Label: "\u21C1",
|
|
2503
2553
|
title: "\u0633\u0647\u0645 \u062E\u0637\u0627\u0641\u064A \u0633\u0641\u0644\u064A \u0625\u0644\u0649 \u0627\u0644\u064A\u0645\u064A\u0646",
|
|
2504
2554
|
svg_path: null
|
|
@@ -2509,6 +2559,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2509
2559
|
category: "integrals",
|
|
2510
2560
|
Tex: "\\int",
|
|
2511
2561
|
mirror: true,
|
|
2562
|
+
compileMirror: true,
|
|
2512
2563
|
Label: "\u222B",
|
|
2513
2564
|
title: "\u062A\u0643\u0627\u0645\u0644",
|
|
2514
2565
|
svg_path: null
|
|
@@ -2519,6 +2570,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2519
2570
|
Tex: "\\iint",
|
|
2520
2571
|
mirror: true,
|
|
2521
2572
|
displayMirror: false,
|
|
2573
|
+
compileMirror: true,
|
|
2522
2574
|
Label: "\u222C",
|
|
2523
2575
|
title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u0632\u062F\u0648\u062C",
|
|
2524
2576
|
svg_path: null
|
|
@@ -2529,6 +2581,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2529
2581
|
Tex: "\\iiint",
|
|
2530
2582
|
mirror: true,
|
|
2531
2583
|
displayMirror: false,
|
|
2584
|
+
compileMirror: true,
|
|
2532
2585
|
Label: "\u222D",
|
|
2533
2586
|
title: "\u062A\u0643\u0627\u0645\u0644 \u062B\u0644\u0627\u062B\u064A",
|
|
2534
2587
|
svg_path: null
|
|
@@ -2539,6 +2592,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2539
2592
|
Tex: "\\iiiint",
|
|
2540
2593
|
mirror: true,
|
|
2541
2594
|
displayMirror: false,
|
|
2595
|
+
compileMirror: true,
|
|
2542
2596
|
Label: "\u2A0C",
|
|
2543
2597
|
title: "\u062A\u0643\u0627\u0645\u0644 \u0631\u0628\u0627\u0639\u064A",
|
|
2544
2598
|
svg_path: null
|
|
@@ -2549,6 +2603,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2549
2603
|
Tex: "\\oint",
|
|
2550
2604
|
mirror: true,
|
|
2551
2605
|
displayMirror: false,
|
|
2606
|
+
compileMirror: true,
|
|
2552
2607
|
Label: "\u222E",
|
|
2553
2608
|
title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u063A\u0644\u0642",
|
|
2554
2609
|
svg_path: null
|
|
@@ -2559,6 +2614,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2559
2614
|
Tex: "\\oiint",
|
|
2560
2615
|
mirror: true,
|
|
2561
2616
|
displayMirror: false,
|
|
2617
|
+
compileMirror: true,
|
|
2562
2618
|
Label: "\u222F",
|
|
2563
2619
|
title: "\u062A\u0643\u0627\u0645\u0644 \u0633\u0637\u062D\u064A \u0645\u063A\u0644\u0642",
|
|
2564
2620
|
svg_path: null
|
|
@@ -2569,6 +2625,7 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2569
2625
|
Tex: "\\oiiint",
|
|
2570
2626
|
mirror: true,
|
|
2571
2627
|
displayMirror: false,
|
|
2628
|
+
compileMirror: true,
|
|
2572
2629
|
Label: "\u2230",
|
|
2573
2630
|
title: "\u062A\u0643\u0627\u0645\u0644 \u062D\u062C\u0645\u064A \u0645\u063A\u0644\u0642",
|
|
2574
2631
|
svg_path: null
|
|
@@ -2578,8 +2635,9 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2578
2635
|
return command?.displayMirror ?? command?.mirror ?? false;
|
|
2579
2636
|
}
|
|
2580
2637
|
var MIRRORED_OPERATOR_TEX = Object.values(ATOMIC_OPERATOR_COMMANDS).filter((command) => command.mirror).map((command) => command.Tex).sort((a, b) => b.length - a.length);
|
|
2581
|
-
|
|
2582
|
-
|
|
2638
|
+
var COMPILE_MIRRORED_OPERATOR_TEX = Object.values(ATOMIC_OPERATOR_COMMANDS).filter((command) => "compileMirror" in command && command.compileMirror).map((command) => command.Tex).sort((a, b) => b.length - a.length);
|
|
2639
|
+
function matchingMirroredOperatorFrom(tex, index, operatorTexList) {
|
|
2640
|
+
for (const operatorTex of operatorTexList) {
|
|
2583
2641
|
if (!tex.startsWith(operatorTex, index)) {
|
|
2584
2642
|
continue;
|
|
2585
2643
|
}
|
|
@@ -2610,19 +2668,26 @@ mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
|
2610
2668
|
}
|
|
2611
2669
|
return -1;
|
|
2612
2670
|
}
|
|
2613
|
-
function mirrorBuTeXOperatorsInTex(tex) {
|
|
2671
|
+
function mirrorBuTeXOperatorsInTex(tex, options = {}) {
|
|
2672
|
+
const mirroredOperatorTex = options.target === "compile" ? COMPILE_MIRRORED_OPERATOR_TEX : MIRRORED_OPERATOR_TEX;
|
|
2614
2673
|
let result = "";
|
|
2615
2674
|
let index = 0;
|
|
2616
2675
|
while (index < tex.length) {
|
|
2617
2676
|
if (tex.startsWith("\\butexmirror{", index)) {
|
|
2618
2677
|
const end = findMatchingBrace(tex, index + "\\butexmirror".length);
|
|
2619
2678
|
if (end !== -1) {
|
|
2620
|
-
|
|
2679
|
+
const bodyStart = index + "\\butexmirror{".length;
|
|
2680
|
+
const body = tex.slice(bodyStart, end);
|
|
2681
|
+
if (options.target === "compile" && MIRRORED_OPERATOR_TEX.includes(body) && !mirroredOperatorTex.includes(body)) {
|
|
2682
|
+
result += body;
|
|
2683
|
+
} else {
|
|
2684
|
+
result += tex.slice(index, end + 1);
|
|
2685
|
+
}
|
|
2621
2686
|
index = end + 1;
|
|
2622
2687
|
continue;
|
|
2623
2688
|
}
|
|
2624
2689
|
}
|
|
2625
|
-
const operatorTex =
|
|
2690
|
+
const operatorTex = matchingMirroredOperatorFrom(tex, index, mirroredOperatorTex);
|
|
2626
2691
|
if (operatorTex) {
|
|
2627
2692
|
result += `\\butexmirror{${operatorTex}}`;
|
|
2628
2693
|
index += operatorTex.length;
|