在 R Markdown 中使用 pandoc 和 bookdown 删除图标题中的冒号

2023-12-05

我正在更改 R Markdown 中图形标题的字体并使用bookdown和 pandoc 这样做。我的问题与以下问题密切相关:如何更改bookdown中的图形标题格式?。我能够获得正确的图形编号,并且能够更改标题的“图 1”部分的格式。但是,我无法弄清楚如何删除输出中的冒号(即“图 1:.”)。

最小的例子

Pandoc 函数(取自here)

function Image (img)
  img.caption[1] = pandoc.Strong(img.caption[1])
  img.caption[3] = pandoc.Strong(img.caption[3])
  img.caption[4] = pandoc.Strong(".  ")
  return img
end

To use function Image在R Markdown中,将文件保存为“figure_caption_patch.lua”,该文件将在pandoc_args在 YAML 元数据中。

R Markdown

---
title: Hello World
author: "Somebody"
output:
  bookdown::word_document2:
    fig_caption: yes
    number_sections: FALSE
    pandoc_args: ["--lua-filter", "figure_caption_patch.lua"]

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

# Test
Some text (Figure \@ref(fig:Xray)). Some text followed by a figure:

```{r Xray, fig.cap="Single-crystal X-ray structure of some text", echo=FALSE}
plot(cars)
```

Output

图1:。这是一个标题。

所需输出

图1。这是一个标题。

在 pandoc 函数中,我尝试对字符串进行子集化img.caption[3],但没有成功。我尝试了以下方法:

img.caption[3] = pandoc.Strong(string.sub(img.caption[3], 1, 1))

我知道如果我使用 R,那么我可以这样做:

a = c("words", "again")
substring(a, 1, 1)[1]

#output
[1] "w"

但不确定如何使用 pandoc 执行此操作。


看起来有变化rmarkdown默认添加一个冒号。这也是链接帖子中的答案不再有效的原因。有关此问题的更多信息和解决方案,请参阅https://community.rstudio.com/t/how-to-change-the-figure-table-caption-style-in-bookdown/110397.

除了那里提供的解决方案之外,您还可以通过用点替换冒号来达到您想要的结果。调整 lua 过滤器提供的https://stackoverflow.com/a/59301855/12993861这可以这样做:

function Image (img)
  img.caption[1] = pandoc.Strong(img.caption[1])
  img.caption[3] = pandoc.Strong(pandoc.Str(string.gsub(img.caption[3].text, ":", ".")))
  return img
end

enter image description here

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

在 R Markdown 中使用 pandoc 和 bookdown 删除图标题中的冒号 的相关文章

  • ggplot 中的错误问题:“grid.Call(”L_textBounds“, as.graphicsAnnot(x$label), x$x, x$y, … 中的错误”[重复]

    这个问题在这里已经有答案了 我试图在 ggplot 中制作一个条形图 其中我通过强制其中一些标签为长度为零的字符串 即 来指定要显示的标签 但是 我收到错误 Error in grid Call L textBounds as graphi
  • 查找数据帧列表中同一列中的所有重复值并将其转换为 NULL

    我有一个清单BELGIAN COAST list包含数百个数据帧 df1 df2 15 列 X 1000 行 每个数据帧的最后一列称为Chemicals并包含一些字符 例如Sulfate or Ammonia 但是这一列有很多行Chemic
  • 如何在 R 中为传单中的数值变量设置不对称颜色渐变

    我想让传单调色板以零为中心 红白绿发散 我已经尝试过中所说的这个帖子 https stackoverflow com questions 29262824 r center color palette on 0 当我尝试手动创建颜色时 我得
  • 从 R 环境中删除对象

    我正在阅读 Hadley 的 Advanced R 在第 8 章中 他说我们可以使用以下方法从环境中删除对象 rm 但是 移除该物体后我仍然可以看到该物体 这是我的代码 e lt new env e a lt 1 e b lt 2 e a
  • R.matlab/readMat:readTag(this) 中出错

    我正在尝试使用 R matlab 将 matlab 文件读入 R 但遇到此错误 require R matlab r lt readMat file mat verbose T Trying to read MAT v5 file stre
  • 当每个记录都是一个段落并且某些记录有 4 个字段而其他记录有 6 个字段时,如何将文本文件读入 R

    如何读取文本文件 其中每条记录都是一个段落 每个换行符表示单独的字段 复杂的是 有些记录有 4 行 有些记录有 6 行 当字段数量的差异为 1 时 DWin 解决了我的问题 但当字段数量差异为 2 时 一切都崩溃了 你可以有一个在这里看看他
  • 将 VLMC 拟合到很长的序列

    我正在尝试将 VLMC 拟合到最长序列为 296 个状态的数据集 我这样做如下所示 Load libraries library PST library RCurl library TraMineR Load and transform d
  • 仅保留百分比的尾随零

    给出以下示例 library pander tableAbs lt Titanic 1 1 tablePct lt round prop table tableAbs 100 2 table lt cbind tableAbs tableP
  • 将数据从 R 导出到 Excel

    我试图将从 R 获得的一些结果导出到 Excel 中 但未成功 我尝试过以下代码 write table ALBERTA1 D ALBERTA1 txt sep t write csv ALBERTA1 ALBERTA1 csv your
  • glmnet 未从 cv.glmnet 收敛 lambda.min

    我跑了20倍cv glmnet套索模型以获得 lambda 的 最佳 值 但是 当我尝试重现结果时glmnet 我收到一个错误 内容如下 Warning messages 1 from glmnet Fortran code error c
  • R:表格格式

    我有一个包含以下列的 Excel 文件 Column1 Column2 Column3 ab bb 0 5 ab bc 0 1 ab cd 0 7 ab dd 0 8 ac bb 0 2 ac bg 0 8 ac ee 0 8 ac dd
  • 在 R 中使用 Huggingface Transformer 模型

    我正在尝试在 R 中使用不同的 Huggingface 模型 这是通过 reticulate 导入 Transformer 包来实现的 谢谢 https rpubs com eR ic transfoRmers https rpubs co
  • 16 位以上整数的计算

    我有两个大整数 两者都超过 16 位 确切地说是 20 位 而且我知道由于双精度浮点运算 我在使用这些数字进行计算甚至将它们存储在变量中 独立于编程语言 时受到限制 不过 我想也许gmp图书馆应该处理它们 但不幸的是它没有 可以计算更大的整
  • 如何匹配 R 中的所有匹配项?

    我有 1000 个名字的列表 说A 我还有另外 5 个名字的清单 说B 我想找出这5个名字出现在1000个号码列表中的第几行 例如 Amy 在 A 中可以出现 25 次 B 里有艾米 我想知道 Amy 出现在 A 中的哪些行 我以前使用过
  • 具有 dplyr、tidyverse 和 broom 的相关矩阵 - P 值矩阵

    全部 我想使用以下方法从相关矩阵中获取 p 值dplyr 和 或扫帚包 并同时测试多个变量 我知道其他方法 但 dplyr 对我来说似乎更简单 更直观 此外 dplyr 需要关联每个变量以获得特定的 p 值 这使得该过程更容易 更快 我检查
  • ggplot 直方图相对于轴的位置不正确

    我试图这样绘制直方图 Todo lo haremos con base en un variable aleatoria Uniforme 0 1 set seed 26 n 10000 U lt runif n n Supongamos
  • R - Quantstart:多种股票的测试策略

    我正在使用一些指标构建基本交易策略 我的问题是我希望它在多个股票上运行 而不必指定我想要测试的每个单独的股票 目前我可以使用向量一次获取多个符号 如下所示 Get Shares from Yahoo Finance Stocks lt AS
  • 使用许多特殊字符将 R 连接到 HANA 数据库时出现问题

    我在将 HANA 数据读入 R 时遇到问题 我已通过以下方式建立了连接 ch lt odbcConnect HANA uid USER pwd PW 并确认我已通过以下方式连接 sqlTables ch 这会调出我的表格列表 对我想要拉取的
  • 基于条件反应逻辑闪亮的 Flexdashboard

    我正在尝试有条件地进行一种类型的渲染 renderPlot 或其他 renderText 基于一些输入 这是我尝试过的 title Citation Extraction output flexdashboard flex dashboar
  • 如何一次导入多个 .csv 文件?

    假设我们有一个包含多个 data csv 文件的文件夹 每个文件包含相同数量的变量 但每个文件来自不同的时间 R 中有没有办法同时导入它们 而不必单独导入它们 我的问题是 我有大约 2000 个数据文件需要导入 并且必须使用以下代码单独导入

随机推荐

  • 如何从外部更新 JavaFX 场景?

    我正在尝试学习 JavaFX 并将 swing 应用程序转换为 JavaFX 我想做的是使用JavaFX来显示程序的进度 我之前在 Swing 中所做的事情是首先使用自定义 JComponent 创建一个 JFrame 然后让我的主程序调用
  • 我可以使用函数返回 php 中的默认参数吗?

    我想做这样的事情 function readUser aUser loadDefaultUser doing read User 我发现它会向我显示错误 如何将函数返回值作为默认值传递 谢谢 我宁愿给一个Null该参数的值 然后调用load
  • 为什么 PHP crypt() 函数为两个不同的字符串返回相同的内容?

    我正在使用 PHPcrypt函数用于密码散列 加密 但我认为我做得不对 因为 nathan12 和 nathan123 都允许我登录系统上的帐户 实际密码是 nathan123 因此 nathan12 或者其他什么应该NOT允许我登录 这是
  • 使用 patchify 库创建补丁时出现问题

    我正在使用 patchify 库来创建更大的 jpg 图像的补丁 我使用以下代码 取自此 YT 视频 当 YT 人员读取他的图像 12 张 tiff 图像 时 他会得到 large image stack 变量的以下大小 12 768 10
  • Pentaho reportviewer URL 未在 iframe 中加载

    我是 pentaho 新手 我尝试在我使用的 iframe 中使用 pentaho reportviewer 显示报告 prpt文件来加载报告 我在 iframe 中使用了以下网址 http 172 20 10 30 8080 pentah
  • 在 AVD 上运行 SIP 演示 Android 平台 2.3

    Android 2 3平台包含一个SIP演示项目 我想在两个 AVD 上测试这个项目 而不是在真正的 Android 设备上 我真的不知道如何继续 From 测试 SIP 应用程序 测试 SIP 应用程序 要测试 SIP 应用程序 您需要以
  • Python在方法内使用tkinter显示变量

    我刚刚编写的程序是我了解 Tkinter 工作原理的游乐场 我的问题是如何将变量 timelabel 显示为标签 我已经制作了一个名为 时间刷新 的标签 但它没有显示 我知道 DigitalClock 类的编写效率不高 我是新来的 def
  • 在 C 或 C++ 中以编程方式删除非空目录

    如何在C或C 中删除非空目录 有什么功能吗 rmdir 只删除空目录 请提供一种不使用任何外部库的方法 还告诉我如何用 C 或 C 删除文件 您想要编写一个函数 递归函数是最简单的 但很容易耗尽深层目录上的堆栈空间 来枚举目录的子目录 如果
  • 具有扩展密钥用法的证书仅适用于 Firefox

    我尝试为多个域的服务器生成自签名证书 我在 v3 req 扩展中使用了 openssl 我使用此命令行生成具有多个域和扩展密钥用法的证书 openssl x509 req days 3650 in san domain com csr si
  • atexit 函数的目的是什么?

    我知道函数的地址何时传递给atexit功能 该函数被执行 include
  • 如何在 aws emr 上使用 -libjars?

    Stack Overflow 上有类似的问题 但没有一个回答这个问题 当按照以下链接时出现问题http grepalex com 2013 02 25 hadoop libjars 我们需要使用 export HADOOP CLASSPAT
  • 是否有 OutputDebugString 的 Unicode 替代品?

    OutputDebugString 是原生 ASCII 这意味着它在调用 ASCII 版本之前将输入的 Unicode 字符串转换为本地字符串OutputDebugStringA 有没有什么替代方案OutputDebugString 哪个支
  • .htaccess RewriteRule 有效,但地址栏中的 URL 没有变化?

    我一直在抓着头发试图解决这个问题 但没有任何效果 我有一个网页位于mysite com test php我想做一个简单的 URL 重写并将其更改为mysite com testRewrite 实现这一点的代码应该是 Options Foll
  • 如何将包导入 Scala REPL?

    如何将包导入 Scala 的 REPL 中 我正在尝试导入这个名为 funsets 的包 它有一个名为 FunSets 的对象 我尝试了几种变体import funsets and import funsets 等等 但它仍然没有导入包中的
  • Android后台服务和警报

    最近遇到一个问题Android 4 4杀死了我的应用程序Service and AlarmManager当设备进入睡眠模式时 START STICKY参数没有帮助 我尝试了很多东西 但没有任何效果符合我的需要 在我的任务管理器应用程序中 我
  • 在 OCaml 中打破循环

    我经常需要在 OCaml 中打破循环 至少有两种方法 by exception try for i 0 to 100 do if cond then raise BreakLoop done with BreakLoop gt by whi
  • SQL 按字母顺序排序,小于 10 的数字不带前导零

    是否可以按以下方式在 mySQL 中按字母顺序排序 A1 A2 A3 A5 A10 A11 A20 A23 A24 不幸的是 我收到的订单如下所示 请注意 A10 之前的任何数字如何没有组合在一起 A1 A10 A11 A12A2 A20
  • 由于 AccessibilityNodeInfo getChild 导致出现大量 ANR

    收到大量 ANR 报告 main prio 5 tid 1 可运行 组 主 sCount 0 dsCount 0 标志 0 obj 0x72e8a568 自我 0xe65da000 sysTid 20592 好 0 cgrp 默认调度 0
  • 对 Intellij 如何编译事物和处理资源感到困惑

    我对 Visual Studio 的 IntelliJ 非常陌生 而且我通常对资源文件在 IntelliJ 项目中的工作方式感到非常困惑 我阅读了一些有关将资源添加到类路径以及 IntelliJ 文档的问题和解答 但仍然感到困惑 我还有几个
  • 在 R Markdown 中使用 pandoc 和 bookdown 删除图标题中的冒号

    我正在更改 R Markdown 中图形标题的字体并使用bookdown和 pandoc 这样做 我的问题与以下问题密切相关 如何更改bookdown中的图形标题格式 我能够获得正确的图形编号 并且能够更改标题的 图 1 部分的格式 但是