Biblatex: la cita aparece con diferentes marcas de referencia

Biblatex: la cita aparece con diferentes marcas de referencia

Estoy escribiendo un informe y utilizándolo biblatexcon el biblatex-chempaquete y usando el \fullfootcitecomando debido a la integración con las notas al pie. Sin embargo he notado que

  1. Si se llama más de una vez a la misma referencia, aparecerá con números de referencia diferentes y dos veces en el pie de página;
  2. A pesar de que uso la autopunct=trueopción, la cita en el texto todavía aparece antes de la coma y no después como debería ser.

    \documentclass[11pt,a4paper]{memoir}
    \usepackage[backend=biber,style=chem-acs,subentry,minnames=3,maxnames=100,autopunct=true]{biblatex}
    \bibliography{bibli}
    
    \begin{document}
    A procedure\footfullcite{Harjani:2009hd}, which was reported. The same procedure\footfullcite{Harjani:2009hd} applied with another product.
    \end{document}
    

Respuesta1

Sólo \autocitemueve la puntuación final. El chem-acsestilo carga la configuración de opciones autopunct=truey autocite=superscript. Por lo tanto, puede lograr el resultado de citas en línea deseado con \autociteen lugar de \footfullcite. Para las notas a pie de página puede redefinir \supercitedesde\superfullciteotro estilo de cita de Joseph Wright.

\documentclass{article}
\usepackage[style=chem-acs,subentry,citetracker]{biblatex}
\usepackage[colorlinks]{hyperref}

\makeatletter
% http://www.texdev.net/2010/03/08/biblatex-numbered-citations-as-footnotes/
\DeclareCiteCommand{\supercite}[\cbx@superscript]%
  {\usebibmacro{cite:init}%
   \let\multicitedelim=\supercitedelim
   \iffieldundef{prenote}{}{\BibliographyWarning{Ignoring prenote argument}}%
   \iffieldundef{postnote}{}{\BibliographyWarning{Ignoring postnote argument}}}
  {\usebibmacro{citeindex}%
   \usebibmacro{superfullcite}%
   \usebibmacro{cite:comp}}
  {}
  {\usebibmacro{cite:dump}}

\newbibmacro*{superfullcite}{%
  \ifciteseen{}{\xappto\cbx@citehook{%
    \noexpand\footnotetext[\thefield{labelnumber}]{\fullcite{\thefield{entrykey}}.}}}}

\newrobustcmd{\cbx@superscript}[1]{%
  \mkbibsuperscript{#1}%
  \cbx@citehook
  \global\let\cbx@citehook=\empty}
\let\cbx@citehook=\empty
\makeatother

\addbibresource{biblatex-examples.bib}
\begin{document}
\null\vfill\noindent
New citation \autocite{stdmodel}.
New and recurrent citations \autocite{stdmodel,companion}.
\clearpage
\null\vfill\noindent
New citation \autocite{ctan}.
Recurrent citations from previous and current pages \autocite{companion,glashow,ctan}.
\clearpage
\printbibliography
\end{document}

Aquí está el resultado de la primera página:

ingrese la descripción de la imagen aquí

Y el segundo:

ingrese la descripción de la imagen aquí

Tenga en cuenta que esto evita citas recurrentes de notas al pie al imprimir la nota al pie solo la primera vez que se cita la entrada. Imprimir las notas a pie de página como máximo una vez en cada páginapuede hacerse, pero la solución es relativamente complicada.

\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=chem-acs,subentry,citetracker,pagetracker=page]{biblatex}
\usepackage[colorlinks]{hyperref}

\makeatletter
% user-level citation command
\DeclareCiteCommand{\supercite}[\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 current and last inline instcount, save key 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@tempcntd}}{0}{%
      \defcounter{cbx@tempcntc}{\value{instcount}}%
      \loop\ifnum\value{cbx@tempcntc}>0
        \ifsamepage{\value{instcount}}{\value{cbx@tempcntc}}
          {\ifcsundef{blx@fnpage@\number\numexpr\value{cbx@tempcntc}}
             {\setcounter{cbx@tempcntd}{\value{cbx@tempcntc}}}{}%
           \stepcounter{cbx@tempcntc}}
          {\setcounter{cbx@tempcntc}{0}}%
      \repeat}{}}%
  \csnumgdef{cbx@instcount@\cbx@key}{\value{instcount}}}
\let\cbx@savelist\@empty
\newcounter{cbx@tempcntc}
\newcounter{cbx@tempcntd}
\setcounter{cbx@tempcntd}{0}

\newrobustcmd*{\cbx@superscript}[1]{%
  \global\toggletrue{cbx@supercite}
  \mkbibsuperscript{#1}%
  \cbx@footnote%
  \global\togglefalse{cbx@supercite}}
\let\cbx@savelist\@empty
\newtoggle{cbx@supercite}

\AtEveryCitekey{%
  \ifciteseen{}{\csnumgdef{cbx@instcount@\thefield{entrykey}}{-1}}%
  \iftoggle{cbx@supercite}{}{\cbx@footnote}}
\AtEveryBibitem{\cbx@footnote}
\AtEveryLositem{\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@tempcntd}}} }
    {\cbx@sortlist@init%
     \let\do\cbx@do
     \dolistloop{\cbx@sortlist}%
     \global\let\cbx@savelist\@empty
     \setcounter{cbx@tempcntd}{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
     \iffieldundef{shorthand}
       {\gdef\@thefnmark{\printfield{labelprefix}\printfield{labelnumber}}}
       {\gdef\@thefnmark{\printfield{shorthand}}}%
     \gappto\@thefnmark{\blx@initunit}%
     \ifhyperref
       {\H@@footnotetext{\blx@driver\abx@field@entrytype}}
       {\@footnotetext{\blx@driver\abx@field@entrytype}}%
     \blx@endlang
     \endgroup}
    {}}

% access internal list of sorted entry keys
\def\cbx@sortlist@init{%
  \global\letcs{\cbx@sortlist}
    {blx@slist@entry@\the\c@refsection @\blx@refcontext@context}}
\let\cbx@sortlist\@empty
\makeatother

\addbibresource{biblatex-examples.bib}
\renewcommand*{\thefootnote}{\fnsymbol{footnote}}
\begin{document}
\null\vfill\noindent
New citation \autocite{stdmodel}.
New and recurrent citations \autocite{stdmodel,companion}.
Vanilla footnote with citation.\footnote{Following \textcite{weinberg}...}
\clearpage
\null\vfill\noindent
New citation \autocite{ctan}.
Recurrent citations from previous and current pages \autocite{companion,glashow,ctan}.
\clearpage
\printbibliography
\end{document}

Aquí está el resultado de la primera página:

ingrese la descripción de la imagen aquí

Y el segundo:

ingrese la descripción de la imagen aquí

información relacionada