命令的召唤:
$dir = "/path/to/source/file";
exec("cd $dir;xelatex filesource.tex", $output_array[0]);
总是失败,但是:
$dir = "/path/to/source/file";
exec("cd $dir;/usr/texbin/xelatex -no-pdf filesource.tex", $output_array[0]);// now we have .xdv file
exec("cd $dir;/usr/texbin/xdvipdfmx filesource.xdv", $output_array[1]);
成功了,结果 .pdf 文件绝对有效。有什么诀窍吗?
答案1
一般而言主要有两种情况:
- 您的 LaTeX 二进制文件为系统所知(无论您使用哪种):这种情况非常简单,因为您可以简单地使用第一种方法,而无需二进制文件的完整路径。
- 您的 LaTeX 二进制文件对系统来说是未知的:如果您不是通过存储库安装 LaTeX(如果您使用的是 Linux),而是使用 TeX Live 安装程序 fi,您会在系统未知的位置找到它们。您必须将它们添加到 PATH 中,以便可以找到它。另一种方法是在调用时使用完整路径。
您的系统似乎属于第二种类型。因此,您应该告诉 PHP 将 LaTeX 二进制路径添加到 PATH,或者在调用时使用完整路径。