缺少乳胶包时 tinytex 无法写入目录
tinytex can't write to directory when a latex package is missing
我 运行 RStudio(R 版本 3.6.0)在 Ubuntu 18.04.2 LTS 服务器上,并尝试使用 {papaja}
包编译 pdf。我按照建议 (sudo apt-get purge texlive-*
) 删除了预捆绑的 Tex 发行版并安装了 {tinytex}
.
tinytex::tinytex_root()
# "/home/rstudio/.TinyTeX"
当我尝试编译为 PDF 时,出现错误,开始时搜索 tlmgr search --file --global '/apa6.cls'
,papaja
所需的文件:
Trying to automatically install missing LaTeX packages...
tlmgr install apa6
You don't have permission to change the installation in any way, specifically, the directory /home/rstudio/.TinyTeX/tlpkg/ is not writable.
这 Github issue 似乎是相关的,但如果是这样,我不明白解决方案。
对于它的价值,并使其可重现,"just worked" 在 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
不需要额外的非发行版 hack。
根据您的 post 下的评论,您指出您最初安装 TinyTeX 是通过以 sudo R
启动 R(然后在 R 中,tinytex::install_tinytex()
)。因此,当您 运行 R 作为非 root 用户(在您的情况下为 rstudio
)之后,安装目录 /home/rstudio/.TinyTeX
将不可写,这意味着 tinytex 将无法为您自动安装缺少的 LaTeX 包(除非您更改 .TinyTeX
目录的所有权,这会使事情变得更加复杂)。
解决方法是运行tinytex::install_tinytex()
在一个不是sudo
启动的R进程中(例如,运行宁tinytex::install_tinytex()
在R RStudio 中的控制台就可以了。
我 运行 RStudio(R 版本 3.6.0)在 Ubuntu 18.04.2 LTS 服务器上,并尝试使用 {papaja}
包编译 pdf。我按照建议 (sudo apt-get purge texlive-*
) 删除了预捆绑的 Tex 发行版并安装了 {tinytex}
.
tinytex::tinytex_root()
# "/home/rstudio/.TinyTeX"
当我尝试编译为 PDF 时,出现错误,开始时搜索 tlmgr search --file --global '/apa6.cls'
,papaja
所需的文件:
Trying to automatically install missing LaTeX packages...
tlmgr install apa6
You don't have permission to change the installation in any way, specifically, the directory /home/rstudio/.TinyTeX/tlpkg/ is not writable.
这 Github issue 似乎是相关的,但如果是这样,我不明白解决方案。
对于它的价值,并使其可重现,"just worked" 在 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
不需要额外的非发行版 hack。
根据您的 post 下的评论,您指出您最初安装 TinyTeX 是通过以 sudo R
启动 R(然后在 R 中,tinytex::install_tinytex()
)。因此,当您 运行 R 作为非 root 用户(在您的情况下为 rstudio
)之后,安装目录 /home/rstudio/.TinyTeX
将不可写,这意味着 tinytex 将无法为您自动安装缺少的 LaTeX 包(除非您更改 .TinyTeX
目录的所有权,这会使事情变得更加复杂)。
解决方法是运行tinytex::install_tinytex()
在一个不是sudo
启动的R进程中(例如,运行宁tinytex::install_tinytex()
在R RStudio 中的控制台就可以了。