带有逐项环境和并排图像的列引用(Beamer)

带有逐项环境和并排图像的列引用(Beamer)

我想要以下设置:两列,一列是环境itemize,另一列是图像(当然,不一定是列,只是一个并排的列表和图像,但我认为列是实现这一点的一种方式)。我可以实现这一点,而且看起来或多或少还不错。

两列,一列是列表,另一列是图像,看起来非常好

但是,我想在第一列中为列表中的每个项目添加引文。结果开始变得糟糕:

两列,一列是引文列表,另一列是图片,下方是参考文献列表;图片只显示一半

有没有办法将参考资料放在列的最底部?实际上,参考资料似乎属于第一列,如果有意义的话,我想将它们放在下面。基本上,我希望它看起来像第一张图片,但参考资料位于框架的底部。

当前设置如下:

\documentclass{beamer}
\usepackage{graphicx}
\usepackage[style=verbose-ibid,backend=bibtex]{biblatex}
\bibliography{bibliography}

\begin{document}

\begin{frame}\frametitle{Title}
A complete sentence on top of the frame.

\begin{columns}
    \begin{column}{0.47\textwidth}
        \begin{itemize}
            \item text1 \autocite{ref_a}
            \item text2 \autocite{ref_b}
            \item text3 \autocite{ref_c}
        \end{itemize}
    \end{column}
    \begin{column}{0.5\textwidth}
        \rule{\textwidth}{0.75\textwidth}
    \end{column}
\end{columns}

\end{frame}
\end{document}

答案1

经过深入研究后,在@samcarter_is_at_topanswers.xyz 的大力帮助下,实际上可以找到多种解决方案。

但首先,在演示中,请注意最好尽可能避免使用脚注! 手册中的引文beamer(第 12.12 节):

首先要提醒大家:使用脚注通常不是一个好主意。它们会打乱阅读的流畅性。

因此,首先,如果您确实想要脚注引用,我建议尽可能减少信息,仅保留:

  1. 作者姓名
  2. 标题
  3. 那一年
  4. 时期

这可以通过 选项获得style=authoryearbiblatex附加信息只会占用frames 中的空间,而且无论如何也没人会阅读(或记住)它们。

既然已经设置好了,在所有情况下,针对您的基本问题都会出现两个解决方案,关键操作是提供基本frame选项\footnote

  • 解决方案 1 是\cite从头开始重新定义命令,包括\footnote[frame]
  • 解决方案 2 是biblatex在调用时进行修补footnote
  • 解决方案 3 是修补beamer \footnotes以始终使用该frame选项
% arara: pdflatex
% arara: bibtex
% arara: bibtex
% arara: pdflatex
\documentclass{beamer}
\usepackage{graphicx}
\usepackage[style=authortitle,backend=bibtex]{biblatex}
\bibliography{bibliography}



% Solution n°1 
\newcommand{\customcite}[1]{\leavevmode\unskip\footnote[frame]{\citeauthor{#1}, \citetitle{#1}, \citeyear{#1}.}}

% Other solutions


% From https://tex.stackexchange.com/a/215608/141947
% To add the year to the authortitle style
\usepackage{xpatch}
\xapptobibmacro{cite}{\setunit{\nametitledelim}\printfield{year}}{}{}

% Solution n°2
% If you want to provide only cite-related macros with frame option (may break elsewhere)
\makeatletter
\renewrobustcmd{\blx@mkbibfootnote}[2]{%
  \iftoggle{blx@footnote}
    {\blx@warning{Nested notes}%
     \addspace\mkbibparens{#2}}
    {\unspace
     \ifnum\blx@notetype=\tw@
       \expandafter\@firstoftwo
     \else
       \expandafter\@secondoftwo
     \fi
       {\csuse{blx@theendnote#1}{\protecting{\blxmkbibnote{end}{#2}}}}
       {\footnote[#1,frame]{\protecting{\blxmkbibnote{foot}{#2}}}}}}
\makeatother

% Solution n°3
% If you want to provide all your footnotes with "frame" option by default
% \makeatletter
% \renewcommand<>{\footnote}[1][frame]{%
%   \let\beamer@footnotetext=\@footnotetext%
%   \let\beamer@mpfn=\@mpfn%
%   \let\beamer@thempfn=\thempfn%
%   \let\beamer@kvorig=\KV@errx%
%   \let\beamer@xkvorig=\XKV@err
%   \def\beamer@footarg{}%
%   \def\KV@errx##1{\edef\beamer@footarg{\@tempa}}%
%   \def\XKV@err##1{\edef\beamer@footarg{\XKV@tkey}}%
%   \setkeys{beamerfootnote}{#1}%
%   \let\KV@errx=\beamer@kvorig%
%   \let\XKV@errx=\beamer@xkvorig
%   \ifx\beamer@footarg\@empty%
%     \def\beamer@next{\stepcounter\beamer@mpfn
%       \protected@xdef\@thefnmark{\beamer@thempfn}%
%       \@footnotemark\beamer@footnotetext#2}%
%   \else%
%     \def\beamer@next{%
%       \begingroup
%         \csname c@\beamer@mpfn\endcsname\beamer@footarg\relax
%         \unrestored@protected@xdef\@thefnmark{\beamer@thempfn}%
%       \endgroup
%       \@footnotemark\beamer@footnotetext#2}%
%   \fi%
%   \beamer@next}
% \makeatother



\begin{document}

\begin{frame}\frametitle{Title}
A complete sentence on top of the frame.

\begin{columns}
    \begin{column}{0.47\textwidth}
        \begin{itemize}
            \item text1 \autocite{ref_a}
            \item text2 \autocite{ref_b}
            \item text3 \autocite{ref_c}
        \end{itemize}
    \end{column}
    \begin{column}{0.5\textwidth}
        \rule{\textwidth}{0.75\textwidth}
    \end{column}
\end{columns}

\end{frame}

\begin{frame}\frametitle{Title}
  A complete sentence on top of the frame.

  \begin{columns}
      \begin{column}{0.47\textwidth}
          \begin{itemize}
            \item text1 \customcite{ref_a}
            \item text2 \customcite{ref_b}
            \item text3 \customcite{ref_c}
          \end{itemize}
      \end{column}
      \begin{column}{0.5\textwidth}
          \rule{\textwidth}{0.75\textwidth}
      \end{column}
  \end{columns}

  \end{frame}
\end{document}

在所有情况下,输出都是相同的

在此处输入图片描述

相关内容