如何在 LaTeX 中包含图像时删除名称?

如何在 LaTeX 中包含图像时删除名称?

我在 R 中包含一个图像,并发现与该图像一起出现的图像文件的名称:

  name<-c("A.pdf","B.pdf","C.pdf","D.pdf")
  <<echo=FALSE,results=tex>>=
  for (i in 1:4)
  {      
     cat(paste("\\includegraphics[trim=0cm 10cm 0cm 5cm, clip=true,%
                          width=.7\\linewidth]{pdf_repository/",name[i],".pdf}",sep=""),"\n")
  }
  @

我发现图像文件的名称:A.pdfB.pdfC.pdfD.pdf与图像一起出现。我该如何删除它们?

答案1

您的names代码位于代码块之外,因此被作为文本包含在 LaTeX 中以进行格式化。这就是您所看到的吗?将其移动到 R 代码块内,我看不到文件名。

\documentclass{article}
\usepackage[american]{babel}
\begin{document}

<<echo=FALSE,results=tex>>=
name<-c("A.pdf","B.pdf","C.pdf","D.pdf")
for (i in 1:4) {
  cat(paste("\\includegraphics[trim=0cm 10cm 0cm 5cm, clip=true, width=.7\\linewidth]{pdf_repository/",name[i],"}",sep=""),"\n")
}
@

\end{document}

给出.tex文件

\documentclass{article}
\usepackage[american]{babel}
\usepackage{Sweave}
\begin{document}

\includegraphics[trim=0cm 10cm 0cm 5cm, clip=true, width=.7\linewidth]{pdf_repository/A.pdf} 
\includegraphics[trim=0cm 10cm 0cm 5cm, clip=true, width=.7\linewidth]{pdf_repository/B.pdf} 
\includegraphics[trim=0cm 10cm 0cm 5cm, clip=true, width=.7\linewidth]{pdf_repository/C.pdf} 
\includegraphics[trim=0cm 10cm 0cm 5cm, clip=true, width=.7\linewidth]{pdf_repository/D.pdf} 
\end{document}

它编译为仅包含 4 个图形的 PDF(假设给定的目录中包含 4 个 PDF)。

答案2

正如第一条评论所说,你写了.pdf两次(例如在你的 tex 输出中,你会看到A.pdf.pdf)。

尽可能我恨诀窍cat('\\includegraphics')针织品解决方案:

\documentclass{article}
<<setup, include=FALSE>>=
opts_chunk$set(fig.path = 'pdf_repository/')
@

\begin{document}
<<test, out.width='.7\\linewidth', out.extra='trim = 0cm 10cm 0cm 5cm, clip = true'>>=
plot(rnorm(30))
plot(rnorm(30))
plot(rnorm(30))
plot(rnorm(30))
@
\end{document}

就像调用Sweave()Rnw 文件一样,您可以安装knitr包并调用library(knitr); knit()。您再也不用担心每个块有多个图了。

来自 knitr 的多个图

相关内容