如何更改bookdown中的图形标题格式

2024-02-28

使用 bookdown(单个文档)时,图会自动编号为:

图 1 图标题文本。

在化学中,惯例是将主要数字标记为:

图1。图标题的文本。

对于支持信息文件:

图S1。图标题的文本。

另外,在文本中的图形参考中,我们需要:

...如图 1 所示,...

所以参考文本不应该是粗体。

Question

我怎样才能让 bookdown (或 rmarkdown)产生像这样的图形和表格标题:“图S1。一些文字。”和“表 S1。一些文字。” ?

我需要这个在MS Word format.

示例/尝试的解决方案

到目前为止,我尝试修改 _bookdown.yml 文件如下:

language:
  label:
    fig: "**Figure S**"
    tab: "**Table S**"

这给出:Figure S1 一些文本...以及使用时的内联引用:

Figure S\@ref(fig:Xray)

是图S1,没问题。

这是一个最小的例子:

---
title: Supporting Information
subtitle: "Iron(I) etc"
author: "Some people here"
abstract: "Added the addresses here since there is no abstract in the SI"
output:
  bookdown::word_document2:
    fig_caption: yes
    toc: yes
    toc_depth: 1
---

## Reaction of etc.
Some text  (Figure S\@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)
```
Some text etc. followed by a table:

```{r DipUVvis, echo=FALSE, tab.cap="Table caption"}
df<-data.frame(Entry=c('AMM 51$3^a$','AMM 52^*a*^'),
               Precat=c('[FeBr~2~(dpbz)~2~] (4.00)','[FeBr~2~(dpbz)~2~] 
(2.00)'))

kable(head(df), format = "markdown")
```

上面的代码产生Figure S1 在图标题中,但不是图S1。(请注意,全部都是粗体,最后有句号)。


虽然没有方法可以通过以下方式设置图形标题前缀的样式bookdown,可以通过应用自定义 Lua 过滤器来做到这一点(这需要pandoc2.0 或更高版本)。

Lua-过滤器

假设您从

图 1 图标题文本。

下面的过滤器应该做你想要的(参见https://pandoc.org/lua-filters.html#inline https://pandoc.org/lua-filters.html#inline有关其他格式选项):

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

(假如说img.caption[2]是之间的空白Figure)

另一个例子,如果你从

图 1 图标题文本。

下面的过滤器应该做你想要的(参见https://pandoc.org/lua-filters.html#inline https://pandoc.org/lua-filters.html#inline有关其他格式选项):

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

(假如说img.caption[2]是之间的空白Figure以及数量和img.caption[4]是数字和标题之间的空白)

应用 Lua 过滤器

假设您将此过滤器放置在名为的文件中figure_caption_patch.lua在你的目录中rmarkdown您可以通过添加一个文档来应用它pandocYAML Front Matter 中的参数:

output:
  bookdown::word_document2:
    pandoc_args: ["--lua-filter", "figure_caption_patch.lua"]

这应该会产生所需的标题样式。

图1。图标题的文本。

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

如何更改bookdown中的图形标题格式 的相关文章

  • 创建超过 2 组的高图表密度

    我尝试用两个以上的组创建高图表密度 我找到了一种手动将它们逐一添加的方法 但必须有更好的方法来处理组 示例 我想创建一个类似于下面的ggplot图表的highchart 而不需要将它们一一添加 有什么办法可以做到吗 d f lt data
  • XTS to.weekly 返回不同的每周端点

    我有一个问题endpoints 函数于xts 还有to weekly函数 使用端点 有时返回星期五作为周末 有时返回星期一 我的数据集叫做sp2 gt head sp2 1 2012 01 09 1 78 2012 01 10 1 78 2
  • MICE LoggedEvents 是什么意思?

    我正在尝试使用以下方法运行多重插补miceR 中的函数 来自同名包 我收到一条警告 表明事件已被记录 这是输出mice loggedEvents来自我的 MWE 见下文 it im dep meth out 1 1 X pmm H 我不确定
  • 在 OS X 10.7.4 上安装 RSRuby 时找不到库

    我正在尝试在我的 Mac 上安装 RSRuby 调用后 sudo gem install rsruby 我收到此错误 ERROR Cannot find the R library aborting extconf rb failed Co
  • 将outer()应用于两个列表

    我有一个清单 说exm list elm1 c a b elm2 c b c d elm3 c b c d e 我想对以下两个元素的每个组合应用一个函数exm e g length intersect exm elm1 exm elm2 结
  • 如何让 geom_vline 尊重facet_wrap?

    我四处搜寻 但无法找到答案 我想做一个加权 geom bar 图 上面覆盖有一条垂直线 显示每个方面的总体加权平均值 我无法让这件事发生 垂直线似乎是应用于所有方面的单一值 require ggplot2 require plyr data
  • 如何绘制多面直方图(不是条形图)以及相对于每个面的百分比?

    虽然有几篇关于如何在条形图的每个方面使用缩放百分比的帖子 但我没有看到任何帖子显示如何在直方图中执行此操作 可以这样做吗 这是我研究过的两篇文章 所以帖子1 使用 ggplot2 获取反映各个方面的百分比比例 https stackover
  • R 从 .CSV 创建 NetCDF

    我正在尝试从 csv 文件创建 NetCDF 我在这里和其他地方读过一些教程 但仍然有一些疑问 我有一个这样的表 lat long time rh temp 41 109 6 1 1 40 107 18 2 2 39 105 6 3 3 4
  • 估算缺失数据,同时强制相关系数保持不变

    考虑以下 excel 数据集 m r 2 0 3 3 0 8 4 0 1 3 2 1 5 2 2 3 1 9 2 5 1 2 3 0 2 0 2 6 我的目标是使用以下条件填充缺失值 将上述两列之间的成对相关性表示为 R 大约 0 68 将
  • 如何避免循环

    大家好 我是 R 新手 我有两个面板数据文件 其中包含 id date 和 ret 列 文件 A 的数据比文件 B 多得多 但我主要处理文件 B 数据 id 和 date 的组合是唯一标识符 有没有一种优雅的方式来查找 B 中的每个 id
  • R 中的匹配和计数字符串(DNA 的 k 聚体)

    我有一个字符串列表 DNA 序列 包括 A T C G 我想找到所有匹配项并插入到表中 该表的列都是这些 DNA 字母表的所有可能组合 4 k k 是每个匹配项的长度 K mer 必须由用户指定 行代表 DNA 字母表的数量在列表中按顺序匹
  • 通过变量分割 data.frame [重复]

    这个问题在这里已经有答案了 我将多个主题的数据存储在一个 CSV 文件中 导入 CSV 文件后 我想将每个参与者的数据拆分到自己的 data frame 中 更确切地说 我想采用下面的示例数据 并创建三个新的 data frames 每个
  • 错误:“tidyverse”的包或命名空间加载失败:“namespace:dplyr”未导出对象“relocate”

    我使用以下命令安装了 tidyverse install packages tidyverse 但是安装后 当我使用以下命令调用库时 library tidyverse 我收到此错误 Error package or namespace l
  • 在r包中重新导出数据集

    In R包 有可能重新导出函数 这使得很容易回收相同的函数 而不必在不同的包之间重复代码 例如 devtools session info函数是重新导出sessioninfo session info export importFrom s
  • 自动化 RStudio 处理 RMarkdown?

    我有一个 RMarkdown 文件 用于生成漂亮的 HTML 报告 问题是 我希望能够自动化它 以便它可以在无头服务器上运行 因此 不会有人启动 Rstudio 并按下 knithtml 按钮 而且 Rstudio 似乎正在做很多额外的魔法
  • 尝试通过列表递归时,在 R 中出现错误“递归索引在级别 2 失败”

    当我尝试递归遍历图形顶点列表 将它们的值与列表中的一组颜色进行匹配时 出现错误 递归索引在级别 2 失败 我的颜色列表如下 colrs lt list l blue c red n gray50 然后我有一个 igraph 中的顶点列表vs
  • R:使用 RGDAL 和 RASTER 包时抛出错误

    给所有可能相关的人 这是源代码 GRA D1 lt raster files 1 Sets up an empty output raster GRA D1 lt writeStart GRA D1 filename GRA D1 tif
  • 运行 R.exe 会创建临时文件吗?

    我在想 是否启动 R exewindows创建临时文件并 是否解释类似x lt 5写入那些临时文件 如果创建了临时文件 它们存储在哪里 如果我启动多个 R exe 实例会发生什么情况 他们会共享并覆盖彼此的临时文件吗 R 的每个实例都有自己
  • 将值添加到 rCharts hPlot 工具提示

    我想通过 rCharts 向标准 Highcharts 工具提示添加一些额外的值 示例代码 require rCharts df lt data frame x c 1 5 y c 5 1 z c A B C D E name c K L
  • 更改 ggplot 条形图填充颜色

    有了这个数据 df lt data frame value c 20 50 90 group c 1 2 3 我可以得到一个条形图 df gt ggplot aes x group y value fill value geom col c

随机推荐

  • 如何使用 XChart 使 Y 轴上的限制相同?

    我正在尝试绘制一系列相似的函数 域是 0 1 范围总是在 3 3 中 我希望每个图表的 Y 轴限制都相同 尝试设置系列 y min 和 y max 似乎不起作用 有没有办法使每个图表上的 Y 轴限制相同 import java math B
  • 使用 SMO 库从 C# 中的应用程序运行 .sql 文件

    我正在 C Visual Studio 2012 RC 中构建一个应用程序 我必须在应用程序中运行脚本 为此我正在使用 这两个库 我的应用程序的目标 net 框架是 4 5 using Microsoft SqlServer Managem
  • 溢出-x:可见;溢出-y:自动;不起作用 - 这个标准符合吗? [复制]

    这个问题在这里已经有答案了 我在开发网页时遇到问题 Firefox 或 Internet Explorer 都不会呈现我期望的以下代码片段的行为 div style width 200px height 200px border 1px s
  • 是否可以让空的 RequestParam 值使用 defaultValue?

    如果我有一个类似于以下内容的请求映射 RequestMapping value test method RequestMethod POST ResponseBody public void test RequestParam value
  • Java 中的无符号短整型

    我怎样才能声明unsigned shortJava 中的值 你不能 真的 Java 没有任何无符号数据类型 除了char 诚然你could use char 这是一个 16 位无符号类型 但在我看来这将是可怕的 因为char显然适用于文本
  • Python QuTiP 中的集成未成功

    我一直在尝试使用 QuTiP 来求解量子力学矩阵微分方程 Lindblad 方程 这是代码 from qutip import from matplotlib import import numpy as np hamiltonian np
  • 用其他语言编写 JavaScript

    我有一些不会说英语的客户 他们希望我用另一种语言为他们编写 JavaScript 浏览器可以理解其他语言吗 还是我仅限于非英语注释 navigateur nomApp indice Microsoft 代替 navigator appNam
  • 当没有按钮时,如何防止 fetch 请求重新加载 Javascript 页面?

    首先我要说的是 有无数的线程描述了涉及按钮的问题 通常 只需对传入的事件调用 event preventDefault 即可解决该问题 但是 如果在发生超出用户控制范围的事件 例如 经过一定量的帧后 后调用 post 请求 该怎么办 mak
  • 在 pandas/matplotlib 中获取散点图的 Colorbar 实例

    如何获取 pandas DataFrame plot 创建的绘图的内部创建的颜色条实例 以下是生成彩色散点图的示例 import matplotlib pyplot as plt import pandas as pd import num
  • 尺寸改变时宽度不改变

    我已经这样做很多年了 但现在它不起作用了 private void Form1 Deactivate object sender EventArgs e this Size new Size 30 29 txt Visible false
  • 有基础活动课程好吗?

    拥有好不好BaseActivity类 它将作为所有其他活动的超级类 我需要这个来为活动提供一些通用的实现 基础活动 public class BaseActivity extends Activity All Common implemen
  • 在 C# 中移动 Form2 时移动 Form1

    我有两种形式 Form2正在被打开Form1 像这样 Form2 ShowDialog StartPosition of Form2配置为centerParent 我需要固定位置Form2在 Form1 的中心 这样当我移动时Form2 F
  • 如何为 SSL 握手配置 CFStream(或 NSStream)?

    我正在使用 CFStream NSStream 建立 http 连接 我希望能够检测到 SSL 握手在三种情况下失败 情况A 服务器不可信 情况 B 服务器受信任 但要求提供客户端证书 情况 C 服务器不受信任 它要求客户端证书 今天 我没
  • Yeoman 无法识别全球安装的发电机

    I ran sudo npm install g generator flask它被保存了 我能够通过运行来确认npm list g 然后我跑yo flask 我以为这会起作用 但收到一条错误消息 Error flask You don t
  • Oracle在Java中的RETURNING INTO用法(JDBC、Prepared Statement)

    我正在使用 JDBC 执行 Oracle 语句 如下所示 INSERT INTO MYTABLE MYDATA VALUES RETURNING MY CALCULATED DATA INTO MYTABLE s def makes MY
  • Intellij 完成贡献者

    我正在为 intellij 开发一个插件 我想向基于 xsd 的 xml 编辑器添加自定义建议 到目前为止 我可以从 xsd 文件中获取所需的建议 我已经实现了 xml 的完成贡献者 如下所示 import com intellij cod
  • 将两个元素对齐在同一行

    我正在尝试对齐两个不同的 p 同一行上的元素 我让它工作了 但它完全弄乱了我的标志 他们俩 p p 元素是您在徽标两侧看到的 TEST 对齐的代码是这样的 HTML代码 p div class container div align cen
  • php 解析错误不会显示

    我正在运行 ubuntu 10 04 nginx php fpm 5 4 如果我设置display errors On在 php ini 中 所有错误都会被打印 如果相反 我将其设置为关闭 然后使用 ini set display erro
  • ggplotly 上的主标题和 legend.position 问题

    我在如何在 ggplotly 中定位主标题和图例时遇到问题 我希望我的主标题位于图表顶部并左对齐 我还希望我的图例位于图表的底部中心 这是我的代码 library ggplot2 library dplyr library tidyr li
  • 如何更改bookdown中的图形标题格式

    使用 bookdown 单个文档 时 图会自动编号为 图 1 图标题文本 在化学中 惯例是将主要数字标记为 图1 图标题的文本 对于支持信息文件 图S1 图标题的文本 另外 在文本中的图形参考中 我们需要 如图 1 所示 所以参考文本不应该