beamer 中的易碎 tcolorbox 不会自动破坏,并出现以下问题

beamer 中的易碎 tcolorbox 不会自动破坏,并出现以下问题

tcolorbox我在使用带有类的breakable 时遇到了几个问题beamer。对于其中一些问题,虽然找到了解决方法,但我仍然想知道是否存在更自动化和更优雅的解决方案。

对于以下问题,假设beamer使用文档类并且将选项allowframebreaks添加到frame环境中。

问题 1.如何让breakabletcolorbox自动断开?

解决方法1:break at=<length1>手动设置。

问题2. 如何垂直居中中间中断序列的部分(如果有的话)?(第一的最后的各部分按预期垂直居中。}

解决方法:设置enlarge top at break by=<length2>break at=<length1>/<length1 + length2>扩大中间和最后一部分的顶部分隔符,保持这两部分的文字内容高度不变,但这也会增加最后一部分的顶部分隔符,导致定位不理想。

它无法将任何橡胶长度传递给键enlarge top at break by,因此我必须使用“80pt”之类的东西来模拟垂直居中。我如何添加\vfill中间部分之前和之后之类的东西?有一个键名为vfill before first=<bool>第一部分,但没有类似的键用于中间部分。

问题 3. 如何在休息前添加“继续”等提醒文字?

解决方法:用于bottomsep at break=<length>腾出一些空间,并finish first and middle=<graphical code>添加提醒文字。

问题 4。一般来说,如何分别在第一、中间和最后一部分的中断前后插入代码,以改变它们的几何形状、文本内容和其他内容?

extras={<options>}关键家庭的医生说

几何和断裂设置不应在这里使用,...

因此extras密钥系列不适合这里。<code>传递给密钥beforeafter

仅用于休息序列的第一部分之前和最后一部分之后。

因此这两个键也不适合。


在任何情况下都生成页面的 MWE:

\documentclass{beamer}
\usepackage{lipsum}
\usepackage{tcolorbox}
\tcbuselibrary{breakable, skins}

\tcbset{breakable}

\newcommand{\frameDemo}{
  \begin{frame}[allowframebreaks]
    \begin{tcolorbox} \lipsum[2-3] \end{tcolorbox}
  \end{frame}
}

\begin{document}
% without any workarounds
\frameDemo

\tcbset{
  % workaround for question 1
  break at=100pt,
}
\frameDemo

\tcbset{
  % workaround for question 1 & 2
  break at=100pt/180pt,
  enlarge top at break by=80pt,
}
\frameDemo

\tcbset{
  % workaround for question 1, 2 & 3
  finish first and middle={
    \node[anchor=south east] 
        at ([xshift=-2pt]interior.south east) 
        {\itshape continued};
  },
  bottomsep at break=.7\baselineskip
}
\frameDemo

\begin{frame}[allowframebreaks]
  \fontsize{120}{120}\selectfont empty page
\end{frame}
\end{document}

组装这些投影仪页面的助手:

\documentclass[landscape, a4paper]{article}
\usepackage{pdfpages}

\begin{document}
\includepdf[pages={1-2,16,16,16,3-6,16,7-10,16,11-15}, nup=5x5, frame, delta=5 5]{breakable-in-beamer-texsx.pdf}
\end{document}

组装好的投影仪页面的屏幕截图: 屏幕截图

相关内容