标题和 Beamer 后的标点

标题和 Beamer 后的标点

我正在尝试自定义演示文稿的参考书目。我在标题后的标点符号方面遇到了麻烦。作为 MWE,我编写了以下biblatex.cfg文件:

\ExecuteBibliographyOptions{giveninits=true, uniquename=false}

\renewcommand*{\newunitpunct}{\addcomma\space}

\DeclareBibliographyDriver{book}{%
    \usebibmacro{bibindex}%
    \usebibmacro{begentry}%
    \usebibmacro{author}%
    \setunit{\labelnamepunct}%
    \usebibmacro{title}%
    \setunit{\addperiod\space}\newblock
    \usebibmacro{publisher+location+date}%
    \setunit{\addperiod\space}\newblock
    \printfield{note}%
    \usebibmacro{finentry}}

\newbibmacro*{volume+chapter+pages}{%
    \printfield{volume}%
    \newunit%
    \printfield{chapter}%
    \setunit{\bibpagespunct}%
    \printfield{pages}}

标题后应该有一个句号。但是,Beamer 会插入一个逗号。其他课程(例如scrartcl)确实会在标题后插入一个句号。不过,Beamer 正确地在出版商和注释之间插入了一个句号。

我尝试修改 bibmacrotitle并删除所有实例\newunit,但无济于事。

有人知道发生了什么事吗?

答案1

这与如何beamer修补一些biblatex宏以包含颜色有关。

我们beamerbaselocalstructure.sty发现

\AtBeginDocument{%
  \@ifpackageloaded{biblatex}
    {%[...]
     \apptocmd{\abx@macro@title}
       {\ifcsundef{abx@field@title}{}{\midsentence\newunitpunct}%
        \newblock\usebeamercolor[fg]{bibliography entry note}}{}{}}
    {}}

这表明宏被更改为始终在标题后title打印(即使在 a 中,标点符号也会立即打印)。\newunitpunct\setunit

您可以通过将title宏重置为其\AtBeginDocument原始形式biblatex.def并添加着色宏来解决此问题。

\AtBeginDocument{%
  \renewbibmacro*{title}{%
    \usebeamercolor[fg]{bibliography entry title}%
    \ifboolexpr{
      test {\iffieldundef{title}}
      and
      test {\iffieldundef{subtitle}}
    }
      {}
      {\printtext[title]{%
         \printfield[titlecase]{title}%
         \setunit{\subtitlepunct}%
         \printfield[titlecase]{subtitle}}%
       \newunit}%
    \printfield{titleaddon}}
    \newblock\usebeamercolor[fg]{bibliography entry note}}

相关内容