我通常使用PDFTeXify
、PDFLaTeX
和XeLaTeX
。在 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 的本地副本。