Estoy usando Biblatex y he usado el siguiente código para crear dos clases diferentes de notas al pie, una con la cita y una nota al pie normal.
\DeclareNewFootnote{A}
\DeclareNewFootnote{B}
\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}}}{}
% See https://tex.stackexchange.com/a/71566/35864
\let\cbx@savelist\@empty
\newcounter{cbx@inst@iter}
\newcounter{cbx@inst@lastonpage}
\setcounter{cbx@inst@lastonpage}{0}
\AtDataInput{%
\csnumgdef{cbx@instcount@\thefield{entrykey}}{-1}}
% user-level citation command
\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{cite:super:foot}%
\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}}
% save instcount, save key and last inline instcount if seen first on page
\newbibmacro*{cite:super:foot}{%
\xdef\cbx@key{\thefield{entrykey}}%
\ifsamepage{\value{instcount}}{\csuse{cbx@instcount@\cbx@key}}
{}
{\listxadd{\cbx@savelist}{\cbx@key}%
\ifnumequal{\value{cbx@inst@lastonpage}}{0}%
{\defcounter{cbx@inst@iter}{\value{instcount}}%
\loop\ifnum\value{cbx@inst@iter}>0
\ifsamepage{\value{instcount}}{\value{cbx@inst@iter}}
{\ifcsundef{blx@fnpage@\the\value{cbx@inst@iter}}
{\setcounter{cbx@inst@lastonpage}{\value{cbx@inst@iter}}}
{}%
\stepcounter{cbx@inst@iter}}
{\setcounter{cbx@inst@iter}{0}}%
\repeat}
{}}%
\csnumgdef{cbx@instcount@\cbx@key}{\value{instcount}}}
\newrobustcmd*{\cbx@superscript}[1]{%
\mkbibsuperscript{\mkbibbrackets{#1}}%
\cbx@footnote}
% defer citation footnotes to last inline reference instance on page
\newrobustcmd*{\cbx@footnote}{%
\ifboolexpr{ not test {\ifdefempty{\cbx@savelist}}
and test {\ifnumequal{\value{instcount}}{\value{cbx@inst@lastonpage}}} }
{\cbx@sortlist@init%
\let\do\cbx@do
\dolistloop{\cbx@sortlist}%
\global\let\cbx@savelist\@empty
\setcounter{cbx@inst@lastonpage}{0}}
{}}
% print footnotes in 'sorting' order
\def\cbx@do#1{%
\ifinlist{#1}{\cbx@savelist}
{\begingroup
\blx@resetdata
\blx@getdata@cite{#1}%
\blx@setoptions@type\abx@field@entrytype
\blx@setoptions@entry
\blx@execute
\blx@beglang
\toggletrue{cbx@togcite}%
\footnotetextA[\thefield{labelnumber}]{\blx@driver\abx@field@entrytype}%
\blx@endlang
\endgroup}
{}}
% access internal list of sorted entry keys
\def\cbx@sortlist@init{%
\global\letcs{\cbx@sortlist}
{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context}}
\let\cbx@sortlist\@empty
\makeatother
\newbibmacro{string+doiurlisbn}[1]{%
\iffieldundef{doi}{%
\iffieldundef{url}{%
\iffieldundef{isbn}{%
\iffieldundef{issn}{%
#1%
}{%
\href{http://books.google.com/books?vid=ISSN\thefield{issn}}{#1}%
}%
}{%
\href{http://books.google.com/books?vid=ISBN\thefield{isbn}}{#1}%
}%
}{%
\href{\thefield{url}}{#1}%
}%
}{%
\href{https://doi.org/\thefield{doi}}{#1}%
}%
}
\DeclareFieldFormat{journaltitle}{\usebibmacro{string+doiurlisbn}
{\mkbibemph{#1}}}
Este código está tomado deEsta publicación
Sin embargo, cuando cito \sfcite
el número de nota al pie que no aparece en el superíndice, aparecen errores que no están definidos cite:init
. Pensé que esto podría ser lo que está causando el problema.cite:comp
cite:dump
Si es relevante, estoy usando las siguientes opciones en biblatex
\usepackage[backend=bibtex, bibstyle=nature, citestyle = authoryear, natbib=true ,subentry, mcite, citetracker, pagetracker=page]{biblatex}
Además, la cita completa aparece en la nota al pie de la misma manera que en la bibliografía, pero me gustaría que en elautorañoestilo pero no puedo entender qué necesito cambiar
Aquí hay un MWE
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{xcolor}
\usepackage{manyfoot}
\usepackage[autostyle=true]{csquotes}
\usepackage[backend=bibtex, bibstyle=nature, citestyle = authoryear, natbib=true ,subentry, mcite, citetracker, pagetracker=page]{biblatex}
\usepackage{hyperref}
\DefineBibliographyStrings{ngerman}{
andothers = {\textit{et~al\adddot}}
}
\DeclareNewFootnote{A}
\DeclareNewFootnote{B}
\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}}}{}
% See https://tex.stackexchange.com/a/71566/35864
\let\cbx@savelist\@empty
\newcounter{cbx@inst@iter}
\newcounter{cbx@inst@lastonpage}
\setcounter{cbx@inst@lastonpage}{0}
\AtDataInput{%
\csnumgdef{cbx@instcount@\thefield{entrykey}}{-1}}
% user-level citation command
\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{cite:super:foot}%
\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}}
% save instcount, save key and last inline instcount if seen first on page
\newbibmacro*{cite:super:foot}{%
\xdef\cbx@key{\thefield{entrykey}}%
\ifsamepage{\value{instcount}}{\csuse{cbx@instcount@\cbx@key}}
{}
{\listxadd{\cbx@savelist}{\cbx@key}%
\ifnumequal{\value{cbx@inst@lastonpage}}{0}%
{\defcounter{cbx@inst@iter}{\value{instcount}}%
\loop\ifnum\value{cbx@inst@iter}>0
\ifsamepage{\value{instcount}}{\value{cbx@inst@iter}}
{\ifcsundef{blx@fnpage@\the\value{cbx@inst@iter}}
{\setcounter{cbx@inst@lastonpage}{\value{cbx@inst@iter}}}
{}%
\stepcounter{cbx@inst@iter}}
{\setcounter{cbx@inst@iter}{0}}%
\repeat}
{}}%
\csnumgdef{cbx@instcount@\cbx@key}{\value{instcount}}}
\newrobustcmd*{\cbx@superscript}[1]{%
\mkbibsuperscript{\mkbibbrackets{#1}}%
\cbx@footnote}
% defer citation footnotes to last inline reference instance on page
\newrobustcmd*{\cbx@footnote}{%
\ifboolexpr{ not test {\ifdefempty{\cbx@savelist}}
and test {\ifnumequal{\value{instcount}}{\value{cbx@inst@lastonpage}}} }
{\cbx@sortlist@init%
\let\do\cbx@do
\dolistloop{\cbx@sortlist}%
\global\let\cbx@savelist\@empty
\setcounter{cbx@inst@lastonpage}{0}}
{}}
% print footnotes in 'sorting' order
\def\cbx@do#1{%
\ifinlist{#1}{\cbx@savelist}
{\begingroup
\blx@resetdata
\blx@getdata@cite{#1}%
\blx@setoptions@type\abx@field@entrytype
\blx@setoptions@entry
\blx@execute
\blx@beglang
\toggletrue{cbx@togcite}%
\footnotetextA[\thefield{labelnumber}]{\blx@driver\abx@field@entrytype}%
\blx@endlang
\endgroup}
{}}
% access internal list of sorted entry keys
\def\cbx@sortlist@init{%
\global\letcs{\cbx@sortlist}
{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context}}
\let\cbx@sortlist\@empty
\makeatother
\newbibmacro{string+doiurlisbn}[1]{%
\iffieldundef{doi}{%
\iffieldundef{url}{%
\iffieldundef{isbn}{%
\iffieldundef{issn}{%
#1%
}{%
\href{http://books.google.com/books?vid=ISSN\thefield{issn}}{#1}%
}%
}{%
\href{http://books.google.com/books?vid=ISBN\thefield{isbn}}{#1}%
}%
}{%
\href{\thefield{url}}{#1}%
}%
}{%
\href{https://doi.org/\thefield{doi}}{#1}%
}%
}
\DeclareFieldFormat{journaltitle}{\usebibmacro{string+doiurlisbn}
{\mkbibemph{#1}}}
\begin{filecontents}{\jobname.bib}
@article{Frank1953,
author = {Frank, F. C.},
title = {On spontaneous asymmetric synthesis},
journal = {Biochim. Biophys. Acta},
year = {1953},
volume = {11},
pages = {459-463},
doi = {10.1016/0006-3002(53)90082-1},
url =
{http://www.sciencedirect.com/science/article/pii/0006300253900821},
}
@article{Kagan1986,
author = {Puchot, C. and Samuel, O. and Dunach, E. and Zhao, S. and
Agami, C. and Kagan, H. B.},
title = {Nonlinear effects in asymmetric synthesis.
Examples in asymmetric oxidations and aldolization reactions},
journal = {J. Am. Chem. Soc.},
year = {1986},
volume = {108},
number = {9},
pages = {2353-2357},
doi = {10.1021/ja00269a036},
}
@article{Soai1995,
author = {Soai, Kenso and Shibata, Takanori and Morioka, Hiroshi
and Choji, Kaori},
title = {Asymmetric autocatalysis and amplification of
enantiomeric excess of a chiral molecule},
journal = {Nature},
year = {1995},
volume = {378},
number = {6559},
pages = {767-768},
doi = {10.1038/378767a0},
}
@article{Brown2001,
author = {Blackmond, Donna G. and McMillan, Christopher R.
and Ramdeehul, Shailesh and Schorm, Andrea and Brown, John M.},
title = {Origins of Asymmetric Amplification
in Autocatalytic Alkylzinc Additions},
journal = {J. Am. Chem. Soc.},
year = {2001},
volume = {123},
number = {41},
pages = {10103-10104},
doi = {10.1021/ja0165133},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\tableofcontents
\newpage
\section{Title}
\null\vfill\noindent
Vanilla footnote.\footnoteB{Vanilla footnote text.}
First citation.\sfcite{Frank1953}
First citation.\sfcite{Kagan1986}
Vanilla footnote.\footnoteB{Vanilla footnote text.}
First ``multi'' citation.\sfcite{Frank1953,Kagan1986,Soai1995}
\newpage
\section{Title}
\null\vfill\noindent
Second citation.\sfcite{Frank1953}
Vanilla footnote.\footnoteB{Vanilla footnote text.}
Second citation.\sfcite{Soai1995}
Second citation.\sfcite{Kagan1986}\footnoteB{Vanilla footnote text.}
First citation.\sfcite{Brown2001}
\newpage
\printbibliography
\end{document}
Esto se ha cumplido al dorso utilizando elpdfLaTeXcompilador, intenté usar biber como backend, sin embargo, aparece el errorLa cita no está definida.simplemente pone el nombre de la referencia en el superíndice, la nota al pie y la bibliografía desaparecen por completo