如果你编译下面的例子,你会得到一个非常舒适的方式来放置资源在 LaTeX 的幻灯片上beamer
。
但是,如果用选项取消注释该行show notes on second screen
,那么文本就会设置在错误的页面上,即上一页。
这是一个(几乎)最小的工作示例:
\documentclass{beamer}
\usepackage{pgfpages}
% the following line, if not commented, moves the ``source'' to the previous page
%\setbeameroption{show notes on second screen}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% ----------
% from https://tex.stackexchange.com/a/48485/17127
\usepackage[absolute, overlay]{textpos}
\setbeamercolor{framesource}{fg=gray}
\setbeamerfont{framesource}{size=\tiny}
\newcommand{\source}[1]{\begin{textblock*}{8cm}(4.7cm,8.6cm)
\begin{beamercolorbox}[ht=0.5cm,right]{framesource}
\usebeamerfont{framesource}\usebeamercolor[fg]{framesource} Source: {#1}
\end{beamercolorbox}
\end{textblock*}
}
% ----------
\title{MWE}
\begin{document}
\begin{frame}
\titlepage
\note{my note}
\end{frame}
\begin{frame}{title}
a diagram
\source{some article or url}
\end{frame}
\end{document}
答案这个问题没有真正帮助我。
更新:
这是另一个问题的答案或许包含答案。
这是正确的吗? 有没有更好的解决方案? 或者 -command 有其他替代方案吗\source
?
上述\source
命令可以扩展以支持多个源吗?
脚注是一种简单的替代方法,但它们比上述\source
命令更显眼。这能轻易改变吗?如何改变?
解决方案:
接受的答案提供了所需的\source
-command。它使用方便,提供正确且不显眼的位置,并与 配合使用show notes on second screen
。它甚至支持多个来源。
答案1
注释textpos
和pgfpages
当处于活动状态时,请注意,通过使用带有选项的包定位的pgfpages
任何s都很可能定位不正确,如此处所示。不过,我还没有完全弄清楚定位行为是什么……textblock
textpos
absolute
此外,您应该注意textpos
MWE 中发出的其他警告,即使它们在这种情况下似乎不会影响输出(可以通过确保在环境之前立即有一个段落中断来避免这些警告textblock
):
Package textpos Warning: environment textblock* not in vertical mode. (textpos) Environment textblock* should not have any text (textpos) or printable material appearing before it. (textpos) Alignment may work out wrongly.
因此,我提出了一种不依赖于使用 的解决方案textpos
,因此具有其他优势。备选方案包括使用textpos
但仅使用相对定位;在这种情况下,应确保所有 的textblock
原点都在幻灯片中的固定位置(否则它们可能会随着幻灯片内容的变化而移动),而这更难。
避免解决方案textpos
我的想法是改用脚注功能(仍然可以保留原始格式,并且它应该可以与多个 s 和真实脚注很好地交互)。我缩小了使用的\source
高度和脚注之间的距离:beamercolorbox
\source
\documentclass{beamer}
\usepackage{pgfpages}
\setbeameroption{show notes on second screen}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\setbeamercolor{framesource}{fg=gray}
\setbeamerfont{framesource}{size=\tiny}
\makeatletter
\renewcommand{\footnoterule}{}
\define@key{beamerfootnote}{nonumber}[true]{\edef\beamer@footarg{0}\def\@makefnmark{}}% have to set a number in \beamer@footarg, then it won't be automatically generated one. setting \@makefnmark to be empty means the number isn't printed. but only use this in a group else it affects following footnotes!
% instead of 'nonumber', could just use 0 as an optional argument to \footnote, but OP reports that keyval complains about this in some situations
% http://tex.stackexchange.com/questions/89539
\newcommand{\source}[1]{{\footnote[nonumber]{%
\begin{beamercolorbox}[right,wd=\dimexpr\hsize-1.8em\relax]{framesource}
\usebeamerfont{framesource}\usebeamercolor[fg]{framesource} Source: {#1}
\end{beamercolorbox}}}}
\setlength{\footnotesep}{0cm}%\footnotesep is the space between footnotes (generated with a \rule)
\makeatother
% inspired by [beamer: footnote text collides with navigation symbols](http://tex.stackexchange.com/a/5855)
\addtobeamertemplate{sidebar right}{\setbeamertemplate{navigation symbols}{}}{}
\addtobeamertemplate{footline}{\hfill\usebeamertemplate***{navigation symbols}%
\hspace*{0.1cm}\par\vskip 2pt}{}
\title{MWE}
\begin{document}
\begin{frame}{title}
a diagram
\footnote{a real footnote}%
\footnote{a real footnote}%
\source{some article or url}%
\source{some article or url}%
\footnote{a real footnote}%
\end{frame}
\end{document}
1.8em
请注意,需要从的宽度中删除的神奇数字beamercolorbox
(以避免过满)在的默认模板\hbox
中定义,这是为脚注编号保留的空间:beamer
footnote
\defbeamertemplate*{footnote}{default}
{
\parindent 1em\noindent%
\raggedright
\hbox to 1.8em{\hfil\insertfootnotemark}\insertfootnotetext\par%
}
其他注意事项pgfpages
请注意,使用时(即使是间接使用)也需要考虑其他因素pgfpages
,例如页码等。主要建议是在没有pgfpages
活动的情况下完全编译文档,然后激活它并再次调用进行编译\nofiles
。