emacs 笔记问题(数学、物理),希望大家不吝赐教 (预览以及插入问题)。

预览的话,如果使用latex进行编译的话,别想了,啥都这么慢,但是你可以选择使用 org-latex-preview 临时查看图片,相当于编译图片到orgmode里,

一般来说导出PDF就是准备归档了,不会频繁的改动,慢就慢吧,出去喝个咖啡

手写是最方便的,但是存在各种问题,(比如 字太丑,难更改)

输入慢是因为没有练出来,有两个包 cd-latex 和 laas 如果用上了之后能赶上老师讲课的速度,号称最快的latex公式输入器

1 个赞

这是我的 org-download 配置

  (use-package org-download
    :ensure t
    :defer t
    :bind (("C-S-y" . org-download-screenshot)
	   ("C-S-p" . org-download-clipboard))
    
    :config
    (setq-default org-download-image-dir "./images/")
    (add-hook 'dired-mode-hook 'org-download-enable))

需要注意的是 Ctrl + Shift + y 不知道为什么不起作用,需要插入图片的时候先复制图片内容,再 Ctrl + Shift + p,会在当前目录下新建一个 images 目录保存图片

预览方面我没怎么折腾过,这是配置

  (setq org-startup-indented t
	org-export-preserve-breaks t)
  )

一个是编辑时候自动缩进,一个是导出的时候不用按两下空格才渲染下一行

试用过xenops,有个问题一直没解决,就是字体颜色。使用暗色背景的时候,xenops生成出来的图片是png格式的,背景色透明,字体颜色则是黑色,这样一来就完全看不清楚了。

目前还是在用org-fragtog,每当离开一个公式环境时会生成相应图片的缓存,会卡顿一下;除此以外倒是没什么问题了,如果能解决这个顿卡问题,把生成图片的过程放到后台,不要冻结当前的操作就完美了。

我用的时候没有遇上字体颜色的问题,预览的公式和正文颜色一致

配置用的是 doom emacs,xenops 安装后直接使用,没有进行过额外设置

记理科笔记用Orgmode已经足够,记笔记的时候不需要过于在意排版问题,注意好层次以及富文本标记即可。

如果想要参考一下怎样记笔记,可以看一下 Gilles Castel 的系列博客: https://castel.dev,只不过人家使用 Vim 手写 tex,用 Emacs 的话就可以写 Org 然后输出TeX, 轻松了不止一点半点。

如果觉得公式输入效率不高的话可以使用 yasnippet 等模板系统大幅度提高输入效率。我的org-mode光是公式输入就已经有将近400个模板了,平时输入速度基本可以做到和手写齐平。

至于图片的话论坛里有很多大佬分享了自己的解决方法,比如pasteex-mode等等。网上也能找到一些比较好用的elisp代码,比如我现在还在用的一个一键截图插入的函数:


;;    ros - Rahul's Org-Mode Screenshot
;;
;;    ros is invoked with "M-x ros", then it waits for your selection, takes a
;; screenshot and saves it as orgfileopened.org_YYYYMMDD_hhmmss.png.
;;
;;    Finally, it keeps working by inserting a link and turning ON the
;; display-inline-images, showing the taken screenshot directly into
;; your file.
;;
;;    Track updates, contact the author and see a demo on github.com/Lionyx/ros
;; or http://rahuljuliato.com
;;
(add-hook 'org-mode-hook
	  (lambda ()
	    (defun ros ()
	      (interactive)
	      (if buffer-file-name
		  (progn
		    (message "Waiting for region selection with mouse...")
		    (let ((filename
			   (concat "./"
				   (file-name-nondirectory buffer-file-name)
				   "_"
				   (format-time-string "%Y%m%d_%H%M%S")
				   ".png")))
		      (if (executable-find "scrot")
			  (call-process "scrot" nil nil nil "-s" filename)
			(call-process "screencapture" nil nil nil "-s" filename))
		      (insert (concat "[[" filename "]]"))
		      (org-display-inline-images t t)
		      )
		    (message "File created and linked...")
		    )
		(message "You're in a not saved buffer! Save it first!")
		)
	      )
	    )
	  )

预览的话不知道你是想预览什么,如果是想预览公式的话 org 有 org-latex-preview (C-c C-x C-l),对我来讲不需要经常渲染预览整个文档,org-mode的显示搞的漂亮一些,用类似 org-bars, org-num 之类的minor mode,再设置一下各种face, 编辑体验就上去了,不需要经常预览渲染出来的文档,甚至不用渲染,直接在org-mode里面看更方便。

而且也可以设置 LaTeX 导出 PDF 文档或者导出带样式的HTML文件的模板,可以发给别人或者放到云服务器上闲暇时用手机浏览复习。

综上,用 Orgmode 记笔记是可以非常舒服的,多多了解并利用前人的经验并自己根据实际情况修改创新,便可以达到事半功倍的效果。

6 个赞

我这里使用xenops就非常的奇怪

我目前用的主题是modus-vivendi

EDIT: 似乎真的是主题的问题,切换到tango-dark就正常了

去读一下xenops获取前后景色的代码试试看下

似乎这个在windows上并不能正常工作

不知道为什么 在windows上org-latex-preview并不能正常工作

org-compile-file: File “c:/Users/…/AppData/Local/Temp/orgtexrRiG9R.dvi” wasn’t produced. Please adjust ‘dvipng’ part of ‘org-preview-latex-process-alist’. mouse-minibuffer-check: Minibuffer window is not active

latex之类的在你的path中吗?

我在path中添加了 “d:/texlive/2022/bin/win32”

在emacs里检查也有这个path

找到导出的.tex缓存的目录,单独去编译看看具体报什么错,我估计可能是编译参数缺少

-shell-escape

的问题

排查下来确实是xenops的问题,我也提了issue给xenops,排查的过程中还一度以为是theme的问题,错误地给modus-theme提了issue,prot大佬真是非常nice,帮忙测试、定位了问题。

目前是只要default字体的background是"black",相应的svg就会被渲染上错误的背景色;如果用png,问题就没了。关于这个问题我试着读了xenops的源码,感觉它获取前后景色的代码是正确的,但是emacs当中渲染svg相关的部分我实在不懂,只能暂时先提issue希望原作者能修一下了。

另一个问题是,xenops有个比较奇怪的地方,对于行间公式,比如

正常地渲染并没有问题

图片

但是再将光标移动上去,回车reveal之后:

预览的公式仍然存在,同时\end{equation*}的部分没有了。

我发现是temp文件夹地址的问题

(if (memq system-type '(windows-nt cygwin)) (setq temporary-file-directory “d:/.emacs_temp”) )

我这样设置后,org-latex-preview 可以正常工作了

我觉得这算一个特性,让你能看着之前的公式进行修改

mac的話也可以用這個:

 (defun hermanhel/org-insert-clipboard-image (img-filename)
    "save clipboard image in ./resource/buffer-filname/img-filname.png, and insert a link to it at point"
    (interactive
     (list (read-string "[filename].png:")))
    (let* ((cur-file (file-name-base buffer-file-name))
          (resource (concat "./resource/" cur-file "/")))
      (when (not (file-directory-p "./resource/"))
        (make-directory "./resource/"))
      (when (not(file-directory-p resource))
        (make-directory resource))
      (shell-command (concat "pngpaste " (shell-quote-argument resource) img-filename ".png"))
      (insert "#+attr_html: :width 600px \n#+ATTR_ORG: :width 600\n") ;; default 900 width.
      (insert  (concat "[[" resource img-filename ".png" "]]"))
      (org-display-inline-images)
    )

這個函數會把剪貼板上的圖片存在./resource/buffer-filename/filename.png,然後在point插一個鏈接,加一個默認高度.

org-bars 非常不错,还有别的美化 org-mode 的包么?

借人气问一下org-latex-preview的一个问题,我以前用spacemacs的碰到过,现在用doom emacs也碰到了。 有些字符,预览的时候会出现下面的情况:

预览确实是好的,但吃掉最后的\end{equation}是否有些太偏激了呢?比如我想换成{equation*}之类的,就无从下手了。

为什么不试试math-preview呢,很好用啊。

不会像inline-preview一样在文件夹下生成一堆图片。

xenops感觉有点重,如果开启hook,导致启动org很慢,preview到是速度很快。不过math-preview也很快。

切换主题颜色也没问题。

不过要装外部软件,npm。这个win下我没用过,linux,mac没什么问题。

2 个赞