我正在尝试自定义演示文稿的参考书目。我在标题后的标点符号方面遇到了麻烦。作为 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}}