在四开图标题中将“图”文本加粗

问题描述 投票:0回答:2

默认情况下,在生成 html 时,quarto 将图形的标题添加到自动生成的文本“Figure NN.”中,其中 NN 是图形的编号。例如:下面的R块

```{r}
#| label: myFirstFigure
#| fig-cap: A caption
plot(1:10)
```

将生成如下所示的标题:

图 1. 标题

但是,我需要的是一个看起来像这样的标题:

图 1. 标题

我怎样才能实现这一目标?

编辑:@shafee 在他的回答中显示,可以将其设为“Figure 1.”,即只是粗体的“图形”,而不是数字。但是,我想将两者都加粗(包括点)。科学期刊经常使用粗体来表示“图”、数字和标题的第一句。

css r markdown quarto
2个回答
3
投票

您可以使用

*-title
选项指定用于字幕的标题前缀。

---
title: "Figure"
format: html
crossref:
  fig-title: '**Figure**'
  fig-labels: arabic
  title-delim: "**.**"
---

## Quarto

```{r}
#| label: fig-myFirstFigure
#| fig-cap: A caption

plot(1:10)
```

需要注意的一个非常重要的细节,您必须在块标签名称前面添加

fig-
(例如
fig-yourChunkLabelName
)才能使这些选项起作用。


figure caption prefix (partially bold)


另请注意,此解决方案只能将数字前缀

Figure
和前缀分隔符
.
加粗,但找不到加粗数字的方法。


1
投票

与此同时,我想出了另一个解决方案,它可以创建所需的输出,至少对于 HTML 来说是这样,但可能并非在所有情况下都是如此。基本上,我发现为四开创建一个 lua 过滤器不是一个选项,因为显然过滤器是在四开添加数字编号之前运行的。因此,有必要在 quarto 渲染输出后使用自定义 lua 过滤器运行 pandoc。我发现以下内容对我有用: quarto render test.qmd -t html | pandoc -L ./figfilt.lua -o test.html 这是文件

figfilt.lua

function Div(a) if a.classes[1] ~= "quarto-figure" then return end a.content = a.content:walk({ Plain = function(el) if el.content[1].t == "Str" and string.find(el.content[1].text, "^Figure") then el.content[1] = pandoc.Strong(el.content[1]) end return el end, }) return a end

如您所见,如果您不指定 

Image
 选项,图像将不再属于 
-f html

类(但如果您这样做,那么您将失去所有 Quarto 的好东西,例如 javascript)。所以这实际上是一种猜测,我不认为这个解决方案是最好的。

    

© www.soinside.com 2019 - 2024. All rights reserved.