FvNCCR228 / SCU_Beamer_Slide-demo

四川大学非官方Beamer模板 | Unofficial Beamer Template for Sichuan University
LaTeX Project Public License v1.3c
86 stars 13 forks source link

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

Open xkwxdyy opened 5 months ago

xkwxdyy commented 5 months ago

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

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

xkwxdyy commented 5 months ago

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

image

FvNCCR228 commented 5 months ago

上方导航栏进度条(即 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 commented 5 months ago

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

image

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

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

FvNCCR228 commented 5 months ago

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

image

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

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

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

xkwxdyy commented 5 months ago

太强了,信手拈来。

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

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

FvNCCR228 commented 5 months ago

太强了,信手拈来。

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

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

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

FvNCCR228 commented 5 months ago

太强了,信手拈来。

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

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

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

FvNCCR228 commented 5 months ago

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

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

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

已修复见1.3d版本

xkwxdyy commented 5 months ago

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

可以可以。

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

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

FvNCCR228 commented 5 months ago

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

可以可以。

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

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

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

xkwxdyy commented 5 months ago

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

FvNCCR228 commented 5 months ago

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

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

xkwxdyy commented 5 months ago

感谢!