在 beamer 中,如何改变目录页的页边距与 内容的水平对齐方式?
如何改变目录页中 section 的首个字符与前面小圆圈的水平间距。例如
下图中“小圆圈1” 与“第一部分”之间的水平距离怎么改变?
在 frame 中使用了 allowframebreaks
选项使内容可以跨页,但会使每一页都显示这个 frame 的标题,如何设置只在第一页显示该 frame 的标题,后面的几个分页都不显示标题?
这些可以使用section in toc样式实现,一个简单的实现代码如下:
\documentclass{ctexbeamer}
% 带圈数字宏包
\usepackage{circledtext}
% 设置带圈数字样式(注意charcolor需要先设置)
\circledtextset{boxtype=o,charcolor=black,boxcolor=green,boxfill=green}
% 定义目录样式
\defbeamertemplate{section in toc}{circled numbered}{%
\leavevmode% 进入水平模式
\leftskip=0.2\textwidth% 左边距
\llap{%
\circledtext{\inserttocsectionnumber}% 带圈数字
}%
\kern 2em% 编号与item之间的水平间距
\inserttocsection\par% 节标题
}
% 设置目录样式
\setbeamertemplate{section in toc}[circled numbered]
\begin{document}
\begin{frame}
\frametitle{目录}
\tableofcontents
\end{frame}
\section{第一部分}
\begin{frame}
\frametitle{引言}
针对....
\end{frame}
\section{第二部分}
\begin{frame}
\frametitle{方法与材料}
在天....
\end{frame}
\section{第三部分}
\begin{frame}
\frametitle{结果}
结果没错....
\end{frame}
\end{document}
其结果如下:
另一个标题问题,我觉得应该是保留标题更为合理。如果要改,同样可以通过\setbeamertemplate{frametitle continuation}
设置样式解决:
\documentclass{ctexbeamer}
\usepackage{zhlipsum}
% 删除分页frame后续slides的标题
\makeatletter
\setbeamertemplate{frametitle continuation}{\gdef\beamer@frametitle{}}
\makeatother
\begin{document}
\begin{frame}[allowframebreaks]{分页首页标题}
\zhlipsum[1]
\framebreak
\zhlipsum[2]
\framebreak
\zhlipsum[3]
\end{frame}
\begin{frame}{单页标题}
\zhlipsum[4]
\end{frame}
\end{document}
结果为:
非常感谢!第二个问题成功解决。
但关于目录的问题我复制了您的代码编译出错,报错信息如下
但并没有显示有错误,只是编译不了,也不显示结果。我在 overleaf 上测试也是报错。
@u26254 这可能是circledtext宏包引起的错误,你可以不用这个宏包,用TikZ直接画一个也行:
如果觉得大小、颜色等不合适,可以根据需求进行适当调整。
@u78 另外如果觉得有用,建议采纳一个答案。这样我也知道是不是回答正确了。
@u78 明白了,谢谢您