[R] post_processor in rmarkdown not working

Heinz Tuechler
Thu, 07 Sep 2017 07:08:04 -0000

Are you sure that you want to read in the output_file in

text <- readLines(output_file, warn = FALSE)?

best regards,

Heinz

Thierry Onkelinx wrote/hat geschrieben on/am 06.09.2017
11:41:
> Dear all,
>
> I'm trying to write a post_processor() for a custom rmarkdown format.
The
> goal of the post_processor() is to modify the latex file before it is
> compiled. For some reason the post_processor() is not run. The
> post_processor() does work when I run it manually on the tex file.
>
> Any suggestions on what I'm doing wrong? Below is the relevant snippet
of
> the code. The full code is available at
> https://github.com/inbo/INBOmd/blob/post_processor/R/rsos_article.R
>
https://github.com/inbo/INBOmd/blob/post_processor/inst/rmarkdown/templates/rsos_article/skeleton/skeleton.Rmd
> is an Rmd is a MWE that fails compile because the post_processor() is not
> run.
>
> Best regards,
>
> Thierry
>
>   post_processor <- function(
>     metadata, input_file, output_file, clean, verbose
>   ) {
>     text <- readLines(output_file, warn = FALSE)
>
>     # set correct text in fmtext environment
>     end_first_page <- grep("\\\\EndFirstPage", text) #nolint
>     if (length(end_first_page) == 1) {
>       maketitle <- grep("\\\\maketitle", text) #nolint
>       text <- c(
>         text[1:(maketitle - 1)],
>         "\\begin{fmtext}",
>         text[(maketitle + 1):(end_first_page - 1)],
>         "\\end{fmtext}",
>         "\\maketitle",
>         text[(end_first_page + 1):length(text)]
>       )
>       writeLines(enc2utf8(text), output_file, useBytes = TRUE)
>     }
>     output_file
>   }
>
>   output_format(
>     knitr = knitr_options(
>       opts_knit = list(
>         width = 60,
>         concordance = TRUE
>       ),
>       opts_chunk = opts_chunk,
>       knit_hooks = knit_hooks
>     ),
>     pandoc = pandoc_options(
>       to = "latex",
>       latex_engine = "xelatex",
>       args = args,
>       keep_tex = keep_tex
>     ),
>     post_processor = post_processor,
>     clean_supporting = !keep_tex
>   )
>
>
>
> ir. Thierry Onkelinx
> Instituut voor natuur- en bosonderzoek / Research Institute for Nature and
> Forest
> team Biometrie & Kwaliteitszorg / team Biometrics & Quality
Assurance
> Kliniekstraat 25
> 1070 Anderlecht
> Belgium
>
> To call in the statistician after the experiment is done may be no more
> than asking him to perform a post-mortem examination: he may be able to say
> what the experiment died of. ~ Sir Ronald Aylmer Fisher
> The plural of anecdote is not data. ~ Roger Brinner
> The combination of some data and an aching desire for an answer does not
> ensure that a reasonable answer can be extracted from a given body of data.
> ~ John Tukey
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>

--
Heinz T?chler +436605653878