biblatex:使用 \cites 引用多个来源的分号分隔符

biblatex:使用 \cites 引用多个来源的分号分隔符

我有同样的问题这里不管怎样,这种方法已经有 8 年的历史了,似乎不再有效了。

我使用biblatex以及biber

\documentclass[a4paper,         % Seitenformat
        12pt,                   % Schriftgröße
        bibliography=totoc,     % Literaturverzeichnis in das Inhaltsverzeichnis
        parskip=false,
        abstract=on             % Erstellt Titel für Abstract
        ]{scrreprt}


\begin{filecontents}{jobname.bib}
@article{Jordan.2015,
 author = {Jordan, M. I. and Mitchell, T. M.},
 year = {2015},
 title = {Machine learning: Trends, perspectives, and prospects},
 keywords = {Algorithms;Artificial Intelligence/trends;Computer Systems;Data Interpretation, Statistical;Humans},
 pages = {255--260},
 pagination = {page},
 volume = {349},
 journaltitle = {Science},
 language = {eng},
 doi = {10.1126/science.aaa8415},
 number = {6245}
}

@misc{Scherk.,
 author = {Scherk, Johannes and P{\"o}chhacker-Tr{\"o}scher, Gerlinde and Wagner, Karina},
 year = {2017},
 title = {K{\"u}nstliche Intelligenz - Artificial Intelligence},
 keywords = {K{\"u}nstliche Intelligenz},
 editor = {{P{\"o}chhacker Innovation Consulting}},
 abstract = {K{\"u}nstliche Intelligenz},
 pagetotal = {54},
 file = {kuenstliche_intelligenz.pdf}
}}
\end{filecontents}

\usepackage[style=authoryear, 
            natbib=true, 
            backend=biber, 
            maxcitenames=2,
            uniquelist=false,
            doi=false, 
            isbn=false,
            dashed=false,
            maxbibnames=9,
            minbibnames=9,
            giveninits=true]{biblatex}

\addbibresource{jobname.bib} % note the .bib is required

\renewcommand*{\multicitedelim}{\addsemicolon\space}

\begin{document}

(\cites[vgl.][S. 256 ff.]{Jordan.2015}[vgl.][S. 37 f.]{Scherk.})

\end{document}

我得到的是

在此处输入图片描述

即使手动强制;使用分号

(\cites[vgl.][S. 256 ff.;]{Jordan.2015}[vgl.][S. 37 f.]{Scherk.})

结果是

在此处输入图片描述

答案1

链接答案.仍然是执行此操作的正确方法,并且仍然有效。由于后记末尾的 s,我们没有在问题中显示的 MWE 中获得预期的输出。

biblatex很多的工作以避免无意的重复标点符号。首先,标点符号跟踪器 ( \setunit) 仅在真正需要时才在 bibmacros 和驱动程序中打印标点符号。其次,标点符号命令\add...会尝试检测先前的标点符号,并且如果这会导致重复标点符号,则可能不会打印标点符号。

第二个是这里发生的事情。从 page/postnote 参数中\addsemicolon检测到前一个.,并推迟打印分号以避免重复标点符号。

在这种情况下,当然需要双标点符号。这是因为.可以有两种不同的含义。它可以是句末句号(句号),其后的双标点符号必须被抑制。或者它可以是缩写符号(点),其后通常会打印其他标点符号(句号除外)。这里的情况是后者。

默认情况下,biblatex将 a.视为句点,因此会隐藏双标点。您可以发现biblatexa.实际上是带有 的缩写点\isdot。因此ff.将变成ff.\isdot

然而,在这个特殊情况下,很多更好的解决方案: 使用\psq\psqq

这两个宏专门用于生成“sq.”(德语中的“f.”)和“sqq.”(德语中的“ff.”)标记,而不会扰乱标点符号跟踪器(也不会扰乱页面范围检测器)。

简单写

\parencites[vgl.][256\psqq]{sigfridsson}[vgl.][37\psqq]{worman}

平均能量损失

\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear]{biblatex}

\renewcommand*{\multicitedelim}{\addsemicolon\space}

\addbibresource{biblatex-examples.bib}

\begin{document}

\parencites[vgl.][256\psqq]{sigfridsson}[vgl.][37\psqq]{worman}

\end{document}

(参见 Sigfridsson 和 Ryde 1998,第 256 页及后续页;参见 Worman 2002,第 37 页及后续页)

相关内容