请问各位是怎么结合 emacs 和 latex 的?

这个包只针对 latex fragments 的,我没有用 latex src block。

orgmode 中的 latex 不需要包在 block 里的,直接fragment就行。加 header 也可以,可能得重新生成一下 fragmaster 文件。

image

如果不行,可以在这里或者 github issue 上面提一个最小org文件实例,我试验一下看看。我这边是可以用的(差不多每天都在用)

删掉了 block 还是不行,因为是 latex 新手,可能是自己这边犯了什么低级错误,就先把最小 org 文件发到这里好了。如果确实是包有问题,我再提到 github 上也行。

#+LATEX_HEADER: \usepackage{tikz} 
#+LATEX_HEADER: \usetikzlibrary{arrows,shapes, automata}
\begin{tikzpicture}
    \node[initial,state] 		(A)              {$q_0$};
\end{tikzpicture}

你确定 tikz可以在 auctex 里预览吗?

image

我这里只预览了 latex 公式部分,没有因为缺少包而报错。

这个预览功能只是借用了 auctex 的特性,如果 auctex 做不到,我也无能为力

edit: 刚才试了一下,纯tex 文件用 auctex 也没有预览成功

我刚才在网上查了下,要在 auctex 中预览 tikz 需要加下面这些代码:

(eval-after-load "preview"
  '(add-to-list 'preview-default-preamble "\\PreviewEnvironment{tikzpicture}" t)
  )

然后就可以在纯 tex 中用 (preview-document) 进行预览了,但在 org 中依然没法用 org-latex-preview 预览(另外是应该用这个命令预览吗?)。

1 个赞

我折腾一下试试

image

预览成功了,你更新一下你的 master 文件试试,用我刚才贴的命令

怪了 … 我用了这个命令还是没法预览啊,现在是显示这个image

先看一下现在 preview-default-preamble 这个变量的值

("\\RequirePackage["
 ("," . preview-default-option-list)
 "]{preview}[2004/11/05]" "\\PreviewEnvironment{tikzpicture}")

应该没问题。

到一个干净的目录下面新建一个文件试试,因为预览的时候 auctex 会生成辅助文件,还有 org-edit-latex 也会有一个 fragmaster,这些文件如果没有生成正确是会有这种问题的

今天晚上的技术支持就到此为止了,:joy:, 有问题留言,我明天看到了会回复你

唉,折腾了半天也没解决,目录也换了,好迷。

会不会是 preview 环境的问题啊?我看 auctex preview 的说明里有 \usepackage[xetex]{preview} 这样的配置,你的包会依赖这个吗?

没有,完全从 auctex 来的,理论上 auctex 上能预览,这边就能预览。挺奇怪的,怀疑是 LaTeX 环境没配好,能把你的 __region__.tex 文件发出来看看吗?

这是之前的,我也不清楚是什么时候生成的 :joy: ,不知道是不是你想要的

不太清楚这个文件是通过什么生成的,本来想重新生成一个的,但也没搞出来。

\message{ !name(<none>.tex)}
\message{ !name(<none>) !offset(-2) }
\begin{tikzpicture}
    \node[initial,state] 		(A)              {$q_0$};
\end{tikzpicture}

\message{ !name(<none>.tex) !offset(-7) }

我在 emacs 用 latex 已经写了两本书了,配置的话见 https://github.com/zhcosin/dotemacs,用 org-mode 导 pdf 也是没有问题的,中文也是支持的,不过我没有配置预览,我都是直接编译出来看结果的。主要的配置文件是

  • lisp/init-auctex.el
  • lisp/init-cdlatex.el
  • lisp/init-ox-latex-chinese.el
  • lisp/init-org2pdf.el .

配置介绍见 使用 Emacs 来编写 LaTeX 数学文档

用 latex 写成的书见:

14 个赞

我用orgmode转latex。在org中1不需要怎么设置使用org-latex-preview可以进行公示预览啊。

@et2010 刚刚又折腾了下,终于搞定了。原因大概是 tikz 只能使用 imagemagick 预览,我在导出 pdf 的设置中开启了使用 imagemagick 但在预览中还没有,所以一直不行。 下面是具体解决方法,分享一下:

(setq org-latex-create-formula-image-program 'imagemagick)
(setq org-export-with-latex "imagemagick") ; 和预览无关,仅在导出时可以正常显示 tikz

(add-to-list 'org-latex-packages-alist '("" "tikz" t))

(eval-after-load "preview"
  '(add-to-list 'preview-default-preamble "\\PreviewEnvironment{tikzpicture}" t)
  )

具体原因不清楚,但如果直接设置使用 imagemagick 预览的话,会报错,所以要去 /etc/ImageMagick-7/policy.xml 里把 <policy domain="delegate" rights="none" pattern="gs" /> 给注释掉,这样就搞定了。(还不清楚会有什么副作用)

4 个赞

谢谢大佬, 找了一晚上, 还是在 emacs-china 找到资料 :grinning: