编织 RMarkdown 文档时出现 YAML 错误 - 扫描仪错误
Posted
技术标签:
【中文标题】编织 RMarkdown 文档时出现 YAML 错误 - 扫描仪错误【英文标题】:Error in YAML when knitting RMarkdown document - Scanner error 【发布时间】:2019-03-07 06:08:58 【问题描述】:我正在尝试在 RStudio 中编写 RMD 文件,但出现以下错误
yaml::yaml.load(string, ...) 中的错误:扫描仪错误:在第 31 行扫描纯标量时,第 5 列发现了一个制表符 这违反了第 34 行第 1 列的意图调用:... parse_yaml_front_matter -> yaml_load_utf8 -> 执行 停止
rmd文件头如下:
> ---
> title: "Homework 4"
> author: NAME OF THE AUTHOR, Fall 2018
> date: Due Friday, September 30, 11:59pm
> subparagraph: yes
> output:
> pdf_document:
> number_sections: true header-includes:
> - \setcountersecnumdepth1
> - \pagenumberinggobble
> - \sloppy
> - \hypersetup breaklinks=true,
> pdftitle=\@title,
> pdfauthor=\@author,
> colorlinks=true,
> breaklinks=true,
> urlcolor= blue,
> linkcolor= blue,
> citecolor=blue,
> bookmarksopen=false,
> pdftoolbar=false,
> pdfmenubar=false
>
> - \usepackagetitlesec
> - \renewcommand\thesection\arabicsection.
> - \usepackagemathpazo
> - \usepackageetoolbox
> - \usepackagegeometry
> - \usepackagegraphicx
> - \newcommand\protectbracket[1]#1
> - \makeatletter
> \protectbracket\preto\Gin@extensionssvg,
> \DeclareGraphicsRule.svgpdf.pdf\noexpand\Gin@base.pdf \makeatother
> - \geometryverbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in
> - \usepackage[most]tcolorbox
> - \definecolorblock-graygray0.85
> - \newtcolorboxdarkquotecolback=block-gray,grow to right by=-10mm,grow to left by=-10mm, boxrule=0pt,boxsep=0pt,breakable
> - \renewenvironmentquote\begindarkquote\enddarkquote\ignorespacesafterend
> ---
任何想法是什么原因造成的?错误指向第 31 行中的字符“n”,我不确定如何修复它。非常感谢任何帮助或建议。
我已经在 Mac 和 PC 上都安装了 RStudio 进行了尝试。
【问题讨论】:
【参考方案1】:假设行首的 >
是复制和粘贴的剩余部分(它们肯定不应该在文件中),你有一个 YAML 文档,开头如下:
---
title: "Homework 4"
author: NAME OF THE AUTHOR, Fall 2018
date: Due Friday, September 30, 11:59pm
subparagraph: yes
output:
pdf_document:
number_sections: true header-includes:
- \setcountersecnumdepth1
这是无效的,因为您不能同时将映射作为键 pdf_document
的值以及序列(另外缩进较少)。
这可能与行内冒号空间和行尾冒号的组合结合在一起,使解析器感到困惑
您可能希望将其更改为以以下开头的内容:
---
title: "Homework 4"
author: NAME OF THE AUTHOR, Fall 2018
date: Due Friday, September 30, 11:59pm
subparagraph: yes
output:
pdf_document:
number_sections: true
header-includes:
- \setcountersecnumdepth1
【讨论】:
您好,Anthon,感谢您的回答。是的,它是从 RStudio 复制和粘贴的。我在上面和这里的问题的答案中附上了屏幕截图:i.stack.imgur.com/0tx7Y.png @HakimAhmadi\makeathother
第 35 行的缩进不够。
我缩进了 \makeathother 并将其与其余的第 34 行对齐,但仍然是同样的错误。
您是否已经删除了制表符(我可以建议您切换到不允许您意外或无意插入制表符的编辑器)。
这里的制表符是什么?因为第 31 行的第 5 列是字母“n”以上是关于编织 RMarkdown 文档时出现 YAML 错误 - 扫描仪错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 上的 rStudio 上将 r markdown 编织为 pdf 时出现错误 43
带有 knitr 和 Rmarkdown 的 Unicode