请问怎么在文本注释里嵌入一些准富文本的东西

经常看到一些大牛的代码里可以嵌入各种公式,比如:

1.分数,通常我们用 x/y的一维形式表示,但是大牛可以直接在注释里写出二维形式

; 1   1   
; ─ + ─ 
; 2   3   

2.下标,当我们需要表示一个数列,一般会这么写:S1, S2, S3,…这很不美观,大牛却可以把1 2 3 显示在下标位置上。

3.上标,x的平方,我是这么写的 x^2,但大牛可以把2显示在上标的位置上,x²

还有其他一些,比如:≈,≤,√5,½,𝜙ⁿ⁺¹,等等好多。。。。

除了公式之外,我发现大牛们甚至还能在注释里画 电路图、与非门、状态机,树图,节点图,表格,等等。。。这些都是怎么做到的?

1 个赞

您要找的是不是「org文学编程」

poporg 可能是一种办法:

M-x set-input-method TeX 回车

M-x describe-input-method TeX 回车

5 个赞

第一个分数我感觉就是手动打的。。或者用 Maxima 之类的工具直接复制粘贴的。。。

2 和 3 可以看一下 C-x 8 系列命令(比如 C-x 8 ~ = 输入 ≈,参考 C-x 8 C-h),特别是 C-x 8 RETinsert-char)。比如

  • C-x 8 RET GREEK SMALL LETTER PHI
  • C-x 8 RET SUBSCRIPT DIGIT THREE
  • C-x 8 RET SUPERSCRIPT LATIN SMALL LETTER N
  • C-x 8 RET SUPERSCRIPT PLUS SIGN
  • C-x 8 RET SUPERSCRIPT DIGIT ONE

当然这个相当麻烦,不如楼上的 TeX 输入法。不过这个方法可以用于输入任何 Unicode 字符,临时救急相当有用,值得学习。

在注释里画图也不难,artist-mode / picture-mode 走起。

3 个赞

我知道ivy里有counsel-unicode-char,原来是包装的insert-char


楼主说的这些都是unicode char,如果对编码没有基本的了解的话推荐读这篇:

2 个赞

这个方法不错,多谢!

有一个问题,打开这个模式之后,直接输入x^3,会显示X³,

但输入x^{2+3},发现无效。。。

怎么让这里"2+3"能作为一个整体表达式放到上标上去吗?

分数如果手打的话也太累了把,比如:分子、分母修改的话,还要对齐的。

如果只是简单的上下标的话

可以分析正则表达式 然后替换成相应的Unicode

Maxima

x^2^+^3

得到

x²⁺³
2 个赞

还比如这样的带矩阵的式子,也非常好奇该怎么弄,看起来不太可能手动

为什么不太可能?这个式子又不长,看起来也不会经常改。

我一般都是直接书写 latex代码,放在注释里面,emacs里面有这个mode,可以在注释里面显示latex代码,不过显示的是编译好的图片形式了。我觉得这个使用的还是不多的,之前使用过一段时间。

请问这个设置能默认全局打开吗?

我现在这么设置:

(setq default-input-method 'TeX)

然而不行,启动Emacs后,查找 current-input-method变量的值仍然是nil

我觉得还是定义一个切换的好

(defvar chong-toggle-input
  '(("ucs" . 1)
    ("pyim" . 2)
    ("TeX" . 0)
    )
  "cons的格式是 当前名称 dot 下一个的位置(从0开始)")

(defun chong-toggle-input ()
  (interactive)
  (let (name-next)
    (cond
     ((equal current-input-method nil)
      (set-input-method "pyim"))

     ((setq name-next (assoc current-input-method chong-toggle-input))
      (set-input-method (car (nth (cdr name-next) chong-toggle-input))))
     (t  (set-input-method "ucs")))))

(global-set-key "\C-q" 'chong-toggle-input)
1 个赞

要默认实现input-method似乎挺复杂的:init file - Setting and activating the default input method - Emacs Stack Exchange ,算了放弃

刚才在网上找到个 company-math,感觉还行。

(不过发现之前purcell的require-package好像在2.61版本上不灵了,还是手动安装的company-math。。。看来得再去抄一下purcell最新的配置了)

另外,就是不知道**company-math**算不算目前最优的解决方案,还有没有更好的插件?