`DeclareCiteCommand`:如何打印书名而不是文章标题?

`DeclareCiteCommand`:如何打印书名而不是文章标题?

我正在为 Beamer 演示文稿编写引用样式。我试图将引用保留在脚注中,并仅保留必要的信息。因此,我省略了期刊文章的标题,但现在我也想引用书籍,但我找不到如何将其包含在这种样式中。我当前的代码是

\DeclareCiteCommand{\partcite}
    {\usebibmacro{prenote}}
    {\href{http://dx.doi.org/\thefield{doi}}{\printnames{labelname} \printfield{year}\setunit{\labelnamepunct}%
        \printfield[journaltitle]{shortjournal} \printfield{volume}, \printfield{pages}\printfield{eid}}%
        \newunit%
        \printfield[eprint:arxiv]{eprint}.
    }
    {\addsemicolon\space}
    {\usebibmacro{postnote}}

答案1

从你的问题来看,你是不是想打印书名,这一点并不完全清楚。但你可以使用测试\iffieldequalstr{<field>}{<string>}{<true>}{<false>}(Biblatex 文档第 251 页)来测试,entrytype并在其满足以下条件时打印书名book(这在布尔语法中意味着true):

\DeclareCiteCommand{\partcite}
{\usebibmacro{prenote}}
{\href{http://dx.doi.org/\thefield{doi}}{\printnames{labelname} \printfield{year}\setunit{\labelnamepunct}%
        \iffieldequalstr{entrytype}{book}{\printfield{title}}{\printfield[journaltitle]{shortjournal} \printfield{volume}},
        \printfield{pages}\printfield{eid}}%
    \newunit%
    \printfield[eprint:arxiv]{eprint}.
}
{\addsemicolon\space}
{\usebibmacro{postnote}}

当然,你可以将测试放在另一个位置。

希望有帮助!

相关内容