通过 WinEdt 中的下拉按钮更改默认编译器

通过 WinEdt 中的下拉按钮更改默认编译器

我通常使用PDFTeXifyPDFLaTeXXeLaTeX。在 WinEdt 中,工具栏上有一个下拉按钮,其中包含所有这些编译方法。

我想知道是否可以定义一个按钮/热键或更改 compile.edt ,以便当按下按钮/热键或执行编译(附件->编译)时,执行下拉按钮中选择的编译器方法?

需要澄清的是,when XeLaTeX is required从下拉按钮中选择时,编译(附件->编译)不起作用并显示错误。我必须按下拉按钮才能编译代码。

我知道我可以为下拉按钮中的每个编译器定义热键,但仅定义one hotkey或更改下拉按钮中执行所选编译器的 compile.edt 就更好了。

答案1

我已经为 WinEdt 10.2 实现了新的编译宏,您在问题和评论中要求的功能现在都可以在默认设置中使用。

选项 -> 执行模式 -> TeX 选项选项卡 -> 编译(选定)选项中有两个新选项,可让您实现您想要的功能。

编译“ (F9) 和 ”编译选定“”( Shift+F9) 命令现在会考虑这些额外的偏好。

  • 选项 ”使用选定的 TeX 引擎(下拉按钮菜单)

    在此处输入图片描述

    启用此选项后,WinEdt 将使用当前在“TeX 编译“按钮来编译文档。

  • 选项 ”在源码序言中使用 Pragma 注释

    在此处输入图片描述

    启用此选项后,WinEdt 将处理文档前言,如果发现指令注释定义!TeX program和(可选)!BIB program,它将使用指定的可执行文件来编译文档。用于此目的的典型指令注释如下所示:

    % !TEX program = lualatex
    % !BIB program = biber
    

    pragma 注释可执行文件的可接受值为:

    • !TEX program:pdflatex、xelatex、lualatex 或 latex

    • !BIB program:无、默认、bibtex、bibtex8 或 biber


    必须指定!TeX program,否则 WinEdt 将恢复默认编译。如果没有可选!BIB program指定,WinEdt 将执行指定的!TeX program附件。如果指定为 none,情况也是如此!BIB program。否则 WinEdt 将执行“[PDF]TeXify“宏”指定!TeX program为 TeX 引擎。规范:

    % !BIB program = default
    

    使用执行模式接口中定义的 BibTeX 可执行文件。如果对 BibTeX 处理没有特殊要求但仍希望执行“,则可以使用此值[PDF]TeXify“宏,以便使参考书目和/或索引或词汇表保持最新。

答案2

是的,这很容易做到。在 Exec\TeX\Compile.edt 的(本地副本)开头插入以下几行:

  // 如果序言包含如下注释:
  // % !编译器:: “foo”
  // 然后 WinEdt 将执行 foo.edt 编译器(如果存在),例如:
  // TeXify、TeX、AMSTeX、LaTeX、PDFTeXify、PDFTeX、PDFLaTeX、XeTeX、XeLaTeX、LuaTeX、LuaLaTeX、...
  推送标签和注册;
  GetPreamble("\begin{document}",0); // 获取寄存器 0 中的前言
  IfOK(!'放松;',!'JMP(!"Current_Compiler");');
  FindInString("%!0", !'!编译器:: "\(*\)"', 1,1, 11);
  IfOK(!'放松;',!'JMP(!"Current_Compiler");');

  // 首先尝试宏的本地实例:
  IfFileExists('%b\Exec\TeX\%#0.edt',!'放松;',!'JMP(!“Global_Macro”);');
  Exe('%b\Exec\TeX\%#0.edt');
  弹出标签和注册;
  出口;

:全局宏:: ========================================================
  IfFileExists('%B\Exec\TeX\%#0.edt',!'放松;',!'JMP(!"Current_Compiler");');
  Exe('%B\Exec\TeX\%#0.edt');
  弹出标签和注册;
  出口;

:Current_Compiler:: =================================================

  // 执行下拉 TeX 编译按钮中当前选定的编译器
  BtnClick('TeX 编译');
  弹出标签和注册;
  出口;

这将按照注释指定的方式执行编译器,或者在没有这样的注释的情况下模拟单击当前选定的编译器。

使用选项界面(高级部分)创建 Compile.edt 的本地副本。

相关内容