Obsidian插件Latex suite:让LaTeX数学排版快如手写
创作时间:
作者:
@小白创作中心
Obsidian插件Latex suite:让LaTeX数学排版快如手写
引用
1
来源
1.
https://pkmer.cn/Pkmer-Docs/10-obsidian/obsidian%E7%A4%BE%E5%8C%BA%E6%8F%92%E4%BB%B6/obsidian-latex-suite/
Obsidian是一款强大的知识管理工具,而LaTeX则是科学论文和数学公式排版的常用语言。为了让用户在Obsidian中更高效地使用LaTeX进行数学排版,社区开发了Latex suite插件。该插件通过代码片段、文本扩展和编辑器增强功能,使LaTeX数学排版速度大幅提升,甚至可以媲美手写速度。
基本功能
Latex suite插件的主要功能包括:
- 代码片段:通过快捷方式和文本扩展帮助用户更快地编写LaTeX。
- 文本编辑增强:支持文本模式、正则模式和LaTeX模式,可以通过字符自动触发或Tab键触发。
- LaTeX增强:内置LaTeX常用片段,支持隐藏LaTeX代码、自动填充括号、大括号、换行等操作,增强LaTeX公式的可读性。
片段设置
片段有两个方式进行设置:
- 在设置里有个内置的输入框,但体验不是很好,输入框大小被限制了;
- 自定义文件,将一个后缀为js的文件放到库内,然后在设置里指定就好了。
片段编写
典型的片段文件如下:
[
//环境设置
{trigger: "$", replacement: " $$0$ ", options: "t"},
{trigger: "$$", replacement: "$$\n$0\n$$", options: "tA"},
{trigger: "beg", replacement: "\\begin{$0}\n$1\n\\end{$0}", options: "mA"},
//begin环境
{trigger: "equat", replacement: "\\begin{equation}\n$0\n\\end{equation}", options: "mA"},
]
是一个json文件,每一个大括号是一个片段。一个典型的片段如下:
{trigger: string, replacement: string, options: string, description?: string, priority?: number}
- trigger字段指定触发字符
- replacement代表将触发字符替换后的字符
- option是选项,t代表文本模式,m代表LaTeX模式,r代表正则模式,A代表自动触发。文本模式指仅在正文中触发,LaTeX模式指仅在LaTeX块中触发——$包裹的部分,r是使用正则表达式,w代表词边界,仅当触发字符前面(和后面)有单词分隔符时才运行此代码段。
- $0代表光标跳转的位置,[[0]]代表正则表达式替换的位置。description是片段描述,可选,priority是优先级,当有多个同样的触发字符时,优先级高的会优先触发,默认是0优先级。
以第一个片段为例:指明$为触发字符,将字符替换成$$,替换后光标在两个$符号中间,option中的t代表文本模式,不会自动触发。
LaTeX suite常用正则表达式
下面是一些常用的正则表达式总结:
- 符号 用处 说明
- () 形成一个捕获组 可以进行引用
- [] 不会形成捕获组,且只能匹配其中的任意一个字符 不能进行引用
- [[0]] 表示提取第一个正则表达式的值
- [[1]] 表示提取第二个正则表达式的值
- ([a-zA-Z]) 26个字母大小写的正则表达式 单个字母
- (\d) 匹配数字的正则表达式 0-9的数字
- (${GREEK}) 在LaTeX suite中自定义的变量 不能用[${GREEK}]表示
- (${Symbol}) 同上
- (${short-symbol}) 同上
- ^ 表示行首,在[]中的第一个位置时表示否定 [^abc]b表示非a的单个字符
- ([^’]) 匹配非’的任意符号
- | 表示或
- $0 光标的第一个位置
- \ 需要用\表示
- \^ 在正则表达式的环境下识别^,必须这样表示 其中$也是这样
- [^\\] 非\的所有其他单个符号
- (.*) 匹配任意字符串,即可以不匹配到东西 .表示匹配任意单个字符,*表示重复前面字符零次或多次
- (.+) 贪婪匹配任意字符串,即至少匹配一个字符串 +表示至少有一个字符
- ([^=$]*) 匹配的字符中不能包含=和$ 对单个字符有要求,即不能是[=$]中的元素,但是目前来看对?:;不起作用
- [+=-] 匹配其中的单个字符,并不需要符号|
- \s 表示空格
- \b \b 表示匹配其中单个字符,而不是字符串中的东西
- \d* 匹配可能没有数字的情况
- \d+ 匹配至少有一个数字的情况
- \2{1} 表示引用第二个被匹配的字符,且出现一次 a-zA-Z\2{1},即xii
- (?<!^|\n) 检验是否为行首
- (?<=…)(?<!) 后瞻断言,检测匹配方向的后方,分为正定和否定
- (?=…)(?!) 前瞻断言,检测匹配方向的前方,分为正定和否定
- ? 表示前面字符出现的次数 -?表示-只能出现0次或一次
进阶用法
- 了解相关option项,编写任意所需公式
- t 文本方式 仅在数学之外运行此代码片段
- m 数学模式 仅在数学内运行此代码片段,m模式包含M和n
- M 块数学模式 仅在$$ ... $$块内运行此代码片段
- n 内联数学模式 仅在$ ... $块内运行此代码片段
- A 自动 键入触发器后立即展开此代码片段。如果省略,则Tab必须按下该键才能展开代码片段
- r Regex trigger将被视为正则表达式
- v 视觉 仅在选择时运行此代码片段。触发器应为单个字符
- w 单词边界 仅当触发器位于单词分隔符(例如、或)之前(和之后)时才运行此代码段。.,-
- c 代码模式 仅在
...块内运行此代码片段
精准替换
查看代码对照表如下图,增删改查,得到需要的代码键值对
- 其中‘$0’代表光标第一个位置,$1’ 为跳转下一个位置
线性代数矩阵支持
该插件在矩阵、行列式的输入上也保持较快的速度
$$
\mathbb{1}_{3\times 3}=\begin{pmatrix}
2 & 3 & 4 \\
3 & k & k \\
i & 9 & 0
\end{pmatrix}
$$
$$
\mathbb{1}_{3 \times 3}=\begin{pmatrix}
33 & \theta \cos\epsilon & 4334 \\
f & 4 & 89 \\
433 & 890 & f
\end{pmatrix}
$$
Latex Matrics
一款格式化矩阵的插件,可以最大程度避免手打发生错误的插件。
还可以在方格中输入
- 分数:{n}/{m}
- 下标:n_{m}
- 上标:n^{m}
热门推荐
中微子为什么会被称为“幽灵粒子”,中微子是“鬼”吗?
防排烟风管耐火极限的要求及保证措施探讨
铜绿假单胞菌呼吸道感染表现及治疗
水果究竟生吃好还是熟吃好?这几种水果蒸着吃更好
设定目标的最佳实践有哪些
已实名的手机号码不得随意买卖!
手机卡给别人用危险吗
糯米酒酿好后怎么保存 如何判断米酒是否变质
工程师必读:模拟电路设计的九个阶段
债权人放贷业务探究:现状、风险与规范
「四君子汤」中医调理脾胃的秘方
拉康:女人不存在
中国航天国际合作:携手共筑星空梦
提升AI助手的智能服务水平
全面解析:数字电位器型号的功能与应用选型指南
全面解析:数字电位器型号的功能与应用选型指南
中国楼市一线观潮|翘尾行情可期,10月武汉二手房价格首次上涨
马赫环是如何形成的?环数越多战机越先进吗?
施工项目管理中的9个质量控制要点详解
颌下腺腺淋巴瘤是什么病
DDR5 内存标准:新一代 DRAM 模组技术简介
螃蟹知识大全
外源化学物的毒理作用机制
国资云概念,引领数字化转型新篇章
健步走与徒步登山是一脉相承的最佳有氧运动方式
QQ邮箱中转站容量不足怎么办?这些解决方案帮你轻松应对
智慧用药:科技助力精准、安全的药物管理
老人去世孙辈有继承权吗
日语学习VS英语学习:哪个好学?从发音到语法,全网真实对比!
减肥晚餐吃两个水煮蛋可以吗