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

feat: generate sjtuvi graphics when installing #80

Closed
wants to merge 4 commits into from

Conversation

LogCreative
Copy link
Contributor

@LogCreative LogCreative commented Dec 12, 2021

安装时生成 VI 图形

fix #77 .

仍在进行中,原型阶段。

由于直接使用图片会导致 #61 ,这项工作将图片的生成写入tex文件中,以在安装时生成/第一次运行时生成这些依赖文件。社区版 #79 将直接使用已经编译出的文件。

已经解决

只要 ins 解包时采用 latex 系编译,并添加 -shell-escape 参数就可以编译出 vi 图形。

由于 -shell-escape 无法绕过,ins 文件在不同的平台上的安装方法不一定相同,并且自动安装一般不会添加 -shell-escape,手动安装都会一般使用

latex beamerthemesjtubeamer.ins

所以需要考虑使用第一次 -shell-escape 编译用户自己的文档时生成依赖图形。

尚未解决

现在能想到的方法暂时还不能使用 plain TeX 解包(比如 pdftex 而不是 pdflatex)。将考虑 \AtEndDocument 的hook。

一个 jpg (maxplus 头图)将无法使用 tex 文件生成,可能安装版将会转为占位符。

TODO list

  • ins 解包文件的同时生成文件
  • l3build 修改 unpackexeunpackopt
  • 给 tikz external 库打补丁,以支持 .ins 文件的缓存
  • 如果不处于 -shell-escape 则将相关的图形命令设空
  • ins 解包能够适配 plain TeX
  • 向头文件添加第一次运行的hook生成文件
  • 写入额外的文件,采用\immediate\write运行系统指令

@LogCreative LogCreative marked this pull request as draft December 12, 2021 03:41
@skyzh
Copy link
Member

skyzh commented Dec 12, 2021

SJTU Logo 的存储形式不论是 pdf, png 或是 tex,它都是 SJTU Logo,理论上都受到校徽 logo 使用协议的限制。感觉发布到 ctan 上的版本应该让用户自己指定 logo 的位置(

Base automatically changed from logcreative-coverpage to main December 12, 2021 05:00
@LogCreative
Copy link
Contributor Author

🤔 这个可以再等等 我实际上觉得校徽一类的属于public domain 按照道理应该都是可以用的 但是这个担心不无道理 这个可以先做好放着?

或许可以搞个用户协议 然后交互式编译的时候 你需要在交互式界面同意不商用才能进行编译

@LogCreative LogCreative force-pushed the logcreative-sjtuviins branch from 4f5c165 to 4420895 Compare December 12, 2021 05:45
@LogCreative
Copy link
Contributor Author

或者是传上去仅保留基本的框架,甚至改个名字叫 beamerext

@LogCreative LogCreative changed the title feat: generate sjtuvi graphics when install feat: generate sjtuvi graphics when installing Dec 12, 2021
@FvNCCR228
Copy link

提个问题可以吗。感觉就是每个frame的title占的空间比较大,同时呢,每帧的右下角还有个logo,上下一切,其实浪费了很多空间。

@FvNCCR228
Copy link

FvNCCR228 commented Dec 14, 2021

还有,想问下logo具体是怎么处理的。(我们学校官网logo没有矢量图,只有JPG糊图,我都是用inkscape描的)。

另外,各位制作的模版明显比我的好。厉害了

@FvNCCR228
Copy link

此外,关于lshort,维护方一直在维护,这个文档还是很有用的

@LogCreative
Copy link
Contributor Author

提个问题可以吗。感觉就是每个frame的title占的空间比较大,同时呢,每帧的右下角还有个logo,上下一切,其实浪费了很多空间。

这个可以通过下面的代码简化页面

\usetheme[default]{sjtubeamer}
\logo{}

这样就只剩余标题了,logo也会被去除

@LogCreative
Copy link
Contributor Author

还有,想问下logo具体是怎么处理的。(我们学校官网logo没有矢量图,只有JPG糊图,我都是用inkscape描的)。

另外,各位制作的模版明显比我的好。厉害了

我们学校官网有 AI 的矢量图,所以可以直接导出矢量信息。主分支直接采用 pdf 作为logo嵌入方式。
我看到你们的模板使用了和这个分支类似的 tikz 绘制方式,但是这种方式会有编译速度问题,评测信息可以参考 #26,如果没有采用缓存tikz图像的方式,这些信息会被重复编译。这个分支的想法是安装时编译,这样传递的是tikz源码,但是运行时就是pdf图像。但是该分支研究仍然不容乐观,合并尚无定期😂

@LogCreative
Copy link
Contributor Author

LogCreative commented Dec 14, 2021

此外,关于lshort,维护方一直在维护,这个文档还是很有用的

我也参与翻译维护了另一个项目 https://github.com/CTeX-org/learnlatex.github.io 上线之后可以交互式学习latex

@FvNCCR228
Copy link

还有,想问下logo具体是怎么处理的。(我们学校官网logo没有矢量图,只有JPG糊图,我都是用inkscape描的)。

另外,各位制作的模版明显比我的好。厉害了

我们学校官网有 AI 的矢量图,所以可以直接导出矢量信息。主分支直接采用 pdf 作为logo嵌入方式。
我看到你们的模板使用了和这个分支类似的 tikz 绘制方式,但是这种方式会有编译速度问题,评测信息可以参考 #26,如果没有采用缓存tikz图像的方式,这些信息会被重复编译。这个分支的想法是安装时编译,这样传递的是tikz源码,但是运行时就是pdf图像。但是该分支研究仍然不容乐观,合并尚无定期😂

嗯嗯,使用tikz会有严重的编译速度问题。我用tikz是拿去移封面图片了,这不是个好做法。其余所有的部件都没有用tikz。

@FvNCCR228
Copy link

提个问题可以吗。感觉就是每个frame的title占的空间比较大,同时呢,每帧的右下角还有个logo,上下一切,其实浪费了很多空间。

这个可以通过下面的代码简化页面

\usetheme[default]{sjtubeamer}
\logo{}

这样就只剩余标题了,logo也会被去除

其实可以重新排排位置,改改frametitle对应的beamercolorbox的高度和深度

@LogCreative
Copy link
Contributor Author

提个问题可以吗。感觉就是每个frame的title占的空间比较大,同时呢,每帧的右下角还有个logo,上下一切,其实浪费了很多空间。

这个可以通过下面的代码简化页面

\usetheme[default]{sjtubeamer}
\logo{}

这样就只剩余标题了,logo也会被去除

其实可以重新排排位置,改改frametitle对应的beamercolorbox的高度和深度

我看到你们的模板页头确实做的很好,自定化很高。
现在版本的sjtubeamer标题高度实际上已经和logo放在右上角的排版位置有比较大的关系了,所以暂时不好改。
目前版本还是为了原生支持各种beamer内置的outer theme(可以看用户手册第二章),以后自定义页头或许会通过插件化的方式完成 #79 。你的建议很不错的。

@FvNCCR228
Copy link

FvNCCR228 commented Dec 15, 2021

提个问题可以吗。感觉就是每个frame的title占的空间比较大,同时呢,每帧的右下角还有个logo,上下一切,其实浪费了很多空间。

这个可以通过下面的代码简化页面

\usetheme[default]{sjtubeamer}
\logo{}

这样就只剩余标题了,logo也会被去除

其实可以重新排排位置,改改frametitle对应的beamercolorbox的高度和深度

我看到你们的模板页头确实做的很好,自定化很高。
现在版本的sjtubeamer标题高度实际上已经和logo放在右上角的排版位置有比较大的关系了,所以暂时不好改。
目前版本还是为了原生支持各种beamer内置的outer theme(可以看用户手册第二章),以后自定义页头或许会通过插件化的方式完成 #79 。你的建议很不错的。

嗯嗯,我也看到了你们是想与原主题适配,这点我没管。我直接用自定义主题是考虑过空间问题的,比如迷你帧主题节标题过长或者节幻灯页数过多直接爆炸。
此外我准备寒假加英文模式,标题栏得重新改(英文占空间更多,我现在这个版式不适合英文)。
我的封面也得改,太丑了。

此外,感觉你们宏包option太多了,可以做option汇总归类。(这个我那边也正在改代码)
你们主题定义蛮多的,给好评,哈哈哈,我偷懒了。
要考试了,寒假再改,真麻烦。

@LogCreative
Copy link
Contributor Author

嗯嗯,我也看到了你们是想与原主题适配,这点我没管。我直接用自定义主题是考虑过空间问题的,比如迷你帧主题节标题过长或者节幻灯页数过多直接爆炸。 此外我准备寒假加英文模式,标题栏得重新改(英文占空间更多,我现在这个版式不适合英文)。 我的封面也得改,太丑了。

此外,感觉你们宏包option太多了,可以做option汇总归类。(这个我那边也正在改代码) 你们主题定义蛮多的,给好评,哈哈哈,我偷懒了。 要考试了,寒假再改,真麻烦。

对的自定页头 就得考虑很多边界情况 option多也还行吧 这个没用键值对 用单值也是考虑输入上的方便(

@LogCreative
Copy link
Contributor Author

由于 -shell-escape 会造成系统权限提升,会有运行漏洞,并不能很好地绕过,该分支暂时放弃。

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

Successfully merging this pull request may close these issues.

SJTUVI 包独立草案
3 participants