beamer
我正在用类和包制作海报beamerposter
,我想使用枚举块。我这样做的方式是通过定义一个sectionblock
环境,如下所示:
\newenvironment<>{sectionblock}[1]{\refstepcounter{section}%
\begin{block}#2{\thesection.~#1}}{\end{block}}
但由于我不会将该\section
命令用于其他任何用途,因此我认为将其作为命令删除并将其转换为定义为的环境会很酷sectionblock
。 (特别是因为我正在制作一个cls
想要共享的文件。)
我发现这样做是完全可行的。然而,biblatex
即使是像这样简单的代码也会出现与包的冲突:
\documentclass{beamer}
\usepackage{biblatex}
\addbibresource{references.bib}
\renewenvironment<>{section}[1]{\refstepcounter{section}%
\begin{block}#2{\thesection.~#1}}{\end{block}}
\begin{document}
\nocite{derksen1993sins}
\begin{section}{Descartes}
Cogito ergo sum.
\end{section}
\printbibliography
\end{document}
当我执行此代码时,它返回以下错误消息:
line 18: You can't use `\unskip' in vertical mode.
line 18: Missing } inserted.
line 19: Improper \prevdepth. \end{document}
line 19: Missing } inserted. \end{document}
line 19: \begin{beamercolorbox} on input line 17 ended by \end{document}. \end{document}
line 17: Font shape `OT1/cmss/m/sc' in size <10.95> not available(Font) Font shape `OT1/cmr/m/sc' tried instead
这里是日志档案。
结果如下:
有没有一种直接的方法来解决这个冲突,还是我必须使用我原来的方法?如果对冲突的性质做出一些解释,sectionblock
我会接受“这太不必要了,你最好使用你的”作为答案。sectionblock
在此先感谢您的帮助。
答案1
您必须重新定义标题命令 - 至少是默认命令,如果您希望其他命令也被使用,则可能要重新定义更多命令。
总的来说,我认为重新定义部分不是一个好主意 - 这是一个非常标准的命令,人们期望它以某种方式运行。
\documentclass{beamer}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\renewenvironment<>{section}[1]{\refstepcounter{section}%
\begin{block}#2{\thesection.~#1}}{\end{block}}
\defbibheading{bibliography}[\refname]{Some heading code for the bibliography}
\begin{document}
\nocite{doody}
\begin{section}{Descartes}
Cogito ergo sum.
\end{section}
\printbibliography
\end{document}