我已经开始付诸实践这个问题。但我想改变这一点,让引用部分加上括号:
- 在文本上标中,
- 在脚注的上标中,
- 在参考书目中。
我设法让第一个和最后一个运行起来。但是我不知道该怎么做第二个。
请注意,我主要用英语和荷兰语写作,因此我认为不会受到太多 babel 干扰。
此外,有没有办法对脚注进行排序,以便首先\footnote{}
打印所有“正常”脚注,然后在其下面打印所有\sfcite{}
引用脚注(即每页)?
以下是我设法想出的东西:
\documentclass{article}
\usepackage[english]{babel}
\usepackage[pdfborder={0 0 0}]{hyperref}
\usepackage[citestyle=numeric-comp,sorting=none,hyperref]{biblatex}
\usepackage{filecontents}
% No brackets around the number of each bibliography entry
\DeclareFieldFormat{labelnumberwidth}{\textbf{[#1]}}
%---------------------------------------------------------------
% Essentially verbatim from Joseph Wright
% http://www.texdev.net/2010/03/08/biblatex-numbered-citations-as-footnotes/
\makeatletter
\ExecuteBibliographyOptions{citetracker,sorting=none}
\DeclareCiteCommand{\notefullcite}[\mkbibbrackets]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{notefullcite}%
\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}%
\usebibmacro{postnote}}
\newbibmacro*{notefullcite}{%
\ifciteseen
{}
{\footnotetext[\thefield{labelnumber}]{%
\usedriver{}{\thefield{entrytype}}\addperiod}}}
\DeclareCiteCommand{\sfcite}[\cbx@superscript]%
{\usebibmacro{cite:init}%
\let\multicitedelim=\supercitedelim
\iffieldundef{prenote}
{}
{\BibliographyWarning{Ignoring prenote argument}}%
\iffieldundef{postnote}
{}
{\BibliographyWarning{Ignoring postnote argument}}}
{\usebibmacro{citeindex}%
\usebibmacro{sfcite}%
\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}}
\newbibmacro*{sfcite}{%
\ifciteseen
{}
{\xappto\cbx@citehook{%
\noexpand\footnotetext[\thefield{labelnumber}]{%
\fullcite{\thefield{entrykey}}\addperiod}}}}
\newrobustcmd{\cbx@superscript}[1]{%
\mkbibsuperscript{[#1]}%
\cbx@citehook
\global\let\cbx@citehook=\empty}
\let\cbx@citehook=\empty
\makeatother
%---------------------------------------------------------------
\begin{filecontents}{\jobname.bib}
@article{ref1,
hyphenation = {american},
title = {Natural Products as Sources of New Drugs over the Last 25 Years},
author = {Newman, D.J. and Cragg, G.M.},
journal = {J. of Nat. Prod.},
volume = {70},
number = {3},
pages = {461--477},
year = {2007}}
@article{ref2,
hyphenation = {american},
title = {Natural products as leads to potential drugs: an old process or the new hope for drug discovery?},
author = {Newman, D.J.},
journal = {J. of Med. Chem.},
volume = {51},
number = {9},
pages = {2589--2599},
year = {2008}}
@online{ref3,
author = {Quintin, C.},
title = {Les eponges},
url = {http://christophe.quintin.pagesperso-orange.fr/Liste_Doc.html},
urldate = {2009-05-03}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
First citation.\sfcite{ref1,ref2} Some text\footnote{A footnote}.
\pagebreak
Second citation\sfcite{ref1}, second citation\sfcite{ref2}, first citation.\sfcite{ref3}
\printbibliography
\end{document}
答案1
可以通过重新定义 来获得引文脚注中的上标和括号\@makefntext
。使用french
选项babel
,您需要改为\@makefntextFB
。可以使用 来将引文和“原始”脚注打印为单独的列表manyfoot
包裹。
\documentclass{report}
\usepackage[dutch]{babel}
%\usepackage[french]{babel}
\usepackage[style=numeric-comp]{biblatex}
\usepackage[colorlinks=true]{hyperref}
\usepackage{manyfoot}
\ExecuteBibliographyOptions{citetracker=true,sorting=none}
% Citation footnotes: use \footnoteA
\DeclareNewFootnote{A}
% Vanilla footnotes: use \footnoteB
\DeclareNewFootnote{B}
% Number of each bibliography entry in brackets
\DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{#1}}
\makeatletter
\newtoggle{cbx@togcite}
% Citation number superscript in brackets
\renewcommand\@makefntext[1]{%
\iftoggle{cbx@togcite}
{\@textsuperscript{\normalfont[\@thefnmark]}\enspace #1}
{\@textsuperscript{\normalfont\@thefnmark}\enspace #1}%
\global\togglefalse{cbx@togcite}}
% Citation number superscript in brackets (for babel french)
\ifdef{\@makefntextFB}{%
\renewcommand\@makefntextFB[1]{%
\iftoggle{cbx@togcite}
{\@textsuperscript{\normalfont[\@thefnmark]}\enspace #1}
{\@textsuperscript{\normalfont\@thefnmark}\enspace #1}%
\global\togglefalse{cbx@togcite}}}{}
%---------------------------------------------------------------
% Mostly verbatim from Joseph Wright
% http://www.texdev.net/2010/03/08/biblatex-numbered-citations-as-footnotes/
\DeclareCiteCommand{\sfcite}[\cbx@superscript]%
{\usebibmacro{cite:init}%
\let\multicitedelim=\supercitedelim
\iffieldundef{prenote}
{}
{\BibliographyWarning{Ignoring prenote argument}}%
\iffieldundef{postnote}
{}
{\BibliographyWarning{Ignoring postnote argument}}}
{\usebibmacro{citeindex}%
\usebibmacro{sfcite}%
\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}}
\newbibmacro*{sfcite}{%
\ifciteseen
{}
{\xappto\cbx@citehook{%
\global\toggletrue{cbx@togcite}%
\noexpand\footnotetextA[\thefield{labelnumber}]{%
\fullcite{\thefield{entrykey}}\addperiod}}}}
\newrobustcmd{\cbx@superscript}[1]{%
\mkbibsuperscript{\mkbibbrackets{#1}}%
\cbx@citehook%
\global\let\cbx@citehook=\empty}
\let\cbx@citehook=\empty
%---------------------------------------------------------------
\makeatother
\addbibresource{biblatex-examples.bib}
\begin{document}
\chapter{Title}
\null\vfill\noindent
Vanilla footnote.\footnoteB{Vanilla footnote text.}
First citation.\sfcite[cf.][10--15]{companion}
First citation.\sfcite[e.g.][530]{bertram}
Vanilla footnote.\footnoteB{Vanilla footnote text.}
First ``multi'' citation.\sfcite{aristotle:rhetoric,bertram}
\chapter{Title}
\null\vfill\noindent
Second citation.\sfcite{bertram}
Vanilla footnote.\footnoteB{Vanilla footnote text.}
Second citation.\sfcite{aristotle:rhetoric}
Second citation.\sfcite{companion}\footnoteB{Vanilla footnote text.}
First citation.\sfcite{aristotle:poetics}
\printbibliography
\end{document}
以下是第一章的结果摘录:
第二: