当output_dir包含空格时使用Rmarkdown生成PDF文档时出错

2024-02-06

这是一个最小的工作示例,名为mwe.Rmd:

---
output: 
  pdf_document:
    latex_engine: xelatex
    keep_tex: TRUE
## header-includes:
##     - \usepackage[space]{grffile}
---

```{r}

plot(1, 1)

```

这将在调用时起作用rmarkdown::render("~/repos/mwe test/mwe.Rmd")。但是,如果我打电话rmarkdown::render("~/repos/mwe test/mwe.Rmd", output_dir = "~/repos/mwe test/reports/")它因以下错误而失败:

/usr/local/bin/pandoc +RTS -K512m -RTS test_rmarkdown_fail.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output pandoc4f583fe0effa.tex --template /usr/local/lib/R/3.6/site-library/rmarkdown/rmd/latex/default-1.17.0.2.tex --highlight-style tango --pdf-engine xelatex --variable graphics=yes --variable 'geometry:margin=1in' --variable 'compact-title:yes' 
! Missing $ inserted.
<inserted text> 
                $
l.132 ...files/figure-latex/unnamed-chunk-1-1.pdf}

当我检查 .tex 文件时,它无法包含绘图,因为它包含一个空格(之间mwe and test).

\includegraphics{/Users/savey/repos/mwe test/reports/test_rmarkdown_fail_files/figure-latex/unnamed-chunk-1-1.pdf}

When output_dir未指定,这只是一个相对路径,因此它可以正常工作。

带空格的路径在以下情况下工作正常latex_engine被设定为pdftex但不与xelatex。我尝试添加spaceLaTeX 包 grffile 的选项,但出现选项冲突的错误(与默认的 tex 模板)。我还尝试修改模板以将其添加到标题中,但无济于事。

如何将 rmarkdown 与 xelatex 一起使用并指定包含空格的输出目录?

是否有一些选项可以强制 pandoc 将图像路径用双引号引起来?

在您建议我重命名路径以删除空格之前,因为它们不属于那里(我完全同意您的观点),这是一个同步文件夹,我无法重命名(谢谢 OneDrive)。


上面的代码似乎确实适用于pdflatex.

With xelatex,解决方法可能是使用临时目录:

origin <- "./repos/mwe test/mwe.Rmd"
destination <- "./repos/mwe test/reports"

render <- function(origin,destination) {
  tmpdir <- tempdir()
  on.exit(unlink(tmpdir))
  rmarkdown::render(origin, output_dir = tmpdir)
  suppressWarnings(dir.create(destination))
  file.copy(file.path(tmpdir,paste0(basename(tools::file_path_sans_ext(origin)),'.pdf')),destination, overwrite = T)
}

render(origin,destination)

#processing file: mwe.Rmd
#  |...................................                                   |  50%
#  ordinary text without R code
#
#  |......................................................................| 100%
#label: unnamed-chunk-1
#
#output file: mwe.knit.md
#
#/usr/bin/pandoc +RTS -K512m -RTS mwe.utf8.md --to latex --from  markdown+autolink_bare_uris+tex_math_single_backslash --output /tmp/RtmpnHeDOy/mwe.tex --self-contained --highlight-style tango --pdf-engine xelatex --variable graphics --lua-filter /usr/local/lib/R/site-library/rmarkdown/rmd/lua/pagebreak.lua --lua-filter /usr/local/lib/R/site-library/rmarkdown/rmd/lua/latex-div.lua --variable 'geometry:margin=1in'

#Output created: /tmp/RtmpnHeDOy/mwe.pdf
#[1] TRUE

dir("./repos/mwe test/reports")
[1] "mwe.pdf"


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当output_dir包含空格时使用Rmarkdown生成PDF文档时出错 的相关文章

  • 将函数应用于因子相关子矩阵

    我有一个对称矩阵 数据框 看起来像 structure list HQ673618 1 c NA 90 8 89 8 89 6 89 8 88 9 87 8 88 2 88 3 HQ674317 1 c 90 8 NA 98 6 97 7
  • 如何在 R 中建立具有某些条件的排列[重复]

    这个问题在这里已经有答案了 我是 R 新手 有点困惑 假设我有一个向量 c 1 2 3 4 5 6 我想生成具有四个元素的排列 每个排列应涉及 1 和 5 谢谢 您可以使用permutations https www rdocumentat
  • 如何从包含 htmlwidget 的 rmarkdown 文件生成 md 文件

    我正在用这个 rmd 创建一个 html 文件 title test author me date r Sys Date output html document r data HairEyeColor rpivotTable rpivot
  • 将数据框列作为参数传递给 mutate 函数

    我有一张表 其中有五列 年份 GDP 收入 收入 和 工资 通过这张表 我用下面的代码进行了计算 library dplyr DATA TEST lt data frame Year c 2000 2001 2002 2003 2004 2
  • 大虾如何生成目录?

    有没有一种简单的方法来生成带有相应页面链接的目录 在最近版本的虾中 是的 查看 API 示例的 Examples general outlines rb 示例 See http prawnpdf org manual pdf http pr
  • 使用 markovchain 包计算观察序列的概率

    让我们使用来自的数据集这个问题 https stats stackexchange com questions 26722 calculate transition matrix markov in r dat lt data frame
  • 使用函数保存 ggplot

    我想创建一个函数来保存绘图 来自ggplot 这是一个数据框 creating data frame music lt c Blues Hip hop Jazz Metal Rock number lt c 8 7 4 6 11 df mu
  • 如何制作 POSIXct 的空向量

    我想制作一个空向量POSIXct这样我就可以放一个POSIXct in it vec lt vector POSIXct 10 vec vec 1 lt 2014 10 27 18 11 36 PDT vec 那是行不通的 有任何想法吗 由
  • 如何在 purrr::map_df 之后使用映射向量添加列

    我使用 mtcars 数据集作为示例来说明我的问题 我对每种气缸类型进行了线性回归 并使用 map df 将所有模型结果放在一起 下面的代码和输出 我想要做的是添加另一列名为 圆柱体 4 4 6 6 8 8 我怎样才能在map df中做到这
  • data.table 和 pmin 带有 na.rm=TRUE 参数

    我正在尝试使用 pmin 函数和 data table 计算行间的最小值 类似于帖子data table 中的逐行操作和更新 https stackoverflow com questions 16860200 row by row ope
  • 如何使用 ggvis 标记绘图刻度线

    我正在尝试更改中的刻度标签ggvis阴谋 我的数据点是x c 1 2 3 and y c 1 2 3 但是 以下代码会产生完全没有意义的刻度标签 library dplyr library ggvis data frame x c 1 2
  • 如何对每行具有不同列位置的矩阵进行子集化? [复制]

    这个问题在这里已经有答案了 我想为每一行使用不同的 但一列 列来对矩阵进行子集化 那么申请可以完成这项工作吗 但也许智能子集也可以工作 但我还没有找到解决方案 计算时间是一个问题 我有一个带有 for 循环的解决方案 但多次将矩阵加载到 R
  • Sparklyr - 在 Apache Spark Join 中包含空值

    问题在 Apache Spark Join 中包含空值 https stackoverflow com questions 41728762 including null values in an apache spark join有 Sc
  • prop.test 使用什么公式?

    The prop test函数显然没有使用给定的公式here https onlinecourses science psu edu stat200 node 48创建置信区间 那么使用什么公式 下面是一个置信区间CI使用 prop tes
  • 具有不同侧边栏的选项卡

    我正在尝试创建一个带有多个选项卡的闪亮应用程序 每个选项卡都有自己的侧边栏 我还没能让它发挥作用 任何有关错误的帮助将不胜感激 下面是代码 ui lt fluidPage titlePanel Hi sidebarLayout positi
  • 如何从文本视图制作多页 PDF?

    我从 iPhone 应用程序生成了一个 PDF 文件 虽然大多数文档只有一页 但我希望能够检测文本是否超出 边距 如果是 则将其添加到下一页 我对此很陌生 所以不太确定如何做到这一点 下面是代码 有什么建议么 void drawBorder
  • 显示来自 weburl iphone sdk 的 pdf

    我正在开发一个项目 我想显示网站上的 pdf 我有 pdf 的 url 知道如何做到这一点 我还想创建网站上 pdf 的缩略图 您可以在您的设备中显示 pdf 文件 直接将 url 传递给 UIWebView UIWebView webVi
  • 打开 PDF 到书签/指定目标?

    我正在尝试使用 python 打开特定书签的 PDF 到目前为止 我可以在命令提示符中运行以下命令并得到我想要的 last是 PDF test pdf 中指定目的地的名称 C Program Files x86 Adobe Reader 1
  • 使用 cbind 的 for 循环中的动态列名称

    我正在尝试这样的循环 我想动态分配矩阵列的名称 for i in 1 nclass P lt eXb SeXb mydata chid mydata lt cbind mydata paste l i sep P 有什么想法 除了事后更改
  • 使用其他应用程序打开 pdf

    我正在应用程序中显示 pdf 文件 我想在 nag bar 上显示 打开方式 选项 显示 iPhone 上安装的可以打开相同 pdf 的应用程序 如果用户选择任何应用程序 例如 pdf 查看器 则应该使用 pdf 查看器应用程序打开 pdf

随机推荐

  • 使用最小 Cython 模块时 Python 崩溃(Python3、Anaconda3、Windows7)

    我尝试在 Windows 7 下将 Cython 与 Python3 Anaconda3 一起使用 通过编辑文件 cygwinccompiler py 解决了 distutils 中的错误后 参见在 Windows 7 下使用 python
  • 使用 Id 与对象的 EF 外键引用

    使用 Id 的外键引用与使用对象的外键引用有什么区别 例如 使用 Id 的 FK 关系 class Product public int Id get set public string Name get set public string
  • 如何从 axios 获取在 node.js 中接收 iso-8859-1 的 utf-8 值

    我有以下代码 const notifications await axios get url const ctype notifications headers content type ctype 接收 text json charset
  • 关于 的 WCF 服务配置文件问题

    据我所知 在 IIS 中托管 WCF 服务时 该标记会被忽略 我知道当自托管时这是必需的 但是这是否有害 甚至在 IIS 下操作时使用 ex
  • 我应该如何处理pushsubscriptionchange事件?

    根据规格 https www w3 org TR push api the pushsubscriptionchange event a pushsubscriptionchange事件表示 推送订阅已失效 或即将失效 处理此事件的最佳做法
  • 如何使文件防篡改? [复制]

    这个问题在这里已经有答案了 我有一个 计划中的 商业程序正在写出使用日志 作为许可证的一部分 用户将被要求每隔几周将日志提交回公司 如何确保文件没有被篡改 系统是用 C 和 Winforms 或 WPF 编写的 Update 嗯 很惊讶如何
  • 自动删除 Amazon S3 中超过 n 天的对象(如何操作?)

    我在 Amazon S3 中存储许多图像 使用 ruby 库 http amazon rubyforge org http amazon rubyforge org 我不关心超过 1 周的照片 然后为了释放 S3 中的空间 我必须删除这些照
  • XPath lowercase() 函数

    我使用 XPATH 从 XML 文档中选择某些节点 用户能够插入该位置的值 它工作正常 但如果使用不同的情况 它就不起作用 我决定在比较之前将 XML 值和用户输入更改为小写可能是最好的方法 我目前将其作为我的选择器 NodeIter na
  • 如何检测 Windows 7 调整了窗口大小

    问题 1 如何检测窗口 WPF 的大小已调整航空快拍 http en wikipedia org wiki Windows Aero 然后我可以忽略新的大小和位置 感谢您提前的答复和评论 退出时 调用获取窗口位置 http msdn mic
  • Python:使用 smtplib 模块发送电子邮件时未显示“主题”

    我能够使用 smtplib 模块成功发送电子邮件 但发送电子邮件时 发送的电子邮件中不包含主题 import smtplib SERVER
  • 每组最高

    在这里很难显示我的实际表和数据 因此我将用示例表和数据来描述我的问题 create table foo id int x part int y part int out id int out idx text insert into foo
  • 如何将 angular2 中的秒转换为时间字符串?

    因此 我一直在整个网络中寻找此功能 但没有找到可以用来将秒转换为可以表示为字符串的年 月 日 小时 分钟和秒的解决方案 我已经提出了 Angular2 中的 Pipe 解决方案 但是我想获得一些关于可以做得更好的事情的反馈来改进它 而且也许
  • 单个列表中的近似字符串匹配 - r

    我在一个长列表中包含数千个名字的数据框中列出了一个列表 许多名称都有细微的差别 这使得它们略有不同 我想找到一种方法来匹配这些名字 例如 names lt c jon smith jon smith Jon Smith jon smith
  • jsTree - 通过ajax按需加载子节点

    我正在尝试让 jsTree 能够按需加载子节点 我的代码是这样的 jQuery introspection tree jstree json data ajax url http localhost introspection intros
  • git推送认证失败

    我正在尝试从我的内部推送编辑任何地方的Python http www pythonanywhere comGitHub 上的原始主机的 hosting 帐户失败 它要求我提供 GitHub 用户名和密码 尽管提供了正确的凭据 它仍显示以下错
  • 如何将密码查询合并到 Py2neo v3 中的事务中

    在 py2neo v2 0 中 可以使用事务来执行 Cypher 语句 tx graph cypher begin tx append MERGE n Process proc nm proc nm ON CREATE SET n coun
  • 过滤 SQL 列中仅包含数字数据的行

    我在尝试着SELECT通过应用仅识别数字列的过滤条件 可以在表中显示行 这是一个仅报告的查询 因此我们最不关心性能 因为我们没有编译 PL SQL 的权限 无法检查TO NUMBER 并返回是否为数字 我必须用SQL来实现它 该列也具有这样
  • 在Python中模拟模拟对象的方法?

    我正在为一个用 Python 3 4 编写的项目编写单元测试 使用unittest mock图书馆 我正在测试的函数包含对函数的调用 versions get all versions some argument 我已经用一个修补程序Mag
  • iOS - 以编程方式获取当前正在播放的项目队列

    我想以编程方式获取当前在本机音乐应用程序中播放的队列 我可以用MP音乐播放器控制器获取当前正在播放的项目 但我不仅想获取该项目 还想获取整个播放队列 是否可以使用AV基金会或任何其他图书馆 我很确定这是不可能通过任何公共 API 实现的 s
  • 当output_dir包含空格时使用Rmarkdown生成PDF文档时出错

    这是一个最小的工作示例 名为mwe Rmd output pdf document latex engine xelatex keep tex TRUE header includes usepackage space grffile r