将文本块插入R中特定行号的文件中

时间:2013-11-28 15:28:14

标签: r text system

我正在使用脚本将使用knitr生成的Markdown文件转换为tex:

  mess <- paste('pandoc -f markdown -t latex -s -o', "intro-spatial.tex", 
          "intro-spatial.md")
  system(mess) # create latex file

这很好用,但我需要对latex doc做一些额外的调整。使它看起来nice。我可以在文本编辑器中执行此操作,但因为它需要多次编译,所以编写脚本是有意义的。例如,为了使数字合适,我添加:

mess <- paste("sed -i -e 's/width=\\maxwidth/[width=8cm/g' intro-spatial-rl.tex")
system(mess)

我无法弄清楚如何插入一大块文字。具体来说,如何在行n后添加。 62? (有关相关问题,请参阅here。)

\author{
   x, y\\
  \texttt{x@y.com}
  \and
  x, y\\
  \texttt{x@y.com}
}
\title{Introduction to Spatial Data and ggplot2}

我可能在这里使用完全错误的方法。如果是这样,请告诉我!

1 个答案:

答案 0 :(得分:1)

回答如何将段落插入特定行号的文件:idx:)

下面的代码将插入您在第6行之后给出的段落。

# text will be inserted after the line
idx <- 5
# open the file and read in all the lines 
conn <- file("test.txt")
text <- readLines(conn)
block <- "\\author{
   x, y\\
  \\texttt{x@y.com}
  \\and
  x, y\\
  \\texttt{x@y.com}
}
\\title{Introduction to Spatial Data and ggplot2}"
text_block <- unlist(strsplit(block, split='\n'))
# concatenate the old file with the new text
mytext <- c(text[1:idx],text_block,text[(idx+1):length(text)]) 
writeLines(mytext, conn, sep="\n")
close(conn)

这里我修改了你的段落因为你的\ t \ a ..etc。将被评估为选项卡...我双重逃脱它们使其作为原始文本。我也很期待知道如何轻松应对逃生。就像你在另一篇文章中提到的那样。