如何自动关闭 $...$(使用单个美元符号括起来的数学模式?)

如何自动关闭 $...$(使用单个美元符号括起来的数学模式?)

我正在使用 Visual Studio Code 文本编辑器输入 LaTeX.tex文档。大多数文本编辑器都会自动为您关闭括号,因此当您输入“{”时,它会添加“}”,然后将光标移到它们之间。由于美元符号用于表示 LaTeX 中的内联数学语句(例如 $\bigcup$),因此我希望 $ 自动用另一个 $ 关闭,然后自动将光标移到它们之间。我知道有些人更喜欢 \(...\),但这不是我要问的。有没有可以更改此设置的设置?

注意:由于 $...$ 和 $$...$$ 之间存在一些混淆,我更改了这个问题的文字。

答案1

请注意,VS Code 的内置语言支持扩展支持对选定的文本进行换行,就像在选定文本时$selection$按下按钮一样(请参阅$surroundingPairshttps://github.com/microsoft/vscode/blob/main/extensions/latex/latex-language-configuration.json)。因此,唯一缺少的是没有选择任何内容的情况(如果autoClosingPairs它是内置实现的话,就会出现这种情况)。

使用键盘快捷键

你可以通过定义一个键绑定来解决这个问题,这个键绑定可以输入美元符号,然后将插入符号向左移动(把它放在你的 keybindings.json 中(Preferences: Open Keyboard Shortcuts (JSON)命令面板)):

{
    "key": "shift+4", // or whatever it is on your keyboard layout
    "command": "runCommands",
    "args": {
        "commands": [
            {
                "command": "type",
                "args": {"text": "$$" },
            },
            "cursorLeft",
        ],
    },
    "when": "editorTextFocus && (!editorHasSelection) && (editorLangId == latex || editorLangId == tex)"
},

老实说,我认为shift+4当您实际上只想输入一美元时使用会很烦人(我敢打赌您会对此感到厌烦并将其更改为其他内容),这可能就是为什么它没有内置到 VS Code 的属性中的原因autoClosingPairs

使用用户摘要

你可以采取不同的方法,只需使用用户摘要,将类似这样的内容放入您的代码片段文件中(使用Snippets: Configure User Snippets命令面板中的命令):

"dollar math": {
    "scope": "tex,latex",
    "prefix": "dm", // this is what you type in the editor to get the snippet suggestion
    "body": ["\\$$1\\$"],
},

旁注:此功能请求已在 VS Code 的流行 LaTeX 扩展之一中提出过多次:https://github.com/James-Yu/LaTeX-Workshop/issues/968https://github.com/James-Yu/LaTeX-Workshop/issues/544https://github.com/James-Yu/LaTeX-Workshop/issues/235每次,它都会被拒绝(好吧 - 我完全尊重这一点),并显示以下消息:

请投票微软/vscode/问题/38352

这将允许用户在用户级别配置自动关闭括号。

我还没有尝试过,但你可以编辑*-language-configuration.json此扩展安装中的各种文件(查看其syntax/子目录)。扩展通常安装.vscode/extensions/在用户主目录中的目录中。您要编辑的属性是autoClosingPairs您要更改的多个语言配置文件中的任何一个。

从技术上讲,您可以对 VS Code 安装中修改 LaTeX 的内置语言配置 JSON 文件执行相同的操作,但一旦您这样做,VS Code 可能会开始发出损坏警告。

相关内容