When using the synctex option with pdflatex, it writes out a file
containing paths to the input files. The problem is that
UseLATEX.cmake copies all the input files, so you get a link to
the copy, not the original. To correct for this UseLATEX.cmake
changed the directories back to the input files, but it only
did so for relative paths. pdflatex writes out absolute paths,
so these were not properly converted. This should fix that issue.
I also noticed that some of the "input" files are actually those
produced by latex programs (e.g. .aux, .bbl). Trying to convert
these paths to the input would cause pointers to files that do
not exist. To try to correct for this I only convert paths of
files of known extensions.
When running LaTeX in batch mode, it might not print any output when a
failure occurs. So, when running in this mode, cat out the log failure
if a LaTeX error occurs.
The implementation for this wraps the latex call in a CMake script
that runs latex and checks the return value. If not a success value,
reads and then prints the log.
The ps2pdf command is really just a script, and on the Windows port
it is a bat file. The Windows command interpreter for bat files treat
= as a special character, so on Windows you should use # instead.
A user reported that converting a pdf to an eps was failing because his
pdftops program, which was a recent build/release, did not support the
-r flag, which sets the resolution used when objects are rasterized.
After some searching, I believe the issue is that there are two versions
of pdftops running around: one from Poppler and one from Xpdf. The former
supports the raster resolution flag, the latter does not.
Rather than jump through hoops trying to identify which one is installed
on a system, I just removed the flag. The consequence is that rasterized
objects will use a smaller resolution (the default is 300 dpi, and we were
setting it to 600 dpi). However, if you start engaging rasterization, then
the result probably is not looking as good anyway.
Previously, the EXCLUDE_FROM_ALL option broke both the dependency from
the all target and the dependency from the dvi, pdf, etc. targets. However,
there is plenty of reason to want only one or the other, so the
EXCLUDE_FROM_ALL option was broken up into a second EXCLUDE_FROM_DEFAULTS
that controls the second set of dependencies.
Older versions of Windows use the path C:\Windows\system32. Newer ones
use the path C:\Windows\System32 (with a capitol S). They are somewhat
equivalent because Windows file system is not case sensitive, but it
made the check for the system32 directory fail. This change first converts
the path the lowercase to do a non case sensitive comparison.
Previously, all image files were classified into groups of files supported
by latex and those supported by pdflatex. This change also defines files
that are not directly supported by either (and therefore always have to
be converted).
Also added svg, tiff, and gif files to the list of those supported.
Some distributions of LaTeX simply do not handle image files with multiple
periods properly (they cannot identify the extension/format correctly).
The warning suggests best practice of renaming files.
Variables holding things like LATEX_ADD_DOCUMENT arguments have to cached
now that we are using functions instead of macros. They should be declared
internal since the user should neither see nor set them, but I had
misspelled INTERNAL.