asymbol -- 继承于cdlatex的快速符号输入方法

github

在写latex时,我十分喜欢cdlatex中的math modify符号输入功能,使我不用记忆各种乱七八糟的符号代码。但它有个问题,就是各种符号没有分类,因而自定义的符号一多,就会非常杂乱。因此,我写了asymbol这个包,把cdlatex的这个功能抽取出来并增强,加入了分类和更多的默认符号。如下图:

目前分类了一部分符号,算是勉强能用了。latex符号分类主要依据以下两个帖子:

萌新第一次写emacs的package,水平很有限,还请见谅 :ghost:

3赞

只是增强的话没考虑过给Dominik发PR?

我感觉改动比较大,尤其是加了一堆新符号,可能会影响一点性能,就抽出来单独做了一个package。

建议还是能够合并到上游的话,尽量合并给上游。因为新的单独包用的人少啊。

性能问题可以通过选项让用户自己选择加载多少符号。

你好,我是弄科研的博士,几乎每天都用 Latex 写论文。也是在 Emacs 中弄了一些配置,现在感觉还算可以。你的这个 package 感觉必要性不是太大,对于我来说,常用的 latex 数学符号都是记得,随手就打出来了。如果这个符号不是太常用的话,绑定了一个快捷键调出数学符号大全(网上可以下载一个三到四也的 PDF)查找下。对于 Cdlatex 这个包,我回顾了下,我最常用的功能其实就是几个符号快捷键,比如 lr( lr{ fr 等等,其他的数学符号提示什么还真没有怎么使用过。我个人感觉还是使用一个数学符号大全查找下更方便点。

2赞

最好这些东西自己纯手打比较好,用的多了,这些东西很容易记住。我之前也是很多东西补全什么的都想快捷,发现错了,什么东西还是纯手打比较好。我看很多大牛补全什么的都不用,就是纯手打,还挺快的。我现在的观念也变了,什么东西还是纯手打比较好。我记的一个 vim 大牛 Gary Bernhardt 说过:” keep simple", 不要搞太多的花里胡哨。Gary Bernhard 的 live coding 很多都是裸敲,而且速度很快。

1赞

感谢回复,看来我还是段位太低了T_T

你说的很有道理,很多偏僻的符号用不到,常用的也都能记住,没必要复杂化。 我一开始也想直接找一个符号大全,找的过程中有了这个idea,就做出来了,其实跟符号大全是一样的。

此外,这个还能方便的输入各种unicode字符,非latex也能用(比如作为变量名 :smirk:

我现在是采用热字串(Hotstrings) 的形式,也就是先输入字符,再通过输入特定的符号触发。比如希腊字母就是 g 开头,\alpha 就是 ga,箭头是 a 开头, \Rightarrow 就是 ar。我选的特定符号就是英文的句号,因为我是用 org + latex 的,基本不需要打句号,偶尔要用,就打 1 再打句号。

其实最终效果跟你这种差不多,不过我这种可以把要输出的字符串搞得更复杂,比如我要输入 tikz 中 automat 的 edge:

(1) edge[loop below] node[below] {x=1} (1)

我就可以输 1-eb-b-x=1-1 来触发。如果我又想输

(2) edge[loop above] node[above] {y=1} (2)

就可以输入 2-ea-a-y=1-2

当然这只是其中应用之一,很多复杂但重复度又很高的语句都可以这么实现。

1赞

如果不是做成一个表,而是做成自动补全的菜单会不会好一点?

  1. 模糊匹配
  2. 在补全菜单中用对应的 Unicode 预览符号

你的图片中用的啥字体?看起来像是更纱,可是我用更纱字体后,为啥org header前面的符号和文字一样大呢?一个圆圈和字一样大,你的这个小圈就很好看。

这个想法很好,请问你是怎么实现的呢?有相关的插件吗?

我是通过 xah-math-input 魔改的,现在写得太乱就不分享自己的了,过几个月要是有空了可以修改一下分享出来。