clerkma / ptex-ng

Asiatic pTeX
293 stars 31 forks source link

多文件编译时,显示的 pdf 输出文件名错误 #13

Closed leo-liu closed 8 years ago

leo-liu commented 8 years ago

TeX 文件中有 \input\include 之类命令时,会显示

Output written on JOBNAME.dvi (... pages, ... bytes). Output written on LAST_FILE_INPUT.pdf (... pages, ... bytes). 其中 dvi 文件的输出正确,但 pdf 文件名错误。

pdf 文件是在 ship_out 函数中打开,而上述输出代码则是在 close_files_and_terminate 函数中。 对 dvi 文件,用的文件名是全局的 output_file_name,没有问题。但对 pdf 文件,则两次都是从 name_of_file 中取文件名生成 pdf_file_name。但 name_of_file 是不断变化的。

建议把 pdf_file_name 设置为全局变量。 还有一种办法是把 pdf_file_name 设置为 output_file_name 更换后缀的结果。

TeX 代码里面几种串的数据结构似乎不大一样,我暂时没改。

clerkma commented 8 years ago

我明天看一下吧,今天在改别的东西。

clerkma commented 8 years ago

改了,你重新编译看看。

leo-liu commented 8 years ago

没问题, 0d8a99cc75256eb0eeef3ebb06e115527fc6b45a 这样就可以。