pikovayadama
pikovayadama

Reputation: 828

Knitting R-Markdown document causes "! Undefined control sequence." error

I'm creating an R Markdown document and keep getting errors when trying to print out a mathematical formula. I think the errors are somewhere in the header, but I can't quite pin it down. Here's a watered-down version of the document:

---
output: 
  pdf_document:
    keep_tex: yes
    latex_engine: xelatex
header-includes: |
  \usepackage{nath}
  \usepackage{amsmath}
title: "Test Report"
toc: true
number_sections: true
graphics: yes
toc_depth: 2
df_print: kable
fontsize: 13pt
editor_options: 
  chunk_output_type: console
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.

When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

```{r cars}
summary(cars)
```

**`r 5 * 20`** entries in the dataset; 


Testing mathematical symbols,  $\varepsilon _{u,i}$.  
The formula used for this is:
$$ Y_{u,i} = \mu  + \varepsilon _{u,i} $$
Where $\Y_{u,i}$ is the predicted rating per user, per movie and $\mu$ is the "true" rating for all movies. Mu-hat -> $\hat{mu}$ .

## Including Plots

You can also embed plots, for example:

```{r pressure, echo=FALSE}
plot(pressure)
```

Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.

And here's the error messages:

output file: final_testing.knit.md

! Undefined control sequence.
\mathop ...\o@mathop {#1}} \else \def \mathop@arg 
                                                  {#1} \def \afterparse@ {\m...
l.112 \begin{document}

Error: LaTeX failed to compile final_testing.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See final_testing.log for more info.
Execution halted

Any input of what's making this happen greatly appreciated. TIA

Upvotes: 1

Views: 1758

Answers (1)

jay.sf
jay.sf

Reputation: 72673

I did the following:

  • commented out the latex engine (probably to let Rmarkdown make the choice for itself)
  • deleted | after header-includes:
  • inserted - before \usepackage{}
  • commented out package nath since it doesn't seem to load
  • changed fontsize: 12pt since there is no 13pt
  • deleted white-spaces and several backslashes in your formulas

Works for me now, hope for you too?

---
output: 
  pdf_document:
    keep_tex: yes
    # latex_engine: xelatex
header-includes: 
# - \usepackage{nath}
- \usepackage{amsmath}
title: "Test Report"
toc: true
number_sections: true
graphics: yes
toc_depth: 2
df_print: kable
fontsize: 12pt
editor_options: 
  chunk_output_type: console
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.

When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

```{r cars}
summary(cars)
```

**`r 5 * 20`** entries in the dataset;


Testing mathematical symbols,  $\varepsilon_{u,i}$.  
The formula used for this is:
$$Y_{u,i} = \mu  + \varepsilon_{u,i}$$
Where $Y_{u,i}$ is the predicted rating per user, per movie and $\mu$ is the "true" rating for all movies. Mu-hat -> $\hat{mu}$.

## Including Plots

You can also embed plots, for example:

```{r pressure, echo=FALSE}
plot(pressure)
```

Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.

enter image description here

Upvotes: 1

Related Questions