yochju / latex-makefile

Automatically exported from code.google.com/p/latex-makefile
Other
0 stars 0 forks source link

Add file name to error/warning output #41

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
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.

Original issue reported on code.google.com by paul.biggar on 19 Aug 2009 at 10:48

GoogleCodeExporter commented 9 years ago
This is a use case that I had never considered, so getting it right will 
undoubtedly be 
a lot of work.

There are two things that jump to mind, here:

1) it is possible in vim, emacs, and other tools, to set up different error 
format 
parsing (see :help errorformat), so the exact format of the error lines can 
change with 
relative impunity.  We'd just create a special latex-makefile errorformat and 
it would 
understand the makefile's nicer output.

2) In order to make the above (or any solution, really) work properly, I will 
have to 
change the makefile to output line numbers.

So, that brings up a question: is the makefile already outputting filenames 
correctly, 
just not line numbers?  If so, I may try tackling this.  If not, it's probably 
too big a 
change for this project's lone maintainer :)

Original comment by shiblon on 26 Aug 2009 at 1:02

GoogleCodeExporter commented 9 years ago
I just realized that I made an attempt at educating you on 'errorformat', when 
it's clear 
you already understand that.  I didn't note the name on the issue before 
responding - 
sorry about that.  No patronizing intended.

Original comment by shiblon on 26 Aug 2009 at 1:04

GoogleCodeExporter commented 9 years ago
(Don't worry about it :))

Regarding 1), the errorformat might be the best solution, but I currently get no
filenames at all. This makes sense, since latex-makefile essentially greps the 
output
for things that look like warnings, and there are none inline. So latex-makefile
would have to work out the filenames for this to work. (In theory, using
-file-line-error in pdflatex should print something better here, but I'm not 
seeing
anything).

Regarding 2), yes, that true. That was issue 39 :)

FWIW, this isn't important to me anymore. I'm afraid to say I switched to 
pdflatex
which latex-makefile doesn't support very well (a pity, because the other
alternatives are poor).

However, in experimenting with other solutions, I notice that rubber-info 
provides an
amazing log parser, independently of rubber itself (that is, you can compile 
with
latex-makefile, and still use rubber-info on the log file). It might be worth 
reusing
it, if present.

Original comment by paul.biggar on 26 Aug 2009 at 3:42

GoogleCodeExporter commented 9 years ago
That's interesting about rubber.

So, you aren't the first to mention switching to pdflatex (see issue 6).  Many 
people 
are going that route.  That means I need to write a new makefile, which I just 
jolly 
well might go and do, because I hate the alternatives, too :-p

That said, my experience with it is not great.  Can we take this discussion to 
personal 
email?  I'd like to get some insights on

- why the switch to pdflatex instead of the dvi->ps->pdf approach
- what you intend to do to include pretty vector graphics in your document 
(instead 
of just jpg, etc.)
- how people are replacing the functionality of e.g., psfrag in pdflatex.

pdflatex has a simpler build process, so making a makefile for it shouldn't be 
anywhere near as difficult as it was for the other, but I had very compelling 
reasons 
for sticking to dvi->ps->pdf, and psfrag was one of them.  I obviously have a 
lot of 
passion about how difficult it is (but shouldn't be) to build LaTeX, so perhaps 
we can 
make something awesome for pdflatex, too.

Original comment by shiblon on 26 Aug 2009 at 8:09

GoogleCodeExporter commented 9 years ago
By the way, did you know you can do this:

make VERBOSE=1 myfile.pdf

And the makefile will print out the log as-is, with some things colorized?  So, 
when 
using vim, you can still get your errorformat working fine just by turning on 
the 
VERBOSE setting.

That may not be what you want, in which case I can make a flag that only gets 
verbose where vim needs it to do so.  If you have some ideas about that, I'd be 
happy 
to discuss them.

Original comment by shiblon on 28 Aug 2009 at 3:24

GoogleCodeExporter commented 9 years ago
The verbose output here just confused vim. I've attached a log if its helpful. 
I can
send you the .tex files on this (and other issues) if they're useful.

Original comment by paul.biggar on 28 Aug 2009 at 11:08

Attachments:

GoogleCodeExporter commented 9 years ago
Oh, of course it did.  (slaps forehead).  That setting is *really* verbose.  I 
should make a 
verbose log setting that is separate.

But, it sounds like you have migrated away from this anyway.  I'll fiddle with 
it, but 
recognize that it is no longer a priority for you to help debug stuff.  Thanks 
for your 
input thus far, and good luck!

Original comment by shiblon on 29 Aug 2009 at 3:20

GoogleCodeExporter commented 9 years ago

Original comment by shiblon on 19 Nov 2009 at 6:59