My problem of inserting a pdf graphic with a special character in a Sweave document было решено, создав pdf-файл за пределами Sweave и импортировав его.Пользовательское графическое устройство в Sweave
Следуя документации Sweave, я написал собственное графическое устройство, которое должно построить графику pdf точно так же. Однако это не сработает. Можете ли вы объяснить мне, почему второй рисунок документа Sweave ниже не работает, тогда как он должен быть создан точно так же, как первый? Неужели я ошибаюсь, чтобы поверить в это?
\documentclass{article}
\begin{document}
\SweaveOpts{concordance=TRUE}
<<setup, echo=FALSE>>=
mycairo <- function(name, width = 7, height = 7, ...) {
grDevices::cairo_pdf(name, width = width, height = height)
}
mycairo.off <- function() {
cat("shutting down mycairo\n")
invisible(grDevices::dev.off())
}
@
\section{Export plot}
<<Export_plot, echo=FALSE>>=
cairo_pdf("exported_plot.pdf")
par(mar=c(6,7,0,6))
ylab <- expression(paste("", bar(italic("\u2113")), "(",phi[0], "|", italic(list(x,y)), ")"))
plot(0,0, ylab=ylab, xlab=NA, cex.lab=3)
invisible(dev.off())
@
% insert exported plot
\includegraphics[width=6cm]{exported_plot.pdf}
\section{Direct plot}
<<mycairo_plot, echo=FALSE, fig=TRUE, pdf=TRUE, grdevice=mycairo, width=4, height=4>>=
par(mar=c(6,6,0,6))
ylab <- expression(paste("", bar(italic("\u2113")), "(",phi[0], "|", italic(list(x,y)), ")"))
plot(0,0, ylab=ylab, xlab=NA, cex.lab=1)
@
\end{document}
изменения 'mycairo' в' grDevices :: cairo_pdf (вставка (имя, "pdf", sep = "."), width = width, height = height) '. Ive не сделал этого раньше, но ['my.Swd' отсюда] (https://stat.ethz.ch/R-manual/R-devel/library/utils/html/RweaveLatex.html), как представляется, делает это – user20650
@ user20650 Да, это работает !! Не стесняйтесь конвертировать свой комментарий в ответ, чтобы я принял его. –
Хороший материал, Стефан - пожалуйста, напишите его ... вы сделали тяжелую работу, написав хороший вопрос – user20650