Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SJTUBeamermin 第二阶段的合并进度 #25

Closed
7 tasks done
LogCreative opened this issue Aug 18, 2021 · 13 comments · Fixed by #42
Closed
7 tasks done

SJTUBeamermin 第二阶段的合并进度 #25

LogCreative opened this issue Aug 18, 2021 · 13 comments · Fixed by #42
Assignees
Labels
enhancement New feature or request

Comments

@LogCreative
Copy link
Contributor

LogCreative commented Aug 18, 2021

第一阶段:#24

SJTUBeamermin 内部的重构

API 合并

文档

  • 用户文档
  • 开发文档
@LogCreative LogCreative added the enhancement New feature or request label Aug 18, 2021
@skyzh skyzh changed the title 第二阶段的合并进度 SJTUBeamermin 第二阶段的合并进度 Aug 18, 2021
@LogCreative
Copy link
Contributor Author

LogCreative commented Aug 20, 2021

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 删除接口

  • cjkCJKutf8 已经过时,纵使其兼容性较好,但是特性上要比 ctex 差。Windows 系统仍可使用 pdflatex 编译(主要是 Windows 上这个更快一些),非 Windows 系统强制使用 xelatex 编译。如果想自行采用其它中文方案/其它语种方案,直接设定为 en,自行载入宏包。
  • gbt:bibtex 还是 biblatex,应当由用户自行决定,或者是该幻灯片没有引用就不必引入该类宏包。引用的相关用法可以在文档中展示。
  • pattern:作用已经没有那么明显,初衷是为了加速编译,现在可以采用 draft 草稿开关直接关闭,并在编写宏时设定相关条件。

可以进一步修改,多提点意见
比较纠结的还是 ctex 该不该放进 theme 定义里,但是如果不引用中文包的话,字体基本没法设 该版暂不实现

@skyzh
Copy link
Member

skyzh commented Aug 20, 2021

ctex 我觉得可以放进去(

@LogCreative LogCreative self-assigned this Aug 20, 2021
@LogCreative
Copy link
Contributor Author

LogCreative commented Aug 21, 2021

执行中

beamer 没用 l3 语法,我也不用了(反正我也不会)

@skyzh
Copy link
Member

skyzh commented Aug 21, 2021

en | 英文 |   | 不载入中文宏包,logo选择英文版本

en 其实也可以载入 ctex 宏包,ctex 提供了很多好用的宏,可能在排版上会更方便一点?

@LogCreative
Copy link
Contributor Author

LogCreative commented Aug 21, 2021

主要是 ctex 会把 \today 翻译成 年月日figure 翻译成图之类
除非直接用底层 xeCJK😳

@LogCreative
Copy link
Contributor Author

LogCreative commented Aug 21, 2021

好像能关掉 当然跟只用底层没区别了

@LogCreative
Copy link
Contributor Author

LogCreative commented Aug 21, 2021

有道理 都用上吧

@LogCreative
Copy link
Contributor Author

LogCreative commented Aug 21, 2021

代码风格

  • 我个人比较倾向于键值对的方案 lang=en,也是 beamer 倾向的一种方案,可以用其内部机制引导(基于 keyval)。
  • 使用 bool 值,如果需要加强程序鲁棒性,就需要在同类中一个选项选择后,将其余选项置否,否则很有可能会设置失败。当然如果处理的好的话,这个可以让用户的输入变得相对方便一些。当然这种处理的好也会导致一定的扩展性下降。⚠️菜鸡代码警告↓
    image
  • 或者是二选一的用 bool,多选的用 kv,可能造成一定的输入接口不统一。(我觉得也不错?好像我觉得这个行🥺)
  • 或者是其他更好的方案。

我感觉宏包使用 beamer 内置的更好,因为可以在设定之后传递参数。kvoptions 不太能在设定之后传参。pgfoptsmtheme 用的方法。(我喜欢原生

@AlexaraWu
Copy link

  • 我觉得 font theme 可以暂时不做,用户可以根据自己的需要选用 beamer 类或 ctexbeamer 类;
  • kvoptions 也支持 bool 选项。

@LogCreative
Copy link
Contributor Author

LogCreative commented Aug 21, 2021

  • 我觉得 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}%

image
就这个底层没暴露出来

要不然我还是直接第三种 二选一用bool,多选用键值

@LogCreative
Copy link
Contributor Author

要不然我先用我的菜鸡代码搞一阵吧 Code Review 时候再讨论 毕竟现在接口不多🥺

@AlexaraWu
Copy link

kvoptions 还有一个 \DeclareStringOption

@LogCreative
Copy link
Contributor Author

有道理 我试试

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants