biblatex
与该包一起使用时会发出以下警告linguex
。
Package biblatex Warning: Patching footnotes failed.
(biblatex) Footnote detection will not work.
这是因为linguex
重新定义是\footnotetext
为了支持脚注和尾注中的编号示例。
然而,重新定义\footnotetext
使得biblatex
修补脚注以支持同上和同上引用。
根据一个答案(这里),只要我们不使用同上引用样式。
但是如果用户想同时使用两者linguex
,并且同上引用样式?有没有办法让 biblatex 覆盖已执行的任何操作\footnotetext
?
梅威瑟:
\documentclass{article}
\usepackage{linguex}
\usepackage
[
backend = biber,
style = authoryear-ibid,
]
{biblatex}
\begin{document}
\end{document}
答案1
您可以同时获得两全其美的效果:
\documentclass{article}
\usepackage
[
backend = biber,
style = authoryear-ibid,
]
{biblatex}
\usepackage{linguex}
\makeatletter
\let\linguex@footnotetext\@footnotetext
\let\@footnotetext\predefinedfootnotetext
\AtBeginDocument{%
\let\predefinedfootnotetext\@footnotetext
\let\@footnotetext\linguex@footnotetext
}
\makeatother
\addbibresource{biblatex-examples.bib}
\setlength{\textheight}{5cm} % just to get a smaller image
\begin{document}
Lorem \cite{worman} ipsum\footcite{sigfridsson} dolor\footnote{\cite{sigfridsson}}
Text and text\footnote{A different example would be:
\ex. This is the first level of embedding
\a. This is the second level
\b. This is still the second level, but:
\a. This is the third level
\b. This is not the end.
\b. This is the end.\par}.
\end{document}
解释。
linguex
设为;\predefinedfootnotetext
然后根据原始值\@footnotetext
重新定义。但是,当在文档开头尝试修补时,它失败了。因此,我们可以暂时恢复修补程序的含义,然后在修补完成后重新应用重新定义。\@footnotetext
biblatex
\@footnotetext
\@footnotetext
linguex
向团队提出功能请求,biblatex
以便他们也支持linguex
,这很容易,因为他们只需要\predefinedfootnotetext
在包加载的情况下进行修补,就像他们为其他一些修补命令不同的情况提供的那样。
答案2
您可以使用以下方法恢复脚注检测功能
\makeatletter
\long\def\@footnotetext#1{\@noftnotefalse\predefinedfootnotetext{\toggletrue{blx@footnote}#1}%
\@noftnotetrue}
\makeatother
但这并不能消除警告,但现在可以安全地忽略它。
平均能量损失
\documentclass{article}
\usepackage{linguex}
\usepackage[backend = biber, style = authoryear-ibid]{biblatex}
\addbibresource{biblatex-examples.bib}
\makeatletter
\long\def\@footnotetext#1{\@noftnotefalse\predefinedfootnotetext{\toggletrue{blx@footnote}#1}%
\@noftnotetrue}
\makeatother
\begin{document}
Lorem \cite{worman} ipsum\footcite{sigfridsson} dolor\footnote{\cite{sigfridsson}}
\end{document}
给出
1 Sigfridsson 和 Ryde 1998。
2同上
在脚注中,而没有修改的话你会得到
1 Sigfridsson 和 Ryde 1998。
2 Sigfridsson 和 Ryde 1998。
答案3
这是消除biblatex
警告的方法:
\documentclass{article}
\usepackage{linguex}
\makeatletter
\let\@footnotetext\predefinedfootnotetext
\makeatother
\usepackage[backend=biber, style=authoryear-ibid]{biblatex}
\begin{document}
\end{document}
我们\@footnotetext
使用 恢复到它的标准定义\predefinedfootnotetext
,它是由linguex
它本身提供的。
但请注意,这样我们就不能再linguex
使用脚注,并且需要借助于类似enumerate
环境的东西来获取脚注中的编号示例。