Commit graph

79 commits

Author SHA1 Message Date
Kenneth Moreland
26426e23ec Support for multind package (thanks to Dan Lipsa) 2015-09-03 13:46:10 -06:00
Kenneth Moreland
7c30cef708 Fix issue where pdf, etc. where declared each time UseLATEX was loaded.
In a large project, it is not uncommon to have LaTeX documents built in
different subdirectories and to have each subdirectory include
UseLATEX.cmake. However, loading UseLATEX.cmake multiple times caused
the pdf, dvi, etc. targets to be created multiple times even though the
intention is to have them loaded once. This change creates each target
only once.
2015-08-25 13:46:56 -06:00
Christoph Grüninger
640891fd25 Fix typos
and a trailing white space.
2015-07-11 17:13:32 +02:00
Kenneth Moreland
74ae43a968 Add explicit errors when using removed options. 2015-04-09 14:24:31 -06:00
Kenneth Moreland
2ce9fb7097 Update copyright and license information. 2015-04-09 13:53:09 -06:00
Kenneth Moreland
5bb6a7a638 Add EXCLUDE_FROM_DEFAULTS option
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.
2015-04-09 11:46:56 -06:00
Kenneth Moreland
e603d1f003 Typo.
Pointed out by Izaak Beekman.
2015-02-20 23:25:31 -07:00
Kenneth Moreland
59cc0e32ce Forgot to add dependency from auxclean target to mangled targed. 2014-12-19 14:52:55 +05:30
Kenneth Moreland
5f7c265521 Update documentation for mangled naming. 2014-12-15 17:18:54 +05:30
Kenneth Moreland
78a7233a33 Automatically mangle LaTeX targets.
This way when you call add_latex_document multiple times you do not get
multiply defined targets.
2014-12-15 16:34:59 +05:30
Kenneth Moreland
9e1f62b5dc Update documentation for how default builds work. 2014-12-15 14:49:22 +05:30
Kenneth Moreland
a01764abf1 Add FORCE_* arguments. 2014-12-15 00:25:02 -05:00
Kenneth Moreland
9778983e16 Change how default builds are specified.
Removed the DEFAULT_* arguments. Instead, have a CMake variable named
LATEX_DEFAULT_BUILD that specifies what the default build should be.
This CMake variable is initialized with an environment variable of the
same name or PDF if none is specified. This allows each user to specify
a default build without having to change the configuration.

There is also an EXCLUDE_FROM_ALL option that, like the same option in
add_executable, keeps the document from being built in the default all
target.
2014-12-14 23:33:03 -05:00
Kenneth Moreland
11e29805bc Mark variables for executables advanced.
UseLATEX.cmake finds several executables for compiling documents and
converting files. Previously these were not marked as advanced, but
CMake now conventionally makes them advanced to avoid cluttering the
GUI.
2014-12-14 16:40:34 -05:00
Kenneth Moreland
91cc27cbc3 Remove some deprecated features. 2014-12-14 16:33:40 -05:00
Kenneth Moreland
5468246176 Explicitly list the main tex file as an argument.
Should make errors easier to trace.
2014-12-14 15:55:34 -05:00
Kenneth Moreland
f77b563329 Clean up some set commands.
Change "set (" to "set("

Change some set commands that were actually appending a list to a list(append
command, which shows better the point of the command and could be faster.
2014-12-14 15:40:16 -05:00
Kenneth Moreland
2eb8826243 Use the parse argument function that comes with CMake.
That module is actually based off the code that originally came from
UseLATEX.cmake, but now that it exists and is supported by the CMake
community, there is no reason to have a second copy here.
2014-12-14 15:16:19 -05:00
Kenneth Moreland
2cf610a36b Update else/endif arguments.
The arguments for else and endif commands are now no longer necessary. In
fact, the are no longer encouraged. This is because, in addition to it
being annoying to exactly match expressions, it becomes confusing when
there is an else clause. (The expression is actually the inverse of the
case for the else clause.)
2014-12-14 11:08:31 -06:00
Kenneth Moreland
77fe49f7c1 Change capitalized function names to lower case function names.
This is the "new" style in CMake. It's actually been around a while, but
UseLATEX.cmake was not updated previously.
2014-12-14 10:56:29 -06:00
Martin Baute
3264be4f0f Fix check for Window's convert.
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.
2014-06-12 11:36:37 -06:00
Christoph Grüninger
fa0fc39926 White space changes: Replace tabs and remove trailing spaces.
Remove an old commented line.
2014-05-25 15:35:03 +02:00
Kenneth Moreland
7155d6374d Copy font files for packages with fonts. 2014-03-19 12:05:23 -06:00
Kenneth Moreland
387cf24870 Check for Windows version of convert and give error.
Thanks to Martin Baute.
2013-11-16 08:28:22 -07:00
Kenneth Moreland
a337f2668a Fix issue of setting LATEX2HTML_CONVERTER to HTLATEX_CONVERTER. 2013-10-31 17:09:04 -06:00
Tomasz Grzegurzko
50661481a7 Use htlatex as a fallback when latex2html is not available. 2013-10-31 09:46:02 -06:00
Kenneth Moreland
b2065e7ed2 Update patch version and document change. 2013-10-02 09:35:33 -06:00
Julien Schueller
264791bd71 Make convert program mandatory only if actually needed.
This is like what is already done for ps2pdf and pdftops.
2013-10-02 09:27:12 -06:00
Kenneth Moreland
0005385708 Fix problem with aux file of main file in subdirectory. 2013-03-12 12:19:01 -06:00
Kenneth Moreland
a424ee4298 Add NO_DEFAULT and DEFAULT_PS options 2013-03-12 09:39:05 -06:00
Kenneth Moreland
b1d4071114 Strengthen check comparing output to input directories.
Previously, a simple string compare was performed.  However, if the
user enters a relative string to LATEX_OUTPUT_PATH ("." would be
expected), then the string compare to the absolute path in
CMAKE_CURRENT_SOURCE_DIR would fail even though the two paths point
to the same place.

Fix the problem by first converting LATEX_OUTPUT_PATH to an absolute
path.
2013-02-04 10:49:57 -07:00
Kenneth Moreland
2e6847b561 Fix problem with LATEX_SMALL_IMAGES.
A recent change from macros to functions changed the scoping rules
that caused the variable that held the raster scale to not be defined
where the build targets were generated (and thus scaling did not occur).
2013-02-04 10:30:26 -07:00
Kenneth Moreland
6e08608b2c Add a class of image files not directly supported by LaTeX.
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.
2012-10-01 08:59:58 -04:00
Kenneth Moreland
28524f18ba Add warning for image files with multiple periods.
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.
2012-06-26 09:46:21 -06:00
Kenneth Moreland
b3073dd638 Fix issues with identifying extensions.
The behavior of GET_FILENAME_COMPONENTS with arguments NAME_WE and EXT
would identify the extension as everything after the *first* period.
This messes up the identification of file types, which pretty much
always have short extensions (like .tex, .bib, .eps, etc.).
2012-06-26 09:01:17 -06:00
Kenneth Moreland
5fd9c1270f Hide internal variables from GUI.
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.
2012-06-11 10:04:20 -06:00
Kenneth Moreland
b92794f5b1 Add ability to use pdftops for conversions. 2012-05-02 14:02:29 -06:00
Kenneth Moreland
a30554f4ec Update UseLATEX.cmake to use functions instead of macros.
Functions have scoping rules that avoid nasty errors.
2012-05-02 13:43:35 -06:00
Kenneth Moreland
b7cc2bb5a2 Fixed typo that caused the LATEX_SMALL_IMAGES option to fail to activate. 2012-03-14 17:00:19 -06:00
Kenneth Moreland
337167bd5d Move bibtex on main back in multibib if statement.
This basically undo's commit acc72788dd.

Apparently, there IS harm in running bibtex on an aux file with no cites
in it.  Bibtex will give you an error in this case.  It is also unclear
whether it is even possible to use the standard cites when using bibtex
or if you ever want to.  If you do, there is still the fallback of
adding the main target to the MULTIBIB_NEWCITES command, if you know
enough to do so.
2012-03-01 15:56:26 -07:00
Kenneth Moreland
8385c6be43 Add comments for MULTIBIB_NEWCITES option for documentation.
Also update history.
2012-02-29 13:07:36 -07:00
Kenneth Moreland
b2ff69f9c8 Clean auxiliary files created by multibib.
Also be flexible if user gives aux files rather than suffix names in
the MULTIBIB_NEWCITES option.
2012-02-29 12:49:45 -07:00
Kenneth Moreland
74884dab2b Issue warning when using MULTIBIB_NEWCITES without BIBFILES.
The option will have no effect if used without the other.
2012-02-29 12:43:34 -07:00
Kenneth Moreland
acc72788dd Always run bibtex on main aux file with multibib.
Even when using multibib, it is possible to still use the main cite
commands that go to the main aux file.  Might as well run bibtex there.
There should be no harm.
2012-02-29 12:38:07 -07:00
Kenneth Moreland
822f46d0ba Change MULTIBIBFILES option to MULTIBIB_NEWCITES.
I was confused when this was presented to me.  I thought it represented
multiple .bib files, which is not the case.  It represents aux files
created with the \newcites command in the multibib package.  I hope this
name will create less confusion.
2012-02-29 12:36:26 -07:00
Antonio LaTorre
e263ea7e1e Basic support for multibib package.
The multibib package creates extra aux files that have to separately be
processed by bibtex.
2012-02-29 12:28:33 -07:00
Kenneth Moreland
bc8f67127a Fix corner case when an argument name is a variable.
When parsing arguments, there is an IF statement that compares an
argument to an argument name (such as BIBFILES, IMAGES, etc.).
If there exists a variable with the same name, then the IF statement
will also try to dereference the variable and compare them.  Thus,
if that variable equaled one of the arguments, it would be incorrectly
identified as an argument name.

As an example, consider this CMake code.

set(BIBFILES mydoc.bib)
add_latex_document(mydoc.tex BIBFILES ${BIBFILES})

These arguments, obviously, expand to "mydoc.tex;BIBFILES;mydoc.bib".
When checking the argument mydoc.bib, you would expect it to be
considered an argument to BIBFILES.  However, deep in the call stack
there is an if statement that expands to

IF (BIBFILES STREQUAL mydoc.bib)

Clearly we mean these to be unequal.  But because BIBFILES is also
a variable containing mydoc.bib, CMake considers this to be true.
Thus, UseLATEX though mydoc.bib was the start of a list of bibliography
files rather than a bibliography file itself.

The problem is solved by prepending "non_a_var_" to each string we
are comparing.

IF (not_a_var_BIBFILES STREQUAL not_a_var_mydoc.bib)

This makes it highly unlikely that either side of this comparison
will be a variable that gets expanded.
2011-12-07 08:18:16 -07:00
Kenneth Moreland
2625f1475c Fix problem where ps2pdf was not getting the appropriate arguments. 2011-08-24 08:02:30 -06:00
Kenneth Moreland
364bf7618e Support SyncTeX. 2011-07-19 10:13:00 -06:00
Kenneth Moreland
a9ed0efabe Clean up clean targets.
Add all known auxiliary files that LaTeX generates to the clean target.
Also add the final generated files (dvi, ps, pdf).  Also add these
files to the auxclean target, which differs from the regular clean
in that it does not clean things like images that take a while to
rebuild.
2011-07-07 10:15:37 -06:00