【问题标题】:Cant run pdflatex command (Tex Live) on Plesk无法在 Plesk 上运行 pdflatex 命令 (Tex Live)
【发布时间】:2022-01-20 17:17:43
【问题描述】:

我创建的 API (PHP) 出现问题。 API 应根据发送的数据创建一个 pdf 文档。该脚本运行良好,直接在 Ubuntu 上运行,Plesk 正在运行。 不工作的部分如下:

$cmd = sprintf("pdflatex -interaction nonstopmode %s", escapeshellarg(file));
exec($cmd, $foo, $ret);

tex 文件似乎没有被触及...没有日志文件或任何东西。 对此有何想法?

谢谢

【问题讨论】:

  • 问题绝对不在于 tex 文件本身......我已经尝试使用绝对最小的 tex 模板。似乎命令甚至没有执行...
  • 是的,它已安装 :-) pdflatex --version 返回 pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) kpathsea 版本 6.2.3 版权所有 2017 Han The Thanh (pdfTeX) et al。没有保修。 pdfTeX 版权和小 GNU 通用公共许可证的条款都涵盖了此软件的再分发。有关这些问题的更多信息,请参阅名为 COPYING 的文件和 pdfTeX 源代码。 pdfTeX 的主要作者:Han The Thanh (pdfTeX) 等。使用 libpng 1.6.34 编译;使用 libpng 1.6.34 与 zlib 1.2.11 编译;使用 zlib 1.2.11 ...
  • 不幸的是,对 Latex 交互模式的适应并没有产生任何差异 :-(
  • 好的,我通过将命令更改为 /usr/bin/pdflatex -interaction=nonstopmode file.tex 解决了这个问题 :-) 现在可以使用了!感谢您的帮助!

标签: php ubuntu plesk


【解决方案1】:

Latex 通常由有经验的用户在命令行上或通过带有控制台交互的 IDE 运行,因为通常需要从控制台反馈中查看编译可能失败的原因。

最简单的检查是安装了 PdfLaTex 吗?在系统控制台输入pdflatex --version 这应该确认在环境路径中至少找到了一个最小的pdflatex,并在pi 的粗略值之后显示变体。

所以在这种情况下回复pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian)

当试图在不可见的情况下运行时,获得反馈并不容易,因此使用少量已知样本的最小测试再次在控制台上以批处理模式在当前工作目录中运行:-

pdflatex -interaction=nonstopmode sample.tex

这应该在几乎不需要检查的情况下运行,但是如果没有配置 pdflatex 的路径,您可能需要添加 pdflatex 可执行文件的位置。因此你发现需要/usr/bin/pdflatex -interaction=nonstopmode file.tex

LaTeX 包和模块中有许多不同的依赖项,需要根据相互关联的路径(例如,支持文件等)明确定义“env”设置,因此值得从大量文档中查看这些内容。

某些模块可能需要提升以通过-shell-escape 逃避 shell 限制,并且上述命令可能需要临时提升一次运行(不应该经常需要),因此只有在您从文档中确切知道模块需要它的原因时才包括。

TeX 新手很容易认为将工作目录中的子文件夹用于“章节”是有好处的,因为工作目录可能“看起来”被几十个运行时文件弄得杂乱无章,不管 LaTeX 有多少取决于非常具体的相对路径,避免错误的最佳方法是不需要通过变量不断重新定义图像或其他组件,只需说它在同一个文件夹中。

同样,对于包,它们也应该通过环境变量设置到固定位置,即用于 bin 文件夹和字体以及其他模块化支持组件。值得回顾 https://tug.org/texlive/quickinstall.html 并注意有关最小路径定义的部分,但安装后组件所需的基本设置远不止这些

【讨论】:

    猜你喜欢
    • 2015-04-24
    • 2012-01-13
    • 2012-03-07
    • 2015-04-01
    • 2011-09-20
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    相关资源
    最近更新 更多