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

上方导航栏进度条的问题 #7

Open
xkwxdyy opened this issue May 16, 2024 · 13 comments
Open

上方导航栏进度条的问题 #7

xkwxdyy opened this issue May 16, 2024 · 13 comments

Comments

@xkwxdyy
Copy link
Contributor

xkwxdyy commented May 16, 2024

上方导航栏进度条(即 subsecframe 的数量与进程)当 frame 数量多的时候不会自动换行
image

不知道这个能否优化,我记得这个是可以变成双行的那种,能否判断长度,碰到旁边深色区域就变成两行。

@xkwxdyy
Copy link
Contributor Author

xkwxdyy commented May 16, 2024

而且 subsec 的内容比较长的话,进度条就看不到了,而且有一点会影响到后面深色的部分

image

@FvNCCR228
Copy link
Owner

上方导航栏进度条(即 subsecframe 的数量与进程)当 frame 数量多的时候不会自动换行 image

不知道这个能否优化,我记得这个是可以变成双行的那种,能否判断长度,碰到旁边深色区域就变成两行。

miniframes 我是参考的tex se的回答https://tex.stackexchange.com/questions/314847 , 之前在做这一块的时候没找到beamer官方的宏接口。在本模板里面定义在384行

我一般用偷懒式解决方案
A aspectratio 改beamer的比例 (这部分我从beamer手册粘到用户手册里面了, 第12页)

\documentclass[hyperref, UTF8, CJK, aspectratio=169]{beamer}

B 使用页眉缩减版的节标题 (这样完整的小节标题只会在目录显示)

\subsection[long long]{long long long long long long}

C 使用1.3c版本的Miniframes选项 (Miniframes=follow(跟随小节标题) | separate(分离) | negate(取消))
image

\usetheme[
  Miniframes=follow, 
  ...
]{scu}

D 使用英文模式 (仍然支持中文的, 不过节标题只会显示当前节)
image

\usetheme[
  LanguageMode=en, 
  ...
]{scu}

@FvNCCR228
Copy link
Owner

而且 subsec 的内容比较长的话,进度条就看不到了,而且有一点会影响到后面深色的部分

image

或者手动改改宏包 beamerouterthemescu 第68行 \beamer@scu@len@secbar=0.64\paperwidth 中的 0.64

\beamer@scu@len@secbar 这个 dimen 的定义我在代码里面也注释说明了的, 就是节标题导航栏的宽度

@FvNCCR228
Copy link
Owner

而且 subsec 的内容比较长的话,进度条就看不到了,而且有一点会影响到后面深色的部分

image

或者手动改改宏包 beamerouterthemescu 第68行 \beamer@scu@len@secbar=0.64\paperwidth 中的 0.64

\beamer@scu@len@secbar 这个 dimen 的定义我在代码里面也注释说明了的, 就是节标题导航栏的宽度

但是如果节标题太长的话,这部分也会溢出

@xkwxdyy
Copy link
Contributor Author

xkwxdyy commented May 17, 2024

太强了,信手拈来。

使用1.3c版本的 Miniframes 选项 (Miniframes=follow(跟随小节标题) | separate(分离) | negate(取消))

我改成 separate 以及改成 169 了,感谢。

@FvNCCR228
Copy link
Owner

FvNCCR228 commented May 17, 2024

太强了,信手拈来。

使用1.3c版本的 Miniframes 选项 (Miniframes=follow(跟随小节标题) | separate(分离) | negate(取消))

我改成 separate 以及改成 169 了,感谢。

我大概搞出来一个解决方案,迷你帧跟随小节标题时能够实现换行(计算末端位置自动换行)。我这边测试一下

@FvNCCR228
Copy link
Owner

FvNCCR228 commented May 17, 2024

太强了,信手拈来。

使用1.3c版本的 Miniframes 选项 (Miniframes=follow(跟随小节标题) | separate(分离) | negate(取消))

我改成 separate 以及改成 169 了,感谢。

image
可以看看这个效果怎样,我继续测试一下,顺便改改代码

@FvNCCR228
Copy link
Owner

上方导航栏进度条(即 subsecframe 的数量与进程)当 frame 数量多的时候不会自动换行
image

不知道这个能否优化,我记得这个是可以变成双行的那种,能否判断长度,碰到旁边深色区域就变成两行。

你的问题已经解决了。我用了 let 来存储subsec的宽度信息,再计算miniframes的宽度作为parbox的宽度,换行问题也是基于parbox自动换行。

已修复见1.3d版本

@xkwxdyy
Copy link
Contributor Author

xkwxdyy commented May 19, 2024

可以看看这个效果怎样,我继续测试一下,顺便改改代码

可以可以。

你的问题已经解决了。我用了 let 来存储subsec的宽度信息,再计算miniframes的宽度作为parbox的宽度,换行问题也是基于parbox自动换行。

太强啦!如果文字比较长的效果如何呢?其实就是希望文本或者点点点其中一个比较长的时候就自动换行。

@FvNCCR228
Copy link
Owner

可以看看这个效果怎样,我继续测试一下,顺便改改代码

可以可以。

你的问题已经解决了。我用了 let 来存储subsec的宽度信息,再计算miniframes的宽度作为parbox的宽度,换行问题也是基于parbox自动换行。

太强啦!如果文字比较长的效果如何呢?其实就是希望文本或者点点点其中一个比较长的时候就自动换行。

文本比较长这文本也不好换行啊(空间有限),这时候就只能按照我上面说的那几种方式了。除非改模版,把小节标题放节标题右下角,但这样视觉逻辑会有问题,这个我不会去改了

@xkwxdyy
Copy link
Contributor Author

xkwxdyy commented May 19, 2024

感谢,因为我之前改了不少源码,有空的话兼容一下你的新版,没空的话只能用 separate 了,之后有空再处理一下。

@FvNCCR228
Copy link
Owner

感谢,因为我之前改了不少源码,有空的话兼容一下你的新版,没空的话只能用 separate 了,之后有空再处理一下。

1.3d 版本主要修改
beamerthemescu.sty 391 行481 行
beamerouterthemescu.sty 122 行155 行

@xkwxdyy
Copy link
Contributor Author

xkwxdyy commented May 20, 2024

感谢!

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

No branches or pull requests

2 participants