├── .eslintrc.json
├── .gitignore
├── .vscode
├── extensions.json
├── launch.json
├── settings.json
└── tasks.json
├── .vscodeignore
├── .yarnrc
├── CHANGELOG.md
├── LICENSE
├── README.md
├── demo
└── demo.gif
├── package.json
├── resources
├── CascadiaCode.woff
├── CascadiaCode.woff2
├── LatoBbb.woff
├── LatoBbb.woff2
├── PunctCJK-Bold.woff
├── PunctCJK-Bold.woff2
├── PunctCJK-BoldItalic.woff
├── PunctCJK-BoldItalic.woff2
├── PunctCJK-Italic.woff
├── PunctCJK-Italic.woff2
├── PunctCJK.woff
├── PunctCJK.woff2
├── banana.css
├── favicon.ico
├── icon_dark.png
├── icon_light.png
├── katex
│ ├── fonts
│ │ ├── KaTeX_AMS-Regular.ttf
│ │ ├── KaTeX_AMS-Regular.woff
│ │ ├── KaTeX_AMS-Regular.woff2
│ │ ├── KaTeX_Caligraphic-Bold.ttf
│ │ ├── KaTeX_Caligraphic-Bold.woff
│ │ ├── KaTeX_Caligraphic-Bold.woff2
│ │ ├── KaTeX_Caligraphic-Regular.ttf
│ │ ├── KaTeX_Caligraphic-Regular.woff
│ │ ├── KaTeX_Caligraphic-Regular.woff2
│ │ ├── KaTeX_Fraktur-Bold.ttf
│ │ ├── KaTeX_Fraktur-Bold.woff
│ │ ├── KaTeX_Fraktur-Bold.woff2
│ │ ├── KaTeX_Fraktur-Regular.ttf
│ │ ├── KaTeX_Fraktur-Regular.woff
│ │ ├── KaTeX_Fraktur-Regular.woff2
│ │ ├── KaTeX_Main-Bold.ttf
│ │ ├── KaTeX_Main-Bold.woff
│ │ ├── KaTeX_Main-Bold.woff2
│ │ ├── KaTeX_Main-BoldItalic.ttf
│ │ ├── KaTeX_Main-BoldItalic.woff
│ │ ├── KaTeX_Main-BoldItalic.woff2
│ │ ├── KaTeX_Main-Italic.ttf
│ │ ├── KaTeX_Main-Italic.woff
│ │ ├── KaTeX_Main-Italic.woff2
│ │ ├── KaTeX_Main-Regular.ttf
│ │ ├── KaTeX_Main-Regular.woff
│ │ ├── KaTeX_Main-Regular.woff2
│ │ ├── KaTeX_Math-BoldItalic.ttf
│ │ ├── KaTeX_Math-BoldItalic.woff
│ │ ├── KaTeX_Math-BoldItalic.woff2
│ │ ├── KaTeX_Math-Italic.ttf
│ │ ├── KaTeX_Math-Italic.woff
│ │ ├── KaTeX_Math-Italic.woff2
│ │ ├── KaTeX_SansSerif-Bold.ttf
│ │ ├── KaTeX_SansSerif-Bold.woff
│ │ ├── KaTeX_SansSerif-Bold.woff2
│ │ ├── KaTeX_SansSerif-Italic.ttf
│ │ ├── KaTeX_SansSerif-Italic.woff
│ │ ├── KaTeX_SansSerif-Italic.woff2
│ │ ├── KaTeX_SansSerif-Regular.ttf
│ │ ├── KaTeX_SansSerif-Regular.woff
│ │ ├── KaTeX_SansSerif-Regular.woff2
│ │ ├── KaTeX_Script-Regular.ttf
│ │ ├── KaTeX_Script-Regular.woff
│ │ ├── KaTeX_Script-Regular.woff2
│ │ ├── KaTeX_Size1-Regular.ttf
│ │ ├── KaTeX_Size1-Regular.woff
│ │ ├── KaTeX_Size1-Regular.woff2
│ │ ├── KaTeX_Size2-Regular.ttf
│ │ ├── KaTeX_Size2-Regular.woff
│ │ ├── KaTeX_Size2-Regular.woff2
│ │ ├── KaTeX_Size3-Regular.ttf
│ │ ├── KaTeX_Size3-Regular.woff
│ │ ├── KaTeX_Size3-Regular.woff2
│ │ ├── KaTeX_Size4-Regular.ttf
│ │ ├── KaTeX_Size4-Regular.woff
│ │ ├── KaTeX_Size4-Regular.woff2
│ │ ├── KaTeX_Typewriter-Regular.ttf
│ │ ├── KaTeX_Typewriter-Regular.woff
│ │ └── KaTeX_Typewriter-Regular.woff2
│ └── katex.min.css
├── language
│ ├── btex.tmGrammar.json
│ └── language-configuration.json
├── logo.png
└── snippets.json
├── src
├── BtexServer.ts
├── PanelManager.ts
├── ServePrinting.ts
├── extension.ts
└── test
│ ├── runTest.ts
│ └── suite
│ ├── extension.test.ts
│ └── index.ts
└── tsconfig.json
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "parser": "@typescript-eslint/parser",
4 | "parserOptions": {
5 | "ecmaVersion": 6,
6 | "sourceType": "module"
7 | },
8 | "plugins": [
9 | "@typescript-eslint"
10 | ],
11 | "rules": {
12 | "@typescript-eslint/naming-convention": "warn",
13 | "@typescript-eslint/semi": "warn",
14 | "curly": "warn",
15 | "eqeqeq": "warn",
16 | "no-throw-literal": "warn",
17 | "semi": "off"
18 | },
19 | "ignorePatterns": [
20 | "out",
21 | "dist",
22 | "**/*.d.ts"
23 | ]
24 | }
25 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | dist
3 | node_modules
4 | .vscode-test/
5 | *.vsix
6 | yarn.lock
7 | .DS_Store
8 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See http://go.microsoft.com/fwlink/?LinkId=827846
3 | // for the documentation about the extensions.json format
4 | "recommendations": [
5 | "dbaeumer.vscode-eslint"
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that compiles the extension and then opens it inside a new window
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | {
6 | "version": "0.2.0",
7 | "configurations": [
8 | {
9 | "name": "Run Extension",
10 | "type": "extensionHost",
11 | "request": "launch",
12 | "args": [
13 | "--extensionDevelopmentPath=${workspaceFolder}"
14 | ],
15 | "outFiles": [
16 | "${workspaceFolder}/out/**/*.js"
17 | ],
18 | "preLaunchTask": "${defaultBuildTask}"
19 | },
20 | {
21 | "name": "Extension Tests",
22 | "type": "extensionHost",
23 | "request": "launch",
24 | "args": [
25 | "--extensionDevelopmentPath=${workspaceFolder}",
26 | "--extensionTestsPath=${workspaceFolder}/out/test/suite/index"
27 | ],
28 | "outFiles": [
29 | "${workspaceFolder}/out/test/**/*.js"
30 | ],
31 | "preLaunchTask": "${defaultBuildTask}"
32 | }
33 | ]
34 | }
35 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "files.exclude": {
4 | "out": false // set this to true to hide the "out" folder with the compiled JS files
5 | },
6 | "search.exclude": {
7 | "out": true // set this to false to include "out" folder in search results
8 | },
9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
10 | "typescript.tsc.autoDetect": "off"
11 | }
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | // See https://go.microsoft.com/fwlink/?LinkId=733558
2 | // for the documentation about the tasks.json format
3 | {
4 | "version": "2.0.0",
5 | "tasks": [
6 | {
7 | "type": "npm",
8 | "script": "watch",
9 | "problemMatcher": "$tsc-watch",
10 | "isBackground": true,
11 | "presentation": {
12 | "reveal": "never"
13 | },
14 | "group": {
15 | "kind": "build",
16 | "isDefault": true
17 | }
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .vscode-test/**
3 | src/**
4 | .gitignore
5 | .yarnrc
6 | vsc-extension-quickstart.md
7 | **/tsconfig.json
8 | **/.eslintrc.json
9 | **/*.map
10 | **/*.ts
11 | demo/**
12 |
--------------------------------------------------------------------------------
/.yarnrc:
--------------------------------------------------------------------------------
1 | --ignore-engines true
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | ## 0.3.16
4 |
5 | - Bump btex version.
6 | - Implement `\includegraphics`
7 |
8 | ## 0.3.15
9 |
10 | - Upstream problems.
11 |
12 | ## 0.3.13-14
13 |
14 | - Fixed the problem where $\vec A$ doesn't show.
15 |
16 | ## 0.3.8-12
17 |
18 | - Upstream problems.
19 |
20 | ## 0.3.7
21 |
22 | - Tweaked CSS, prevented page break in TikZ diagrams.
23 |
24 | ## 0.3.6
25 |
26 | - Accidentally skipped a version
27 | - Hopefully the color inverting function is functioning logically now.
28 | - Tweaked some CSS. Too much configurable elements seems to make the code messy.
29 |
30 | ## 0.3.3-4
31 |
32 | - Miscellaneous improvements.
33 |
34 | ## 0.3.2
35 |
36 | - Fixed a bug that after switching to another text editor and back, inverse search stops working.
37 | - Displays `displayTitle`.
38 |
39 | ## 0.3.1
40 |
41 | - Formulas may return multiple lines when inverse searching.
42 |
43 | ## 0.3.0
44 |
45 | - Added inverse search.
46 | - HTML titles are reflected.
47 |
48 | ## 0.2.4
49 |
50 | - Reverted the overflow fix. It's not going to be solved soon.
51 |
52 | ## 0.2.3
53 |
54 | - Math formulae now overflows vertically. This may be problematic for some cases, but I don't see that yet.
55 |
56 | ## 0.2.2
57 |
58 | - Fixed #13 and #14.
59 | - Added styling for tables.
60 |
61 | ## 0.2.1
62 |
63 | - Added buttons for better UX.
64 |
65 | ## 0.2.0
66 |
67 | - You can now export to PDF or print directly.
68 | - Added simple snippets.
69 |
70 | ## 0.1.2
71 |
72 | - Attempt to fix the bug where `tikz2svg` processes may be orphaned.
73 |
74 | ## 0.1.1
75 |
76 | - `btex` is now lazy loaded, dramatically decreasing load time.
77 | - Added GIF demo.
78 |
79 | ## 0.1.0
80 |
81 | - Added icons.
82 |
83 | ## 0.0.x
84 |
85 | - Initial release.
86 | - Miscellanous improvements and bug fixes.
87 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2022 Trebor Huang
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vscode-btex
2 |
3 | VSCode integration for [bTeX](https://github.com/banana-space/btex).
4 |
5 | 
6 |
7 | - Use the "Compile and preview bTeX" button in the editor navigation bar to start. The rendered content will update on save.
8 | - Double click in the preview tab to jump to the corresponding line in the source code.
9 | - The "Export bTeX to PDF/printer" button
10 | will open a browser with a printing dialog. After you choose a suitable
11 | configuration, you can either print or export to PDF.
12 |
13 | ## Features
14 |
15 | - [X] Syntax highlights. (Needs more testing)
16 | - [X] Inverse search.
17 | - [X] Compiles the bTeX file and show the preview on save.
18 | - [X] Exports the result to PDF or printer.
19 | - [X] Use `\includegraphics{relative path}` to include graphics in the workspace folder. Weblinks and base64-encoded URIs are also accepted.
20 |
21 | ## Requirements
22 |
23 | - Install optionally [tikz2svg](https://github.com/banana-space/tikz2svg). This is used to render TikZ images.
24 |
25 | ## Extension Settings
26 |
27 | - `btex.command` and `btex.directory`: Used to specify the location of tikz2svg. You can leave blank to not let the plugin start up tikz2svg for you.
28 | - `btex.invertAll`: Color settings for formulas, see settings description. It is only relevant in dark themes.
29 |
30 | ## Known Issues
31 |
32 | - If there is an error "tikz2svg server exited with code 1 and signal null", it is most probably because there is another program (possibly another tikz2svg server) running, using the port 9292.
33 | - If you can still render tikz pictures, and you are sure you didn't start a tikz2svg server yourself, then this is because vscode failed to shut down the tikz2svg server last time. You can use the extension normally, and manually kill the tikz2svg server when you don't need it.
34 | - If you cannot render tikz pictures, check out which process is using the 9292 port, either terminate it or convince it to use another port instead.
35 | - Wiki templates do not work, because they are stored on wiki servers. I'm not going to implement local wiki templates either. Similarly wiki-style links will show up as blue but don't link anywhere. This means that images (which currently uses MediaWiki syntax) doesn't work. I might try to implement that, or I can get some separate image mechanics in.
36 | - Collapsible proofs do not work (yet) because it requires more javascript machinery.
37 | - `\includegraphics` doesn't work in formulas.
38 | - Inverse search doesn't work with graphics. A workaround is to click on elements close to them, e.g. captions.
39 |
40 | ## Release Notes
41 |
--------------------------------------------------------------------------------
/demo/demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/demo/demo.gif
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vscode-btex",
3 | "displayName": "vscode-btex",
4 | "description": "btex plugin for VSCode",
5 | "repository": "github:Trebor-Huang/vscode-btex",
6 | "publisher": "TreborHuang",
7 | "version": "0.3.15",
8 | "license": "MIT",
9 | "engines": {
10 | "vscode": "^1.68.0"
11 | },
12 | "categories": [
13 | "Snippets",
14 | "Programming Languages"
15 | ],
16 | "activationEvents": [],
17 | "main": "./out/extension.js",
18 | "contributes": {
19 | "commands": [
20 | {
21 | "command": "vscode-btex.compile",
22 | "title": "Compile and preview bTeX",
23 | "shortTitle": "Preview",
24 | "icon": "$(open-preview)"
25 | },
26 | {
27 | "command": "vscode-btex.export",
28 | "title": "Export bTeX to PDF/printer",
29 | "shortTitle": "Export",
30 | "icon": "$(rocket)"
31 | },
32 | {
33 | "command": "vscode-btex.restart",
34 | "title": "Restart tikz2svg server"
35 | }
36 | ],
37 | "menus": {
38 | "editor/title": [
39 | {
40 | "command": "vscode-btex.compile",
41 | "group": "navigation",
42 | "when": "editorLangId == btex"
43 | },
44 | {
45 | "command": "vscode-btex.export",
46 | "group": "navigation",
47 | "when": "editorLangId == btex"
48 | }
49 | ]
50 | },
51 | "languages": [
52 | {
53 | "id": "btex",
54 | "extensions": [
55 | ".btx",
56 | ".btex"
57 | ],
58 | "aliases": [
59 | "bTeX",
60 | "btex"
61 | ],
62 | "configuration": "./resources/language/language-configuration.json",
63 | "icon": {
64 | "dark": "./resources/icon_dark.png",
65 | "light": "./resources/icon_light.png"
66 | }
67 | }
68 | ],
69 | "grammars": [
70 | {
71 | "language": "btex",
72 | "scopeName": "source.btex",
73 | "path": "./resources/language/btex.tmGrammar.json",
74 | "embeddedLanguages": {
75 | "embedded.latex": "latex"
76 | }
77 | }
78 | ],
79 | "snippets": [
80 | {
81 | "language": "btex",
82 | "path": "./resources/snippets.json"
83 | }
84 | ],
85 | "configuration": {
86 | "title": "Btex",
87 | "properties": {
88 | "btex.command": {
89 | "type": "string",
90 | "default": "",
91 | "description": "Command to start up tikz2svg server.\nIt usually should be `yarn start` or `yarn.cmd start` (on Windows).\nLeave empty to skip automatically starting up the server, you can still start the server manually."
92 | },
93 | "btex.directory": {
94 | "type": "string",
95 | "default": "",
96 | "description": "Directory of tikz2svg server.\nThis is working directory where the command to start up the server will be run."
97 | },
98 | "btex.invertAll": {
99 | "type": "boolean",
100 | "default": false,
101 | "description": "Whether to invert colors of math formulas in dark themes, including ordinary ones.\nIf set to false, only tikz diagrams (generated by tikz2svg) will be color inverted.\nThis makes colors consistent, but the theme color for foreground text will be ignored.\nClose the preview panel(s) and recompile to take effect."
102 | }
103 | }
104 | }
105 | },
106 | "icon": "resources/logo.png",
107 | "scripts": {
108 | "vscode:prepublish": "yarn compile",
109 | "compile": "tsc -p ./",
110 | "watch": "tsc --watch -p ./",
111 | "pretest": "yarn run compile && yarn run lint",
112 | "lint": "eslint src --ext ts",
113 | "test": "node ./out/test/runTest.js",
114 | "test-compile": "tsc -p ./"
115 | },
116 | "devDependencies": {
117 | "@types/glob": "^8.0.0",
118 | "@types/katex": "^0.14.0",
119 | "@types/mocha": "^9.1.1",
120 | "@types/node": "16.x",
121 | "@types/vscode": "^1.68.0",
122 | "@types/yargs": "^17.0.15",
123 | "@typescript-eslint/eslint-plugin": "^5.27.0",
124 | "@typescript-eslint/parser": "^5.27.0",
125 | "@vscode/test-electron": "^2.1.3",
126 | "eslint": "^8.16.0",
127 | "glob": "^8.0.3",
128 | "mocha": "^10.0.0",
129 | "typescript": "^4.7.2"
130 | },
131 | "dependencies": {
132 | "btex": "github:banana-space/btex#7bcbc97b98d2cdbc21aa375295bfc2450c73cc1c"
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/resources/CascadiaCode.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/CascadiaCode.woff
--------------------------------------------------------------------------------
/resources/CascadiaCode.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/CascadiaCode.woff2
--------------------------------------------------------------------------------
/resources/LatoBbb.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/LatoBbb.woff
--------------------------------------------------------------------------------
/resources/LatoBbb.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/LatoBbb.woff2
--------------------------------------------------------------------------------
/resources/PunctCJK-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/PunctCJK-Bold.woff
--------------------------------------------------------------------------------
/resources/PunctCJK-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/PunctCJK-Bold.woff2
--------------------------------------------------------------------------------
/resources/PunctCJK-BoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/PunctCJK-BoldItalic.woff
--------------------------------------------------------------------------------
/resources/PunctCJK-BoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/PunctCJK-BoldItalic.woff2
--------------------------------------------------------------------------------
/resources/PunctCJK-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/PunctCJK-Italic.woff
--------------------------------------------------------------------------------
/resources/PunctCJK-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/PunctCJK-Italic.woff2
--------------------------------------------------------------------------------
/resources/PunctCJK.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/PunctCJK.woff
--------------------------------------------------------------------------------
/resources/PunctCJK.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/PunctCJK.woff2
--------------------------------------------------------------------------------
/resources/banana.css:
--------------------------------------------------------------------------------
1 | html {
2 | margin: 0;
3 | padding: 0 0 20px;
4 | --main-latin-font: 'CMU Serif'
5 | }
6 |
7 | body {
8 | margin: 0;
9 | font-family: var(--main-latin-font, 'Noto Sans'), Roboto, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Oxygen', 'Ubuntu', 'Cantarell', 'Helvetica Neue', 'Microsoft YaHei UI', 'Microsoft YaHei', 'Noto Sans CJK SC', 'Source Han Sans CN', sans-serif;
10 | background-color: var(--vscode-editor-background, #fff)
11 | }
12 |
13 | a {
14 | color: #1088c8
15 | }
16 |
17 | a:visited {
18 | color: #1088c8
19 | }
20 |
21 | .b-page-body {
22 | max-width: 1000px;
23 | margin: 0 auto 0 auto;
24 | padding: 0px 30px 30px 30px;
25 | font-size: 18px;
26 | font-family: PunctCJK, 'Noto Sans', Roboto, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Oxygen', 'Ubuntu', 'Cantarell', 'Helvetica Neue', 'Microsoft YaHei UI', 'Microsoft YaHei', 'Noto Sans CJK SC', 'Source Han Sans CN', sans-serif;
27 | letter-spacing: .015em
28 | }
29 |
30 | .b-page-body:not(:lang(zh)) {
31 | font-family: var(--main-latin-font, 'Noto Sans'), Roboto, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Oxygen', 'Ubuntu', 'Cantarell', 'Helvetica Neue', 'Microsoft YaHei UI', 'Microsoft YaHei', 'Noto Sans CJK SC', 'Source Han Sans CN', sans-serif;
32 | letter-spacing: normal
33 | }
34 |
35 | main {
36 | line-height: 1.8
37 | }
38 |
39 | .tright {
40 | float: right;
41 | clear: both
42 | }
43 |
44 | .tleft {
45 | float: right;
46 | clear: both
47 | }
48 |
49 | .invisible {
50 | display: none !important
51 | }
52 |
53 | .b-page-body a[href],
54 | .b-page-body btex-link {
55 | color: var(--vscode-textLink-foreground, #1088c8);
56 | text-decoration: none
57 | }
58 |
59 | .b-page-body a[href]:hover,
60 | .b-page-body a[href]:focus {
61 | color: var(--vscode-textLink-activeForeground, #1088c8);
62 | text-decoration: none;
63 | outline: none
64 | }
65 |
66 | .b-page-body a[href].external {
67 | color: var(--vscode-textLink-foreground, #1088c8);
68 | }
69 |
70 | .b-page-body a[href]:visited,
71 | .b-page-body a[href].external:visited {
72 | color: var(--vscode-textLink-foreground, #1088c8);
73 | }
74 |
75 | .b-page-body btex-link:hover,
76 | .b-page-body btex-link:focus,
77 | .b-page-body .btex-output a[href]:not(.image) {
78 | line-height: 1.2;
79 | border-bottom: 2px solid transparent;
80 | margin-bottom: -2px;
81 | border-bottom-color: transparent
82 | }
83 |
84 | .b-page-body btex-link:hover,
85 | .b-page-body btex-link:focus,
86 | .b-page-body .btex-output a[href]:not(.image):hover,
87 | .b-page-body .btex-output a[href]:not(.image):focus {
88 | border-bottom-color: var(--vscode-selection-background, #1088c850);
89 | }
90 |
91 | .b-page-body h2 {
92 | border: 0;
93 | padding: 10px 0;
94 | margin: 1.2em 0 .5em 0;
95 | font-size: 1.8em
96 | }
97 |
98 | .b-page-body h2 span.header-number {
99 | margin-right: .75em;
100 | font-weight: bold;
101 | padding: 4px 6px;
102 | border-bottom: 4px solid var(--vscode-focusBorder, #ffd000);
103 | }
104 |
105 | .b-page-body h3:not(#p-cactions-label) {
106 | font-size: 1.4em;
107 | padding: 0;
108 | margin-top: 1.2em;
109 | margin-bottom: .6em;
110 | font-weight: bold
111 | }
112 |
113 | .b-page-body h3:not(#p-cactions-label) span.header-number {
114 | margin-right: 1em
115 | }
116 |
117 | .b-page-body h4 {
118 | font-size: 1.2em;
119 | padding: 0;
120 | margin-top: 1em;
121 | margin-bottom: .6em
122 | }
123 |
124 | .b-page-body h4 span.header-number {
125 | margin-right: 1em
126 | }
127 |
128 | /* TODO Table of contents */
129 | .b-page-body .toc {
130 | min-width: 10em;
131 | border: 0;
132 | padding: .7em 1.2em;
133 | line-height: 1.6
134 | }
135 |
136 | .b-page-body .toc:not(.ready) {
137 | display: none
138 | }
139 |
140 | .b-page-body .toc .toctitle {
141 | text-align: justify;
142 | font-size: 1.6em;
143 | margin-bottom: .8em
144 | }
145 |
146 | .b-page-body .toc ul li.toclevel-2 {
147 | padding-left: 1.5em
148 | }
149 |
150 | .b-page-body .toc ul li.toclevel-3 {
151 | padding-left: 3em
152 | }
153 |
154 | .b-page-body h1,
155 | .b-page-body h2,
156 | .b-page-body h3:not(#p-cactions-label),
157 | .b-page-body h4 {
158 | line-height: 1.4
159 | }
160 |
161 | .b-page-body code,
162 | .b-page-body pre {
163 | font-family: var(--vscode-editor-font-family, 'Cascadia Code', 'Consolas', 'Microsoft YaHei UI', 'Microsoft YaHei', 'Noto Sans CJK SC', 'Source Han Sans CN', sans-serif);
164 | border: none;
165 | background-color: var(--vscode-textCodeBlock-background, #f4f6f8);
166 | line-height: 1.4;
167 | color: var(--vscode-editor-foreground, #666);
168 | font-size: 90%
169 | }
170 |
171 | .b-page-body code {
172 | margin: 0 3px;
173 | white-space: pre-wrap
174 | }
175 |
176 | .b-page-body pre {
177 | margin: 0;
178 | padding: .5em 1em;
179 | white-space: pre;
180 | overflow-x: auto
181 | }
182 |
183 | .b-page-body .identifier {
184 | font-family: var(--vscode-editor-font-family, 'Cascadia Code','Consolas','Microsoft YaHei UI','Microsoft YaHei','Noto Sans CJK SC','Source Han Sans CN',sans-serif);
185 | font-size: 90%
186 | }
187 |
188 | .b-page-body .code-btex {
189 | font-variant-ligatures: none
190 | }
191 |
192 | .b-page-body .code-btex .btex-function {
193 | color: #f87000
194 | }
195 |
196 | .b-page-body .code-btex .btex-argument {
197 | color: #30a0e0
198 | }
199 |
200 | .b-page-body .code-btex .btex-string {
201 | color: #70a000
202 | }
203 |
204 | .b-page-body .code-btex .btex-comment {
205 | color: #b0b0b0
206 | }
207 |
208 | .b-page-body img {
209 | max-width: 100%;
210 | height: auto
211 | }
212 |
213 | .b-page-body a.image {
214 | display: inline-block;
215 | max-width: 100%
216 | }
217 |
218 | .b-page-body table.list span.display-math {
219 | display: grid;
220 | grid-template-columns: max-content auto max-content
221 | }
222 |
223 | .b-page-body table.list span.display-math span.katex-display,
224 | .b-page-body table.list span.display-math svg {
225 | grid-column: 2
226 | }
227 |
228 | .b-page-body table.list span.display-math span.equation-tag-left {
229 | grid-column: 1
230 | }
231 |
232 | .b-page-body table.list span.display-math span.equation-tag-right {
233 | grid-column: 3
234 | }
235 |
236 | .b-page-body span.display-math svg {
237 | margin: 0 auto;
238 | max-width: 100%
239 | }
240 |
241 | .b-page-body span.display-math .overlay > svg {
242 | max-width: none;
243 | }
244 |
245 | .b-page-body .warningbox {
246 | margin: 0 0 16px 0;
247 | border: 0;
248 | padding: 1em
249 | }
250 |
251 | .b-page-body textarea#wpTextbox1:not(.b-unhide) {
252 | opacity: 0
253 | }
254 |
255 | .b-page-body .btex-monaco-container {
256 | height: 600px;
257 | margin: 0 -30px
258 | }
259 |
260 | .b-page-body .error {
261 | font-size: 100%
262 | }
263 |
264 | .b-page-body .mw-editTools,
265 | .b-page-body .templatesUsed,
266 | .b-page-body .hiddencats,
267 | .b-page-body .limitreport {
268 | display: none
269 | }
270 |
271 | .b-page-body td.mw-enhanced-rc {
272 | font-family: var(--vscode-editor-font-family, 'Cascadia Code','Consolas','Microsoft YaHei UI','Microsoft YaHei','Noto Sans CJK SC','Source Han Sans CN',sans-serif);
273 | }
274 |
275 | div[lang]:lang(zh) .katex {
276 | font-size: 1.1em !important;
277 | letter-spacing: normal
278 | }
279 |
280 | div[lang]:not(:lang(zh)) .katex {
281 | font-size: 1em !important;
282 | letter-spacing: normal
283 | }
284 |
285 | .katex .cjk_fallback:not(.sizing):not(.fontsize-ensurer) {
286 | font-size: 90.91%
287 | }
288 |
289 | .b-page-body .katex {
290 | font-family: KaTeX_Main, var(--main-latin-font, 'Noto Sans'), Roboto, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Oxygen', 'Ubuntu', 'Cantarell', 'Helvetica Neue', 'Microsoft YaHei UI', 'Microsoft YaHei', 'Noto Sans CJK SC', 'Source Han Sans CN', sans-serif
291 | }
292 |
293 | .b-page-body .katex .mathbb,
294 | .b-page-body .katex .textbb {
295 | font-family: Lato_Bbb, KaTeX_AMS
296 | }
297 |
298 | .btex-output {
299 | text-align: justify;
300 | hyphens: auto
301 | }
302 |
303 | .btex-output p,
304 | .btex-output .p,
305 | .btex-output table.list {
306 | margin: 0 0 1em 0
307 | }
308 |
309 | .btex-output .block,
310 | .btex-output tr.list-item,
311 | .btex-output h2,
312 | .btex-output h3,
313 | .btex-output h4 {
314 | transition: outline-color 600ms ease;
315 | outline-color: transparent;
316 | outline-offset: 5px
317 | }
318 |
319 | .btex-output .block {
320 | padding: .8em 1.2em;
321 | margin: 0 0 1em 0;
322 | background-color: var(--vscode-textBlockQuote-background, #f4f6f8);
323 | border-color: var(--vscode-textBlockQuote-border, #c0c4c8);
324 | border-left: 3px solid
325 | }
326 |
327 | .btex-output span.katex-display {
328 | margin: 0
329 | }
330 |
331 | .btex-output span.display-math {
332 | margin: 1em 0
333 | }
334 |
335 | .btex-output p:last-child,
336 | .btex-output .p:last-child,
337 | .btex-output table.list:last-child {
338 | margin-bottom: 0
339 | }
340 |
341 | .btex-output div.floatright {
342 | float: right;
343 | margin: 0
344 | }
345 |
346 | .btex-output table.list.footnotes {
347 | font-size: 75%
348 | }
349 |
350 | .btex-output p+table.list.list-no-sep-above {
351 | margin-top: -1em
352 | }
353 |
354 | .btex-output table.list {
355 | width: 100%;
356 | border-collapse: collapse
357 | }
358 |
359 | .btex-output table.list tr.list-item:not(:last-child)>td {
360 | padding-bottom: 1em
361 | }
362 |
363 | .btex-output table.list tr.list-item.list-item-no-sep>td {
364 | padding-bottom: 0
365 | }
366 |
367 | .btex-output table.list td {
368 | vertical-align: baseline
369 | }
370 |
371 | .btex-output table.list td.list-item-label {
372 | width: 1.5em;
373 | max-width: 16em;
374 | overflow-x: clip;
375 | white-space: nowrap;
376 | text-align: right;
377 | padding-right: 0.75em;
378 | user-select: none;
379 | -webkit-user-select: none
380 | }
381 |
382 | .btex-output table.list.subpage-list tr.list-item:not(:last-child)>td {
383 | padding-bottom: 0
384 | }
385 |
386 | .btex-output table.list.subpage-list td.list-item-label {
387 | display: none
388 | }
389 |
390 | .btex-output table.list.subpage-list tr.list-item-indent-1>td:last-child {
391 | padding-left: 1.5em
392 | }
393 |
394 | .btex-output table.list.subpage-list tr.list-item-indent-2>td:last-child {
395 | padding-left: 3em
396 | }
397 |
398 | .btex-output table.list.subpage-list tr.list-item-indent-3>td:last-child {
399 | padding-left: 4.5em
400 | }
401 |
402 | .btex-output .table-wrapper {
403 | display: inline-block;
404 | max-width: 100%;
405 | overflow-x: auto
406 | }
407 |
408 | .btex-output span.display-math {
409 | display: flex;
410 | flex-direction: row;
411 | align-items: baseline;
412 | justify-content: stretch
413 | }
414 |
415 | .btex-output span.display-math.tikz-in-math {
416 | align-items: center
417 | }
418 |
419 | .btex-output span.display-math span.katex-display {
420 | flex-grow: 1;
421 | overflow-x: auto;
422 | overflow-y: hidden
423 | }
424 |
425 | .btex-output span.display-math span.equation-tag-left,
426 | .btex-output span.display-math span.equation-tag-right {
427 | flex-shrink: 0;
428 | flex-grow: 0
429 | }
430 |
431 | .btex-output span.undefined-reference {
432 | font-weight: bold;
433 | color: #ff3000
434 | }
435 |
436 | /* TODO theorem styles here */
437 |
438 | .btex-output .block.style-a {
439 | background: var(--vscode-textBlockQuote-background, #f4fcff);
440 | border-color: #a0e0ff
441 | }
442 |
443 | .btex-output .block.style-a span.item-header {
444 | color: #1088c8
445 | }
446 |
447 | .btex-output .block.style-a a span.item-header {
448 | color: #1088c8
449 | }
450 |
451 | .btex-output .block.style-a a.new span.item-header {
452 | color: #80b700
453 | }
454 |
455 | .btex-output .block.style-b {
456 | background: var(--vscode-textBlockQuote-background, #fffdf0);
457 | border-color: #ffd880
458 | }
459 |
460 | .btex-output .block.style-b span.item-header {
461 | color: #dc6700
462 | }
463 |
464 | .btex-output .block.style-b a span.item-header {
465 | color: #1088c8
466 | }
467 |
468 | .btex-output .block.style-b a.new span.item-header {
469 | color: #80b700
470 | }
471 |
472 | .btex-output .block.style-c {
473 | background: var(--vscode-textBlockQuote-background, #f2faf2);
474 | border-color: #a0e0a0
475 | }
476 |
477 | .btex-output .block.style-c span.item-header {
478 | color: #209020
479 | }
480 |
481 | .btex-output .block.style-c a span.item-header {
482 | color: #1088c8
483 | }
484 |
485 | .btex-output .block.style-c a.new span.item-header {
486 | color: #80b700
487 | }
488 |
489 | .btex-output .block.quotation {
490 | background: var(--vscode-textBlockQuote-background, #c0c4c8);
491 | border-color: var(--vscode-textBlockQuote-border, #606468);
492 | }
493 |
494 | .btex-output .proof,
495 | .btex-output .proof-collapsible {
496 | margin: 0 0 1em 0;
497 | overflow: hidden
498 | }
499 |
500 | .btex-output .proof-collapsible .proof-expander {
501 | position: absolute;
502 | cursor: pointer;
503 | margin-left: -20px
504 | }
505 |
506 | .btex-output .proof-collapsible .proof-expander.proof-expander-ellipsis {
507 | position: relative;
508 | top: -.1em;
509 | display: inline-flex;
510 | overflow-y: hidden;
511 | align-items: center;
512 | margin: 0 .5em;
513 | padding: 0 .6em;
514 | background-color: #f0f2f6;
515 | color: #a2a9b1;
516 | border-radius: .6em;
517 | height: 1em;
518 | user-select: none;
519 | -webkit-user-select: none
520 | }
521 |
522 | /* ! Note that collapsed/expanded is reversed temporarily */
523 | .btex-output .proof-collapsible.proof-collapsible-expanded>.proof-content,
524 | .btex-output .proof-collapsible.proof-collapsible-expanded>.proof-expander-collapsing {
525 | display: none
526 | }
527 |
528 | .btex-output .proof-collapsible.proof-collapsible-collapsed>.proof-header,
529 | .btex-output .proof-collapsible.proof-collapsible-collapsed>.proof-expander-expanding {
530 | display: none
531 | }
532 |
533 | span.btex-diagram {
534 | display: inline-block
535 | }
536 |
537 | @media not print {
538 | #render-content span.btex-diagram >svg.overlay,
539 | #render-content span.tikz-in-math >svg {
540 | filter: invert(1);
541 | mix-blend-mode: difference;
542 | }
543 |
544 | #render-content[invert-all] .katex {
545 | color: #000;
546 | filter: invert(1);
547 | mix-blend-mode: difference
548 | }
549 | }
550 |
551 | span.btex-diagram span.cell,
552 | span.btex-diagram span.label {
553 | display: flex;
554 | position: relative;
555 | width: 0;
556 | height: 0;
557 | align-items: center;
558 | justify-content: center
559 | }
560 |
561 | span.btex-diagram .katex {
562 | font-size: 1em !important
563 | }
564 |
565 | span.btex-diagram .katex span.rlap {
566 | user-select: none
567 | }
568 |
569 | .wikitable {
570 | background-color: var(--vscode-editor-background, #f8f9fa);
571 | color: var(--vscode-foreground, #202122);
572 | margin: 1em 0;
573 | border: 1px solid var(--vscode-tree-tableColumnsBorder, #a2a9b1);
574 | border-collapse: collapse
575 | }
576 |
577 | .wikitable > tr > th,.wikitable > tr > td,.wikitable > * > tr > th,.wikitable > * > tr > td {
578 | border: 1px solid var(--vscode-tree-tableColumnsBorder, #a2a9b1);
579 | padding: 0.2em 0.4em
580 | }
581 |
582 | .wikitable > tr > th,.wikitable > * > tr > th {
583 | background-color: var(--vscode-list-inactiveSelectionBackground, #eaecf0);
584 | text-align: center
585 | }
586 |
587 | .wikitable > caption {
588 | font-weight: bold
589 | }
590 |
591 | /* Update when https://github.com/banana-space/banana-space/issues/7 is resolved */
592 | @media print {
593 | .b-nav-wrapper,#siteNotice,.content__before-header,.content__namespaces-actions,footer {
594 | display: none
595 | }
596 |
597 | .b-page-body {
598 | box-shadow: none;
599 | padding: 0;
600 | font-size: 12px;
601 | width: calc(100% - 120px);
602 | padding: 0px 60px 60px 60px;
603 | }
604 |
605 | .tikz-in-math {
606 | page-break-inside: avoid;
607 | }
608 |
609 | h1,h2,h3,h4 {
610 | font-weight: normal
611 | }
612 |
613 | .nomobile {
614 | display: none
615 | }
616 |
617 | /* .btex-output span.display-math span.katex-display {
618 | overflow-x: visible;
619 | } */
620 | }
621 |
--------------------------------------------------------------------------------
/resources/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/favicon.ico
--------------------------------------------------------------------------------
/resources/icon_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/icon_dark.png
--------------------------------------------------------------------------------
/resources/icon_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/icon_light.png
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_AMS-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_AMS-Regular.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_AMS-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_AMS-Regular.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_AMS-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_AMS-Regular.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Caligraphic-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Caligraphic-Bold.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Caligraphic-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Caligraphic-Bold.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Caligraphic-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Caligraphic-Bold.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Caligraphic-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Caligraphic-Regular.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Caligraphic-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Caligraphic-Regular.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Caligraphic-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Caligraphic-Regular.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Fraktur-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Fraktur-Bold.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Fraktur-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Fraktur-Bold.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Fraktur-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Fraktur-Bold.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Fraktur-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Fraktur-Regular.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Fraktur-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Fraktur-Regular.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Fraktur-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Fraktur-Regular.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Main-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Main-Bold.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Main-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Main-Bold.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Main-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Main-Bold.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Main-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Main-BoldItalic.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Main-BoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Main-BoldItalic.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Main-BoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Main-BoldItalic.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Main-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Main-Italic.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Main-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Main-Italic.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Main-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Main-Italic.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Main-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Main-Regular.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Main-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Main-Regular.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Main-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Main-Regular.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Math-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Math-BoldItalic.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Math-BoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Math-BoldItalic.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Math-BoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Math-BoldItalic.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Math-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Math-Italic.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Math-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Math-Italic.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Math-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Math-Italic.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_SansSerif-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_SansSerif-Bold.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_SansSerif-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_SansSerif-Bold.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_SansSerif-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_SansSerif-Bold.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_SansSerif-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_SansSerif-Italic.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_SansSerif-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_SansSerif-Italic.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_SansSerif-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_SansSerif-Italic.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_SansSerif-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_SansSerif-Regular.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_SansSerif-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_SansSerif-Regular.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_SansSerif-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_SansSerif-Regular.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Script-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Script-Regular.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Script-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Script-Regular.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Script-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Script-Regular.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Size1-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Size1-Regular.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Size1-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Size1-Regular.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Size1-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Size1-Regular.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Size2-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Size2-Regular.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Size2-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Size2-Regular.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Size2-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Size2-Regular.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Size3-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Size3-Regular.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Size3-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Size3-Regular.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Size3-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Size3-Regular.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Size4-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Size4-Regular.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Size4-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Size4-Regular.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Size4-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Size4-Regular.woff2
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Typewriter-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Typewriter-Regular.ttf
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Typewriter-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Typewriter-Regular.woff
--------------------------------------------------------------------------------
/resources/katex/fonts/KaTeX_Typewriter-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/katex/fonts/KaTeX_Typewriter-Regular.woff2
--------------------------------------------------------------------------------
/resources/katex/katex.min.css:
--------------------------------------------------------------------------------
1 | @font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.15.6"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}
2 |
--------------------------------------------------------------------------------
/resources/language/btex.tmGrammar.json:
--------------------------------------------------------------------------------
1 | {
2 | "comment": "@popall?",
3 | "scopeName": "source.btex",
4 | "patterns": [
5 | { "include": "#inlink" },
6 | { "include": "#common" }
7 | ],
8 | "repository": {
9 | "inlink": {
10 | "contentName": "markup.underline.link",
11 | "begin": "\\[\\[",
12 | "end": "\\||\\]\\]",
13 | "beginCaptures": {
14 | "0": { "name": "delimiter" }
15 | },
16 | "endCaptures": {
17 | "0": { "name": "delimiter" }
18 | },
19 | "patterns": [
20 | { "include": "#inlink.group" },
21 | { "include": "#common" }
22 | ]
23 | },
24 | "common": {
25 | "name": "embedded.latex",
26 | "patterns": [
27 | { "include": "text.tex.latex" }
28 | ]
29 | },
30 |
31 | "inlink.group": {
32 | "begin": "\\{",
33 | "end": "\\}",
34 | "beginCaptures": {
35 | "0": { "name": "delimiter.curly" }
36 | },
37 | "endCaptures": {
38 | "0": { "name": "delimiter.curly" }
39 | },
40 | "patterns": [
41 | { "include": "#inlink.group" }
42 | ]
43 | }
44 | }
45 | }
--------------------------------------------------------------------------------
/resources/language/language-configuration.json:
--------------------------------------------------------------------------------
1 | {
2 | "comments": {
3 | "lineComment": "%"
4 | },
5 | "brackets": [],
6 | "autoClosingPairs": [
7 | {
8 | "open": "{",
9 | "close": "}"
10 | },
11 | {
12 | "open": "[",
13 | "close": "]"
14 | },
15 | {
16 | "open": "(",
17 | "close": ")"
18 | },
19 | {
20 | "open": "\\{",
21 | "close": "\\}"
22 | },
23 | {
24 | "open": "\\[",
25 | "close": "\\]"
26 | },
27 | {
28 | "open": "\\(",
29 | "close": "\\)"
30 | },
31 | {
32 | "open": "`",
33 | "close": "'",
34 | },
35 | {
36 | "open": "$",
37 | "close": "$",
38 | "notIn": [
39 | "comment"
40 | ]
41 | }
42 | ],
43 | "surroundingPairs": [
44 | [
45 | "{",
46 | "}"
47 | ],
48 | [
49 | "[",
50 | "]"
51 | ],
52 | [
53 | "(",
54 | ")"
55 | ],
56 | [
57 | "`",
58 | "'"
59 | ],
60 | [
61 | "$",
62 | "$"
63 | ]
64 | ],
65 | "wordPattern": "\\\\(@*[a-zA-Z]*)|[^\\s\\d`~!@#$%^&*()\\-=_+[\\]{}\\\\\\|;:'\"<>,./?\\u0500-\\uffff]+",
66 | "indentationRules": {
67 | "increaseIndentPattern": "\\\\begin\\s*\\{[^\\{\\}\\\\]*\\}(?!.*\\\\(begin|end)\\s*\\{)",
68 | "decreaseIndentPattern": "^\\s*\\\\end\\s*\\{"
69 | },
70 | "onEnterRules": [
71 | {
72 | "beforeText": "\\\\begin\\s*\\{[^\\{\\}\\\\]*\\}(?!.*\\\\(begin|end)\\s*\\{)",
73 | "afterText": "^\\s*\\\\end\\s*\\{",
74 | "action": {
75 | "indent": "indentOutdent"
76 | }
77 | },
78 | {
79 | "beforeText": "\\\\begin\\s*\\{[^\\{\\}\\\\]*\\}(?!.*\\\\(begin|end)\\s*\\{)",
80 | "action": {
81 | "indent": "indent"
82 | }
83 | },
84 | {
85 | "beforeText": "\\$\\$\\s*$",
86 | "afterText": "^\\s*\\$\\$",
87 | "action": {
88 | "indent": "indentOutdent"
89 | }
90 | },
91 | {
92 | "beforeText": "\\\\\\[\\s*$",
93 | "afterText": "^\\s*\\\\\\]",
94 | "action": {
95 | "indent": "indentOutdent"
96 | }
97 | },
98 | {
99 | "beforeText": "\\\\\\(\\s*$",
100 | "afterText": "^\\s*\\\\\\)",
101 | "action": {
102 | "indent": "indentOutdent"
103 | }
104 | },
105 | {
106 | "beforeText": "\\{\\s*$",
107 | "afterText": "^\\s*\\}",
108 | "action": {
109 | "indent": "indentOutdent"
110 | }
111 | },
112 | {
113 | "beforeText": "^\\s*\\*\\s*$",
114 | "action": {
115 | "indent": "none"
116 | }
117 | },
118 | {
119 | "beforeText": "^\\s*\\* .*$",
120 | "action": {
121 | "indent": "none",
122 | "appendText": "* "
123 | }
124 | }
125 | ]
126 | }
--------------------------------------------------------------------------------
/resources/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Trebor-Huang/vscode-btex/39e5c98dd35a4c6072eb2cb0af3c9ce0cc2f542d/resources/logo.png
--------------------------------------------------------------------------------
/resources/snippets.json:
--------------------------------------------------------------------------------
1 | {
2 | "Begin/End block": {
3 | "prefix": "\\begin",
4 | "body": [
5 | "\\begin{$1}",
6 | "$2",
7 | "\\end{$1}"
8 | ],
9 | "description": "Create a begin/end pair"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/BtexServer.ts:
--------------------------------------------------------------------------------
1 | import * as vscode from 'vscode';
2 | import * as child_process from 'child_process';
3 |
4 | export class BtexServer {
5 | server: child_process.ChildProcess | undefined = undefined;
6 | dispose() : void {
7 | console.log("bTeX: Shutting down.");
8 | this.server?.kill();
9 | }
10 |
11 | startServer() : boolean { // Returns whether the server is started
12 | if (this.server !== undefined) {
13 | return true;
14 | }
15 |
16 | const config = vscode.workspace.getConfiguration('btex');
17 | const bTeXcmd : string | undefined = config.get('command');
18 | const bTeXcwd : string | undefined = config.get('directory');
19 | // Get some settings
20 |
21 | if (bTeXcmd === '') {
22 | console.log('bTeX: Skipping server startup.');
23 | return false;
24 | }
25 | if (bTeXcmd === undefined || bTeXcwd === undefined || bTeXcwd === '') {
26 | vscode.window.showErrorMessage("bTeX server path is not configured.");
27 | return false;
28 | }
29 |
30 | // Start up language server
31 | const [cmd, ...args] = bTeXcmd.split(' ');
32 | this.server = child_process.spawn(cmd, args, {
33 | detached: false,
34 | stdio: 'ignore',
35 | cwd: bTeXcwd // We can also just use yarn --cwd ...
36 | });
37 | this.server.on('exit', (code, signal) => {
38 | vscode.window.showErrorMessage(
39 | `tikz2svg server exited with code ${code} and signal ${signal}.`
40 | );
41 | this.server = undefined;
42 | });
43 | this.server.on('error', (err) => { console.log(err); });
44 | console.log('bTeX: Starting tikz2svg on pid', this.server.pid);
45 | return true;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/PanelManager.ts:
--------------------------------------------------------------------------------
1 | import * as vscode from 'vscode';
2 | import * as path from 'path';
3 | import * as fs from 'fs';
4 | // Type only imports
5 | import { Buffer } from 'buffer';
6 | // Lazy loaded imports
7 | import { serve } from './ServePrinting';
8 | import { runWorker } from 'btex';
9 | var _runWorker : typeof runWorker;
10 | var _serve : typeof serve;
11 |
12 | const PREAMBLE = '\\enableincludegraphics'; // TODO
13 | const COMPILER_SETTINGS = { // compiler options
14 | maxErrors: 100,
15 | maxMacroExpansions: 50000,
16 | maxBuffer: 1000000,
17 | maxNesting: 1000,
18 | inline: false,
19 | equationMode: false,
20 | };
21 | const RENDER_SETTINGS = { // rendering options
22 | inverseSearch: true,
23 | noKatex: false
24 | };
25 |
26 | // Generate CSS for fonts
27 | function cssFonts(awvu: (file : string) => string) {
28 | return `
29 | @font-face {
30 | font-family: 'Cascadia Code';
31 | src: url(${awvu('CascadiaCode.woff2')}) format('woff2'), url(${awvu('CascadiaCode.woff')}) format('woff')
32 | }
33 |
34 | @font-face {
35 | font-family: Lato_Bbb;
36 | src: url(${awvu('LatoBbb.woff2')}) format('woff2'), url(${awvu('LatoBbb.woff')}) format('woff')
37 | }
38 |
39 | @font-face {
40 | font-family: PunctCJK;
41 | src: url(${awvu('PunctCJK.woff2')}) format('woff2'), url(${awvu('PunctCJK.woff')}) format('woff');
42 | unicode-range: U+21-22, U+27-29, U+2C, U+2E, U+3A-3B, U+3F, U+2018-201A, U+201C-201E, U+2022, U+2026, U+2218, U+25AA-25AB, U+3001-3002, U+3008-300F, U+FF64
43 | }
44 |
45 | @font-face {
46 | font-family: PunctCJK;
47 | font-style: italic;
48 | src: url(${awvu('PunctCJK-Italic.woff2')}) format('woff2'), url(${awvu('PunctCJK-Italic.woff')}) format('woff');
49 | unicode-range: U+21-22, U+27-29, U+2C, U+2E, U+3A-3B, U+3F, U+2018-201A, U+201C-201E, U+2022, U+2026, U+2218, U+25AA-25AB, U+3001-3002, U+3008-300F, U+FF64
50 | }
51 |
52 | @font-face {
53 | font-family: PunctCJK;
54 | font-weight: bold;
55 | src: url(${awvu('PunctCJK-Bold.woff2')}) format('woff2'), url(${awvu('PunctCJK-Bold.woff')}) format('woff');
56 | unicode-range: U+21-22, U+27-29, U+2C, U+2E, U+3A-3B, U+3F, U+2018-201A, U+201C-201E, U+2022, U+2026, U+2218, U+25AA-25AB, U+3001-3002, U+3008-300F, U+FF64
57 | }
58 |
59 | @font-face {
60 | font-family: PunctCJK;
61 | font-weight: bold;
62 | font-style: italic;
63 | src: url(${awvu('PunctCJK-BoldItalic.woff2')}) format('woff2'), url(${awvu('PunctCJK-BoldItalic.woff')}) format('woff');
64 | unicode-range: U+21-22, U+27-29, U+2C, U+2E, U+3A-3B, U+3F, U+2018-201A, U+201C-201E, U+2022, U+2026, U+2218, U+25AA-25AB, U+3001-3002, U+3008-300F, U+FF64
65 | }`;
66 | }
67 |
68 | function getResource(...name: string[]) {
69 | return path.join(PanelManager.extensionPath, 'resources', ...name);
70 | }
71 |
72 | async function gotoPosition(doc: vscode.TextDocument, col: vscode.ViewColumn, position: number[]) {
73 | await vscode.window.showTextDocument(doc, col);
74 | if (position.length === 0) {
75 | return;
76 | }
77 | await vscode.commands.executeCommand(
78 | 'revealLine',
79 | {
80 | lineNumber: position[0] - 1,
81 | at: 'center'
82 | }
83 | );
84 | const editor = vscode.window.activeTextEditor;
85 | if (editor === undefined) {
86 | return;
87 | }
88 | editor.selections = [new vscode.Selection(
89 | editor.document.lineAt(position[0]-1).range.start,
90 | editor.document.lineAt(position[position.length-1]-1).range.end
91 | )];
92 | }
93 |
94 | export class PanelManager implements vscode.Disposable {
95 | readonly doc: vscode.TextDocument;
96 | readonly workspaceFolder: string;
97 | readonly viewColumn: vscode.ViewColumn;
98 | readonly panel: vscode.WebviewPanel;
99 | private static _isInvertAll : boolean = false;
100 | private listener ?: vscode.Disposable;
101 | static extensionPath: string;
102 | static diags: vscode.DiagnosticCollection;
103 | static openPanels: PanelManager[] = [];
104 |
105 | constructor(editor: vscode.TextEditor) {
106 | this.viewColumn = editor.viewColumn ?? vscode.ViewColumn.Beside;
107 | this.doc = editor.document;
108 | this.workspaceFolder = vscode.workspace.workspaceFolders? vscode.workspace.workspaceFolders[0].uri.path : "/";
109 | this.panel = vscode.window.createWebviewPanel(
110 | 'bTeXpreview',
111 | 'Preview bTeX',
112 | vscode.ViewColumn.Beside,
113 | {
114 | localResourceRoots: [
115 | vscode.Uri.file(
116 | path.join(PanelManager.extensionPath, 'resources')),
117 | vscode.Uri.file(
118 | this.workspaceFolder
119 | )
120 | ],
121 | enableScripts: true
122 | }
123 | );
124 | this.initialize();
125 | this.panel.onDidDispose(
126 | () => { // remove itself from openPanels list
127 | let i = PanelManager.openPanels.indexOf(this);
128 | if (i >= 0) { PanelManager.openPanels.splice(i, 1); }
129 | }
130 | );
131 | }
132 |
133 | compile(printing=false): void {
134 | const text = this.doc.getText();
135 | if (_runWorker === undefined) {
136 | _runWorker = require('btex').runWorker;
137 | }
138 | _runWorker(text, PREAMBLE, COMPILER_SETTINGS, RENDER_SETTINGS)
139 | .then(result => {
140 | const data : {
141 | lang ?: string,
142 | htmlTitle ?: string,
143 | displayTitle ?: string
144 | } = JSON.parse(result.data);
145 | const diagnostics : vscode.Diagnostic[]=[];
146 | for (const err of result.errors) {
147 | // code:LINE:COL MSG
148 | const res = /^code:([0-9]+):([0-9]+) (.*)$/.exec(err);
149 | if (res === null || res.length !== 4) {
150 | vscode.window.showErrorMessage(
151 | 'Unknown btex error: ' + err
152 | ); // Most probably just "UNKNOWN"
153 | continue;
154 | }
155 | const pos = new vscode.Position(
156 | parseInt(res[1])-1,parseInt(res[2])-1
157 | ); // TODO better position (doc.getWordRangeAtPosition)
158 | const range = new vscode.Range(pos, pos);
159 | diagnostics.push(new vscode.Diagnostic(range, res[3]));
160 | }
161 | // Update errors (including clearing them)
162 | PanelManager.diags.set(this.doc.uri, diagnostics);
163 | // This guard prevents the contents from emptying.
164 | if (result.html !== '' || result.errors.length === 0) {
165 | let img_replacer = (match:string, opt:string, src:string, offset:any, string:any, group:any) => {
166 | console.log(src)
167 | let new_src = "";
168 | if(/^https?:\/\/\w/.test(src) || /^data:image\/(.*);base64/.test(src))
169 | {
170 | // web image or inline image
171 | new_src = src;
172 | }
173 | else if(/^(\w+\\)*.\w/.test(src))
174 | {
175 | // TODO add image extension verification and error handling
176 | // relative dir
177 | if(printing)
178 | {
179 | let dir = path.join(this.workspaceFolder, src);
180 | let ext = path.extname(dir).substring(1);
181 | let base64Image = "";
182 | let buf:Buffer = fs.readFileSync(dir);
183 | base64Image = buf.toString('base64');
184 | new_src = `data:image/${ext};base64,${base64Image}`;
185 | }
186 | else {
187 | new_src = this.panel.webview.asWebviewUri(vscode.Uri.file(path.join(this.workspaceFolder, src))).toString();
188 | }
189 | }
190 | return `
198 |