我想通过 php 编译一个 latex 文件。因此我使用
shell_exec("/usr/bin/xelatex --output-directory=output/ --interaction batchmode doc.tex");
我遇到的问题是,Apache Web 服务器上的 www-data 用户无法使用一些已安装的 LaTeX 包。我相信(但我不确定)这与主目录有关。而我的 www-data 没有主目录(至少我认为如此)。
顺便说一下,我在服务器上使用 TexLive。
编辑:这是我的 php 编译代码
This is XeTeX, Version 3.14159265-2.6-0.99998 (TeX Live 2017/Debian) (preloaded format=xelatex 2018.6.16) 18 JUN 2018 07:13
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**/var/www/html/tennessee/wp-content/plugins/daw_songbook/tmp/doc.tex
(/var/www/html/tennessee/wp-content/plugins/daw_songbook/tmp/doc.tex
LaTeX2e <2017-04-15>
Babel <3.10> and hyphenation patterns for 8 language(s) loaded.
(/usr/share/texlive/texmf-dist/tex/latex/base/book.cls
Document Class: book 2014/09/29 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo
File: bk10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
)
\c@part=\count79
\c@chapter=\count80
\c@section=\count81
\c@subsection=\count82
\c@subsubsection=\count83
\c@paragraph=\count84
\c@subparagraph=\count85
\c@figure=\count86
\c@table=\count87
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
)
! LaTeX Error: File `songs.sty' not found.
Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)
Enter file name:
! Emergency stop.
<read *>
l.5 \usepackage
{amsmath}^^M
*** (cannot \read from terminal in nonstop modes)
Here is how much of TeX's memory you used:
225 strings out of 494938
2641 string characters out of 6176411
55952 words of memory out of 5000000
4170 multiletter control sequences out of 15000+600000
3648 words of font info for 15 fonts, out of 8000000 for 9000
14 hyphenation exceptions out of 8191
22i,0n,19p,169b,40s stack positions out of 5000i,500n,10000p,200000b,80000s
No pages of output.
答案1
好的...我想我做到了。
tlmgr 仅在用户的主目录中安装软件包。这是一个问题,因为当我想让 php 通过 shell_exec 编译它时,我的服务器的 www-data 用户没有该软件包。
因此,我没有通过 tlmgr 安装它,而是手动将它安装在 /tex/latex/ 中,然后运行 mktexlsr 。
www-data 用户现在在全局基目录中而不是本地主目录中搜索并找到包。
感谢以下链接(方法3): 如何在 Linux 系统上安装单独的软件包?