The general problem is that Acrobat opens PDF files with write access so that PDF files cannot be modified externally by LyX/LaTeX.
The old pdfview used the programs pdfopen and pdfclose to open and close PDF files in Acrobat and it additionally closed and opened the PDF whenever it was changed (to simulate LyX's update button).
Since Acrobat DC (aka Acrobat 15) it is no longer possible to close PDF files in Acrobat. Due to changes in the Acrobat API also the pdfopen program can no longer be used.
Besides this the approach of updating the PDF whenever it changed was always a hack that often killed Acrobat. The reason is that one cannot immediately update the PDF view if the PDF is changed because depending on the size LaTeX needs up to several seconds to generate the PDF. If the PDF is opened while TeX is still creating is one get error messages from Acrobat Acrobat must be restarted - very annoying. During the years I experimented with a wait time to minimize these problems but of course it can never be solved.
The new pdfview version uses a completely different approach:
- it checks if the PDF is opened by Acrobat by reading the window name. If it is found this program windows will be closed. So Acrobat is not ended and other opened PDF files stay opened.
- to update the PDF view from within LyX one has to press the view button, not the update button. Only this way we know that TeX is ready and the PDF can be opened by Acrobat with write permissions.
- the installer now re-synchronize MiKTeX's package database before installing or updating LaTeX-packages. This assures that new packages and renamed packages can automatically be installed when they are missing (fixes bug #9370)
- update the list of LaTeX packages that have to be installed when LyX is installed via the bundle installer for the first time on a PC
- add support for Turkish spell-checking
As discussed with Vincent I added 3 new features:
* LyX can now also be installed over an existing installation of the same LyX version if the users really wants this.
(A message box appears recommending not to do so for test releases and when there are problems with an existing installation of the same release.)
* LyX can now also be installed if the uninstaller executable of a former LyX was accidentally deleted.
(That this case was not handled was more a bug. Thanks Vicent for the pointer.)
* If a user set MiKTeX's automatic package installation to "No" the installer will.
(As discussed with Vincent, if a user has disabled this MiKTeX feature he most probably know the consequences. So respect his decision.)
respect that and not re-enable it.
I would be happy if anybody can spend a translation of the changed installer message.
- known problem: if LyX 2.0.x is installed and you install 2.1rc1, the .lyx file associations will not be updated but if LyX 2.1 is installed on a new PC the file associations work (work is in progress)
- it turned out that the hack to install a stripped-down Perl directly to MiKTEX is not only error-prone, requires admin permission but that it is also not safe because MiKTeX changes the folder structure from time to time. With the new solution Perl is installed directly for LyX like we do for ImageMagick, Python etc.
- for pdfcrop support there is a bug in pdfcriop that the requirement is hardcoded to Ghostscript 32bit - I contacted the pdfcrop author to fix this
- the installer does nw the job of replacing the magyar.ldf with the fixed version [http://wiki.lyx.org/Windows/Hungarian]
- install the Mongolian hyphenation pattern to MiKTeX
- update eLyXer
- update to new MiKTeX installer that fixes a bug with updating Packages
- don't ship cbgreek because it is so huge that its download would last 10 minutes or more
- the installer will now recognize an already installed 64bit MiKTeX
- the installer will still install 32bit MiKTeX for new installations because biblatex does not yet work with 64bit MiKTeX
LyX 2.0.x supports currently 147 LaTeX-packages. When LyX is first installed on a PC it took therefore about 10 minutes to install all supported and required packages. With the new installation method the installation speed only depends on the Internet speed and lasts with an average bandwidth now only 3.5 minutes.
(chkconfig.ltx asks LaTeX for each package separately and after each package installation the file name database of LaTeX was rebuild. And that cost a lot of time/CPU power)
LaTeX.nsh:
- fix a MiKTeX configuration Problem on 64bit Windows issue discovered in #8417
- don't overwrite MiKTeX's package repository the user might have set purposely
- remove some unused code and simplify some code
- update to JabRef 2.9.2
- LaTeX.nsh: fixe http://nsis.sourceforge.net/Download
- settings.nsh: adapt path so that one needs to adapt less when using the installer source zip file
- add a readme how to build the installer
- LaTeX.nsh: assure that if MiKTeX is installed for all users also the missing packages will be installed during the configuration for all users
- configure.nsh: run configure.py twice to assure that really all missing packages are checked/installed
- LaTeX.nsh: fix bug that installer stopped working if LyX was installed the first time on a computer
- init.nsh:
- fix failing installation of Slovakian spellcheck dictionary
- expand list of available dictionaries as requested by users
- dictionaries.nsh: prevent case that the installer could run an infinite loop if the installation of dictionaries was interrupted
- settings.nsh: use a HTTP repository for MiKTeX instead of FTP because many companies deny FTP access by default in their firewalls
This is already done by the program pdfview every time it is called. This additionally fixes the bug that viewing PDF files could fail if Acrobat was not the default PDF viewer of the system while LyX was installed, but became later the default PDF viewer.
- to be able to support Adobe Reader/Acrobat XI I had to use new binaries for opening/closing PDFs. That way I found the solution for a long standing and super annoying PDF viewing bug (not 100% perfect but works for more than 95% of the cases, while formerly the view failed for all cases where LaTeX run more than once when updating a PDF view)
- avoid doubled semicolon in LaTeX editor path list
- correct path to the JabRef installation folder in LyX's PATH
- updated to JabRef 2.8.1
- rename the installer executables from LyX-205-x-Bundle.exe
- fix uninstallation of Metafile2EPS pinter
- fix un/installation of JabRef if the bundle version is executed without admin privileges
- some whitespace fixes
- dictionaries.nsh: code documentation and simplification
- lyx.nsi: comment out currently unused code
- init.nsh: some corrections and fix bug that info that JabRef and MiKTeX were installed together with LyX was deleted before the uninstaller was really run
- LaTeX.nsh: documentation and fix a bug (for an unknown reason SHCTX can be used to read and delte but not to write in the registry)
- gui.nsh: enable descriptions
- detection: move dictionary code to dictionaries
- detection.nsh:
- fixed detection of the LaTeX source file editors
- removed support for obsolete LaTeX source file editors
- init.nsh:
- don't allow to install an older LyX version over a newer one
- support dictionaries for new languages that will be supported by LyX 2.1
- remove registry entries of current LyX version when installing a newer version over it
- remove the error-prone method of finding dictionaries by renaming some
- add new dictionaries for future LyX 2.1 (more to come)
- update and correct some dictionary sizes
- fix detection of the possible 64bit programs jedit, Gimp, GhostScript and GSview
- remove detection of old Vim version