我正在使用 biblatex,并且非常喜欢它的灵活性,尽管我不得不说,对于一个人来说,一生中要理解的选项实在是太多了 :-/ 到目前为止,我对引用的参考文献做了两件事。首先,在与引文相同的页面上打印一个带有精简信息的“脚注”(脚注实际上位于页边距,因为我使用的是 tufte)其次,在最后像往常一样打印完整的书目。
我使用以下命令等来实现这一点:减少引用,但不减少我使用的参考书目
\usepackage[..., maxcitenames=1, maxbibnames=99]{biblatex}
\AtEveryCitekey{...\clearfield{title}}
效果很好。我想改变一件事。由于我的“脚注”位于页边距,我想在作者姓名后添加一个换行符,用于每个引用,但不用于参考书目。由于它们无论如何都会占用两行,我宁愿将它们很好地分开,
Some Author et al.
Journal X (2000), yy-zz
而不是一些随机的
Some Author et al. Journal
X (2000), yy-zz
所以基本上:如何将作者后的分隔符更改为仅适用于完整引用的换行符?
MWE 如下:
\documentclass{article}
\usepackage{hyphenat}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[maxcitenames=1, maxbibnames=99, isbn=false, doi=false, url=false, eprint=false, bibstyle=numeric, citestyle=numeric-comp, backend=biber]{biblatex}
\addbibresource{~/library.bib}
\AtEveryCitekey{\clearfield{title}\clearfield{number}\clearfield{month}}% Removes things for footnotes
\AtEveryBibitem{\clearfield{number}\clearfield{month}}%Remove things for Bibliography only
\renewcommand{\labelnamepunct}{\newline}
\begin{document}
This is of interest.\footfullcite{FamousPerson2000}
\printbibliography
\end{document}
虽然\labelnamepunct{}
对参考书目有一定作用,但我无法让它对脚注起作用(在里面\AtEveryCiteKey{}
也不起作用
答案1
好的,所以您的最后一条评论给了我一个解决您遇到的情况的想法(其中不能使用标准方法 - 见下文)。
我们将title
/citetitle
格式重新定义为\newline
在标点符号缓冲区中持久存在的格式。
\AtEveryCitekey{%
\DeclareFieldFormat*{title}{\printunit{\newline}}%
\DeclareFieldFormat*{citetitle}{\printunit{\newline}}}
为了使它发挥作用一定不问题\clearfield{title}
,因为biblatex
需要考虑有一个要打印的标题(并且它实际上需要考虑它会打印它) - 我们只是确保用这种格式将标题替换为换行符。
平均能量损失
\documentclass{scrartcl}
\usepackage[style=authortitle,backend=bibtex]{biblatex}
\addbibresource{biblatex-examples.bib}
\AtEveryCitekey{%
\DeclareFieldFormat*{title}{\printunit{\newline}}%
\DeclareFieldFormat*{citetitle}{\printunit{\newline}}}
\begin{document}
Lorem\footfullcite{baez/article} ipsum\footfullcite{kastenholz}.
\end{document}
如果该字段存在,则有效的标准方法title
就是
\AtEveryCitekey{\renewcommand{\labelnamepunct}{\newline}\clearfield{title}}