Sakana 小组件集成

目录

优化你的 Texstudio 编辑体验

对于中文背景的用户来说,恐怕没有比想打出 $$ 却由于输入法没来得及切换,最后打成了 ¥¥ 更让人抓狂的日常了。

尽管现在有 overleaftexpageslager 等一系列 $\LaTeX$ 在线编译网站,但他们依旧难以为此提供便利。线上渲染正变得越来越小气。如果想要尝试编译更大、更复杂、更长的文档又不愿付费,本地化软件永远是最好的选择(只要没有协作编辑的需求),同时也意味着更大的自由。

宏命令

对于中文背景的 $\LaTeX$ 用户来说,恐怕没有比打出 $$ 却由于输入法没来得及切换打成了 ¥¥ 更让人抓狂的日常了。

Obsidian 留住我的原因是极其便利的写作插件:

  • 快捷命令:commander editing toolbar
  • 图片转化:image converter
  • 写作增强:easy typing
  • ……

尤其是写作增强的 easy typing,支持自定义补全、中英文自动空格、无缝中英字符切换——例如连续两次输入 ¥¥ 就会自动变成 $$

那么问题在于,如何使得 texstudio 实现同样的功能呢?

答案是自定义宏。Texstudio 支持自定义宏定义,详细语法参见官方文档 Personal macros

正常模式的宏可以理解为文本转化和补全。我在触发器中写入 ¥¥¥¥ (注意,此处结尾故意留下了一个空格)。%| 代表补全后的光标位置。

个人宏还可以自定义快捷键,例如下图我设置了 Ctrl+M 作为 $$ 插入的快捷键。当我输入 ¥*2(空格) 时,也会自动触发转化。

/img/texstudio.zh-cn.md-1760090933518.webp
触发器就是格式检测,当正则表达识别满足时自动触发

个人宏还支持脚本顺序,如果会玩可以玩出各种花样(例如一环扣一环的转换)。因此写宏时要注意顺序,将更严格的正则检验宏放在上面,例如 ¥¥¥¥转$$$$ 应当放在 ¥¥转$$ 之前。

环境模式感觉很鸡肋,完全能用正常模式替代。

脚本模式更加灵活,支持 java script 语言。

个人写了一个是,能把 -内容1-内容2-内容2(回车) 格式的内容转化为代码:

1
2
3
\begin{内容1}[内容2]\label{内容2}

\end{内容1}

顺便进一步设置了个映射,如果内容 1 是“证明”,就转化为“proof”; 是“概念”,就转化为“definition”。

代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// ===== 环境中英文映射 =====
var envMap = {
    "定理": "theorem",
    "引理": "lemma",
    "命题": "proposition",
    "推论": "corollary",
    "定义": "definition",
	"概念": "definition",
    "例子": "example",
	"案例": "example",
    "备注": "remark",
	"注意": "remark",
    "笔记": "note",
	"注释": "note",
    "案例": "case",
    "证明": "proof",
	"证": "proof",
    "练习": "exercise"
};

// ===== 获取匹配内容 =====
var env = triggerMatches[1];   // 环境
var title = triggerMatches[2]; // 标题
var label = triggerMatches[3]; // 标签

// ===== 转换中文环境为 LaTeX 英文环境 =====
if (envMap[env]) {
    env = envMap[env];
}

// ===== 构造 LaTeX 代码 =====
var txt = "\\begin{" + env + "}";
if (title) txt += "[" + title + "]";
if (label) txt += "\\label{" + label + "}";
txt += "\n\n\\end{" + env + "}\n";

// ===== 插入文本 =====
cursor.insertText(txt);

// ===== 调整光标位置到环境内部 =====
cursor.movePosition(2, cursorEnums.Up);
cursor.movePosition(1, cursorEnums.StartOfLine);

触发器设置为

1
\-(.+.)\-(.+.)\-(.+.)\r

逻辑也不难,触发器三个括号的正则识别内容对应着代码里的 env 、title、label。填入构造代码模板,然后移动光标。(唯一问题是 texstudio 正则识别对中文符号的兼容太差了)

/img/texstudio.zh-cn.md-1760091756396.webp
如图

Texstudio 配置语言助手

Texstudio 页面。

/img/LaTeX入门.zh-cn-1758093039527.webp
如图

先下载 java (请自行寻找教程)

然后下载免费的语法检查助手—— https://languagetool.org/download/

下载自己对应的电脑版本,我是 win 系统加最新版 texstudio,所以选择 LanguageTool-6.6.zip

下载好之后解压对应的 languagetool 压缩包。在对应的文件夹页面打开 cmd(直接在路径栏输入 cmd 即可从这里打开)

然后运行 java -jar languagetool. Jar

打开后,text checking - 选项 进入页面,设置语言、服务器端口。

/img/LaTeX入门.zh-cn-1758092612033.webp
如图

设置完成后,进入 texstudio 设置最下面的 languagetool 即可。

/img/LaTeX入门.zh-cn-1758092768418.webp
如图

之后重启 texstudio,在帮助检查语言工具即可:

波浪线对应的就是语法错误。

/img/LaTeX入门.zh-cn-1758092931198.webp
如图

右键错误地方就会有更正提示:

/img/LaTeX入门.zh-cn-1758092975675.webp
如图

一些快捷键

  • Ctrl + 鼠标左键:可以快速定位(跳转到源代码或 PDF 对应位置)。
  • Ctrl + Shift + I:可以迅速添加 \item(用于列表环境 itemize/enumerate)。
  • Ctrl + T:可以快速添加、取消注释(对当前行或选中的多行)。
  • Ctrl + Shift + M:可以快速添加行内代码,例如在光标位置添加 $ x $
  • Ctrl + Shift + N:可以增加 equation 环境(例如 \begin{equation} ... \end{equation})。
  • Alt + Shift + M:可以增加显示的代码(通常是数学环境,例如 $$...$$\[ ... \])。

其他提示

活用左边列的符号收藏功能。

/img/texstudio.zh-cn.md-1760092010830.webp
如图

代码编辑页面右键可以跳转 pdf 渲染位置。 Ctrl 键点击 pdf 位置可以跳转代码编辑位置。

Texstudio 支持行内预览。alt+p 启动,但是可能和其他模板渲染设置冲突。例如我使用了 elegent 系列的模板就无法查看预览了。

/img/texstudio.zh-cn.md-1760238587723.webp
Texstudio 支持行内预览。alt+p 启动

参考资料