使用pdflatex在C代码中编译LaTeX文件
我正在编写为我写LaTeX文件的C代码。 然后,我尝试在非交互模式下使用pdflatex编译文件(如我自动执行某个过程,并且不希望等待用户输入致命错误)。 LaTeX文件在./data/output_date.tex
输出,我尝试使用该命令编译它
system("./pdflatex --interaction=nonstopmode --output-directory=data ./data/output_date.tex");
但是,我收到错误消息:
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.
我似乎无法破译为什么我要紧急停止,尤其是因为当我从终端(与C可执行文件相同的文件夹)运行相同的确切命令时,LaTeX可以很好地编译为pdf。
有什么特别的,我必须做的,因为我打电话编译器作为从C代码的命令?
编辑:这是相应的.log文件的文本。 它似乎只说“没有合法的 end found”,这让我感到困惑,因为我检查了源文件以确保我的 begin和 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!
事实证明,在我尝试使用pdflatex
命令进行编译之前,我需要关闭文件才能写入(在C代码中)。 我在fclose
命令后无意中添加了它。
我的猜测是我的排序在试图编译之前最后一次没有刷新缓冲区(这可能包括end{document}
),或者正在使用的文件以某种方式影响了pdflatex。
上一篇: Using pdflatex to compile LaTeX file within C code
下一篇: How to prevent MATLAB printing false space and use wrong fonts?