【问题标题】:tinytex can't write to directory when a latex package is missing缺少乳胶包时,tinytex 无法写入目录
【发布时间】:2020-03-27 12:56:37
【问题描述】:

我在 Ubuntu 18.04.2 LTS 服务器上运行 RStudio(R 版本 3.6.0)并尝试使用 {papaja} 包编译 pdf。我按照建议 (sudo apt-get purge texlive-*) 删除了预先捆绑的 Tex 发行版,并安装了 {tinytex}

tinytex::tinytex_root()
# "/home/rstudio/.TinyTeX"

当我尝试编译为 PDF 时,我收到一个错误,开始于搜索 tlmgr search --file --global '/apa6.cls',这是 papaja 所需的文件:

正在尝试自动安装缺少的 LaTeX 包...

tlmgr 安装 apa6

您无权以任何方式更改安装,特别是目录 /home/rstudio/.TinyTeX/tlpkg/ 不可写。

这个Github issue 似乎是相关的,但如果是这样,我不理解解决方案。

【问题讨论】:

  • 你是如何安装 TinyTeX 的? (通常不应该使用sudo 安装)
  • 是的,我首先尝试使用 RStudio 中的终端选项卡到 sudo R,然后是 tinytex::install_tinytex()。然后我卸载了它并从yihui.org/tinytex/faq尝试了wget -qO- "https://yihui.org/gh/tinytex/tools/install-unx.sh" \ | sh -s - --admin --no-path,但我有点卡住了。
  • 我尝试跳到常见问题解答和tlmgr init-usertree 中的#6,但这不适用于用户 rstudio,也不适用于 sudo。
  • 我说“通常它应该sudo一起安装”。你使用sudo有什么特别的原因吗?
  • @Eric 我明白了——我想我遇到过这个问题,但从未安装过。不是一个轻量级的包,但似乎我已经安​​装了所有东西。长话短说:四页 pdf 文件是在 Ubuntu 19.04 上顺利生成的,一切都是标准的,当然还有发行版 texlive。

标签: r tinytex papaja


【解决方案1】:

从您帖子下的 cmets 中,您表明您最初是通过以 sudo R 开头的 R 安装 TinyTeX(然后在 R 中,tinytex::install_tinytex())。结果,当您以后以非 root 用户(在您的情况下为 rstudio)运行 R 时,安装目录 /home/rstudio/.TinyTeX 将不可写,这意味着 tinytex 将无法自动为您安装缺少的 LaTeX 包(除非您更改 .TinyTeX 目录的所有权,这会使事情变得更加复杂)。

解决方案是在不是由sudo 启动的R 进程中运行tinytex::install_tinytex()(例如,在RStudio 的R 控制台中运行tinytex::install_tinytex() 就可以了)。

【讨论】:

    【解决方案2】:

    为了它的价值,并使其可重现,这在 Ubuntu 19.04 上使用 texlive“刚刚工作”:

    edd@rob:/tmp$ Rscript -e 'rmarkdown::draft("test.Rmd", template="apa6", package="papaja", edit=FALSE)'
    edd@rob:/tmp$ Rscript -e 'rmarkdown::render("test.Rmd")'
    edd@rob:/tmp$ Rscript -e 'rmarkdown::render("test.Rmd")'   # twice for references
    

    无需额外的非发行版黑客。

    【讨论】:

      猜你喜欢
      • 2022-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-05
      相关资源
      最近更新 更多