使用 Shell-Escape 设置 LaTeX -> DVIPS -> PS2PDF(在 TeXStudio 中)

使用 Shell-Escape 设置 LaTeX -> DVIPS -> PS2PDF(在 TeXStudio 中)

我正在尝试设置一个“用户命令”,以便TeXStudio进行编译shell-escapeLaTeX -> DviPs -> Ps2Pdf循环。

shell-escape这就是我为了工作和产出所做的一切PDF。[编辑:本节已编辑:见下文解释]

方法 1。TeXStudio首选项 -> Build->中User Commands

latexmk --shell-escape
latexmk -synctex=1 -interaction=nonstopmode --shell-escape %.tex

看截图:顶部用户命令,上面两行是从左到右输入的。

在此处输入图片描述

方法 2。在我的文档顶部插入以下行:

% !TeX TXS-program:compile = txs:///pdflatex/[--shell-escape] 

此行会TeXStudio要求授权进行编译shell-escape。到目前为止,此设置对我来说可以调用shell-escape PDF“动态”产生输出。

经过比喻,我尝试了以下方法:

方法 1b。用户命令:

latex --shell-escape: dvips : ps2pdf : view-pdf
latex -synctex=1 -interaction=nonstopmode --shell-escape %.tex: dvips -o %.ps %.dvi: ps2pdf %.ps

方法 2b。文档顶部:

% !TeX TXS-program:compile = txs:///latex/[--shell-escape]

但那不管用。我走对路了吗?

提供上下文:我的目的是能够编译此处显示的代码:使用 TikZ 重新创建扭索纹。代码依赖于tkz-fct包,显然需要使用shell-escape但不支持pdflatex,这表明该latex -> dvips -> ps2pdf路线是值得尝试的自然路线。而且它是手册中推荐的路线tkz-fct

如何在TexStudio中设置用户命令?是一个 tex-stackexchange 问题,带有指向文档的链接TeXStudio,它解决了相关问题,但没有直接解决这个特定问题。

文档TeXStudio在这里:

http://svn.code.sf.net/p/texstudio/code/trunk/utilities/usermanual_en.html#SECTION02a

编辑:关于我的第一个编辑的解释。我最初写道,我已成功完成以下设置:

pdflatex --shell-escape
pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %.tex

但是,我一直在对顶部有此内容的文档运行此命令:

% !TeX TXS-program:compile = txs:///pdflatex/[--shell-escape] 

事实证明,此行否决了我的用户命令。Harish Kumar 的回答中明确说明了这一点(感谢 Harish!)。如果没有此否决行,我的用户命令将无法成功调用shell-escape。但是,替换pdflatex为确实latexmk调用了,而没有否决行。因此,我修改了我的错误声明。话虽如此,除了它似乎有效之外,shell-escape我对其他了解不多。latexmk

结语:阅读 Harish Kumar 的回答,了解如何正确输入命令。我后来发现的另一件事是,扳手形按钮允许您在现有命令中进行选择并组合多个命令,这样将在命令之间添加适当的分隔符。最后,如果您阅读这里的各种评论,您会发现我很难让它工作的原因之一是因为我试图编译的 LaTeX 文件需要gnuplot但我的系统上没有gnuplot安装,给我的印象是我的命令不起作用(在 Harish 的更正后,它们正常工作)。

答案1

如果你使用

% !TeX TXS-program:compile = txs:///latex/[--shell-escape]

在文档顶部,那么您不需要任何额外的用户命令。只需编译它。然后 texstudio 将使用 编译它latex--shell-escape当然它会征求您的许可)(即使默认构建具有pdflatex作为编译器)并dvi生成文件。然后您可以DVI2PS依次运行 和PS2PDF

现在的问题是 - 您是否愿意使用点击或点击。如果是后者,则定义一个新的用户命令,如下所示:

  1. 在第一个框中输入命令的名称(我的是user2: LaTex.DVIPS.PS2PDF)((user2:您的可能不同)。
  2. 输入命令:

    latex --synctex=1 -interaction=nonstopmode --shell-escape %.tex | dvips -o %.ps %.dvi| ps2pdf %.ps
    

在第二个框中,如下图所示:

在此处输入图片描述

请注意命令分隔符是|,而不是:

现在如果您使用user2: LaTex.DVIPS.PS2PDF编译,则不需要第一行:% !TeX TXS-p...

我明白了:

在此处输入图片描述

相关内容