On Sun, Apr 1, 2012 at 4:20 PM, Duncan Mackay <mac...@northnet.com.au> wrote: > Hi > > There are a number of packages that produce latex from R, Sweave, brew, > knitr - ones that come to mind. It happens that i use Sweave. > The package you finally use may depend on your preferences > > The graphic output in R may also depend on what latex you use and other > requirements - eg if you want to use it in a publication or share. > > Below is rather complex code from what I have done in the past in a loop and > altered to give you an idea. > It was done this way for a purpose as there may be better and more efficient > ways to do it > Basically : > 1 The data is imported in a Sweave chunk > 2 A tex file is created to add the figures in latex > 3 A loop is created to print the graphs to go into latex and the latex code > is added to the tex file for each graphic > 4 the tex file is added to the sweave document as \input > > # import file > data <- read.table(x) > > # Create Latex file for figures and \input > ftex <- > "D:/Cic/Sweave/Sheep/AWTA/11/SheepWool-AWTA-Data11PRa.tex" > > if (file.exists(ftex) ) file.remove(ftex) > > file.create(ftex) > > # open to append > ff <- file(ftex, "a+") > > # Store macro text > fchars <- "" > > # Plot data ? pdf > # numeric columns (not dates which are the first) > for (j in c(0:2) ) { > > pdf(file = filename etc) > > print(graph eg xyplot) > > dev.off() > > # Comment > if (j == 0 ){ > > fchars <- > paste(fchars, > "\\newpage\n\n", > "%******************************\n", > "% splom ofdaa2[,c(34:36)]|paste(FarmID,YearOfTesting)", > "ex label{CWW.7.2.1}\n", > sep = "") > > } ## j == 1 ** > > # R macro > fchars <- > paste(fchars, "\n", > paste("%", yvar, "\n", > "\\begin{landscape}\n"), > paste("\\begin{figure}\n\\centering\n"), > paste("\\includegraphics[height=0.88\\textheight,%\n", > " trim=0.5in 0.5in 0.5in 0.5in,%\n", > " keepaspectratio=true]%\n"), > paste(" {", filename, "}\n", sep = ""), > paste("\\pdfbookmark[3]{Pairs of ", > c("Hogget ","Ewe ","Wether ")[(j+1)], yvar, "}{", > "CWW.7.3.", j, > "}\\label{", "CWW.7.3.", j, "}\n", sep = ""), > paste("\\caption{", > "Pairs plot of ", c("Hogget ","Ewe ","Wether ")[(j+1)], > yvar, " against ", > "\\textsf{YearOfTesting, FarmID}:\ ", > basenom, "}\n", sep = ""), > paste("\\end{figure}\n\n", > "\\end{landscape}\n", > "\\clearpage\n\n", sep = ""), > sep = "") > > } ## for (j in seq_along(ysufbwo) ) > > # write % filename and close > writeLines(fchars, ff) > close(ff)
FYI (and to advertise the R.rsp package), to avoid all that error-prone escape/cat/paste/file stuff, you can turn it all "inside out" by instead using the below file 'SheepWool-AWTA-Data11PRa.tex.rsp' and run R.rsp::rsp("SheepWool-AWTA-Data11PRa.tex.rsp") to generate the wanted SheepWool-AWTA-Data11PRa.tex and *.pdf image files. You could even use RSP directly on an Sweave file, e.g. 'report.Rnw.rsp' and generate the PDF via R.rsp::rsp("report.Rnw.rsp") - it will process RSP and the Sweave vignette automagically. See vignette 'Dynamic LaTeX reports with RSP' of R.rsp package for more details: http://cran.r-project.org/web/packages/R.rsp/ - - FILE START - - %% Filename: SheepWool-AWTA-Data11PRa.tex.rsp %% Usage: R.rsp::rsp("SheepWool-AWTA-Data11PRa.tex.rsp") %% Outputs: SheepWool-AWTA-Data11PRa.tex and *.pdf files. <% # Change default output path for figures to current directory options("devEval/args/path"=".") %> <% # import file data <- read.table(x) %> <% for (j in 0:2) { %> <% if (j == 0) { %> \newpage %****************************** % splom ofdaa2[,c(34:36)]|paste(FarmID,YearOfTesting) ex label{CWW.7.2.1} <% } # if (j == 0) %> % <%=yvar%> \begin{landscape} \begin{figure} \centering \includegraphics[height=0.88\textheight,% trim=0.5in 0.5in 0.5in 0.5in,% keepaspectratio=true]% {<%=toPDF("MyFigure", tags=j, aspectRatio=0.8, scale=1.3, { # Your R plot code here # print(graph eg xyplot) })%>} \pdfbookmark[3]{Pairs of <%=c("Hogget ","Ewe ","Wether ")[(j+1)]%><%=yvar%>}{CWW.7.3.<%=j%>} \label{CWW.7.3.<%=j%>} \caption{Pairs plot of <%=c("Hogget ","Ewe ","Wether ")[(j+1)]%><%=yvar%> against \textsf{YearOfTesting, FarmID}: <%=basenom%>} \end{figure} \end{landscape} \clearpage <% } # for (j in 0:2) %> - - FILE END - - /Henrik > > REgards > > Duncan > > Duncan Mackay > Department of Agronomy and Soil Science > University of New England > ARMIDALE NSW 2351 > Email home: mac...@northnet.com.au > > > > At 00:48 2/04/2012, you wrote: >> >> Hi, >> >> I am newbie in Latex and R. I am working on one report in which i need to >> read file and display content of file by formatting (adding color boxes >> and >> colorful text for each record). For this i need to use latex code in R >> loop. >> How can i use Latex code in R loop. Any example will help me a lot. >> >> Thanks >> >> -- >> View this message in context: >> http://r.789695.n4.nabble.com/How-to-use-Latex-code-in-R-loop-tp4523544p4523544.html >> Sent from the R help mailing list archive at Nabble.com. >> >> ______________________________________________ >> R-help@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.