SJTUBeamermin 第二阶段的合并进度
LogCreative opened this issue · 13 comments
LogCreative commented
LogCreative commented
API 更改(1.3)
键 | 值 | 描述 | 默认 | 备注 |
---|---|---|---|---|
cover | maxplus | 庙门照片主题 | 标题页与结尾页按照4:3标准模板实现 | |
max | 庙门背景主题 | d | 按照16:9标准模板实现 | |
min | 印记矩阵主题 | 按照 VI 参考实现 | ||
color | red | 红色主题 | d | 主题色 |
blue | 蓝色主题 | 学术色 | ||
lum | light | 亮色主题 | 主要影响标题页和结束页,与暗色进行前景/背景对调 | |
dark | 暗色主题 | d | 标题页与结束页的配色主要采用暗色 | |
lang | cn | 中文 | d | |
en | 英文 | logo选择英文版本 | ||
nav | miniframes | 节次进度 | d | |
sidebar | 侧栏 | (暂不实现,下一版重点实现) | ||
infoline | 当前章节与页数 |
目标结构
+------------------------------------------------+
+ main.tex +
+------------------------------------------------+
+ sjtubeamer +
+------------------------------------------------+
+ color + inner + outer + font +
+ +-----------+ + +
+ + cover + + +
+------------------------------------+-----------+
+ sjtuvi +
+------------------------------------+
+ logo +
+------------------------------------+
打算 outer 再分出一个 cover。inner 实现一些内部元素上的基础设施,cover 主要实现标题页和结束页。
这样更方便开发者向整个框架添加自己实现的标题页/结束页模板 促进开发
SJTUBeamermin 删除接口
cjk
:CJKutf8
已经过时,纵使其兼容性较好,但是特性上要比ctex
差。Windows 系统仍可使用 pdflatex 编译(主要是 Windows 上这个更快一些),非 Windows 系统强制使用 xelatex 编译。如果想自行采用其它中文方案/其它语种方案,直接设定为 en,自行载入宏包。gbt
:bibtex 还是 biblatex,应当由用户自行决定,或者是该幻灯片没有引用就不必引入该类宏包。引用的相关用法可以在文档中展示。pattern
:作用已经没有那么明显,初衷是为了加速编译,现在可以采用draft
草稿开关直接关闭,并在编写宏时设定相关条件。
可以进一步修改,多提点意见
比较纠结的还是 该版暂不实现ctex
该不该放进 theme 定义里,但是如果不引用中文包的话,字体基本没法设
skyzh commented
ctex 我觉得可以放进去(
LogCreative commented
执行中
beamer 没用 l3 语法,我也不用了(反正我也不会)
skyzh commented
en | 英文 | | 不载入中文宏包,logo选择英文版本
en 其实也可以载入 ctex 宏包,ctex 提供了很多好用的宏,可能在排版上会更方便一点?
LogCreative commented
主要是 ctex
会把 \today
翻译成 年月日
,figure
翻译成图之类
除非直接用底层 xeCJK😳
LogCreative commented
好像能关掉 当然跟只用底层没区别了
LogCreative commented
有道理 都用上吧
LogCreative commented
代码风格
- 我个人比较倾向于键值对的方案
lang=en
,也是 beamer 倾向的一种方案,可以用其内部机制引导(基于keyval
)。 - 使用 bool 值,如果需要加强程序鲁棒性,就需要在同类中一个选项选择后,将其余选项置否,否则很有可能会设置失败。当然如果处理的好的话,这个可以让用户的输入变得相对方便一些。当然这种处理的好也会导致一定的扩展性下降。
⚠️ 菜鸡代码警告↓
- 或者是二选一的用 bool,多选的用 kv,可能造成一定的输入接口不统一。(我觉得也不错?好像我觉得这个行🥺)
- 或者是其他更好的方案。
我感觉宏包使用 beamer 内置的更好,因为可以在设定之后传递参数。kvoptions
不太能在设定之后传参。pgfopts
是 mtheme 用的方法。(我喜欢原生
AlexaraWu commented
- 我觉得 font theme 可以暂时不做,用户可以根据自己的需要选用
beamer
类或ctexbeamer
类; kvoptions
也支持 bool 选项。
LogCreative commented
- 我觉得 font theme 可以暂时不做,用户可以根据自己的需要选用
beamer
类或ctexbeamer
类;
好的👌
kvoptions
也支持 bool 选项。
怎么传参呢 这个方面有一点顾虑,以前的话我是用偏beamer方法的
\DeclareOptionBeamer{lang}{
\def\beamer@sjtubeamermin@lang{#1}
\PassOptionsToPackage{lang=#1}{beamerouterthemesjtubeamermin}
\PassOptionsToPackage{lang=#1}{beamerinnerthemesjtubeamermin}
}
\def\beamer@sjtubeamermin@langcn{cn}%
\def\beamer@sjtubeamermin@langen{en}%
要不然我还是直接第三种 二选一用bool,多选用键值
LogCreative commented
要不然我先用我的菜鸡代码搞一阵吧 Code Review 时候再讨论 毕竟现在接口不多🥺
AlexaraWu commented
kvoptions
还有一个 \DeclareStringOption
。
LogCreative commented
有道理 我试试