我原以为这是一个非常简单的问题,但结果却困难得多。
使用 biblatex 和 verbose-inote 样式,我想将 footcite Ibid 重新定义为ID。并打印同上引文如下:“ID。在 #" 其中 # 是页码。
非常感谢您的任何建议!
谢谢!
\documentclass{article}
\usepackage{geometry}
\geometry{letterpaper, margin=1in}
\usepackage{setspace}
\usepackage[style=verbose-inote,backend=bibtex]{biblatex}
\bibliography{nbib.bib}
\begin{document}
This is a test.\footcite[1]{test}
\end{document}
答案1
将“ibid.”更改为“id.”非常简单
\DefineBibliographyStrings{english}{
ibidem = {id\adddot},
}
(当然,您可以english
用您实际使用的语言来替换)。
对于“id”之后的页面的“at”,我们可以执行以下操作
\NewBibliographyString{at}
\DefineBibliographyStrings{english}{
ibidem = {id\adddot},
at = {at},
}
进而
\DeclareFieldFormat{postnote}{%
\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage\AND\ifpages{#1}}
{\bibstring{at}%
\addspace}
{}%
#1}
\renewbibmacro*{footcite:ibid}{%
\printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}%
\iffieldpages{postnote}{\printunit{\addspace}}{}%
\ifloccit
{\global\toggletrue{cbx:loccit}}
{}}
这是为了确保不会出现错误的标点符号。
平均能量损失
\documentclass{article}
\usepackage[style=verbose-inote,backend=bibtex]{biblatex}
\bibliography{biblatex-examples.bib}
\NewBibliographyString{at}
\DefineBibliographyStrings{english}{
ibidem = {id\adddot},
at = {at},
}
\DeclareFieldFormat{postnote}{%
\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage\AND\ifpages{#1}}
{\bibstring{at}%
\addspace}
{}%
#1}
\renewbibmacro*{footcite:ibid}{%
\printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}%
\iffieldpages{postnote}{\printunit{\addspace}}{}%
\ifloccit
{\global\toggletrue{cbx:loccit}}
{}}
\begin{document}
This is a test.\footcite[1]{sigfridsson} Ewoud\footcite[1]{sigfridsson}. Ewoud\footcite[jeugd]{sigfridsson}.
\end{document}