Quarto YAML 标头 pdf 文档的自定义日期

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

自定义日期在 RMarkdown-pdf 中有效,但我注意到 Quarto 不行。

如何在 Quarto YAML 中使用自定义日期?

---
title: "Some pdf document"
author: "me"
date: "Spring 2022"  <- I would like to use this
format: pdf
----
---
title: "Some pdf document"
author: "me"
date: "Last update : `r Sys.Date()`"  <- Or, like this
format: pdf
----

当前的 Quarto-pdf 仅生成 %m/%d/%Y 格式日期。

pdf quarto
2个回答
9
投票

您可以提供

last-modified
关键字(指包含该日期的文件的最后修改日期和时间)来确定日期,并使用
date-format
来修改日期。您还可以在方括号之间添加其他单词,然后这些单词将被转义并保持原样。

---
title: "Some pdf document"
author: "me"
date: last-modified
date-format: "[Last Updated on] MMMM, YYYY"
format: pdf
---


现在,由于季节名称没有 format-string,因此可以使用 Pandoc Lua 过滤器制作一个。

---
title: "Some pdf document"
author: "None"
date: last-modified
date-format: "[Last Updated on] %MMM%, YYYY"
format: pdf
filters:
  - custom-date.lua
---

注意这里我们使用了

%MMM%
,它将被季节名称替换。

自定义日期.lua

local function replace_mon_with_season(date)
  local season_table = {
    Jan = "Winter", Feb = "Winter", Mar = "Spring",
    Apr = "Spring", May = "Spring", Jun = "Summer", 
    Jul = "Summer", Aug = "Summer", Sep = "Autumn", 
    Oct = "Autumn", Nov = "Autumn", Dec = "Spring"
  }
  local date = pandoc.utils.stringify(date)
  local mon = date:match("%%(%a+)%%")
  local season = season_table[mon]
  return date:gsub("%%" .. mon .. "%%", season)
end


function Meta(m)
  m.date = replace_mon_with_season(m.date)
  return m
end



0
投票

此页面指定四开的命令。

https://quarto.org/docs/reference/dates.html

您可以在 yaml 中单独指定日期及其格式,例如:

日期:今天

日期格式:“DD/MM/YYYY”

这将输出 25/03/2024

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