
Estoy escribiendo código C que escribe un LaTeX
archivo por mí. Luego intento compilar el archivo usando pdflatex
en un non-interactive
modo (como si estuviera automatizando algún proceso y no quiero esperar la entrada del usuario en caso de un error fatal). El archivo LaTeX se genera en ./data/output_date.tex
e intento compilarlo usando el comando
system("./pdflatex --interaction=nonstopmode --output-directory=data ./data/output_date.tex");
Sin embargo, recibo el mensaje de error:
This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian)
entering extended mode
(./data/output_date.tex
LaTeX2e <2009/09/24>
Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
yphenation, loaded.
(/usr/share/texmf-texlive/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texmf-texlive/tex/latex/base/size10.clo))
(/usr/share/texmf-texlive/tex/latex/pbox/pbox.sty
(/usr/share/texmf-texlive/tex/latex/tools/calc.sty)
(/usr/share/texmf-texlive/tex/latex/base/ifthen.sty))
(data/output_2013_date.aux))
! Emergency stop.
<*> ./data/output_date.tex
! ==> Fatal error occurred, no output PDF file produced!
Transcript written on data/output_date.log.
Parece que no puedo descifrar exactamente por qué obtengo una parada de emergencia, especialmente porque cuando ejecuto exactamente el mismo comando desde la terminal (desde la misma carpeta que el C
ejecutable), se LaTeX
compila bien en pdf
.
¿Hay algo especial que deba hacer porque estoy llamando al compilador como un comando desde C
el código?
EDITAR: Aquí está el texto del .log
archivo correspondiente. Lo único que parece decir es eso no legal \end found
, lo que me confunde porque verifiqué el archivo fuente para asegurarme de que \begin
coincida \end
.
This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2013.5.23) 15 JUL 2013 09:50
entering extended mode
%&-line parsing enabled.
**./data/output_date.tex
(./data/output_date.tex
LaTeX2e <2009/09/24>
Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
yphenation, loaded.
(/usr/share/texmf-texlive/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texmf-texlive/tex/latex/base/size10.clo
File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
)
\c@part=\count79
\c@section=\count80
\c@subsection=\count81
\c@subsubsection=\count82
\c@paragraph=\count83
\c@subparagraph=\count84
\c@figure=\count85
\c@table=\count86
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
)
(/usr/share/texmf-texlive/tex/latex/pbox/pbox.sty
Package: pbox 2003/04/06 v1.0 Dynamic parboxes
(/usr/share/texmf-texlive/tex/latex/tools/calc.sty
Package: calc 2007/08/22 v4.3 Infix arithmetic (KKT,FJ)
\calc@Acount=\count87
\calc@Bcount=\count88
\calc@Adimen=\dimen103
\calc@Bdimen=\dimen104
\calc@Askip=\skip43
\calc@Bskip=\skip44
LaTeX Info: Redefining \setlength on input line 76.
LaTeX Info: Redefining \addtolength on input line 77.
\calc@Ccount=\count89
\calc@Cskip=\skip45
)
(/usr/share/texmf-texlive/tex/latex/base/ifthen.sty
Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
)
\pb@xlen=\skip46
)
(data/output_date.aux)
\openout1 = `output_date.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <12> on input line 9.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <8> on input line 9.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 9.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <7> on input line 15.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <5> on input line 15.
)
! Emergency stop.
<*> ./data/output_date.tex
*** (job aborted, no legal \end found)
Here is how much of TeX's memory you used:
375 strings out of 495061
4422 string characters out of 1182621
56939 words of memory out of 3000000
3619 multiletter control sequences out of 15000+50000
6675 words of font info for 24 fonts, out of 3000000 for 9000
28 hyphenation exceptions out of 8191
23i,14n,19p,304b,189s stack positions out of 5000i,500n,10000p,200000b,50000s
! ==> Fatal error occurred, no output PDF file produced!
Respuesta1
Resulta que necesitaba cerrar el archivo para escribirlo (en el código C) antes de intentar compilarlo con el pdflatex
comando. Sin darme cuenta lo agregué después del fclose
comando.
Supongo que mi pedido no había vaciado el búfer por última vez (lo que habría incluido el archivo \end{document}
) antes de intentar compilar o que el archivo en uso afectó al pdflatex de alguna manera.