如何更好地调整 beamerarticle 中转换为 marginpar 的 frametitle 的位置?

如何更好地调整 beamerarticle 中转换为 marginpar 的 frametitle 的位置?

我使用beamerbeamerarticle来做课堂笔记。我想以与框架内容对齐的方式将其frametitles作为边注<article>,但它们的位置有点不对。

在此处输入图片描述

根据LaTeX 参考手册

\marginpar命令在页边空白处创建一个注释。注释的第一行将与文本中出现 \marginpar 的行具有相同的基线。

所以,我认为这种错位是因为没有线(frametitle消失)可以作为参考而产生的。你知道该如何改进吗?

前面的示例是通过下面的代码获得的

%\documentclass{beamer}
\documentclass{article}
\usepackage{beamerarticle}

\usepackage{lipsum}

\mode<article>{\setbeamertemplate{frametitle}{%
       \marginpar{\insertframetitle\\%
       \scriptsize\insertframesubtitle}}}

\begin{document}

\begin{frame}{Frame 1}
\lipsum[1]
\end{frame}

\begin{frame}{Frame 2}
\only<article>{\lipsum[3]}
\lipsum[2]
\end{frame}

\begin{frame}{This is a long frame title}
\lipsum[3]
\end{frame}

\end{document}

答案1

你可以\marginpar使用\marginnotemarginnote包;这会自动给你正确的位置:

\documentclass{article}
\usepackage{beamerarticle}
\usepackage{marginnote}

\usepackage{lipsum}

\mode<article>{\setbeamertemplate{frametitle}{%
  \marginnote{%
  \if\insertframetitle\empty\relax
  \else
    \insertframetitle\newline%
  \fi%
  \scriptsize\insertframesubtitle}}}

\begin{document}

\begin{frame}{Title}{Subtitle}
\lipsum[1]
\end{frame}

\begin{frame}{}{Subtitle with no title}
\only<article>{\lipsum[3]}
\lipsum[2]
\end{frame}

\begin{frame}{This is a long frame title}
\lipsum[3]
\end{frame}

\end{document}

在此处输入图片描述

我也对原始定义进行了更改,只有提供标题时才有条件地产生换行符。

答案2

边注似乎放错了位置 5pt,所以只需\vspace{5pt}在 之前添加\insertframetitle即可。但是,最好使用相对间距,因为\vspace{.44\baselineskip}这样也可以与其他字体大小配合使用。

相关内容