I am implementing a function print_name
in the package taxlist.
For example, I can format a name for markdown:
library(taxlist)
data(Easplist)
print_name(Easplist, 206, style="markdown")
The output in the console is then:
[1] "*Cyperus papyrus* L."
I can use this command for example to mention a species in the content of a markdown document by `r I(print_name(Easplist, 206, style="markdown"))`
, where the scientific name appears as italics and the author name does not.
I would like to implement an option (i.e. style="latex"
) retrieving the string formatted for LaTeX, which can be inserted through something like \Sexpr{print_name(Easplist, 206, style="latex")}
(this example is only an hypothetical one).
The output should be then \textit{Cyperus papyrus} L.
but all my attempts failed because backslash is a scape in R strings.
Is there a way to achieve properly this task?
Note: The function is at the moment not implemented in the CRAN version of the package, thus to reproduce the example use the last version from GitHub:
devtools::install_github("kamapu/taxlist")
What I imagine that you are doing is this:
<<example, echo=FALSE>>=
library(taxlist)
data(Easplist)
\Sexpr{print_name(Easplist, 206, style="markdown")}
@
Simply move the \Sexpr{}
to outsite the chunk.
<<example, echo=FALSE>>=
library(taxlist)
data(Easplist)
@
\Sexpr{print_name(Easplist, 206, style="markdown")}
That will output you what you want.
EDIT:
If you are trying to incorporate "latex" as a style option for the output, then it should look like this when it outputs outside of latex:
library(taxlist)
data(Easplist)
print_name(Easplist, 206, style="latex")
[1] "\\textit{Cyperus papyrus} L."
The "\" will escape the escape. I did not incorporate it into your function, but here is an example:
<<>>=
example_text <- "Cyperus papyrus L."
example_text <- strsplit(example_text, split = " ")
test1 <- paste0("\\textit{", example_text[[1]][1], " ", example_text[[1]][2], "}",
" ", example_text[[1]][3])
@
\Sexpr{test1} is a paper reed.
The output looks like this in the rendered pdf.