[R] post_processor in rmarkdown not working

Thierry Onkelinx
Thu, 07 Sep 2017 07:12:15 -0000

Dear Heinz,

Yes. The idea of the post_processor() is that 1) pandoc converts the .md to
.tex 2) the post_processors changes the .tex 3) the .tex is compiled into
.pdf Hence the post_processors need to read, change and overwrite the tex
output file.

Best regards,

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

2017-09-07 9:08 GMT+02:00 Heinz Tuechler <tuechler at gmx.at>:

> 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/posti
>> ng-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
> --
> Heinz T?chler +436605653878
>
> ______________________________________________
> 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/posti
> ng-guide.html