【问题标题】:Unable to compile a Rmarkdown file on Arch Linux无法在 Arch Linux 上编译 Rmarkdown 文件
【发布时间】:2021-06-05 02:49:18
【问题描述】:

我在编译一个简单的 Rmarkdown 文件时遇到问题,我对解决方案一无所知。问题来了:

我要编译的文件

这是一个没有 R 代码的简单文档,只有文本。在标题中:标题、作者、日期和output: pdf_document

软件包是如何安装的

我用install.packages("tidyverse") 安装了包rmarkdowntinytex。 TinyTex(发行版)是这样安装的:tinytex::install_tinytex()

错误

> rmarkdown::render("~/document.Rmd", "pdf_document")


processing file: document.Rmd
  |........................................................................| 100%
  ordinary text without R code


output file: document.knit.md

/usr/lib/rstudio/bin/pandoc/pandoc +RTS -K512m -RTS document.utf8.md --to latex --from markdown+autolink_bare_uris+tex_math_single_backslash --output document.tex --lua-filter /home/rik/R/x86_64-pc-linux-gnu-library/4.0/rmarkdown/rmarkdown/lua/pagebreak.lua --lua-filter /home/rik/R/x86_64-pc-linux-gnu-library/4.0/rmarkdown/rmarkdown/lua/latex-div.lua --self-contained --highlight-style tango --pdf-engine pdflatex --variable graphics --variable 'geometry:margin=1in' 
tlmgr: package repository https://ctan.dcc.uchile.cl/systems/texlive/tlnet (verified)
tlmgr install: package already present: latex
tlmgr install: package already present: latex-base-dev
! LaTeX Error: File `article.cls' not found.

! Emergency stop.
<read *> 

Erro: LaTeX failed to compile document.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See document.log for more info.
Além disso: Warning message:
In has_crop_tools() : 
Tool(s) not installed or not in PATH: pdfcrop, ghostcript
-> As a result, figure cropping will be disabled.

文档.log

This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020) (preloaded format=pdflatex 2021.3.6)  6 MAR 2021 13:05
entering extended mode
 restricted \write18 enabled.
 %&-line parsing enabled.
**document.tex
(./document.tex
LaTeX2e <2020-10-01> patch level 4
L3 programming layer <2021-02-18>

! LaTeX Error: File `article.cls' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: cls)

Enter file name: 
! Emergency stop.
<read *> 
         
l.7 \usepackage
               {lmodern}^^M 
Here is how much of TeX's memory you used:
 22 strings out of 480971
 456 string characters out of 5907552
 278620 words of memory out of 5000000
 17342 multiletter control sequences out of 15000+600000
 403430 words of font info for 27 fonts, out of 8000000 for 9000
 14 hyphenation exceptions out of 8191
 32i,0n,39p,87b,13s stack positions out of 5000i,500n,10000p,200000b,80000s

!  ==> Fatal error occurred, no output PDF file produced!

#1 尝试:重新安装 tinytex

我尝试卸载 (tinytex::uninstall_tinytex()),重新安装 (tinytex::install_tinytex()) 并重新安装 (tinytex::reinstall_tinytex()),但错误仍然存​​在。

#2 尝试:安装lmodern

虽然tinytex::check_installed("lm") == TRUE,但我尝试用tinytex::tlmgr_install("lmodern")安装lmoden

安装

> tinytex::tlmgr_install("lmodern")
tlmgr install lmodern
tlmgr: package repository https://ctan.dcc.uchile.cl/systems/texlive/tlnet (verified)
tlmgr install: package lmodern not present in repository.
tlmgr: action install returned an error; continuing.
tlmgr: An error has occurred. See above messages. Exiting.
tlmgr update --self
fmtutil [WARNING]: You seem to have no formats defined in your fmtutil.cnf files!
tlmgr install lmodern
tlmgr: package repository https://ctan.dcc.uchile.cl/systems/texlive/tlnet (verified)
tlmgr install: package lmodern not present in repository.
tlmgr: action install returned an error; continuing.
tlmgr: An error has occurred. See above messages. Exiting.

搜索

rik@arch ~ : sudo find / -regex ".*lmodern.sty"
/home/rik/.TinyTex/texmf-dist/tex/latex/lm/lmodern.sty

环境

sessionInfo()

R version 4.0.4 (2021-02-15)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Arch Linux

Matrix products: default
BLAS:   /usr/lib/libblas.so.3.9.0
LAPACK: /usr/lib/liblapack.so.3.9.0

locale:
 [1] LC_CTYPE=pt_BR.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=pt_BR.UTF-8        LC_COLLATE=pt_BR.UTF-8    
 [5] LC_MONETARY=pt_BR.UTF-8    LC_MESSAGES=pt_BR.UTF-8   
 [7] LC_PAPER=pt_BR.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_4.0.4 tools_4.0.4

Variáveis deambiente definidas no .bash_profile

export PATH=$PATH:$HOME/.local/appimages:$HOME/bin:$HOME/.local/bin

export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_CACHE_HOME="$HOME/.cache"

export TEXMFDIST=/usr/share/texmf-dist

一些观察

  • 我在全新安装 Arch Linux 时遇到了这个问题(已安装 wget)
  • 我总是以这种方式安装 rmarkdowntinytex,即使在 Arch 上也是如此,而且每次都运行良好。
  • 我在 Windows 机器和 Ubuntu 机器上进行了尝试,结果按预期工作。
  • RStudio 上的 knit 按钮也无法正常工作

【问题讨论】:

  • 最上面的错误是抱怨找不到article.cls。如果你使用find,你能在任何地方找到这个文件吗?
  • 是的,我可以在以下位置找到它:$HOME/.TinyTeX/texmf-dist/tex/latex/base/article.cls $HOME/.TinyTeX/texmf-dist/tex/latex -dev/base/article.cls
  • 尝试重新安装/安装Pandoc,Pandoc 将 Rmarkdown 处理为 PDF。您是否尝试过使用 html_document 作为输出,然后从 Web 浏览器打印到 PDF?
  • 是的,HTML 编译。我尝试了 petrucci4prez 的建议,它成功了,感谢您的帮助!

标签: r-markdown archlinux tinytex


【解决方案1】:

尝试两件事:

  • 如果您从arch repos 安装texlive-latexextra 会发生什么?鉴于您使用的是tinytex,我猜您正试图避免这种情况;我问的原因是因为它似乎乳胶正在寻找系统目录。
  • 如果可行,请尝试在您的 .bashrc 中注释掉 TEXMFDIST 环境变量。

【讨论】:

  • 我评论了TEXMFDIST 行,它运行良好!它是作为解决我前段时间在 TexLive 上遇到的问题的一种解决方法,但我什至不记得它了。我还尝试将变量更改为 TinyTex 目录,但问题仍然存在,但我认为不应该这样做。谢谢!
  • 嗨,我面临同样的警告In has_crop_tools() : Tool(s) not installed or not in PATH: pdfcrop。我不确定这个解决方案是否也解决了这个问题?我安装了texlive-latex-extra,但是使用env 时没有TEXMFDIST 行。另一个win10 answer 指的是ghostscript,但它可能对linux 用户没用。任何想法如何解决这个问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2022-10-08
  • 2014-07-19
  • 1970-01-01
  • 2021-07-06
相关资源
最近更新 更多