首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs/AUCTeX前缀参数

Emacs/AUCTeX前缀参数
EN

Stack Overflow用户
提问于 2013-02-02 18:04:38
回答 5查看 1.3K关注 0票数 3

在LaTeX模式下,C-c C-c被绑定到:

代码语言:javascript
复制
(TeX-command-master &optional OVERRIDE-CONFIRM)

通常,这个交互函数运行一个命令,可能是一个LaTeX编译,请求确认。

tex-buf.el中,它的内容如下:

如果给定前缀参数重写-确认,则确认将取决于它是否为正,而不是“`TeX命令-列表”中的条目。

这对我来说有点神秘,读C-h v TeX-command-list也没什么用。

如何将前缀参数传递给“TeX-命令-主”,以避免所有确认请求?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-02-05 22:08:53

构建与视图

同样,这个解决方案没有修改TeX-command-master的行为,而是重写它。该命令的重写版本名为build-view,它遵循一个非常简单的逻辑。

  1. 如果LaTeX文件缓冲区未被修改,它将运行默认查看器;
  2. 如果缓冲区是脏的,它将运行默认的LaTeX编译器,并在构建之后在默认查看器中打开输出。

下面是代码:

代码语言:javascript
复制
(defun build-view ()
  (interactive)
  (if (buffer-modified-p)
      (progn  
    (let ((TeX-save-query nil)) 
    (TeX-save-document (TeX-master-file)))
    (setq build-proc (TeX-command "LaTeX" 'TeX-master-file -1))
    (set-process-sentinel  build-proc  'build-sentinel))
    (TeX-view)))

(defun build-sentinel (process event)    
  (if (string= event "finished\n") 
      (TeX-view)
    (message "Errors! Check with C-`")))

您现在可以键入M-x build-view并启动已告知的生成视图过程,或者将其与新的键绑定(如“F2”)关联:

代码语言:javascript
复制
(add-hook 'LaTeX-mode-hook '(lambda () (local-set-key (kbd "<f2>") 'build-view)))

注意:正如泰勒所建议的,TeX-save-query变量是本地更改的,因此旧的C-c C-c/ TeX-command-master不受影响,并将继续询问确认。

请编辑此代码,使其更好或更容易阅读!

票数 2
EN

Stack Overflow用户

发布于 2013-02-04 03:30:34

我对重写-确认位有一段时间感到困惑,不知道它应该如何工作。如果您想在您的文件上自动运行Latex,而不需要先保存它,或者确认您想要latex (而不是查看、bibtex等),那么您可以使用这样的函数:

代码语言:javascript
复制
(defun my-run-latex ()
  (interactive)
  (TeX-save-document (TeX-master-file))
  (TeX-command "LaTeX" 'TeX-master-file -1))

将其绑定到方便的东西上,当您想要使用默认的处理命令时,您仍然可以使用C-c C-c。如果"Latex“不是要调用的处理器,您可能需要修改TeX-command行。

票数 2
EN

Stack Overflow用户

发布于 2013-02-05 02:14:56

OVERRIDE-CONFIRM的谜团似乎还在继续。同时,一位同事建议,如果我们不能管理TeX-command-master,我们可以简单地重写它。

在我的版本中,基于his,如果缓冲区没有被修改,外部查看器就会启动;如果修改了缓冲区,编译器就会运行。未确认是否保存或运行给定命令的所有内容。

代码语言:javascript
复制
(defun my-run-latex ()
  (interactive)
  (if (buffer-modified-p)
      (progn  
        (setq TeX-save-query nil) 
        (TeX-save-document (TeX-master-file))
        (TeX-command "LaTeX" 'TeX-master-file -1))
    (TeX-view)))

当然,我们可以将my-run-latex绑定到任何键绑定。

从用户的角度来看,这是我自己问题的解决方案。我要点击关闭标签吗?嗯,从好奇的人的角度来看,我仍然对理解神秘的TeX-command-master技术感兴趣。

如果有人碰巧知道..。

是的,TeX-save-query重写了保存文件请求,也用了TeX-command-master,即C-c C-c。但你还是会被要求确认命令的行动。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14664829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档