大约一周以来,我一直在尝试调试我在 RStudio 中编写的 .Rnw 文件。最令人沮丧的是,它以前在当前形式下运行良好,但后来似乎莫名其妙地停止了工作。
我已将错误根源追溯到我试图添加到 pdf 文件的图形。似乎只有某些图像文件会破坏脚本。添加到 pdf 的每个图形都是使用另一个 R 脚本创建的。如果您出于任何原因需要查看该图形,请告诉我,我会进行编辑。
这是我的.Rnw 文件的基本格式:
\documentclass[
title
]{article}
\usepackage{graphicx}
\begin{document}
<<Setup, include=FALSE, cache=FALSE>>=
##Sets up variables in paragraphs and creates data frames.
@
\title{Report Title}
\maketitle
\setcounter{secnumdepth}{-1}
\section{Report Summary}
Section Paragraph
\vspace{1cm}
\begin{figure}[h!]
\includegraphics{Fig1.png}
\end{figure}
\end{document}
当我在 RStudio 中编译 PDF 时,出现错误Running pdflatex.exe on REPORT.tex...failed
当我查看日志文件时,我看到了以下内容:
!pdfTeX error: pdflatex.exe (file C:/Users/myname/Documents/Report/Fig1.png): libpng:
internal error ==> Fatal error occurred, no output PDF file produced!
谁知道出了什么问题?
.png
我尝试将文件中的图像更改为,.jpg
结果.tiff
相同。我尝试将添加\graphicspath
到序言中,并尝试将完整路径添加到该\includegraphics
部分。
编辑:这是我生成 fig1.png 图像的方法。这应该允许您在 RStudio 中重新创建一个示例。我不得不手动复制此代码,因此可能存在拼写错误。此外,它当然看起来很糟糕,因为我刚刚使用示例 mtcars 数据集重新创建了图像格式。
png("C:/Users/UserName/Documents/Report/Fig1.png", height = 7, width = 14, units = 'in', res = 350)
p<-ggplot(mtcars, aes(color = mpg, x = cyl, y disp, group = mpg)) +
geom_line() + geom_point(shape = 16, size = 2) + coord_cartesian(ylim = c(0,550)) +
labs(x = "X Axis", y = "Y Axis") +
ggtitle(expression(atop("Title", atop(italic("Subtext"), "")))) +
stat_summary(fun.y=sum, geom="line") +
theme(plot.title = element_text(face = "bold", size = 16, vjust = 1.5)) +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
theme(axis.title.y = element_text(vjust = 1))
p
dev.off()
答案1
您输出fig1.png
,但尝试包含Fig1.png
。 TeX 区分大小写。
以下工作:
\documentclass[
titlepage
]{article}
\usepackage{graphicx}
\begin{document}
<<Setup, include=FALSE, cache=FALSE>>=
library(ggplot2)
png("Fig1.png", height = 7, width = 14, units = 'in', res = 350)
p<-ggplot(mtcars, aes(color = mpg, x = cyl, y = disp, group = mpg)) +
geom_line() + geom_point(shape = 16, size = 2) + coord_cartesian(ylim = c(0,550)) +
labs(x = "X Axis", y = "Y Axis") +
ggtitle(expression(atop("Title", atop(italic("Subtext"), "")))) +
stat_summary(fun.y=sum, geom="line") +
theme(plot.title = element_text(face = "bold", size = 16, vjust = 1.5)) +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
theme(axis.title.y = element_text(vjust = 1))
p
dev.off()
@
\title{Report Title}
\maketitle
\setcounter{secnumdepth}{-1}
\section{Report Summary}
Section Paragraph
\vspace{1cm}
\begin{figure}[h!]
\includegraphics{Fig1.png}
\end{figure}
\end{document}
顺便说一句,最好使用矢量图形并自动生成图形。在我看来,以下是更好的样式:
\documentclass[
titlepage
]{article}
\usepackage{graphicx}
\begin{document}
<<Setup, include=FALSE, cache=FALSE>>=
library(ggplot2)
@
\title{Report Title}
\maketitle
\setcounter{secnumdepth}{-1}
\section{Report Summary}
Section Paragraph
\vspace{1cm}
\begin{figure}[h!]
<<Fig1, echo=FALSE>>=
p<-ggplot(mtcars, aes(color = mpg, x = cyl, y = disp, group = mpg)) +
geom_line() + geom_point(shape = 16, size = 2) +
coord_cartesian(ylim = c(0,550)) +
labs(x = "X Axis", y = "Y Axis") +
ggtitle(expression(atop("Title", atop(italic("Subtext"), "")))) +
stat_summary(fun.y=sum, geom="line") +
theme(plot.title = element_text(face = "bold", size = 16, vjust = 1.5)) +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
theme(axis.title.y = element_text(vjust = 1))
p
@
\end{figure}
\end{document}