GithubHelp home page GithubHelp logo

shiblon / latex-makefile Goto Github PK

View Code? Open in Web Editor NEW
186.0 16.0 30.0 3.15 MB

A Makefile for LaTeX - drop it in, type make, and magic happens.

License: Other

Python 5.97% Shell 1.16% TeX 5.21% Makefile 80.13% sed 7.53%

latex-makefile's Introduction

#LaTeX Makefile

This is a single GNU makefile that builds a LaTeX document into various targets with minimal latex/bibtex invocations. It colorizes and swallows the normally unhelpful latex output so that errors and other important messages are easy to spot. It handles GNUplot, Fig, and Dot image creation (and many more formats besides), and does automatic dependency tracking.

Perhaps most important, it is convenient because it is a single file and only depends on standard Unix utilities that are likely to exist on any system. It includes built-in help documentation and various utilities to test whether it will work on your system. Just drop it in your source directory and type make. Is something not working? Type make help | less.

latex-makefile's People

Contributors

adamgagorik avatar amcnabb avatar janpipek avatar mindrunner avatar shiblon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

latex-makefile's Issues

make: type: Command not found

Originally reported on Google Code with ID 19

Revision 34 makes it so that the binary for echo is always used instead of
the builtin.  Unfortunately, it uses `type` to do this, which apparently
isn't everywhere.   I got the error:

make: type: Command not found

If it helps, I checked and the shell has `type`, but there is no binary
called `type`.

Reported by amcnabb8 on 2008-04-01 19:17:32

fig -> pdftex[_t] conversion

Hi,

I generally use Xfig files, which I convert to pdftex[_t] and include in my document as

\input{figs/omsp.pdftex_t}

However, the Makefile doesn't appear to be aware of them at the moment. It is, however aware of pstex[_t] documents. I've tried duplicating this to support pdftex[_t] conversion (see [0]), but to no avail.

However, I haven't been able to exercise the pstex_t bit of code in my test either.

$ make BUILD_STRATEGY=latex
NOTE: You may ignore warnings about the following files:

     lw.d

../latex.mk:2561: lw.d: No such file or directory
NOTE: You may ignore warnings about the following files:

     lw.bib.d

= lw.tex --> lw.d lw.dvi.1st.make (0-1) =
= lw.aux --> lw.bib.d =
make: *** No rule to make target 'figs/omsp.pstex_t.tex', needed by 'lw.d'.  Stop.

Is this still a working feature? How should the pdftex_t support be implemented?

[0] https://github.com/shtrom/latex-makefile/compare/pdftex?diff=unified&expand=1

sed error when generating gnuplot files in sub directories.

Originally reported on Google Code with ID 7

In my directory with the makefile I have a subdirectory, graphs, containing
most of my .gpi files. When then are generated sed throws this error (this
is for the file 'graphs/52te.gpi'):

= graphs/52te.gpi --> graphs/52te.gpi.d =
sed: 1: "  s/.*/graphs/52te.eps  ...": bad flag in substitute command: 'e'

Looks like the directory separator / needs to be escaped for sed.

Everything still works correctly.

Reported by mahonri5 on 2006-12-12 07:41:48

Correct line numbers for errors/warnings

Originally reported on Google Code with ID 39

I often see an error such as:

LaTeX Warning: Reference `fig:assign-by-x' on page 76 undefined on input line 2

That line should be 232, its cut off because of the 80 character limit, and
placed on the next line. It would be great if we could get the right line
number.

This is tricky because I can't figure out how to get latex to use more than
80 chars. See
http://stackoverflow.com/questions/1289680/latex-command-line-line-length/1289866
for a not hugely useful discussion.

I guess you'll have to parse across the newline boundary in the case of an
80 character line ending in numbers where the next line starts with numbers?

Reported by paul.biggar on 2009-08-17 20:23:08

error making .tex file.

Originally reported on Google Code with ID 12

Here is what I've got doing
   make VERBOSE=1 SHELL_DEBUG=1 negotiationProtocol
with Makefile in the same directory with negotiationProtocol.tex

seems like dvi file is negotiationProtocol.dvi.1st.make, however
negotiationProtocol.dvi is needed for dvips.

--- files created --------------------------------
-rwxrwxrwx 1 root root  5303 2008-03-15 21:35 negotiationProtocol.aux*
-rwxrwxrwx 1 root root  5303 2008-03-15 21:35
negotiationProtocol.aux.19850.make*
-rwxrwxrwx 1 root root     0 2008-03-15 21:35
negotiationProtocol.aux.19850.sed.make*
-rwxrwxrwx 1 root root  5125 2008-03-15 21:35 negotiationProtocol.aux.make*
-rwxrwxrwx 1 root root  8832 2008-03-15 21:35 negotiationProtocol.d*
-rwxrwxrwx 1 root root 33416 2008-03-15 21:35 negotiationProtocol.dvi.1st.make*
-rwxrwxrwx 1 root root  9750 2008-03-15 21:35 negotiationProtocol.fls*
-rwxrwxrwx 1 root root 12909 2008-03-15 21:35 negotiationProtocol.log*
-rwxrwxrwx 1 root root   115 2008-03-15 21:35 negotiationProtocol.ps.log*
-rwxrwxrwx 1 root root  4816 2008-03-13 22:19 negotiationProtocol.tex*
----------------------------------------------

--- output -----------------------------------
$ make VERBOSE=1 SHELL_DEBUG=1 negotiationProtocol
+ tput setaf 0
+ tput setaf 1
+ tput setaf 2
+ tput setaf 3
+ tput setaf 4
+ tput setaf 5
+ tput setaf 6
+ tput setaf 7
+ tput bold
+ tput smul
+ tput sgr0
+ echo 'NOTE: You may ignore warnings about the' 'following files:'
NOTE: You may ignore warnings about the following files:
+ echo

+ echo '     negotiationProtocol.d'
     negotiationProtocol.d
+ echo ''

Makefile:1423: negotiationProtocol.d: No such file or directory
echo "= negotiationProtocol.tex --> negotiationProtocol.d
negotiationProtocol.dvi (1) ="
+ echo '= negotiationProtocol.tex --> negotiationProtocol.d
negotiationProtocol.dvi (1) ='
= negotiationProtocol.tex --> negotiationProtocol.d negotiationProtocol.dvi
(1) =
\
        latex --interaction=batchmode --recorder negotiationProtocol.tex >
/dev/null || :; \
        mv -f negotiationProtocol.dvi negotiationProtocol.dvi.1st.make; \
        sed -e '/\\@input{\(.*\)}/{' -e     's//\1/' -e     's![.:]!\\&!g'
-e     'h' -e     's!.*!\\:\\\\@input{&}:{!' -e     'p' -e     'x' -e    
's/.*/r &/p' -e     's/.*/d/p' -e     's/.*/}/p' -e     'd' -e '}' -e 'd'
'negotiationProtocol.aux' > "negotiationProtocol.aux.$$.sed.make"; sed -f
"negotiationProtocol.aux.$$.sed.make" 'negotiationProtocol.aux' >
"negotiationProtocol.aux.$$.make"; sed -e '/^\\relax/d' -e '/^\\bibcite/d'
-e 's/^\(\\newlabel{[^}]\{1,\}}\).*/\1/' "negotiationProtocol.aux.$$.make"
| sort > 'negotiationProtocol.aux.make'; :; \
        echo "# vim: ft=make" > negotiationProtocol.d; \
        echo ".PHONY: negotiationProtocol._graphics" >>
negotiationProtocol.d; \
        sed -e '/^INPUT/!d' -e 's!^INPUT
\(\./\)\{0,1\}!negotiationProtocol.aux negotiationProtocol.aux.make
negotiationProtocol.d negotiationProtocol.dvi: !' -e '/\.tex$/p' -e
'/\.cls$/p' -e '/\.sty$/p' -e 'd' negotiationProtocol.fls | sort | uniq >>
negotiationProtocol.d; \
        sed -e '/^File:/!d' -e 'N' -e 's/\n//g' -e '/Graphic file/!d' -e
's/^File: //' -e 's/ Graphic.*$//' -e '/^\(.*\)\(\.[^.]*\)$/{' -e  
's//negotiationProtocol.d negotiationProtocol.dvi
negotiationProtocol._graphics: \1\2/' -e   'p' -e   's/[^:]*:
\(.*\)\(\.[^.]*\)$/-include \1.gpi.d/' -e   'p' -e   'd' -e '}'
negotiationProtocol.log | sort |uniq >> negotiationProtocol.d; \
        sed -e '/^! LaTeX Error: File/!d' -e 's/^.*`//' -e 's/'"'"' not
found\..*//' -e '/\.pstex_t$/!d' -e '/^\(.*\)\(\.[^.]*\)$/{' -e  
's//negotiationProtocol.d negotiationProtocol.dvi
negotiationProtocol._graphics: \1\2/' -e   'p' -e   's/^\([^:]*:
\)\(.*\)\(\.[^.]*\)_t$/\1\2\3/' -e   'p' -e   'd' -e '}'
negotiationProtocol.log | sort | uniq >> negotiationProtocol.d; \
        sed -e 's/^No file \(.*\)\.ind\.$/negotiationProtocol.d
negotiationProtocol.aux negotiationProtocol.aux.make: \1.ind/p' -e 'd'
negotiationProtocol.log | sort | uniq >> negotiationProtocol.d; \
        sed -e '/^\\bibdata/!d' -e 's/\\bibdata{\([^}]*\)}/\1,/' -e
's/,\{2,\}/,/g' -e 's/,/.bib /g' -e 's/ \{1,\}$//'
negotiationProtocol.aux.make | xargs kpsewhich - | sed -e
's/^/negotiationProtocol.bbl negotiationProtocol.aux
negotiationProtocol.aux.make: /' | \sort | uniq >> negotiationProtocol.d; \
        for s in toc out lot lof nav; do \
                if [ -e "negotiationProtocol.$s" ]; then \
                        if ! diff -q negotiationProtocol.$s
negotiationProtocol.$s.make 2>/dev/null; then \
                                touch negotiationProtocol.run.cookie; \
                        fi; \
                        cp -f negotiationProtocol.$s
negotiationProtocol.$s.make; \
                fi; \
        done
+ latex --interaction=batchmode --recorder negotiationProtocol.tex
+ mv -f negotiationProtocol.dvi negotiationProtocol.dvi.1st.make
+ sed -e '/\\@input{\(.*\)}/{' -e 's//\1/' -e 's![.:]!\\&!g' -e h -e
's!.*!\\:\\\\@input{&}:{!' -e p -e x -e 's/.*/r &/p' -e 's/.*/d/p' -e
's/.*/}/p' -e d -e '}' -e d negotiationProtocol.aux
+ sed -f negotiationProtocol.aux.19850.sed.make negotiationProtocol.aux
+ sed -e '/^\\relax/d' -e '/^\\bibcite/d' -e
's/^\(\\newlabel{[^}]\{1,\}}\).*/\1/' negotiationProtocol.aux.19850.make
+ sort
+ :
+ echo '# vim: ft=make'
+ echo '.PHONY: negotiationProtocol._graphics'
+ sed -e '/^INPUT/!d' -e 's!^INPUT \(\./\)\{0,1\}!negotiationProtocol.aux
negotiationProtocol.aux.make negotiationProtocol.d negotiationProtocol.dvi:
!' -e '/\.tex$/p' -e '/\.cls$/p' -e '/\.sty$/p' -e d negotiationProtocol.fls
+ sort
+ uniq
+ sed -e '/^File:/!d' -e N -e 's/\n//g' -e '/Graphic file/!d' -e 's/^File:
//' -e 's/ Graphic.*$//' -e '/^\(.*\)\(\.[^.]*\)$/{' -e
's//negotiationProtocol.d negotiationProtocol.dvi
negotiationProtocol._graphics: \1\2/' -e p -e 's/[^:]*:
\(.*\)\(\.[^.]*\)$/-include \1.gpi.d/' -e p -e d -e '}' negotiationProtocol.log
+ sort
+ uniq
+ sed -e '/^! LaTeX Error: File/!d' -e 's/^.*`//' -e 's/'\'' not
found\..*//' -e '/\.pstex_t$/!d' -e '/^\(.*\)\(\.[^.]*\)$/{' -e
's//negotiationProtocol.d negotiationProtocol.dvi
negotiationProtocol._graphics: \1\2/' -e p -e 's/^\([^:]*:
\)\(.*\)\(\.[^.]*\)_t$/\1\2\3/' -e p -e d -e '}' negotiationProtocol.log
+ sort
+ uniq
+ sed -e 's/^No file \(.*\)\.ind\.$/negotiationProtocol.d
negotiationProtocol.aux negotiationProtocol.aux.make: \1.ind/p' -e d
negotiationProtocol.log
+ sort
+ uniq
+ sed -e '/^\\bibdata/!d' -e 's/\\bibdata{\([^}]*\)}/\1,/' -e
's/,\{2,\}/,/g' -e 's/,/.bib /g' -e 's/ \{1,\}$//' negotiationProtocol.aux.make
+ xargs kpsewhich -
+ sed -e 's/^/negotiationProtocol.bbl negotiationProtocol.aux
negotiationProtocol.aux.make: /'
+ sort
+ uniq
+ for s in toc out lot lof nav
+ '[' -e negotiationProtocol.toc ']'
+ for s in toc out lot lof nav
+ '[' -e negotiationProtocol.out ']'
+ for s in toc out lot lof nav
+ '[' -e negotiationProtocol.lot ']'
+ for s in toc out lot lof nav
+ '[' -e negotiationProtocol.lof ']'
+ for s in toc out lot lof nav
+ '[' -e negotiationProtocol.nav ']'
+ tput setaf 0
+ tput setaf 1
+ tput setaf 2
+ tput setaf 3
+ tput setaf 4
+ tput setaf 5
+ tput setaf 6
+ tput setaf 7
+ tput bold
+ tput smul
+ tput sgr0
sed \
        -e '/\\documentclass/,/}/{' \
        -e '  s/%.*//' \
        -e '  H' \
        -e '  /}/{' \
        -e '    s/.*//' \
        -e '    x' \
        -e '    /\\documentclass/!d' \
        -e '    s/[\n[:space:]]*//g' \
        -e '    s/\([,{[]\)\([[:alnum:]]\{1,\}\)paper\([],}]\)/\1%-\2-%\3/g' \
        -e '    s/\([,{[]\)\(landscape\)\([],}]\)/\1%-\2-%\3/g' \
        -e '    s/^[^%]*%-//' \
        -e '    s/-%[^%]*$//' \
        -e '    s/-%[^%]%-/ /g' \
        -e '    p' \
        -e '  }' \
        -e '  d' \
        -e '}' \
        -e 'd' \
        negotiationProtocol.tex > negotiationProtocol.paper.make; \
        egrep -q '^[^%]*\\documentclass[^{]*{beamer}'
negotiationProtocol.tex && \
        (\
                egrep -q '^%%[[:space:]]*BEAMER[[:space:]]*LARGE$'
negotiationProtocol.tex && \
                echo "BEAMER" > negotiationProtocol.paper.make || \
                : > negotiationProtocol.paper.make \
        ) || :
+ sed -e '/\\documentclass/,/}/{' -e '  s/%.*//' -e '  H' -e '  /}/{' -e '
   s/.*//' -e '    x' -e '    /\\documentclass/!d' -e '   
s/[\n[:space:]]*//g' -e '   
s/\([,{[]\)\([[:alnum:]]\{1,\}\)paper\([],}]\)/\1%-\2-%\3/g' -e '   
s/\([,{[]\)\(landscape\)\([],}]\)/\1%-\2-%\3/g' -e '    s/^[^%]*%-//' -e '
   s/-%[^%]*$//' -e '    s/-%[^%]%-/ /g' -e '    p' -e '  }' -e '  d' -e
'}' -e d negotiationProtocol.tex
+ egrep -q '^[^%]*\\documentclass[^{]*{beamer}' negotiationProtocol.tex
+ :
+ cat negotiationProtocol.paper.make
echo "= negotiationProtocol.dvi --> negotiationProtocol.ps ="
+ echo '= negotiationProtocol.dvi --> negotiationProtocol.ps ='
= negotiationProtocol.dvi --> negotiationProtocol.ps =
dvips -o 'negotiationProtocol.ps.temp' -t\documentclass{article}
'negotiationProtocol.dvi'  > negotiationProtocol.ps.log 2>&1; \
        if [ x"$?" = x"0" ]; then \
            cat negotiationProtocol.ps.log; \
            mv -f 'negotiationProtocol.ps.temp' 'negotiationProtocol.ps'; \
        else \
            cat negotiationProtocol.ps.log; \
            :; \
            ! :; \
        fi
+ dvips -o negotiationProtocol.ps.temp '-tdocumentclass{article}'
negotiationProtocol.dvi
+ '[' x1 = x0 ']'
+ cat negotiationProtocol.ps.log
This is dvips(k) 5.95b Copyright 2005 Radical Eye Software (www.radicaleye.com)
dvips: ! DVI file can't be opened.
+ :
+ :
make: *** [negotiationProtocol.ps] Error 1
rm negotiationProtocol.paper.make
---------------------------------------------

Reported by bryndin on 2008-03-16 01:43:46

enh: xmgrace

Originally reported on Google Code with ID 27

I added support for xmgrace graphs.

Reported by rolandschulzhd on 2009-03-08 04:24:21


- _Attachment: [patch_xmgrace](https://storage.googleapis.com/google-code-attachments/latex-makefile/issue-27/comment-0/patch_xmgrace)_

Okular and kpdf do not reload file

Originally reported on Google Code with ID 37

In Okular, there is an option to watch the pdf file, and reload it if it
changes (similar to the 'watch file' feature in gv). This seems to only
work if the pdf file is deleted before its regenerated. It breaks using
latex-makefile, since latex-makefile overwrites it using 'mv'.

This isnt a bug in latex-makefile, but the workaround is simple (patch for
2.1.26):

Index: Makefile
===================================================================
--- Makefile    (revision 1739)
+++ Makefile    (working copy)
@@ -1637,6 +1637,7 @@
    $(QUIET)$(call make-pdf,$<,[email protected],[email protected],$*.embed.make); \
    if [ x"$$?" = x"0" ]; then \
        $(if $(VERBOSE),$(CAT) [email protected],:); \
+       $(RM) '$@'; \
        $(MV) '[email protected]' '$@'; \
    else \
        $(CAT) [email protected]; \
@@ -1651,6 +1652,7 @@
            $(firstword $(shell $(CAT) $*.paper.make))); \
    if [ x"$$?" = x"0" ]; then \
        $(if $(VERBOSE),$(CAT) [email protected],:); \
+       $(RM) '$@'; \
        $(MV) '[email protected]' '$@'; \
    else \
        $(CAT) [email protected]; \



Reported by paul.biggar on 2009-08-06 16:31:03

Package warnings are overlooked

Originally reported on Google Code with ID 38

This warning is not reported by latex-makefile, even though it is on the log:


Package natbib Warning: Citation `cytron etc' on page 7 undefined on input line
 17.


This patch seems to fix it.


Index: Makefile
===================================================================
--- Makefile    (revision 1929)
+++ Makefile    (working copy)
@@ -1287,6 +1287,7 @@
    -e '}' \
    -e 's/^! *LaTeX Error:.*/$(C_ERROR)&$(C_RESET)/' -e 't' \
    -e 's/^LaTeX Warning:.*/$(C_WARNING)&$(C_RESET)/' -e 't' \
+   -e 's/^Package .* Warning:.*/$(C_WARNING)&$(C_RESET)/' -e 't' \
    -e 's/^Underfull.*/$(C_UNDERFULL)&$(C_RESET)/' -e 't' \
    -e 's/^Overfull.*/$(C_OVERFULL)&$(C_RESET)/' -e 't' \
    $(if $(VERBOSE),,-e 'd')


Thanks,
Paul

Reported by paul.biggar on 2009-08-17 18:50:19

Silent failure with runaway caption arguments

I have noticed several silent failures trying to process ill-formed latex files such as the following:

\documentclass{article}
\begin{document}
\begin{figure}
\caption{We forgot the closing brace on this caption!
\end{figure}
\end{document}

The output from building a makefile and running make in a directory with the above tex in test.tex is

$ make
NOTE: You may ignore warnings about the following files:

     test.d

Makefile:2873: test.d: No such file or directory
= test.tex --> test.d test.pdf.1st.make (0-1) =
= test.tex --> test.d test.pdf.1st.make (1-1) =
= test.tex --> test.pdf (1-2) =

Which does not produce any obvious warnings or indications that the make failed and that no pdf was generated (except of course that it doesn't print the usual 'success!' message).

Running pdflatex directly does produce a warning:

$ pdflatex test.tex
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014/MacPorts 2014_5) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./test.tex
LaTeX2e <2014/05/01>
Babel <3.9k> and hyphenation patterns for 43 languages loaded.
(/opt/local/share/texmf-texlive/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/opt/local/share/texmf-texlive/tex/latex/base/size10.clo)) (./test.aux))
Runaway argument?
{We forgot the closing brace on this caption! \end {figure} \end {doc\ETC.
! File ended while scanning use of \@xdblarg.
<inserted text>
                \par
<*> test.tex

Adding "pstex" support

Originally reported on Google Code with ID 9

(Sorry for my English if I say anything weird.)

Hi,

I was trying to add the pstex support, the ability to convert fig files to
pstex and pstex_t files while some tex files take them as inputs. I've been
including fig files in this way so I'd be happy to see the combination of
this powerful Makefile and this function.

pstex and pstex_t files can be generated from fig files by:
% fig2dev -L pstex foo.fig foo.pstex
% fig2dev -L pstex_t foo.fig foo.pstex_t
and the figure is included in some tex file by:
\input{foo.pstex_t}

So far I've made it working but the solution is not elegant. The problem is
that pstex_t files must be generated *before* the first pass; the "latex
--record" won't even help since the engine doesn't log the file it didn't
find. In the end, every possibly included file is generated no matter
whether it's included or not.

It seems reasonable to me to extract all "\include{xxx.pstex_t}" by some
script but I don't know how to do it with only "sed" if there are multiple
inclusions within one line.

Also note that the gray support is broken if it's invoked by "make
xxx._gray_" because I don't quite understand how to impose the correct
dependencies. In any case if "xxx._gray_.pstex_t"s are always generated as
well then (I think) it would work.

Anyway, my dirty patch is attached and hope it'd help. I'd appreciate if a
nice pstex support is added. And thanks for this amazing program which
saves me from the LaTeX hell. :D

Favonius

Reported by favonia on 2007-10-27 03:35:07


- _Attachment: [pstex.diff](https://storage.googleapis.com/google-code-attachments/latex-makefile/issue-9/comment-0/pstex.diff)_

Can't make eps files included in external cls files

Hi,

I get an error when I try to run make, that does not appear if I run xelatex manually on my file. It seems like the script thinks an image file logo.eps is in the current directory, when it actually is part of a package from TEXMFHOME.
make: *** No rule to make target 'logo', needed by 'main.d'.

My files have the following file structure:

~/foo/bar/main.tex
~/.texmf/tex/latex/foo/bar.cls
~/.texmf/tex/latex/foo/logo.eps

Manual xelatex understands that logo.eps is in ~/.texmf/tex/latex/foo/, whilst the make script does not.
If I instead have a logo.png in ~/.texmf/tex/latex/foo/, there is no issue.

Undefined citations - missing Bibliography

Originally reported on Google Code with ID 4

Petr Fousek &lt;[email protected]&gt;

Provided Makefile cannot access citations which it should find and thus
the output pdf is bad. The &quot;classical&quot; hand approach is shown to work
okay in &quot;batch_that_works&quot; script.

To reproduce:

1. extract the archive, run &quot;batch_that_works&quot;
   - this produces correct output dis.pdf (5 pages)

2. remove all start again

3. run &quot;make&quot;
   - this produces only 3-pages file dis.pdf and complains about
missing references.

A point to note: When the main file dis.tex is replaced by
dis.tex_THIS_WORKS, then the output is OK. This could help solving the
issue.

I am running Makefile 2.1.0 on linux FC4 and its native TeX. All tools
that the Makefile requires are present (make _check_programs is OK).

Reported by shiblon on 2006-10-17 15:58:21

Add ReST files to possible inputs

Originally reported on Google Code with ID 8

Any file that ends with .rst or .rest should be compilable to .tex using
rst2latex.py, and therefore can be built automatically by the makefile. 
Add this functionality.

Reported by shiblon on 2007-02-19 21:52:17

Extra aux files

Originally reported on Google Code with ID 20

After running make twice and running `ls *.make`, I notice that the
following files are in the working directory:

paper.aux.2619.make  paper.aux.2736.sed.make  paper.aux.make
paper.aux.2619.sed.make  paper.auxbbl.make
paper.aux.2736.make  paper.auxdvi.make

It looks like a paper.aux.####.make and paper.aux.####.sed.make file are
created each time that make creates a dvi file.  Over time, more and more
build up, so I've been running `make clean` occasionally to get rid of them.

I didn't report this earlier because I thought it might be related to an
open issue, but I just updated to revision 35 and noticed that this was
still happening.

Thanks!

Reported by amcnabb8 on 2008-04-09 15:55:12

Inkscape pdf+LaTeX support

Beside the normal pdf export, Inkscape features a pdf+LaTeX mode, in which Inkscape exports an extra file containing the text, which is being typeset and inserted by LaTeX.

From graphic.svg Inkscape produces graphic.pdf without text and a graphic.pdf_tex for typesetting (or graphic.eps and graphic.eps_tex respectively).
The file is then included not with \includegraphics{graphic.pdf}, but using \input{graphic.pdf_tex}.

What would be the appropriate way to include automatic compiling in this makefile?
I'd be glad to implement this feature, but unfortunately I don't know where to start.

Make ps2pdf14 the default program fo embedded fonts

Originally reported on Google Code with ID 30

ps2pdf13 doesn't always pass muster lately with IEEE PDF eXpress, so we
have to use ps2pdf14 instead for embedding fonts.  This should be made the
default, and we can fall back to ps2pdf13 in cases where version 14 is not
available (since it works for other submissions).

Reported by shiblon on 2009-03-27 12:29:25

Read preserved extensions from the ini file

Originally reported on Google Code with ID 29

The idea is that one could specify in the Makefile.ini file (i.e. outside
the real Makefile) which extensions should not be touched while cleaning.

E.g., it is useful to clean everything but the pdf files.

Reported by Adam.Michal.Malecki on 2009-03-27 10:06:01

Makefile don't work with filenames like "Math project.tex"

Originally reported on Google Code with ID 24

What steps will reproduce the problem?
1. Create an file with a whitespace (For example "The Tetons and the Snake
River.tex") in the filename.
2. Type 'make'

What is the expected output? What do you see instead?
The makefile should invoke the necessary actions for the file, instead the
makefile treats every part of the filename (delimited with a space) as a
single file.

What version of the product are you using? On what operating system?
Latest Svn (Rev 44), Mac OS X and Terminal.app

Please provide any additional information below.
I don't know if this is possible with make, but I think whitespace-support
is important.

Reported by ulrich.moritz on 2008-11-07 16:10:45

Pass through terminal settings for Gnuplot files

Originally reported on Google Code with ID 25

Gnuplot's postscript terminal has tons of advanced settings, including
solid, linewidth, rounded vs. butt, etc.  Right now we can pass through the
fontsize and grayscale options via special comments.  Special-casing all of
the possible options would be a nightmare, but it would be really helpful
to be able to pass the options through.

It's incredibly unfortunate that Gnuplot doesn't let you set terminal
options independently of selecting the active terminal.  Given what we have
to work with, I can think of two or three possibilities:

1) Create a special comment called "POSTSCRIPT".  Everything after
"POSTSCRIPT=" would get appended to the "set terminal" command.

2) If the user has a "set terminal" command, parse it for extra options. 
Unfortunately, this would make it impossible to do "gnuplot -persist".

3) Allow the user to specify a comment indicating that the Makefile
shouldn't add a "set terminal" command.  Then they could specify their own
global._include_.gpi to set terminal settings.  The main drawback to this
is that you can't specify different headers for different files.

4) Look for a special comment called "TERMFILE" that indicates a special
file to be loaded.  This file would be expected to have a "set terminal"
line, and the Makefile would not insert a terminal command.

I think I like option (4) the best, but I'm curious about what your
opinions are.

Thanks.

Reported by amcnabb8 on 2008-11-11 17:46:28

Misleading error produced when package is unavailable

Originally reported on Google Code with ID 13

What steps will reproduce the problem?
1. Create a tex file that calls usepackage for a non-existent package.
2. Run make.


What is the expected output?

When running `latex` on the broken file, the output ends with:

"""
! LaTeX Error: File `hypernat.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

Enter file name:
"""

The LaTeX Error should be output by make.



What do you see instead?

"""
amcnabb@prodigy% make
NOTE: You may ignore warnings about the following files:

     proposal.d

Makefile:1423: proposal.d: No such file or directory
= proposal.tex --> proposal.d proposal.dvi (1) =
mv: cannot stat `proposal.dvi': No such file or directory
sed: can't read proposal.aux: No such file or directory
sed: can't read proposal.aux: No such file or directory
= proposal.dvi --> proposal.ps =
This is dvips(k) 5.95a Copyright 2005 Radical Eye Software (www.radicaleye.com)
dvips: ! DVI file can't be opened.
make: *** [proposal.ps] Error 1
rm proposal.paper.make
"""


What version of the product are you using? On what operating system?

SVN Revision 29 on Linux

Reported by amcnabb8 on 2008-03-19 17:46:20

Makefile does not handle index

Originally reported on Google Code with ID 11

The makefile does not handle index's. I have attached a patch so that it
will generate the index if it finds \makeindex in the .tex file

The patch is attached.

Reported by abachn on 2008-02-27 13:06:02


- _Attachment: [makeindex.patch](https://storage.googleapis.com/google-code-attachments/latex-makefile/issue-11/comment-0/makeindex.patch)_

Warning interpreted as failure.

Originally reported on Google Code with ID 17

Using byuprop.cls, a hyperref-related warning is triggered.  It's a
warning, not an error, so make should print it out and continue.  However,
it fails with the following output:


! pdfTeX warning (ext4): destination with the same identifier (name{page.1}) ha
s been already used, duplicate ignored
<to be read again> 
                   \penalty 
l.156 
       [1

make: *** [proposal.dvi] Error 1

Reported by amcnabb8 on 2008-03-25 20:08:18

When there is nothing to do, sometimes output sometimes not

Originally reported on Google Code with ID 34

What steps will reproduce the problem?

Run make with no arguments multiple times in a row (without changing any source files).

Unfortunately, I am not sure the precise series of steps required. I notice this happening
semi-
randomly, but presumably it is related to the state of the set of auxiliary files created
by TeX.

What is the expected output? What do you see instead?

In the case where no source files have changed, sometimes make produces no output at
all, 
other times it outputs "make: Nothing to be done for `all'." It would be nice if make
always 
produced no output in this circumstance, or at least was consistent.

What version of the product are you using? On what operating system?

2.1.25 on Mac OS X 10.5.6

Please provide any additional information below.

Occasionally when I am doing copyediting on a LaTeX file, I like to run the makefile
in a loop 
from my shell (with a "sleep 3" or something thrown in). Then I can make a change in
my .tex 
file, save it, and within a few seconds see the PDF updated. When make outputs the
"Nothing to 
be done" message, it just fills up my Terminal window. No biggie, but kinda annoying.

Reported by rbrewer on 2009-04-22 04:43:35

suspected potential race condition when rebuilding dvi files

Originally reported on Google Code with ID 16

What steps will reproduce the problem?
1. untar testcase.tar.gz to a new directory
2. check out lastest Makefile in the trunk (r33)
3. run `make'

What is the expected output? What do you see instead?

Expected:

NOTE: You may ignore warnings about the following files:

     test.d

Makefile:1442: test.d: No such file or directory
= test.tex --> test.d test.dvi (1) =
mv: cannot stat `test.dvi': No such file or directory
sleep 1;
= pstex-test.fig --> pstex-test.pstex =
= pstex-test.fig pstex-test.pstex --> pstex-test.pstex_t =
= test.tex --> test.d test.dvi (1) =
Success!  Wrote 1 page, 516 bytes
= test.dvi --> test.ps =
= test.ps --> test.pdf =
rm test.paper.make test.embed.make

Reality:
NOTE: You may ignore warnings about the following files:

     test.d

Makefile:1442: test.d: No such file or directory
= test.tex --> test.d test.dvi (1) =
mv: cannot stat `test.dvi': No such file or directory
= pstex-test.fig --> pstex-test.pstex =
= pstex-test.fig pstex-test.pstex --> pstex-test.pstex_t =

! Emergency stop.
<read *> 

l.10 \input{pstex-test.pstex_t}
                               ^^M
ead from terminal in nonstop modes)

make: *** [test.dvi] Error 1

What version of the product are you using? On what operating system?

Makefile (r33) from the trunk
GNU Make 3.81
GNU sed 4.1.5
GNU bash 3.2.33(1)-release
TexLive where `latex --version' shows `3.141592-1.40.3-2.2 (Web2C 7.5.6)'
Linux distro: Ubuntu Hardy (8.04)

Please provide any additional information below.

I suspects that there's a race condition when Make finishes its first dvi
building. Sometimes after the file referred by `! LaTeX Error: File XXX not
found' is remade, Make chooses the wrong rule (%.dvi: %.bbl %.aux) and
outputted fatal messages. Trying to prove my concept, I hacked the Makefile
by adding `sleep 1' and then it never fails. (patch file attached) I
couldn't reproduce this bug with debug information by running `make -d'
since additional output seems to slow down the speed and thus avoid this
problem.

Reported by favonia on 2008-03-22 15:02:07


- _Attachment: [testcase.tar.gz](https://storage.googleapis.com/google-code-attachments/latex-makefile/issue-16/comment-0/testcase.tar.gz)_ - _Attachment: [Makefile.patch](https://storage.googleapis.com/google-code-attachments/latex-makefile/issue-16/comment-0/Makefile.patch)_

including makeglossaries

Hi, I have a problem using the package glossaries. Taking the example below (from http://texblog.org/2014/01/15/glossary-and-list-of-acronyms-with-latex/), and using latex-makefile-2.2.1-alpha9 I have to run make, makeglossaries and make again to compile the tex properly. Is it possible to use glossaries with this makefile or is it possible to include makeglossaries in the makefile?

\documentclass{article}

\usepackage[acronym,nomain]{glossaries}

% Generate the glossary
\makeglossaries

\begin{document}

\section*{Section with acronyms}

% Acronym definitions
\newacronym{utc}{UTC}{Coordinated Universal Time}
\newacronym{adt}{ADT}{Atlantic Daylight Time}
\newacronym{est}{EST}{Eastern Standard Time}

% Use the acronyms
\gls{utc} is 3 hours behind \gls{adt} and 10 hours ahead of \gls{est}.

%Print the glossary
\printglossaries

\small\hfill Created by http://texblog.org

\end{document}

_check_programs failure

Originally reported on Google Code with ID 23

What steps will reproduce the problem?
1. make _check_programs

What is the expected output? What do you see instead?

I expect it to check if I have all the programs it needs. I get:

$ make _check_programs
== Checking Makefile Dependencies ==

/bin/sh: Bad substitution
make: *** [_check_programs] Error 2
$

What version of the product are you using? On what operating system?

Ubuntu 8.04 64 bits.
latex-makefile-2.1.21

Running   make  SHELL_DEBUG=1 _check_programs  I get:

$ make  SHELL_DEBUG=1 _check_programs
+ tput setaf 0
+ tput setaf 1
+ tput setaf 2
+ tput setaf 3
+ tput setaf 4
+ tput setaf 5
+ tput setaf 6
+ tput setaf 7
+ tput bold
+ tput smul
+ tput sgr0
+ echo == Checking Makefile Dependencies ==
== Checking Makefile Dependencies ==
+ echo

+ [ -f Makefile ]
+ sed -e /^[[:space:]]*#[[:space:]]*EXTERNAL PROGRAMS:/,/^$/!d -e /EXTERNAL
PROGRAMS/d -e /^$/d -e /^[[:space:]]*#/i\  -e
s/^[[:space:]]*#[[:space:]][^=]*// Makefile
+ sed -e s/^[[:space:]]*// -e /^#/d -e s/[[:space:]]*#.*// -e
/^=/s/[[:space:]]/_/g -e /^[[:space:]]*$/d -e
s/^[^=].*=[[:space:]]*\([^[:space:]]\{1,\}\).*$/\1/
+ allprogs==_ESSENTIAL_PROGRAMS_=
==_Basic_Shell_Utilities_==
cat
cp
ls
diff
echo
egrep
env
mv
sed
sort
touch
uniq
which
xargs
==_LaTeX_(tetex-provided)_==
bibtex
dvips
latex
makeindex
kpsewhich
ps2pdf
ps2pdf13
=_OPTIONAL_PROGRAMS_=
==_Makefile_Color_Output_==
tput
==_TeX_Generation_==
rst2latex.py
==_EPS_Generation_==
dot
fig2dev
gnuplot
gunzip
==_Beamer_Enlarged_Output_==
psnup
==_Viewing_Stuff_==
gv
xpdf
display
+ formatfield=               
/bin/sh: Bad substitution
make: *** [_check_programs] Error 2
$

Reported by eorlinga on 2008-10-23 15:23:33

/bin/sh is expected to be bash, which is not true on ubuntu

Originally reported on Google Code with ID 10

What steps will reproduce the problem?
1. run the script on a system not using bash as /bin/sh
2.
3.

What is the expected output? What do you see instead?
compilation does not succeed

What version of the product are you using? On what operating system?
2.1.9 on Ubuntu Linux 7.10

Please provide any additional information below.
setting SHELL=/bin/bash in the "Essential Programs" section resolves the
problem. Alternatively one might try to find all the bashisms in the script
to get it to work with dash or any other POSIX shell.

Reported by timobaumann on 2008-01-23 23:30:36

R Sweave

Originally reported on Google Code with ID 40

It would be nice if it could use R (http://cran.r-project.org/) with Sweave
to generate .tex sources from .Rnw files. 

At the moment, I am using a output.tex.sh script to make output.tex from
output.Rnw using 'R CMD SWEAVE output' but it would be nice if was handled
automatically, especially because this way doesn't use make's change tracking.

Reported by afaulconbridge on 2009-08-18 12:32:53

Support for multibib

I am using the Makefile to compile a document which uses multibib package... The multibib package ouputs a different aux file for each biblio defined in the document. So that after the first latex call one wold have (e.g.):

  • main.aux
  • journals.aux
  • books.aux

all the files should be passed though bibtex to get the bbl files. As it is now latex-makefile does not recognize this situation and only calls bibtex main.aux leaving out the additional aux files.

Is there any simple way to modify the makefile to make it bibtex-processing also the additional auxes?

Great tool btw!

Luca

add souport to arlatex

Originally reported on Google Code with ID 26

Arlatex is a "compression" system to latex, original writed to function 
on bundledoc (whit snapshot.sty) to generate a bundle latex package.
the principal feature of Arlatex is: the generated package can't a binary 
package, the outpot is a true tex file,

to uncompress a Arlatex package only is required a latex parser.


On parser time of Arlatex file the file is now expanded and parsed to 
generate dvi (latex arlexfile.tex) or pdf file (pdflatex arlexfile.tex)

theorical implement this new method is only modify the tar.gz module

Theorical problems, arlatex no is standard program on Unix system and are 
write on Perl (can't portable to non-Unix SO)

url of arlatex (on ctan)
http://tug.ctan.org/tex-archive/support/bundledoc/


Reported by compermisos on 2009-01-02 09:57:34

echo builtin on BSD systems does not understand -n

Originally reported on Google Code with ID 18

On my Mac Leopard system, type echo is 'builtin'.  This particular sh
builtin doesn't understand -n, so things like make _check_programs has very
weird display issues.

The solution is to change the ECHO variable to contain a full path to the
actual echo binary when it exists (using $(shell which echo)).  This could
be a little teeny bit tricky when that binary is *not* on the system (which
would be really weird), so the fix will probably involve a few lines of
make magic.

Reported by shiblon on 2008-03-26 21:05:39

Output with dvipng

Originally reported on Google Code with ID 32

It would be fine if you could add an option to generate a png-Output with
dvipng.

cu
rigo

Reported by conventum on 2009-04-07 08:30:35

-shell-escape call

I am sorry bother once more (you may be pleased that someone is putting your code to test), but I have another issue. Several packages calling external commands (like minted for syntax highlighting) require TeX to be run with -shell-escape parameter. It might be nice if it were possible to either specify the necessity of shell-escape as a command-line argument, somewhere in the Makefile or even let the Makefile find the inclusion of packages that require that.

Sorry, just one another idea ;-)

Generic graphics generation

Originally reported on Google Code with ID 33

I generate graphics for my dissertation with *.py (python/pylab) and *.m
(MATLAB) files. It would be nice to allow users to easily customize support
for graphics generated by arbitrary programs.

--JK

Reported by jeffery.kline on 2009-04-09 16:46:56

Possibility of "quick" build

Hello,

I very like the abilities of the Makefile. However, there are times when I don't want to produce the best possible output, but want the results fast (usually when iterating the looks of a particular paragraph, page, ...). I think it would be nice to have an option to run latex just once (not five times), "at your own risk". I'd call that target "quick" or something. Do you also think it is worth implementing and do you think it could be easily done?

Thanks,
Jan

pstex causes auxiliary files to fail to build

Originally reported on Google Code with ID 21

Test case included as attachment.  The gist is this: when a pstex
dependency exists, the pstex files are all built by the
PSTEX_BUILD_ALL_HACK, but because latex failed, the .aux file is
essentially empty.  Therefore, we can't get proper bib information even
though it should be there.

pstex generation has caused nothing but trouble, and this was the last
straw.  Trying to make the pstex files build cleanly and automatically is,
unfortunately, fundamentally broken when trying to use make to do our work
for us.

The issue is this: latex fails, so we notice that it needed some pstex
files to build properly.  We then insert them into the .d file and they're
picked up as dependencies for the next run.  But ... the bib and other
dependencies never make it there.

We could try running LaTeX multiple times, but that is at odds with the
more important and mainstream goal of keeping the number of invocations to
a minimum, since that's where the biggest cost is usually found.

To fix this problem (marking issue fixed immediately), I have introduced
manual pstex compilation into r40, and removed automatic pstex generation
from the same revision.

The preferred approach is to get away from pstex altogether: generate
straight eps files and use psfrag to replace known text with LaTeX
constructs.  It's cleaner anyway.

If, however, you must use pstex, do the following:

make all-pstex
make

That should normally do the trick.  Anytime your figs change, just redo the 

make all-pstex

before running make. Otherwise, it is not necessary to repeat.

Reported by shiblon on 2008-05-21 19:44:59


- _Attachment: [testcase.tar.gz](https://storage.googleapis.com/google-code-attachments/latex-makefile/issue-21/comment-0/testcase.tar.gz)_

Bib files included from includes don't get included

Originally reported on Google Code with ID 15

What steps will reproduce the problem?
1. Include a bibliography file from a file specified as a \include
2. compile
3. note missing references - the bib file didn't even get built

The fix for this is to update the get-inputs to add appropriate .d entries
for ._include_.tex files.  This should be fairly simple to do.

Reported by shiblon on 2008-03-20 18:17:21

An option to generate bookmarks

Originally reported on Google Code with ID 35

I am wondering if a new option to generate bookmarks would be helpful. 
Technically, if the option is enabled, a '-z' parameter should be passed to
dvips like this:

$(DVIPS) -z -o '$2' $(if $(filter-out BEAMER,$4),-t$(firstword $4),) '$1' ...

This would however slow down the compiling process, and thus I suggested
the option to be disabled by default even if implemented.  Any feedback
would be appreciated. :-)

Reported by favonia on 2009-05-12 02:23:16

Add file name to error/warning output

Originally reported on Google Code with ID 41

When using vim (and on doubt other tools), the output of latex is expected
to have filenames appear in the format:

[56] [57]) (my-new-file.tex [58] [59] [60]

But latex-makefile strips them. This patch adds them back (only a
prototype, obviously):

Index: Makefile
===================================================================
--- Makefile    (revision 1936)
+++ Makefile    (working copy)
@@ -1293,6 +1293,7 @@
    -e 's/^Package .* Warning:.*/$(C_WARNING)&$(C_RESET)/' -e 't' \
    -e 's/^Underfull.*/$(C_UNDERFULL)&$(C_RESET)/' -e 't' \
    -e 's/^Overfull.*/$(C_OVERFULL)&$(C_RESET)/' -e 't' \
+   -e 's/(\.\/.*\.tex.*/&/' -e 't' \
    $(if $(VERBOSE),,-e 'd')

 # Colorize BibTeX output.

It may also be necessary to catch closing brackets (though they are often
caught with this change, as they are frequently on the same line as opening
brackets).

Combined with issue 39, this should allow vim to jump to the right
line/file for error messages. I imagine other tools would be the same.

Reported by paul.biggar on 2009-08-19 10:48:33

build script won't work because of syntax error in python eval()

Makefile.in causes "SyntaxError: non-keyword arg after keyword arg" in python 2.7.

Lines responsible:

1051 (##include_sed("$(SED)", "get-fls-fullpath.sed",
1052 name="$(call escape-fname-regex,$1)", "$2.fls")##)$1

Short-fix:

1051 (##include_sed("$(SED)", "get-fls-fullpath.sed",
1052 name="$(call escape-fname-regex,$1)",stem="$2.fls")##)$1

Bibtex not properly run on LaTeX file (starting in revision 28)

Originally reported on Google Code with ID 14

What steps will reproduce the problem?
1. Create bib.bib and paper.tex, which includes \bibliography{bib}
2. Run make


What is the expected output? What do you see instead?

It should create paper.pdf.  Instead, it fails with:

"""
= paper.dvi --> paper.ps =
This is dvips(k) 5.95a Copyright 2005 Radical Eye Software (www.radicaleye.com)
dvips: ! DVI file can't be opened.
make: *** [paper.ps] Error 1
rm paper.paper.make
"""

Running make multiple times doesn't help.  However, I can run `latex
paper.tex`, and it creates paper.pdf but without the bibliography.  The
following is at the end of `latex`'s output: "LaTeX Warning: There were
undefined references."

If I run `bibtex paper` and then run `latex paper.tex` again, then it
creates the dvi file without any errors.


What version of the product are you using? On what operating system?

SVN Revision 29 on Linux.


Please provide any additional information below.

This used to work properly.  I bisected manually and found that revision 28
caused the regression.

Reported by amcnabb8 on 2008-03-19 19:54:59

wishlist: pdflatex

Originally reported on Google Code with ID 22

hi!

the latex-makefile is a _magnificient_ tool, and i think it could get many
more downloads if it supported direct pdf generation through the pdflatex
command.

as i understand from the Makefile comment, chris would not be really happy
with it. however i'm positive that the absence of pdflatex is a show
stopper for many potential users.

reasons for that might include the general perception that pdflatex is
rather modern while dvips has been updated three years ago. also, most
people will want to end up with pdf nowadays i guess, and the ps-detour
seems not necessary really. plus, the pdflatex-generated pdf's are
generally 0.5% smaller than the dvips-->ps2pdf ones!! omg!! ;)

cheers,
nico

Reported by nico.schloemer on 2008-09-05 13:42:48

Switching dvips and ps2pdf to a dvipdfm approach

Originally reported on Google Code with ID 6

The idea is to use dvipdfm (or similar, like pdflatex) to produce pdf
output from a dvi file.

Patch attached.

My comment on this is that I will not switch it completely, but am open to
working on a way for both camps to be accommodated.  The ps2pdf approach
appears to be the most powerful way to do things, so I am heavily biased
toward it.  The attached patch introduces significant regressions in that
it will not work with psfrag (http://cerium.raunvis.hi.is/~tpr/latex/#Pdf)
as well as messing with some of the dependencies in a weird way that would
have to be carefully researched.


Reported by shiblon on 2006-10-26 19:40:51

Use of multiple .bib files in \bibliography{} is broken.

Originally reported on Google Code with ID 1

What steps will reproduce the problem?

1. In a document document.tex, including a bibliography, change the usual
\bibliography{mybib} to \bibliography{mybib,anotherbib}
2. type make

What is the expected output? What do you see instead?

The use  of multiple .bib files in a (single) bibliography command is plain
LaTeX/BibTeX and should be ok. 
Instead of which the makefile reports:
make: *** No rule to make target `mybib,anotherbib.bib', needed by
`document.aux.make'.  Stop.

What version of the product are you using? On what operating system?
Makefile 2.0.8, on GNU-Linux

Proposed Patch:
The issue arise with the get-bib instruction in the Makefile. I propose a
patch (attached file). It merely changes the original sed command to
recursively produce the string: "bib1.bib bib2.bib bibN.bib" from
"bib1.bib,bib2.bib,bibN.bib".

1) The first line is to prevent the script to blindly issue \1.bib
2) The second line is to place an extra ',' at the end of the comma
separated list (which hence becomes "bib1.bib,bib2.bib,bibN.bib,");
3) The third line places a goto-label (x L) and, while it is possible (t
L), splits the list at the first occurence of the first comma and insert
the '.bib ' extension.

I must admit I have not tested this patch in a lot of situations, but it
worked for me when using 1 and several bibliographies. As far as
performance is concerned, one can argue that in most cases people have only
one bibfile.bib and that my sed script needs to first add then delete a comma.

Hope this help.
Thomas


Reported by lavergnetho on 2006-09-27 15:19:21


- _Attachment: [patchMultipleBibs.txt](https://storage.googleapis.com/google-code-attachments/latex-makefile/issue-1/comment-0/patchMultipleBibs.txt)_

make is broken when the .bib files are not in the current directory

Originally reported on Google Code with ID 3

What steps will reproduce the problem?
1. Have a document with \bibliography{mybib}
2. Have file mybib.bib NOT in the current (Makefile's) directory (but, say,
in ${HOME}/TeX)
3. set the BIBINPUTS environment variable: export BIBINPUTS=${HOME}/TeX:
4. type make

What is the expected output? What do you see instead?
Latex/BibTeX allows such a configuration and BibTeX is supposed to browse a
list of directories to find the .bib file(s). BTW latex;bibtex;latex;latex
works fine. However, the makefile is broken with:
No rule to make target `mybib.bib', needed by `document.aux.make'

What version of the product are you using? On what operating system?
2.0.9, Linux RHEL4

Please provide any additional information below.
I guess most people either 1) have their .bib file in the same directory as
their document, or 2) give the complete path to it in the \bibliography
command. However, my .bib files are shared with other people and I do not
want to duplicate them for each new document I write. I could use a
symbolic link but... it is not nice!
To give the exact path is never safe (what if my .bib files are moved) nor
portable (if the path separator of another OS is '\').
The 'brut force' latex/bibtex compiling (latex;bibtex;latex;latex) works
perfectly because I set the BIBINPUTS variable.


I have no easy solution for that one. I thought I would look at the
dependency tree to help but my IT support guys need to install graphviz first. 

a) I do not know if it portable to other *nix systems (and other latex
distributions) but on my system, the command 'kpsewitch myfile.bib' returns
the full path to the .bib file BibTeX will be using. Perhaps it can be used. 
b) I also have .bst files which are not in the current dir (and not in the
LaTeX default path) but the makefile has no problem to handle them
(provided the BSTINPUTS variable is set). The same for packages (.sty).
Perhaps is it posible to replicate the strategy for .bst and .sty files to
the .bib files?

Good luck.

PS: I am not used to the code.google interface and I cannot find a way to
signal this is should be a non severe issue, upgrade request.

Reported by lavergnetho on 2006-10-04 13:29:13

Specificly Named Indices not being built...

Originally reported on Google Code with ID 36

What steps will reproduce the problem?
1. In the LaTeX document, have a specifically named Index (e.g.
\printindex[BorisHelfstein]) with flagged notes: \index[BorisHelfstein]{a flag}
2. Run the make.

What is the expected output? What do you see instead?

I expect to see a complete PDF at the end, which I get with my make file:
makeindex -s macro.ist BorisHelfstein.idx

What I got:

make: *** No rule to make target `BorisHelfstein.ind', needed by
`Document.d'.  Stop.

What version of the product are you using? On what operating system?

Ubuntu 8.10, latex-makefile-2.1.26

Please provide any additional information below.


Reported by dausha on 2009-05-22 01:11:06

Support for png2eps

Originally reported on Google Code with ID 28

Hi.

Since we stick to the dvi->ps->pdf production chain, we need a way to
include 'non-eps' image files. I found out the png2eps
(http://www.henlich.de/png2eps) script which works very fine for me. I thus
added a png->eps automatic convertion in the Makefile (very simple !).

The issue I see is that png2eps is depending on several other packages,
which are less standard than, for example, fig2dev is.

This hack definitly helps me producing pdf files from latex since I can
include png files with on-the-fly convertion.

Cheers,
Thomas 

Reported by lavergnetho on 2009-03-17 10:50:00


- _Attachment: [patch-png2eps-2.1.23.txt](https://storage.googleapis.com/google-code-attachments/latex-makefile/issue-28/comment-0/patch-png2eps-2.1.23.txt)_

Conversion from png to eps though not necessary

Originally reported on Google Code with ID 31

1. When making a pdf file from a tex
2. folder containing graphics files contain the same graphics in both png
and eps formats.

Instead of simply using the existing eps files, the makefile starts by
converting png files to eps though eps version of the png graphic files
exist already and in the process overwrite these eps files.

I am using latex-makefile 2.1.25 and GNU Make 3.81 on a linux 
2.6.24.7-desktop-2mnb (mandriva 2008 spring).

Please provide any additional information below.


Reported by raymond.ros on 2009-04-01 11:57:15

Use of multiple .bib files in \bibliography{} is broken.

Originally reported on Google Code with ID 2

What steps will reproduce the problem?

1. In a document document.tex, including a bibliography, change the usual
\bibliography{mybib} to \bibliography{mybib,anotherbib}
2. type make

What is the expected output? What do you see instead?

The use  of multiple .bib files in a (single) bibliography command is plain
LaTeX/BibTeX and should be ok. 
Instead of which the makefile reports:
make: *** No rule to make target `mybib,anotherbib.bib', needed by
`document.aux.make'.  Stop.

What version of the product are you using? On what operating system?
Makefile 2.0.8, on GNU-Linux

Proposed Patch:
The issue arise with the get-bib instruction in the Makefile. I propose a
patch (attached file). It merely changes the original sed command to
recursively produce the string: "bib1.bib bib2.bib bibN.bib" from
"bib1.bib,bib2.bib,bibN.bib".

1) The first line is to prevent the script to blindly issue \1.bib
2) The second line is to place an extra ',' at the end of the comma
separated list (which hence becomes "bib1.bib,bib2.bib,bibN.bib,");
3) The third line places a goto-label (x L) and, while it is possible (t
L), splits the list at the first occurence of the first comma and insert
the '.bib ' extension.

I must admit I have not tested this patch in a lot of situations, but it
worked for me when using 1 and several bibliographies. As far as
performance is concerned, one can argue that in most cases people have only
one bibfile.bib and that my sed script needs to first add then delete a comma.

Hope this help.
Thomas


Reported by lavergnetho on 2006-09-27 15:25:41


- _Attachment: [patchMultipleBibs.txt](https://storage.googleapis.com/google-code-attachments/latex-makefile/issue-2/comment-0/patchMultipleBibs.txt)_

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.