Obsidian 插件:Latex suite 通过片段、文本扩展和编辑器增强功能

Obsidian 插件:Latex suite 通过片段、文本扩展和编辑器增强功能

latex-suite

插件 ID:obsidian-latex-suite
插件作者:artisticat
插件描述:通过片段、文本扩展和编辑器增强功能,使排版 LaTeX 数学与手写一样快
插件版本:1.7.1
插件源码地址:obsidian-latex-suite
插件文档地址:同上

基本功能

  1. 文本编辑增强:通过使用自定义片段,对常用输入文字快速输入。支持文本模式,正则模式,latex 模式,通过字符自动触发或者 tab 键触发。
  2. latex 增强:内置 latex 常用片段,隐藏 latex 符号,自动填充括号,大括号,换行等操作,并使得 latex 公式的可读性更强

以下是原速公式输入示例

Obsidian 插件:Latex suite 通过片段、文本扩展和编辑器增强功能--基本功能

基本用法

使用该插件的唯一前提就是设置好片段,除了了解内置的 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 常用正则表达式

下面文章来自 math-feng 贡献

在使用 LaTeX suite 插件时,会遇到一些正则表达式,我对常用的做了一个总结,后续我给大家分享一下我常用的模板,比如我想要写一个名字为 definition 的 callout,只需输入 bdef+Tab 即可。

符号用处说明
()形成一个捕获组可以进行引用
[]不会形成捕获组,且只能匹配其中的任意一个字符不能进行引用
[[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](x|y|i|j|k)\\2{1},即 xii
(?<!^|\n)检验是否为行首
(?<=…)(?<!)后瞻断言,检测匹配方向的后方,分为正定和否定
(?=…)(?!)前瞻断言,检测匹配方向的前方,分为正定和否定
?表示前面字符出现的次数-?表示 - 只能出现 0 次或一次

进阶用法

  • 了解相关option项,编写任意所需公式
t文本方式仅在数学之外运行此代码片段
m数学模式仅在数学内运行此代码片段,m模式包含M和n
M块数学模式仅在$$ ... $$块内运行此代码片段
n内联数学模式仅在$ ... $块内运行此代码片段
A自动键入触发器后立即展开此代码片段。如果省略,则Tab必须按下该键才能展开代码片段
rRegextrigger将被视为正则表达式
v视觉仅在选择时运行此代码片段。触发器应为单个字符
w单词边界仅当触发器位于单词分隔符(例如、或)之前(和之后)时才运行此代码段。. , -
c代码模式仅在``` ... ```块 内运行此代码片段

精准替换

  • 查看代码对照表如下图,增删改查,得到需要的代码键值对
  • 其中‘ $0 ’代表光标第一个位置, $1 ’ 为跳转下一个位置

线性代数矩阵支持

  • 该插件在矩阵、行列式的输入上也保持较快的速度

Obsidian 插件:Latex suite 通过片段、文本扩展和编辑器增强功能--线性代数矩阵支持

$$
\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

一款格式化矩阵的插件,可以最大程度避免手打发生错误的插件。

Obsidian 插件:Latex suite 通过片段、文本扩展和编辑器增强功能--Latex Matrics

还可以在方格中输入

  • 分数:{n}/{m}
  • 下标:n_{m}
  • 上标:n^{m}

讨论

若阁下有独到的见解或新颖的想法,诚邀您在文章下方留言,与大家共同探讨。



反馈交流

其他渠道

版权声明