emacs 中的 texmode 和 \typein

emacs 中的 texmode 和 \typein

我使用 emacs 在 texmode 下编写我的 latex 源代码。我正在处理的文件需要用户输入:

   \typein[\answer]{Enter info here:  }

每次我在 emacs 中处理此文件时,都会收到错误消息

   Enter info here:  

   ! Emergency stop.
   <read 0> 

   l.6 \typein[\answer]{Enter info here:}
                                      ^^M
   !  ==> Fatal error occurred, no output PDF file produced!

如果我在终端中处理该文件,那么它就可以正常工作,并且不会收到任何错误消息。我应该如何调整我的 emacs 和/或 tex 设置,以便我可以在 emacs 中使用 \typein 处理此文件?谢谢!

答案1

好的,我现在已经检查了如何在 Emacs 中执行此操作(这是针对 GNU Emacs 版本 26.1,但在其他版本中应该没有什么不同)。

假设您使用的是图形版本(而不是纯文本版本),请使用菜单Options并选择Customize Emacs子菜单。在该菜单中,选择Specific Group...。迷你缓冲区中将出现信息请求,询问要自定义哪个组。键入tex-run答案。滚动到 的设置Tex Start Commands,然后展开它。应该有一组单选按钮,其中 被Nonstop ("\nonstopmode\input")选中。选择Interactive (nil)并设置为当前会话(或者,如果您愿意,可以保存以用于将来的会话)。

当然,作为 Emacs,几乎肯定有一种方法可以设置它,而无需乱动菜单,只需在文件中执行某些操作.emacs(或init.el,或类似操作,取决于版本),然后Save for future sessions无论如何都会调整该文件。如果您需要该方法的具体帮助,您需要询问emacs.se,而不是这里。在这种情况下,您需要更改的变量是tex-start-commands

下次 TeX-Compile(C-c C-f,或您定义的任何其他快捷方式)时,它将以交互模式运行。请注意,这意味着如果您的文档有问题,它将停止并寻求您的帮助。但是,在使用 时,它也会要求您输入\typein

相关内容