rstudio - 无法使用 blogdown 在我的 .Rmd 帖子中添加 tikz 代码片段
问题描述
我刚刚开始使用blogdown,并使用模板Hugo-Xmin创建了一个项目。在 RStudio 中,在 blogdown 中创建项目时,它创建了一些预定义的帖子,我正在编辑这个:
/content/post/2015-07-23-r-rmarkdown.Rmd
添加 tikz 图像
在这个问题和有关引擎的 bookdown 文档之后,我通过添加以下代码段修改了上述文件:
This is a tikz picture:
```{r, echo=FALSE, engine='tikz', out.width='90%', fig.ext=if (knitr:::is_latex_output()) 'pdf' else 'png', fig.cap='Some caption.'}
\begin{tikzpicture}[scale=.7]
\draw [fill=gray!30,very thick] (0,-1) rectangle (5,1);
\draw [very thick] (5, 0) -- (13,0);
\node [below] at (2,-1) {\large Hello};
\node [below, align=center] at (0,-1) {\large Two\\ lines};
\end{tikzpicture}
```
无法处理帖子
一旦我保存(因为我有serve
),而且在使用时blogdown::build_site()
,我得到这个:
> blogdown::serve_site()
Rendering content/post/2015-07-23-r-rmarkdown.Rmd
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/W32TeX) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
Quitting from lines 49-55 (2015-07-23-r-rmarkdown.Rmd)
Error: Failed to compile .\tikz53878cd6189.tex. See https://yihui.name/tinytex/r/#debugging for debugging tips.
Execution halted
Error in render_page(f) :
Failed to render 'content/post/2015-07-23-r-rmarkdown.Rmd'
故障排除
我检查了我的引擎,发现tikz
实际上是其中之一:
> names(knitr::knit_engines$get())
[1] "awk" "bash" "coffee" "gawk" "groovy" "haskell" "lein" "mysql"
[9] "node" "octave" "perl" "psql" "Rscript" "ruby" "sas" "scala"
[17] "sed" "sh" "stata" "zsh" "highlight" "Rcpp" "tikz" "dot"
[25] "c" "fortran" "fortran95" "asy" "cat" "asis" "stan" "block"
[33] "block2" "js" "css" "sql" "go" "python" "julia" "theorem"
[41] "lemma" "corollary" "proposition" "conjecture" "definition" "example" "exercise" "proof"
[49] "remark" "solution"
文档说有些引擎是在 bookdown 而不是 knitr 中发货的,但我可以看到tikz
有!所以我有引擎,但我仍然无法使用它。我究竟做错了什么?
更多信息
将生成一个日志文件/content/post/texput.log
并报告有关失败的此信息:
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/W32TeX) (preloaded format=pdflatex 2019.1.11) 25 FEB 2019 07:54
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**.\tikz3cac449b1071.tex
! Emergency stop.
<*> .\tikz3cac449b1071.tex
*** (job aborted, file error in nonstop mode)
Here is how much of TeX's memory you used:
3 strings out of 492616
115 string characters out of 6132768
56950 words of memory out of 5000000
4017 multiletter control sequences out of 15000+600000
3640 words of font info for 14 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
0i,0n,0p,1b,6s stack positions out of 5000i,500n,10000p,200000b,80000s
! ==> Fatal error occurred, no output PDF file produced!
如果我检查knitr
:
> xfun::session_info('knitr')
R version 3.5.2 (2018-12-20)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200), RStudio 1.1.463
Locale:
LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
LC_MONETARY=English_United States.1252 LC_NUMERIC=C
LC_TIME=English_United States.1252
Package version:
evaluate_0.13 glue_1.3.0 graphics_3.5.2 grDevices_3.5.2 highr_0.7 knitr_1.21.13
magrittr_1.5 markdown_0.9 methods_3.5.2 mime_0.6 stats_3.5.2 stringi_1.3.1
stringr_1.4.0 tools_3.5.2 utils_3.5.2 xfun_0.5 yaml_2.2.0
解决方案
事实证明这是我刚刚在 Github 上修复的knitr中的一个问题(我不确定它是否是 的错误)。你可以试试pdflatex
remotes::install_github('yihui/knitr')
请注意,如果尚未安装两个额外的 R 包, magick和pdftools ,您将需要它们。
推荐阅读
- c# - 如何隐藏外壳中某些页面的后退按钮?
- typescript - 如果选项中包含字符串,则打字稿
- reactjs - 我如何才能完全匹配深度嵌套在反应路由器 6 中的路由?
- python - Python 或 Unix/bash。重命名目录中每个文件的第 11 列
- sql - 在 SQL 中,如何获取按 ID 分组的列的总和,其中仅选择最近的日期?
- openapi - 这是给定 OpenAPI 模式的正确实例示例吗?
- python - 熊猫:将列的值折叠到列表中
- php - PHP file() UTF-8 处理
- regex - 使用正则表达式在 Bash 中选择包含一个数字但不包含该数字对的行
- php - WooCommerce:向 WC Vendors Pro 添加其他表单字段属性