在 biblatex 中使用 cite 命令在文章或 inbook 和书籍之间进行 Idemtracker

在 biblatex 中使用 cite 命令在文章或 inbook 和书籍之间进行 Idemtracker

当我引用一本书后的文章时,我遇到了一个问题,似乎 idemtracker 不适用于 article 或 inbook 等文档类。

例如:biblioessai.tex:

\documentclass[a4paper,12pt]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=verbose-trad2,citestyle=verbose-trad2,backend=biber,uniquename=false,citepages=suppress]{biblatex}
\usepackage{csquotes}
\usepackage[french]{babel}
\addbibresource{essai.bib}

\begin{document}
\cite{article1}

\cite{article2}

\cite{book}
\end{document}

essai.bib:

@article{article1,
author = "My Author",
journal = "A Journal",
title = "Titletitle",
date = "2005",
pages = "49-62",
volume = "12",
number = "1-2"
}

@book{book,
address = "Address",
author = "My Author",
origyear = "1994",
pagetotal = "349",
publisher = "A publisher",
title = "An other title",
year = "2004"
}

@article{article2,
author = "My Author",
journal = "A Journal",
title = "An other article",
date = "2008",
pages = "51-63",
volume = "1",
number = "15"
}

编译后我有:

我的作者。标题title. Dans : A Journal 12.1-2 (2005)
我的作者。另一篇文章. Dans : A Journal 1.15(2008)
我的作者。另一个标题. 地址:A出版社,2004年

我想要的是:

我的作者。标题title。 Dans:A Journal 12.1-2 (2005)
同上。另一篇文章。 Dans:A Journal 1.15 (2008)
同上。另一个标题. 地址:A出版社,2004年

有什么想法吗?谢谢

答案1

这里的“问题”是verbose-trad2如果第一次看到引用,则总是打印完整的引用。在那之后 idem/ibidem等都可以。

cite请参阅bibmacro 的定义verbose-trad2.cbx

因此如果你在代码中重复

\cite{article1}
\cite{article2}
\cite{book}

就会idem出现。


编辑:由于您也需要idem显示完整引用,因此最好修改作者宏本身:

将以下几行添加到你的序言中:

\usepackage{xpatch}
\xpatchbibmacro{author}{\printnames{author}}{\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}%
{\usebibmacro{cite:idem}}{\printnames{author}}}{}{}

这将交换\printnames{author}来自authortitle.bbx(由 verbose-trad2 使用)的命令,并测试它是否是,idem并使用适当的宏。

我不知道这是否是最好的解决方案,但对于您的 MWE 来说,它是有效的。也许您还必须交换editor宏和其他宏。

相关内容