我使用的verbose-trad2
引用格式是比布拉特克斯并尝试改变一些事情。以我的风格,同上比仅仅相同的作者姓名更受限制,因此我设置了idemtracker=false
。我还重新定义了相应的参考书目字符串(ibidem),例如,
作者姓名,“标题”,同上,第 X 页
同上,页是的。
如果两个引文的作者和标题相同,但后注中的页码不同。这都没问题。
现在,如果两个引文中的页面相同,我希望在第二个引文中隐藏页面引用(使用 即可解决ibidpage=true
)。此外,仅在这种情况下,我希望拉丁文缩写为同上。代替同上。 有没有办法做到这一点?
以下是一些文件的链接:
- 我的 biblatex 代码
- 例如 .tex
- 例如 .bbl
- 以及由此产生的pdf
感谢您的时间和帮助!
答案1
你ibidpage=true
也可以得到loccittracker=constrict
。你想要的情况同上代替同上被\ifloccit
测试检测到。在 下verbose-trad2
,此测试在书目宏中执行cite:ibid
。以下是 中的定义verbose-trad2.cbx
:
\newbibmacro*{cite:ibid}{%
\printtext{%
\bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{%
\bibstring[\mkibid]{ibidem}}}%
\ifloccit
{\global\toggletrue{cbx:loccit}}
{}}
您可以重新定义此宏来打印同上当\ifloccit
产量false
。
\documentclass{report}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=verbose-trad2,ibidpage,idemtracker=false]{biblatex}
\usepackage[colorlinks]{hyperref}
\renewcommand*{\mkibid}[1]{\emph{#1}}
\makeatletter
\renewbibmacro*{cite:ibid}{%
\printtext{%
\bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{%
\ifloccit
{\bibstring[\mkibid]{ibidem}%
\global\toggletrue{cbx:loccit}}
{\bibstring[\mkibid]{idem\thefield{gender}}}}}}
\makeatother
\addbibresource{biblatex-examples.bib}
\begin{document}
\null\vfill
Filler text \autocite{knuth:ct:a}.
Filler text \autocite{knuth:ct:b}.
Same labelname, different work \autocite{knuth:ct:a}.
Same work, different postnote \autocite[16]{knuth:ct:a}.
Same work, same postnote \autocite[16]{knuth:ct:a}.
Same labelname, different work \autocite[10]{knuth:ct:b}.
Same work, same postnote \autocite[10]{knuth:ct:b}.
Same work, different postnote \autocite[10--15]{knuth:ct:b}.
\printbibliography
\end{document}