Welcome to R Square

用 R 生成日历

楚新元 / 2021-09-23


2021 年就这么晃晃悠悠快过去了,有点发慌,不管怎样,我得抓紧时间干点什么,三个月时间说长不长,说短也不短。为自己做个日历吧,拖延症是病,得治,虽然拖延症患者需要管理的不是时间而是情绪。

library(calendR)
library(showtext)

# 定义年份
year = 2021

# 判断文件是否存在,如果存在先删除
cal_file = paste0("calendar", year, ".pdf")
if (file.exists(cal_file)) file.remove(cal_file)

# 载入中文字体
font_add("kaishu", "simkai.ttf")
showtext_auto()

# 生成日历
calendR(
  # 定义年份(标题)
  # title 如果缺失,则以年或年月替代
  year = year,
  
  # 标题设置
  title.size = 45,
  title.col = "#1E323D",      # 更深邃的墨色,提升质感
  
  # 副标题设置
  subtitle = "每天好心情",
  subtitle.size = 11,
  subtitle.col = "#5A6B73",   # 柔和的烟灰色
  
  # 月份方块设置
  mbg.col = "#2A4B59",        # 莫兰迪深蓝绿背景
  months.col = "#FFFFFF",     # 纯白月份字,对比鲜明
  months.size = 11,           
  months.pos = 0.5,           # 水平居中
  
  # 星期设置
  weeknames = c("Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"),
  weeknames.col = "#4A5568",  # 优雅的深灰
  weeknames.size = 4.5, 
  start = "M",                # 从周一开始
  
  # 日期方块设置
  days.col = "#2D3748",       # 日期数字颜色接近黑,易读
  day.size = 3, 
  special.days = "weekend",   # 周末特殊标记
  special.col = "#E8D3D1",    # 温柔的淡茱萸粉高亮周末
  gradient = FALSE,  
  low.col = "#FFFFFF",        # 工作日背景为纯白,形成网格感
  lty = 1,                    # 开启轻微的边框线
  lwd = 0.2,                  # 极细线
  col = "#E2E8F0",            # 淡淡的浅灰格子线,让日子错落有致

  # 月历设置(可选)
  # text = "",
  # text.pos = NULL,
  # text.size = 4,
  # text.col = "gray30",
  # lunar = FALSE,
  # lunar.col = "gray60",
  # lunar.size = 7,
  
  # 全局页面设置
  font.family = "kaishu", 
  font.style = "plain",  
  orientation = "landscape",  
  papersize = "A4", 
  margin = 0.8,                 # 略微收紧页边距,让日历区域更大
  bg.col = "#FAF9F5",           # 全局背景:温暖的米杏色
  # bg.img = "./img.jpg",       # 背景图片可选设置
  legend.pos = "none",  
  pdf = TRUE, 
  doc_name = paste0("calendar", year)
)

showtext_end()