1

Just now I'm using

\usepackage[backend=biber, citestyle=numeric]{biblatex}

\usepackage[flushmargin]{footmisc}

\newcommand{\myautocite}[2][1]{\autocite[#1]{#2}{\let\thempfn\relax\footnotetext{\autocite{#2} \citeauthor{#2}, \citeyear{#2}, \citetitle{#2}.}}}

with the effect that the citation with \mayautocite{key} in the text is indeed "[3]" and at the bottom of the page I have the recall "[3] Hilbert, 1901, "The 19th Theorem"". I have two problems:

--[main] When I use the same reference on a page, this is recalled twice or as many times as it appears, which I don't want. I would like only one recall per page.

--[auxiliary] I don't want the indentation space at the beginning of this recall but would like to keep it for usual footnotes.

Many thanks for pointers on how to achieve that!

  • 1
    What do you think of my solution in Help with additional parameter for DeclareCiteCommand, that is the second part of the answer? There is quite a lot wrong with your current approach: You should not define a cite command via \newcommand, use \DeclareCiteCommand instead, you should also never try and combine several \cite... commands into one, it will go horrible wrong once you start citing two works. – moewe Oct 28 '15 at 18:00
  • Instead of \fullcite{\thefield{entrykey}} we can of course have something like \printfield{labelname}\newunit\printfield{title}\newunit\printfield{year} (obviously, you would want that to be slightly better more sophisticated to catch some corner cases), let me know if you are interested in that solution and need help modifying it to your needs. – moewe Oct 28 '15 at 18:07
  • Many thanks for this (fast!) answer. I have three questions: – Olivier Oct 28 '15 at 18:32
  • I have three questions: (1) \printfield{author} dos not seem to work ?? (2) I would like the recall to occur at each page. Now it is recalled once, say page 12, but not when it is used again page 133 (3) How can I change \newunits? It gets me a dot when I want a come. Many thanks again ! O. – Olivier Oct 28 '15 at 18:50
  • \usebibmacro{author} rather than \printfield{author} solves point (1) – Olivier Oct 28 '15 at 19:29
1

Here is the code that does the job.

\usepackage{csquotes}
\usepackage[%
    backend=biber,
    style=numeric-comp,
    citetracker=true,
    pagetracker=true,
    ]{biblatex}

\makeatletter
\renewbibmacro*{cite:comp}{%
  \xdef\cbx@citekey{\thefield{entrykey}}%
  \addtocounter{cbx@tempcntb}{1}%
  \ifciteseen
    {}
    {\csnumgdef{cbx@instcount\cbx@citekey}{-100}}%  
  \ifsamepage{\value{instcount}}{\number\csuse{cbx@instcount\cbx@citekey}}%
    {}
    {\renewcommand{\@makefntext}[1]{\noindent\normalfont##1}%
     \footnotetext{
       \printtext[labelnumberwidth]{%
         \printfield{prefixnumber}%
         \printfield{labelnumber}}%
       \addspace
       \renewcommand{\newunitpunct}{\addcomma\addspace}
       \bibfootnotewrapper{%\fullcite{\thefield{entrykey}}%
         \printfield{labelname}\usebibmacro{author}\newunit\printfield{year}\newunit\printfield{title}\addperiod}}}%
   \csnumgdef{cbx@instcount\cbx@citekey}{\value{instcount}}%
   \iffieldundef{shorthand}
    {\ifbool{bbx:subentry}
       {\iffieldundef{entrysetcount}
          {\usebibmacro{cite:comp:comp}}
          {\usebibmacro{cite:comp:inset}}}
       {\usebibmacro{cite:comp:comp}}}
    {\usebibmacro{cite:comp:shand}}}

\makeatletter
\newcommand{\myautocite}[2][1]{\cite[#1]{#2}}
  • I don't think the last \newcommand{\myautocite}[2][1]{\cite[#1]{#2}} is a good idea, it destroys the pre-/post-note abilities partially. When I made my comment above I should have said \printnames{labelname}, that however only works with the option labelname passed to biblatex. – moewe Oct 29 '15 at 6:43
  • It would also be great if you could give attribution to the solutions you used, I suspect the "same page test" is from biblatex: is there a command analogous to \ifciteseen but within one page?? – moewe Oct 29 '15 at 6:44
  • The newcommand{\myautocite} ... is a blunder, just using \autocite is enough. And I couldn't find again the page I was using, so thanks for having found it! – Olivier Oct 29 '15 at 8:10
  • If you think your answer answers the question, consider accepting it so the question gets marked as solved. – moewe Oct 31 '15 at 7:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.