Pals,
I have a recurrent problem with quickfix and Latex. I use the
tex.vim compiler by Srinath Avadhanula. I tried both the 2003 version
contained in the last LatexSuite plugin
http://www.vim.org/scripts/script.php?script_id=475
and version '2006-03-20 09:45:45Z'. Same result.
The problem: After make, when there is an error, it jumps to an
unwanted file. This is so because the efm variable is not correctly set.
For example, after deleting a '$' in a file 'file.tex' and doing
make, I read this in the quickfix window:
##########################################################################
|| ) (./file.aux)
/usr/share/texmf/tex/generic/xypic/xy.sty|1111 error| Missing $
inserted. $ \lambda =1$) and identifying the upper $2\times 2$ matrix in
##########################################################################
Then, a new buffer is loaded with the file xy.sty, and vim tries
to go to the line 1111 in that line (then it goes to the last).
It seems that the problem is that the string
'/usr/share/texmf/tex/generic/xypic/xy.sty' was not deleted by efm.
The only line in file 'file.log' contains a reference to xy.sty
is in this block:
####################################
...
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
\minCDarrowwidth=\dimen119
)
(/usr/share/texmf/tex/generic/xypic/xy.sty
(/usr/share/texmf/tex/generic/xypic/xy.tex Bootstrapíng: catcodes,
docmode,
(/usr/share/texmf/tex/generic/xypic/xyrecat.tex)
(/usr/share/texmf/tex/generic/xypic/xyidioms.tex)
...
####################################
This is the value of the efm variable:
#################################################################
set efm=
if !g:Tex_ShowallLines
call s:IgnoreWarnings()
endif
setlocal efm+=%E!\ LaTeX\ %trror:\ %m
setlocal efm+=%E!\ %m
setlocal efm+=%+WLaTeX\ %.%#Warning:\ %.%#line\ %l%.%#
setlocal efm+=%+W%.%#\ at\ lines\ %l--%*\\d
setlocal efm+=%+WLaTeX\ %.%#Warning:\ %m
exec 'setlocal efm+=%'.pm.Çl.%l\ %m'
exec 'setlocal efm+=%'.pm.Çl.%l\ '
exec 'setlocal efm+=%'.pm.Ç\ \ %m'
exec 'setlocal efm+=%'.pm.Ç%.%#-%.%#'
exec 'setlocal efm+=%'.pm.Ç%.%#[]%.%#'
exec 'setlocal efm+=%'.pm.Ç[]%.%#'
exec 'setlocal efm+=%'.pm.Ç%.%#%[{}\\]%.%#'
exec 'setlocal efm+=%'.pm.Ç<%.%#>%m'
exec 'setlocal efm+=%'.pm.Ç\ \ %m'
exec 'setlocal efm+=%'.pm.'GSee\ the\ LaTeX%m'
exec 'setlocal efm+=%'.pm.'GType\ \ H\ <return>%m'
exec 'setlocal efm+=%'.pm.'G\ ...%.%#'
exec 'setlocal efm+=%'.pm.'G%.%#\ (C)\ %.%#'
exec 'setlocal efm+=%'.pm.'G(see\ the\ transcript%.%#)'
exec 'setlocal efm+=%'.pm.'G\\s%#'
exec 'setlocal efm+=%'.pm.Ó(%*[^()])%r'
exec 'setlocal efm+=%'.pm.'P(%f%r'
exec 'setlocal efm+=%'.pm.'P\ %\\=(%f%r'
exec 'setlocal efm+=%'.pm.'P%*[^()](%f%r'
exec 'setlocal efm+=%'.pm.'P(%f%*[^()]'
exec 'setlocal efm+=%'.pm.'P[%\\d%[^()]%#(%f%r'
if g:Tex_IgnoreUnmatched && !g:Tex_ShowallLines
setlocal efm+=%-P%*[^()]
endif
exec 'setlocal efm+=%'.pm.'Q)%r'
exec 'setlocal efm+=%'.pm.'Q%*[^()])%r'
exec 'setlocal efm+=%'.pm.'Q[%\\d%*[^()])%r'
if g:Tex_IgnoreUnmatched && !g:Tex_ShowallLines
setlocal efm+=%-Q%*[^()]
endif
if g:Tex_IgnoreUnmatched && !g:Tex_ShowallLines
setlocal efm+=%-G%.%#
endif
#################################################################
How can I solve this?
Thanks a lot,
Luis.