TexWorks:如何将自定义编译序列添加到可用编译序列选择中?

TexWorks:如何将自定义编译序列添加到可用编译序列选择中?

我使用 MikTex 2.9 和 TexWorks 0.6.3 作为编辑器。由于我经常需要执行编译序列

XeLaTeX -> PdfLatex -> Bibtex -> PdfLatex

我目前必须手动完成,我想将此序列放入某种包装器(批处理文件?)并从 TexWorks 中的下拉菜单中调用此包装器:

在此处输入图片描述

这可能吗?

答案1

TeXworks 将其排版首选项保存在其配置文件夹中名为 tools.ini 的纯文本文件中。注意,内容会因 TeX 引擎的不同而有很大差异,这里有一个带有 MiKTeX 条目的。

在此处输入图片描述

因此你有两个选择

a)直接编辑(确保已经备份,请勿编辑使用 TeXworks 也不当 TeXworks 正在运行时)然而对于您的情况,这可能没有太大帮助,因为有些人可能称之为“平面”格式,看看命令链中XeLaTeX+MakeIndex+BibTeX只有一个名为 texify.exe 的程序。

为了您的使用,我们需要指定一个单一程序来执行您所需的选项 XeLaTeX -> PdfLatex -> Bibtex -> PdfLatex

b) 在 TeXworks Preferences 中向新的处理工具定义添加条目,但是我们刚刚看到,它也受到每次一个进程处理程序的相同限制。

那么最好的方法是什么?还有其他批处理程序,如 latexmk 和 araura这些可以省去很多反复试验的麻烦。

由于我们可以看到 ini 的内容,因此我们可以相当轻松地进行自制并添加额外的工具

注意我有 18 个,所以下一个要添加的是 019将要对你来说有所不同。-shell-escape 应该是可选的,尝试并且没有

[019]
name="XeLaTeX,pdfLaTeX++BibTeX,pdfLaTeX"
program=MyTool.cmd
arguments=$fullname, -shell-escape
showPdf=true

MyTool.cmd 必须位于“路径”的某个位置,最好与 MiKTeX 二进制文件一起,但如果它们也在路径上,这并不重要。

Rem highly simplified to only take %1 = $fullname as passed by MiKTeX NOTE filenames with spaces are most likely to fail. (that has not been but could be allowed for)
Rem optionally %2 passes --shell-escape
::
miktex-xetex.exe  %2 --synctex=1 -undump=xelatex %1
texify.exe --pdf --engine=xetex --synctex=1 --clean %1
miktex-pdftex.exe %2 --synctex=1 -undump=pdflatex %1
::
pause whilst testing
:: remove this pause once testing is done

仅在第一次运行时才需要暂停以检查控制台是否找到并正常工作,通常会有更多的消息,但这是一个快速而粗略的概念证明。

相关内容