我正在尝试将rmarkdown
包含地理图的文档编译为 PDF 文件。这是一个MWE:
---
title: "Problems with maps in tikz"
output: pdf_document
---
```{r setup, include=FALSE}
library(ggplot2)
library(sf)
```
## sf:png
Builds find when `nctikz` chunk is excluded.
```{r nc}
nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE)
ggplot(nc) +
geom_sf(aes(fill = AREA))
```
## sf:tikz
This graphic fails to build.
```{r nctikz, dev = 'tikz'}
ggplot(nc) +
geom_sf(aes(fill = AREA))
```
我正在使用 RStudio 中的“Knit”按钮编译此文档。我将讨论我在编译文档时遇到的每一个错误/警告,以防一个导致其他错误/警告。
小特克斯
每次我尝试运行包含 的块时dev = 'tikz'
,tinytex
都会尝试重新安装pgf
TeX 包,然后发现它已经存在,然后放弃尝试链接它。但是,我能够构建具有非地理tikz
输出的文档,所以我大多只是接受了这个事实。
tlmgr search --file --global '/tikzlibrarytopaths.code.tex'
Trying to automatically install missing LaTeX packages...
tlmgr install pgf
tlmgr: package repository http://mirror.utexas.edu/ctan/systems/texlive/tlnet (not verified: gpg unavailable)
tlmgr install: package already present: pgf
tlmgr path add
add_link_dir_dir: /usr/local/share/info/dir exists; not making symlink.
无效字符
Tikz(在 knitr 中)似乎无法将度数符号作为 tex 文件的一部分来处理。请注意,该nctikz-1.tex
对象可以pdflatex
毫无问题地构建。
! Package inputenc Error: Invalid UTF-8 byte "B0.
Quitting from lines 24-27 (test.Rmd)
Error: Failed to compile test_files/figure-latex/nctikz-1.tex. See https://yihui.name/tinytex/r/#debugging for debugging tips. See nctikz-1.log for more info.
文件路径中的下划线
我可以通过抑制theme(axis.text = element_blank())
绘图上的轴标题来解决无效字符错误,但这会引入另一个处理引入文件的错误。
! Missing $ inserted.
<inserted text>
$
l.3975 ...72.27pt,interpolate=true]{nctikz-1_ras1}
};
Quitting from lines 24-27 (test.Rmd)
产生此错误的整行是
\node[inner sep=0pt,outer sep=0pt,anchor=south west,rotate= 0.00] at (423.16, 120.24) {
\pgfimage[width= 14.45pt,height= 72.27pt,interpolate=true]{nctikz-1_ras1}};
它试图引用的图像几乎不是图像(我认为它是为了传说)。
环境
我正在使用一大堆库在 MacOS 上构建此文档。为了隔离这个问题,我还尝试在一个全新的项目中在 Rstudio.cloud (Ubuntu) 上构建文档。在这种环境下,只会出现数学环境/下划线的问题。
! Missing $ inserted.
<inserted text>
$
l.4049 ...72.27pt,interpolate=true]{nctikz-1_ras1}
};
Quitting from lines 26-28 (test.Rmd)
Error: Failed to compile test_files/figure-latex/nctikz-1.tex. See https://yihui.name/tinytex/r/#debugging for debugging tips. See nctikz-1.log for more info.