Below code works fine, but I'd like to know an easier approach.
The goal is to type the formula once and to get the pretty latex formatting.
The obvious echo=TRUE does not work, because it is not latex formatted!

```{r code_chunk, echo=FALSE}
x = 10^2 + 10^3
```
$10^2 + 10^3 = `r x`$

It looks like you're stuck with the dollar signs. You could do

latex <-  "$10^2$ + $10^3$"
x     <-  10^2 + 10^3

r latex = r x

(you'd need to touch up x to be consistent with the formula). I don't think there's a way to render an r formula to latex the way you'd like to.

1 Like

Nice example. It is less error prone because the formulas are on the same side.

```{r code_chunk2, echo=FALSE}
latex <- "10^2 + 10^3"
x <- 10^2 + 10^3
```
$`r latex` = `r x`$

In the rmarkdown document below, I've tried to create a single R expression that can be used as both an R object and also printed as latex text. The idea is to create an unevaluated R expression using expr():

 x = expr(10^2 + 10^3)

Now that we have this expression, we can convert the expression itself to text with as_label(x) or we can evaluate the expression with eval_tidy(x). We then use these building blocks to generate the latex markup we desire from this single R object x.

Because of all the function calls, this may be more trouble than it's worth. Furthermore, my knowledge of how to capture and evaluate R expressions is sketchy, so I'd be surprised if there aren't easier ways to do what I've attempted below.

---
output: pdf_document
---

```{r, include=FALSE}
knitr::opts_chunk$set(message=FALSE, warning=FALSE, echo=TRUE)
library(knitr)
library(tidyverse)
library(rlang)
library(scales)
```

```{r code_chunk}
x = expr(10^2 + 10^3)
```

The value of $x$ is `r eval_tidy(x)`

We can also convert the `R` expression `x` to latex and combine it with the 
result of evaluating `x`: $`r as_label(x)` = `r comma(eval_tidy(x))`$

And here's what the compiled document looks like:

1 Like

My idea was similar to @joels's above. The base R version would be like this:

```{r}
x = '10^2 + 10^3'
```

$`r x` = `r eval(parse(text = x))`$

Note that this works only by chance because the expression 10^2 + 10^3 happens to be valid in both R and LaTeX. Of course, not all LaTeX math expressions are valid R code (vice versa).

3 Likes

Thank you all very much. This really helps.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.