如何在R Markdown中使用LaTeX包?引入fancyhdr报错如何解决
问题原因
该报错属于YAML头解析错误,和你preamble.tex中的fancyhdr配置完全无关。报错发生在R Markdown编译的最早期阶段,还未调用LaTeX环境编译文档,问题根源是.Rmd文件的YAML头缩进、空行不符合YAML语法规范:解析器在处理output字段的块映射时,误将后续层级不对的字段识别为output的子键,找不到对应的合法键名,因此抛出该错误。
解决步骤
- 统一YAML头的缩进规范:所有缩进必须使用空格,禁止使用TAB键,每一级缩进固定为2个空格;
title、author、output、urlcolor、params等顶级键必须顶格书写,不能有前置空格,修正后的YAML头参考如下:
--- title: "Title" author: "" output: pdf_document: keep_tex: true includes: in_header: preamble.tex urlcolor: rubblue params: plotSAMP: "NULL" plotApps: "NULL" # mainfont: SourceSansPro ---
- 删掉YAML头里不必要的连续空行,比如
params字段和子参数之间、子参数和后续注释之间的多余空行,避免解析器识别异常 - 确认.Rmd文件的编码为UTF-8,可通过RStudio的「文件→另存为→编码选择UTF-8」完成设置
- 可选优化:在preamble.tex开头显式添加
\usepackage{graphicx}语句,避免插入Logo时出现依赖缺失报错;如果需要文档首页也显示页眉,可在Rmd正文的最开头添加\thispagestyle{fancy}语句。
内容的提问来源于stack exchange,提问作者Ninke
相关产品推荐
相关产品推荐

