当我使用 knitr 将 R 图包含在 latex 文档中时,如果 knitr 的图形设备是“pdf”,则符号无法正确显示,而如果图形设备是“png”,则一切正常。以下是 MWE:
\documentclass{article}
<<>>=
library(knitr)
library(survival)
attach(lung)
@
\begin{document}
A sample figure with default 'pdf' device.
<<>>=
plot(age, meal.cal)
@
\clearpage
Same figure, with 'png' device.
<<dev='png'>>=
plot(age, meal.cal)
detach(lung)
@
\end{document}
结果如下:https://drive.google.com/open?id=1fz_6XuDxdDWNhX_EWRnUYInSG-pklkuA
第一个图表中没有画出圆圈,而第二个图表则很好。有什么建议吗?
答案1
R 中的默认pdf
设备使用 ZapfDingbats 字体中的字符来表示图形中的圆圈。但是,该字体未嵌入 pdf 文件中,因此当找不到字体或合适的替换字体时,pdf 查看器不会显示圆圈(为 R 辩护:ZapfDingbats是标准 14 种字体之一,即 Times、Helvetica、Courier、Symbol 和 ZapfDingbats 的几种变体。请参阅使用该pdf
设备创建的 pdf 文件的字体属性:
可以使用该cairo_pdf
设备代替。该设备不使用字体中的圆形字符(直接绘制圆形)。而且,所有字体都是嵌入的。
相关代码:
\begin{document}
A sample figure with default 'pdf' device.
<<dev='cairo_pdf'>>=
plot(age, meal.cal)
@
\end{document}
请注意,cairo_pdf
圆圈不可选择/搜索,但这不太可能成为问题。