退出 pdflatex 时不要打开 vim

退出 pdflatex 时不要打开 vim

当我处理 LaTeX 文档并使用 pdflatex 进行编译时,经常会出现编译错误。为了在从命令行运行 pdflatex 时退出它,我使用以下命令exit来结束 pdflatex 进程:

$ pdflatex kevin.tex
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (preloaded format=pdflatex)
<snip>
! Undefined control sequence.
l.276 ...2' \ldots c_j'\}$, $w \notin \{q_1 \lodts
    q_i\}$. $S \cap T$ is alw...
? exit

一旦我使用 exit 命令,pdflatex 就会立即在 vim 中调出我的 tex 文档。有什么方法可以防止这种情况发生吗?我不希望 pdflatex 在退出时打开任何文本编辑器。我希望命令行终端返回到 shell 并等待更多输入。(我使用不同的文本编辑器进行编辑,每次出现错误后打开 vim 时都必须关闭它,这浪费了我的时间,而且很烦人。)

答案1

当 TeX 在交互模式下出现?错误后显示提示时,你可以选择几种方式,但你应该记住首先您输入的字符决定了后续行为:

  • return 表示“忽略错误并继续”
  • s表示“运行并显示未来的错误消息,除了请求用户输入外不停止”
  • r表示“运行并显示未来的错误消息,如果需要用户输入则停止”
  • q意思是“悄悄地跑”(不展示任何东西)
  • i表示“在输入流中插入一些内容”
  • x意思是“停在这里”
  • e表示“在此处停止并在文件的当前行号处打开编辑器”
  • 一个数字

如果您输入i,TeX 会将您在其后输入的标记插入到按回车键(这将算作一个空格)之后;如果您立即按回车键,系统将提示您插入标记。

如果您输入数字,TeX 将<number>根据其规则从您输入的后续字符中确定。按回车键将忽略<number>输入流中的标记,TeX 将再次停止显示被忽略的标记,等待进一步的输入。除了和数字的情况外i,多余的字符将被忽略。

因此,打字exit与打字完全相同e,具有您所经历的行为。

退出的正确方法是输入x

请注意,小写或大写无关紧要,因此S R Q I X E与 具有相同的效果s r q i x e

在某些实现中,按下 control-D会触发“紧急停止”,基本上类似于键入x。在某些实现中,按下e和 键入 相同x,但在 TeX Live 中则不然,它会使用环境变量的当前值TEXEDIT来打开文件(如果在环境中设置)。该值也可以在顶层texmf.cnf文件中设置。例如,我的顶层texmf.cnf文件是

% (Public domain.)
% This texmf.cnf file should contain only your personal changes from the
% original texmf.cnf (for example, as chosen in the installer).
%
% That is, if you need to make changes to texmf.cnf, put your custom
% settings in this file, which is .../texlive/YYYY/texmf.cnf, rather than
% the distributed file (which is .../texlive/YYYY/texmf-dist/web2c/texmf.cnf).
% And include *only* your changed values, not a copy of the whole thing!
%
TEXMFHOME = ~/Library/texmf
TEXMFVAR = ~/Library/texlive/2014/texmf-var
TEXMFCONFIG = ~/Library/texlive/2014/texmf-config
TEXEDIT = nano +%d '%s'

因此输入e将会打开该文件nano

相关内容