如何在 AUCTeX 中执行两部分“动作”?

如何在 AUCTeX 中执行两部分“动作”?

我一直在阅读 pgf 和 tikz 手册,我也想直接从我的 tex 文件生成 svg。手册说我需要运行:

lualatex --output-format=dvi example
dvisvgm example

我想在使用 AUCTeX 时自动执行此过程,以便我可以C-c C-c tikzsvg在我的文件上运行这两个命令。到目前为止,我知道我需要修改TeX-command-list以添加新的 AUCTeX“命令”。我有两个问题:

  1. 运行命令的语法看起来很复杂,有很多字符串替换。检查变量TeX-expand-list-builtin对于理解所有替换没有太大帮助。
  2. 该过程涉及两个连续的命令,我不确定如何告诉 auctex 一个接一个地运行。

有人能提供一些关于如何实现这一点的指导吗?这个问题更适合 emacs se 吗?

答案1

TeX-command-list您可以通过在中添加如下内容来进行补充.emacs

(eval-after-load "tex"
  '(add-to-list 'TeX-command-list
                '("tikzsvg" "lualatex --output-format=dvi %s && dvisvgm %s"
                   TeX-run-command t t :help "Run LuaLaTeX and dvisvgm") t))

此次新增内容如下:

  1. "tikzsvg"是当您点击时向您呈现的命令的名称C-c C-c
  2. 第二个字符串被传递给 shell。你可以使用&&操作符链接命令
  3. %s扩展为主文件的名称
  4. TeX-run-command使用 2 中的命令创建一个异步进程,并在单独的缓冲区中显示输出
  5. 首先t让你修改 Minibuffer 中的扩展字符串
  6. 第二个命令t使该命令在每种模式下都可用
  7. :help菜单中显示以下字符串

相关内容