![如果在“figure”环境中使用,\footcite 总是打印长引用](https://linux22.com/image/314231/%E5%A6%82%E6%9E%9C%E5%9C%A8%E2%80%9Cfigure%E2%80%9D%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8%EF%BC%8C%5Cfootcite%20%E6%80%BB%E6%98%AF%E6%89%93%E5%8D%B0%E9%95%BF%E5%BC%95%E7%94%A8.png)
我希望在完全像普通文本模式一样的环境\footcite
中使用它。具体来说,我已配置为在第一次引用给定来源时打印长引文(即作者的名字、出版年份等),而在后续引用中,只应在脚注中打印短引文。figure
\footcite
\footcite
但是,当我\footcite
在 中\caption
使用时figure
,总是会得到很长的引用。我该怎么做才能改变这种情况?
梅威瑟:
\documentclass[12pt,english,a4paper]{article}
\usepackage[a4paper, total={6in, 4in}]{geometry}
\usepackage[english]{babel}
\usepackage[backend=biber,
citestyle=verbose,
bibstyle=verbose,
sorting=nyvt]{biblatex}
\addbibresource{bibliography.bib}
\DeclareNameAlias{sortname}{last-first}
\renewbibmacro{in:}{}
\usepackage{tikz}
\usepackage{footnote}
\makesavenoteenv{figure}
\usepackage{filecontents}
\begin{filecontents*}{bibliography.bib}
@article{A,
author = {Alpha, Amber},
title = {Title},
publisher = {Publisher},
year = {2014},
}
@article{B,
author = {Beta, Bryan},
title = {Title2},
publisher = {Publisher2},
year = {2015},
}
\end{filecontents*}
\begin{document}
While some\footcite{A} argue X, Ref. \textcite{B} argues Y.
Also, W\footcite{A}.
\begin{figure}[!htbp]
\begin{center}
\begin{tikzpicture}
\draw (0, 0) circle (1);
\end{tikzpicture}
\end{center}
\caption{A circle.\footcite{A}}
\end{figure}
\printbibliography
\end{document}
请注意,脚注1
和2
很长3
,而 很短,正如我所期望的那样。然而,我也希望它们4
简短,但事实并非如此。
先感谢您!
答案1
这是设计使然,biblatex
文档参见 §4.11.5浮标和 TOC/LOT/LOF 中的追踪器,第 240 页,指出:
如果在浮动体中给出引文(通常在图表或表格的标题中),学术反向引用(如“ibidem”)或基于页面跟踪器的反向引用将变得模棱两可,因为浮动体是(物理和逻辑上)位于文本流之外的对象,因此此类引用的逻辑不太适用于它们。为了避免任何此类歧义,所有浮动体中的引文和页面跟踪器都暂时禁用。此外,这些跟踪器以及反向引用跟踪器(
backref
)在目录、图表列表和表格列表中都暂时禁用。
如果您不同意,有一种方法可以重新启用biblatex
浮动中的跟踪能力。不过,在某些情况下,这可能会导致不良后果,因此请注意并保持警惕!
以下代码通过添加其版本,使biblatex.sty
附加\boolfalse
s中发起的更改变为未完成的更改。\@floatboxreset
\booltrue
\makeatletter
\AtBeginDocument{
\apptocmd\@floatboxreset
{\booltrue{citetracker}%
\booltrue{pagetracker}}
{}
{\blx@err@patch{floats}}%
}
\makeatother
平均能量损失
\documentclass[12pt,english,a4paper]{article}
\usepackage[english]{babel}
\usepackage[backend=biber,
citestyle=verbose,
bibstyle=verbose,
sorting=nyvt]{biblatex}
\addbibresource{biblatex-examples.bib}
\DeclareNameAlias{sortname}{last-first}
\renewbibmacro{in:}{}
\usepackage{footnote}
\makesavenoteenv{figure}
\usepackage{mwe}
\makeatletter
\AtBeginDocument{
\apptocmd\@floatboxreset
{\booltrue{citetracker}%
\booltrue{pagetracker}}
{}
{\blx@err@patch{floats}}%
}
\makeatother
\begin{document}
While some\footcite{worman} argue X, Ref. \textcite{geer} argues Y.
Also, W\footcite{worman}.
\begin{figure}[!htbp]
\includegraphics{example-image}
\caption{A circle.\footcite{worman}}
\end{figure}
\printbibliography
\end{document}
请注意,现在脚注 3 和 4 都使用了缩写形式。