有人能解释一下如何获取pdfopen
/pdfclose
使用 Adobe Reader XI 吗?如果您能尽可能详细地说明,我将不胜感激。我在 Windows 7 上使用 Miktex 2.9。
Tex 编辑器 Winedt 版本 5.5
有关问题的更多信息:
如果关闭 Adobe Reader (AR) 并点击 Winedt 上的 Pdf Texify 按钮,程序会编译并打开 AR,但是,文件 Acrobat OpenDoc.edt 会立即在 Winedt 编辑器中打开,并弹出以下消息:
无法打开 DDE 链接到:“C:\Program Files (x86) \Adobe\Reader 11.0\Reader\AcroRd32.edx”服务:Acroview 主题:control DDEOpen('%$(“AcroRead”)',”acroview”,”control”,0);
如果我想再次编译我的 tex 文件,我需要先手动关闭 AR。
我认为它可能与此处描述的问题有关: http://sourceforge.net/p/miktex/bugs/2190/
但我不知道如何实施所建议的内容。
答案1
Adobe Reader XI 版本(即版本 11)的 DDE 服务器名称必须为AcroViewR11
,参见。Acrobat X 的 DDE 命名约定发生重大变化。根据错误信息你仍然使用acroview
。
您还可以在博客文章中读到,对于 Adobe Acrobat XI,DDE 服务器将是AcroViewA11
。
答案2
对于那些仍然使用 Adobe Reader 作为 WinEdt 7 的预览器(而不是更适合此任务的应用程序:SumatraPDF)并考虑升级到 AR 11 的人,以下是您应该了解的内容。
AR 11 安装程序“忘记”使用新的 DDE 服务更新注册表(实际上它放置了旧的 AcroViewR10)。因此,WinEdt 将无法执行前向搜索或在重新编译之前关闭被 AR 锁定的文件。您可以在以下位置阅读更多相关信息:
http://forums.adobe.com/message/4792194
或通过 google 获取更多信息(它会影响所有依赖 Adobe DDE 服务的应用程序)...
解决方案(如果您仍然坚持使用 AR):在 WinEdt 中启动选项界面。在高级分支中打开 PDF 宏并双击 Adobe Blues。最后您将看到类似以下内容:
// If you must manually modify any of these variables do it here:
//
// Assign(!"PDF-Caption",!"Adobe Reader");
// Assign(!"Acro-DDE_Topic",!"Control");
// Assign(!"Acro-DDE_Service",!"AcroviewR11");
删除最后一行的注释并执行宏(Ctrl+F9
)。如果您拥有完整版 Acrobat(而不是免费阅读器),则服务可能是 AcroviewA11,或者只是 Acroview for Acrobat Pro(尝试几个值,直到它适用于您的版本)。
请记住这些有关下一版 Adobe 的说明...
答案3
我刚刚用 WinEdt 7.0 测试了它。安装 Reader XI 后,它运行起来没有任何变化。
我不知道 WinEdt 5.5 的菜单,但在 WinEdt 7.0 下,您可以选择Options
-> Execution Modes
-> PDF Viewer
。在那里您可以添加 4 个不同的 pdf 查看器。选择一个并搜索 Acrobat 阅读器的路径。单击Alternative Reader x
和激活它Apply
。之后我能够使用 Acrobat Reader XI 显示 pdf 文件。
答案4
我正在使用 WinEdt (v. 5.4) 和 Adobe Professional 8,我使用以下方法解决了我的问题此方法。为了完整起见,以下是讨论的摘录:
From: <wkehowski <at> cox.net>
Subject: Acrobat Reader 7.0 problem
Newsgroups: gmane.editors.winedt
Date: 2005-12-02 15:31:08 GMT (7 years, 8 weeks, 9 hours and 32 minutes ago)
Hello,
I finally successfully uncommented the IfLocked line in the macro Acrobat CloseDoc.edt and now Reader
closes and updates properly. I placed the macro in my Application Data/WinEdt/Exec folder.
Thanks for your help, Alex. Rock on!
Here's the edited macro:
// -*- ASCII:EDT -*-
// Acrobat: Close PDF Document ...
// Full description of all DDE Functions implemented by Acrobat (only
// some are also supported by Acrobat Reader as indicated for each one):
//
// https://partners.adobe.com/asn/acrobat/sdk/reg/Documentation/Core_API/CoreAPIReference.pdf
Requires(20040114); // Requires this build of WinEdt to work properly
// Close the current Document in Acrobat (Reader) using DDE
IfOK(>
!*>
ProcessMessages;>
DDEOpen("%$(""AcroRead"")","acroview","control");>
// A bug in Adobe: if another application (eg. TeXify) started it with 8.3 filename
// WinEdt has to use 8.3 filename as well or else Adobe will not close the document!
// Nothing WinEdt can do about this (8.3 filenames are obsolete anyway)...
// DDEExe("[DocOpen(""%~P\%~N.pdf"")]"); // Has to be Opened via DDE DocOpen<>
// DDEExe("[DocClose(""%~P\%~N.pdf"")]"); // for DocClose to work...<>
// DDEExe("[CloseAllDocs()]"); // A bit too radical <>
DDEExe("[DocOpen(""%P\%N.pdf"")]"); // Has to be Opened via DDE DocOpen<>
DDEExe("[DocClose(""%P\%N.pdf"")]"); // for DocClose to work...<>
DDEClose;>
// Sync problem - wait until the file is released:<>
// Acrobat Reader may take some time to release the pdf file!<>
StartWorking('Closing PDF Document...');>
SendMessage("%$(`Acro-Title`);", $0000, $0000);>
ProcessMessages;>
LetRegNum(0,0);>
Loop( // Prevent an Infinite Loop: 5 sec. max<>
!|LetRegNum(0,%!0+1);IfNum(%!0,55,'>','Stop;');>
IfFileLocked("%P\%N.pdf", 00110,!'ProcessMessages;Wait(99);',!'Stop;',!'Stop;');>
|);>
SetFocus;>
ProcessMessages;>
StopWorking;>
//Prompt('Required Iterations: %!0.'); // Testing for Problems<>
*);
End;