3

Ulrike Fischer's answer shows the previous similar questions are all out of date. The latest of them,

Problems with Adobe Acrobat Pro DC 2017 and WinEdt

refers to AcroviewA17 and AcroviewR17 and these have already been replaced by versions numbered 18. Other advice in the answer to that question also has not worked for me but I think it not worth detailing the reasons since it is out of date.

I am using WinEdt 10 Build: 20170413 (v. 10.2) - 64-bit, and fully updated MiXTeK 2.9, with Acrobat Pro DC continuous release version 2018.009.20044. In fact the problem just appeared on another of my machines this morning, immediately after updating everything.

I had been using the options Start Viewer and Forward search. But just now PDFLaTeX and PDFTeXify have become unable to close the pdf for a file if it is open. And so they cannot do forward search.

If I left the pdf open from a previous run then, though nothing shows in the log file, a dialogue box opens saying

Warning

Cannot open DDE link to "C:\Program Files (x86)\Adobe\Acrobat

And a file called PDFCloseDoc.edt has this:

// DDE ============================================================== DDEOpen("%$('PDF-View')","%$('Acro-DDE_Service');","%$('Acro-DDE_Topic');"); IfOK(!"Relax;",!"DDEClose;JMP('Done');"); DDEExe('[AppHide()]');
// As of Acrobat 8 DocOpen must be done twice or else Adobe Crashes!
DDEExe('[DocOpen("%P\%N.pdf")]'); DDEExe('[DocClose("%P\%N.pdf")]]');

And even if no pdf is open, but I have the option set for forward search PDFTeXify creates a new pdf and opens to the first page but then when it would do the forward search it gives those same messages.

Is there an easy fix or should I try reinstalling something?

Questions Unable to use pdftex if Adobe is still open

and

pdfopen / pdfclose don't work with Acrobat/Adobe Reader XI

Describe essentially the same problem 4 and 5 years ago. Are those fixes still best or do they even work now?

marked as duplicate by Stefan Pinnow, Kurt, TeXnician, Bobyandbob, barbara beeton Nov 15 '17 at 13:40

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 3
    The title of the question is wrong: It is not miktex that closes a pdf but winedt. What is the version of your adobe reader? Side remark: I wouldn't use the adobe reader for forward search but sumatra. – Ulrike Fischer Nov 15 '17 at 8:30
7

Adobe regularly changes the names you need to call the DDE service. This name can not be guessed or extracted from the registry, so you need to adapt the configuration in winedt yourself.

The newest Winedt version (build April 2017) has an option to add the DDE-name in the Menu Options -> Execution Modes ->PDF-Viewer. Add there either AcroviewR18 (Reader) or AcroviewA18 (Adobe Pro):

enter image description here

This works fine if you have only one of the Adobe applications. But I have both and I have added a popup menu to winedt to switch between both (and sumatra) with shortkeys. So in older version I had a local version of Adobe.edt (see below) to set the internal variable to the correct DDE-name.

I have now reconsidered this solution. The value is in a variable (Acro-DDE_Service) and so can also be changed with macros. Therefore I remove the local Adobe.edt and added instead

      Assign('Acro-DDE_Service','AcroviewR18')

and

      Assign('Acro-DDE_Service','AcroviewA18')

to the commands in my popup menus.

My old changes of Adobe.edt:

R18 is for the new Reader. A18 for the new Adobe Pro versions. The macros creates "AcroviewR18" or "AcroviewA18" depending on the application used:

 // 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");');

Restart winedt after you changed/added the local .edt-file.

  • Looks good, but I have tried to locate the local .edt-file and not found it. Would it be in a WinEdt folder or an Adobe folder? – Colin McLarty Nov 18 '17 at 12:03
  • You need to create it. Find the original .edt and copy it to your local winedt folder in the same location. – Ulrike Fischer Nov 18 '17 at 12:15
  • I believe I have edited the file without finding it. In WinEdt I went into Options; Execution Modes; PDF Viewer and manually changed the line saying Acroview17 so that it says Acroview18. It works so far. Is that a good way to do it? – Colin McLarty Nov 18 '17 at 12:44
  • 1
    I have don't this option, my winedt is a bit older than yours. But according to the change log (winedt.com/log.html) this the right place to change the DDE name now. When I get an updated winedt I will add a screenshot of this option. – Ulrike Fischer Nov 18 '17 at 14:09
  • 1
    If one wants to modify Adobe.edt for this, it's better to follow my advice in the answer of the duplicate question. – karlkoeller Nov 20 '17 at 6:42

Not the answer you're looking for? Browse other questions tagged or ask your own question.