XCPC-templates 生成(XCPC 模板生成)

今年在准备我们队模板的时候,发现模板一多,整理就会变得很麻烦。于是搜索了一下其他队的模板库,看看别的队伍是如何整理的:

  1. Markdown 文本编辑

    https://github.com/lnkkerst/XCPC-templates/tree/main 可以说是最硬核的方式,因为 Markdown 不存在文件内容引用的方式,会导致文件内容异常庞大。

  2. LaTeX 文本编辑

    https://github.com/sunkafei/xcpc-algorithm-templates 该库内虽然没有明显信息,但可以通过 Releases 的 PDF 文件观测出是通过 LaTeX 生成的。

  3. LeTeX (前端等)非侵入式生成

    https://github.com/Chen-Jr/ICPC-Code-Template-in-Latex, https://github.com/jasison27/ACM-ICPC-CodeTemplate-LateX 即通过编程语言,自动生成利用 LaTeX lstinputlisting 来引入代码文件的最终 tex 文件。

    又或者是 https://github.com/lnkkerst/XCPC-templates/tree/main 通过 Markdown 文件生成前端页面,再打印成 PDF。

    这种非侵入的方式、自动生成的方式无疑是优于前两种的。

但目前我所找到的采用第 3 种方式生成的库,可能有以下缺点:

  1. 需要自己手动更新配置文件;

  2. 需要在自己的电脑上安装相应的环境(比如 g++, make, LaTex 编译环境);

  3. 生成的文件不够自定义,比如有需求:

    • 我想要代码前后插入一些说明性文字;
    • 某个章节我只想要有一些说明性文字。
  4. 配置选项不够完善:比如不能通过配置的方式修改 authortitle

  5. LaTeX 没有配置好中文;

  6. README 不是很完善。

于是,我重新用 Python 写了一个项目用于解决以上问题:

  1. 可以通过 gen.ps1gen.sh 脚本来自动递归生成每个目录配置文件;
  2. 通过 GitHub Actions 自动化 Build 流程,并发布到 GitHub Releases 下;
  3. 拓展了配置文件配置项;
  4. 增加项目根目录的配置用于配置项目元信息;
  5. 按照自己的审美调整了 LaTeX 的格式,并增加中文支持;
  6. 完善的 README 文件。

目前我们队正在使用该项目生成我们队的模板,希望也有别的队能够尝试并且提 Issue 或 PR :)。


XCPC-templates 生成(XCPC 模板生成)
https://lllei.top/2024/09/30/XCPC-templates/
作者
Lei
发布于
2024年9月30日
许可协议