Ulrike Fischer 的回答表明,之前类似的问题都已经过时了。最新的一个是
Adobe Acrobat Pro DC 2017 和 WinEdt 的问题
指的是 AcroviewA17 和 AcroviewR17,这些已经被编号为 18 的版本所取代。该问题答案中的其他建议对我来说也没有用,但我认为不值得详细说明原因,因为它已经过时了。
我正在使用 WinEdt 10 Build: 20170413 (v. 10.2) - 64 位,以及完全更新的 MiXTeK 2.9,以及 Acrobat Pro DC 持续发布版本 2018.009.20044。事实上,今天早上在我更新完所有内容后,这个问题就出现在我的另一台机器上。
我一直在使用“启动查看器”和“向前搜索”选项。但现在 PDFLaTeX 和 PDFTeXify 无法关闭已打开的 PDF 文件。因此它们无法进行向前搜索。
如果我上次运行时打开了 pdf,那么虽然日志文件中没有显示任何内容,但会打开一个对话框,提示
警告
无法打开指向“C:\Program Files (x86)\Adobe\Acrobat”的 DDE 链接
名为 PDFCloseDoc.edt 的文件包含以下内容:
// DDE ==================================================================== DDEOpen("%$('PDF-View')","%$('Acro-DDE_Service');","%$('Acro-DDE_Topic');"); IfOK(!"Relax;",!"DDEClose;JMP('Done');"); DDEExe('[AppHide()]');
// 从 Acrobat 8 开始,DocOpen 必须执行两次,否则 Adobe 会崩溃!
DDEExe('[DocOpen("%P\%N.pdf")]'); DDEExe('[DocClose("%P\%N.pdf")]]');
即使没有打开 pdf,但我已设置正向搜索选项,PDFTeXify 也会创建一个新的 pdf 并打开到第一页,但是当它进行正向搜索时,它会显示相同的消息。
有没有简单的解决办法或者我应该尝试重新安装一些东西?
问题如果 Adobe 仍处于打开状态,则无法使用 pdftex
和
pdfopen / pdfclose 不适用于 Acrobat/Adobe Reader XI
描述 4 和 5 年前基本相同的问题。这些修复方法是否仍然是最佳方法,或者它们现在是否有效?
答案1
Adobe 会定期更改调用 DDE 服务所需的名称。此名称无法猜测或从注册表中提取,因此您需要自行调整 winedt 中的配置。
最新版本的 Winedt(2017 年 4 月构建)有一个在菜单中添加 DDE 名称的选项Options -> Execution Modes ->PDF-Viewer
。在那里添加AcroviewR18
(Reader)或AcroviewA18
(Adobe Pro):
如果您只有一个 Adobe 应用程序,那么这种方法就很好用。但我有两个,并且我已向 winedt 添加了一个弹出菜单,以便使用快捷键在两个应用程序(和 sumatra)之间切换。因此,在旧版本中,我有一个本地版本的 Adobe.edt(见下文)来将内部变量设置为正确的 DDE 名称。
我现在重新考虑了这个解决方案。该值位于变量 ( Acro-DDE_Service
) 中,因此也可以使用宏进行更改。因此,我删除了本地Adobe.edt
并添加了
Assign('Acro-DDE_Service','AcroviewR18')
和
Assign('Acro-DDE_Service','AcroviewA18')
到我的弹出菜单中的命令。
我对 Adobe.edt 的旧更改:
R18 适用于新版 Reader。A18 适用于新版 Adobe Pro。宏会根据所使用的应用程序创建“AcroviewR18”或“AcroviewA18”:
// As of Adobe X DDE Service is version-dependent (eg. AcroViewR10 or AcroViewA10)
Assign(!'Acro-DDE_Service',!'Acroview');
// Adobe Blues: Registry does not contain proper value for Adobe X!
// http://forums.adobe.com/message/3323310
IfNum('%!3','10','<',!'JMP(!"DDE_OK");');
// Add R or A + Major Version...
//UF LetReg(4,'R%!3');
LetReg(4,'R17');
//\UF
FindInString("%$('PDF-View');",'Acrobat.exe',1,2,1000,1);
//UF IfOK(!"LetReg(4,'A%!3');");
IfOK(!"LetReg(4,'A18');");
//\UF
Assign(!'Acro-DDE_Service','%$("Acro-DDE_Service");%!4');
// Prompt('DDE Service: %$("Acro-DDE_Service");');
更改/添加本地 .edt 文件后,重新启动 winedt。