Horizontal rule in R Markdown / Bookdown causing errors

流过昼夜 提交于 2020-01-11 05:45:06

问题


Suddenly, I run into an error when knitting to PDF in Markdown/Bookdown. Nothing about my system has changed.

The error is being caused by a 'horzontal rule' i.e. --- or *** anywhere in markdown, despite line spaces either side.

I include a simplistic exmaple of the offending --- that will not knit to PDF.

Incidentally, knitting to another format does not cause problems and knitting to PDF without a horizontal rule does not generate an error. Also, swapped --- for *** to explore if this stapped the error. It did not.

Can anyone offer any insight, please?

Using TinyTex and MikteX separately (not installed together). Neither solve the problem. Only just encountered this problem. Files that previously knitted without issue now fail when they encounter --- or ***.


## R Markdown

Some text, then I want horizontal rule

---

Some text after the horizonatal rule.



! Missing number, treated as zero.
<to be read again> 
                   \protect 
l.146 ...nter}\rule{0.5\linewidth}{\linethickness}
                                                  \end{center} 

Error: Failed to compile K.tex. See https://yihui.name/tinytex/r/#debugging for debugging tips. See K.log for more info.
Execution halted

回答1:


This is a known and fixed bug now in pandoc. https://github.com/jgm/pandoc/issues/5801

it happened with newer version of TexLive.

This will be fixed in next pandoc version. You'll have to wait or use the nightly build.

you can also use a trick for now by adding this in the header of tex document.

\renewcommand{\linethickness}{0.05em}

With rmarkdown you can do

---
title: "Untitled"
output: 
  pdf_document:
    keep_tex: true
    includes:
      in_header: header.tex
---

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


```{cat, engine.opts = list(file = "header.tex")}
\renewcommand{\linethickness}{0.05em}
```


lalalala

---

lilili

you can also write the header.tex file manually, or add it to your template.

This works for me.




回答2:


So, a temporary solution, that worked for me, until a more permanent solution is found is:

\begin{center}\rule{3in}{0.4pt}\end{center}

Used this instead of --- or ***



来源:https://stackoverflow.com/questions/58587918/horizontal-rule-in-r-markdown-bookdown-causing-errors

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!