此文档类 SYSUDaily.cls
旨在建立一个简单易用的中山大学数学学院「每日一题」计划的排版渠道.
本文档为 SYSUDaily.PDF
的复刻版本, 但会有一定延时, 请以 SYSUDaily.PDF
文档内容为准.
此文档类仅仅为了处理中山大学数学学院「每日一题」计划而编写, 勿作他图, 任何将此模板用于非中山大学数学学院「每日一题」计划排版而导致的纠纷与本模板作者无关.
最早的一版用于中山大学数学学院「每日一题」计划排版的 LaTeX 模板由 Innocent 编写, 在 2023 年 10 月投入最初的使用. 2024 年 3 月, Panadol 重构了整个模板的代码, 现在代码托管在 GitHub 上, 由 Innocent 和 Panadol 共同维护.
本项目是中山大学数学学院每日一题的模板, 使用方法为:
\begin{daily}[参数]
正文
\end{daily}
方括号 []
中的参数的顺序不影响结果. 参数列表如下:
仅需输入类型命名即可确定 SYSUDaily
的类型. 所有类型定义及颜色如下:
因为 \verb|proposition| 很容易拼错,类型未设置时,默认为命题,\SYSUDailySetDefaultMathStyle
可以设置默认的数学样式,此处我们将默认设置为 theorem
。
日期为8, 6, 4位整数: 19111225
, 111225
, 1225
分别代表三种不同的日期输入风格.
\begin{daily}[19111225]
那是一个遥远的圣诞夜.
\end{daily}
\begin{daily}[111225]
我忘不了那年的圣诞节.
\end{daily}
\begin{daily}[1225]
今年的圣诞节, 还要多久?
\end{daily}
一个会被识别为日期的数字(严格的逻辑将会在未来补全), 但是格式错误时, 将不会显示任何东西:
\begin{daily}[125]
今天是 1 月 25 日? 异或 12 月 5 日?
\end{daily}
哦, 请不要把它当做关闭日期显示的开关, 我们提供 \SYSUDailyNoShowDate
来关闭日期显示, 也可以用 \SYSUDailyDoShowDate
来恢复开启.
\SYSUDailyNoShowDate
\begin{daily}
今天几月几号, 我也不知道.
\end{daily}
日期未设置时, 默认为当天日期 \today
:
\begin{daily}
今天是\today{}, 不是么?
\end{daily}
我们引入所谓的``日期筛选功能'',通过 \SYSUDailyEnableDateCheck
和 `\SYSUDailyDisableDateCheck` 开启或关闭日期检查,通过 `\SYSUDailySetGlobalDate` 设置全局日期,如果日期不符合要求,将不会显示任何内容,此外我们默认提供 `solution` 环境,如果日期不符合要求,将会不显示解答。
\SYSUDailyEnableDateCheck
\SYSUDailySetGlobalDate{20250101}
\begin{daily}[20250101, 新年快乐!]
这个日期会被挑选出来。
\end{daily}
\begin{solution}
\[2025 = \sum_{n=1}^9 n^3\]
\end{solution}
难度为1–4的整数, 否则不会识别为难度.
\begin{daily}[解析函数的刻画, theorem, 20101010, 4]
......
\end{daily}
难度未设置时, 默认为 0
.
除去满足上面条件的参数, 其余参数均视为标题, 若识别到多个标题, 则以第一个为准.
若想要输入域时间, 难度, 类型重复的标题, 可以在使用 \mbox{}
解决:
\begin{daily}[\mbox{theorem}]
正文
\end{daily}
标题未设置时, 默认为 \relax
.
SYSUDaily.cls
默认使用 fandol 字库, 因此不支持 pdfLaTeX, 同时,
在检测到存在时, 会调用 Resource Han Rounded 作为中文等宽字体.
当使用 unimath=true
预设时, 会使用方正新书宋, 方正粗雅宋, 华文楷体, 苹方黑体作为中文字体, 且使用 Minion Pro 作为西文字体, 这些字体均是商业字体.
SYSUDaily.cls
默认使用以下宏包作为字体调用库:
- amsfonts
- amssymb
- mathrsfs
- dsfont
- eucal
当使用 unimath=true
预设时, 会使用 Minion Math 作为主要数学字体, 这款字体也是商业字体.
在任何情况下, 文档类都会显式调用以下宏包或文档类:
- ctexart. 中文排版的通用框架;
- xcolor. 提供色彩支持, 默认按
svgnames
载入; - amsmath, amsthm. 数学框架;
- fontspec. 调整字体, 因此不支持 pdfLaTeX;
- geometry. 用于调整页面尺寸;
- eucal. 调整手写数学字体样式;
- fixdif, mathtools. amsmath 的扩展;
- kvoptions. 设置关键词之用;
- graphicx. 提供图形插入的接口;
- enumitem. 设置列表环境格式.
unimath=true
预设会调用相关的字体宏包, 具体调用细节已在此中列出.
目前计划
- 强化日期检查功能,例如支持更多格式或是优化性能。
- 统一目前的代码风格和命令名称。
v2.3 (2024/10/26–2024/12/31)
- 添加日期检查功能,可通过 \verb|\SYSUDailySetGlobalDate| 设置全局日期,通过 \verb|\SYSUDailyEnableDateCheck| 和 \verb|\SYSUDailyDisableDateCheck| 开启或关闭日期检查;
- 优化 \verb|solution| 环境,支持根据日期检查结果控制内容的显示;
- 添加 \verb|SYSUDailySetDefaultMathStyle| 命令,支持设置默认的数学样式。 \end{itemize}
v2.2 (2024/04/10–2024/10/26)
- 微调水印样式
v2.1 (2024/04/04–2024/04/10)
- 更精确的日期检测(大于100的4、6、8 位整数),添加了开启和关闭日期显示的功能。
v2.0 (2024/03/20–2024/04/04)
- 应用 LaTeX3 重构代码;
- 添加
unimath
文档类选项; - 将原来的
theorem
等环境简化为daily
环境; - 使用 l3seq 处理
daily
环境的可选参数, 利用更合理的判断机制实现输入上的简化; - 去除随机图标.