I need to repeat footnote references on each page instead of creating lots of footnotes with references to previous footnotes. I found this answer which looks like it does exactly what I want except that I'm using gost-footnote style:
\usepackage[
style=gost-footnote,
maxcitenames=3,
maxbibnames=100
]{biblatex}
With this style using the code from that answer directly does not work because it can't find cite:init, cite:comp and other macros. I tried to adapt it to gost-footnote by looking to the latter's footcite implementation and came up with this:
\DeclareCiteCommand{\sfcite}[\cbx@superscript]
{\let\multicitedelim\supercitedelim%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite:super:foot}}
{}
{\usebibmacro{cite:postnote}}
However, it does not work correctly. That is, it does seem to show footnotes exactly in the order I want, but all actual numbers, both in text and in footnotes disappear:
Additionally, it somehow breaks separators. The following redefinition works with vanilla footcites:
\renewcommand{\newunitpunct}{\adddot\space---\space}
but stops with sfcite.
How do I solve these issues? My TeX knowledge is not enough to deal with these arcane macros :(
Here is an example document which shows the problem:
\documentclass[oneside]{scrbook}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage[
style=gost-footnote,
autocite=footnote,
autopunct=false,
maxcitenames=3,
maxbibnames=100
]{biblatex}
\makeatletter
% user-level citation command
\DeclareCiteCommand{\sfcite}[\cbx@superscript]
{\let\multicitedelim\supercitedelim%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite:super:foot}}
{}
{\usebibmacro{cite:postnote}}
% 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@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@sfcite}
\mkbibsuperscript{#1}%
\cbx@footnote%
\global\togglefalse{cbx@sfcite}}
\newtoggle{cbx@sfcite}
\AtEveryCitekey{%
\ifciteseen{}{\csnumgdef{cbx@instcount@\thefield{entrykey}}{-1}}%
\iftoggle{cbx@sfcite}{}{\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{prefixnumber}\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{%
\ifcsundef{blx@sort@\the\c@refsection}
{\global\letcs{\cbx@sortlist}
{blx@slists@\the\c@refsection @entry@\blx@sorting}}% Biber
{\global\letcs{\cbx@sortlist}{blx@sort@\the\c@refsection}}}% BibTeX
\let\cbx@sortlist\@empty
\makeatother
\addbibresource{biblatex-examples.bib}
\usepackage{fnpct}
\AdaptNoteOpt\sfcite\multfootcite
\renewcommand{\newunitpunct}{\adddot\space---\space}
\begin{document}
\toggletrue{bbx:gostbibliography}
\pagestyle{plain}
\null\vfill
Example \sfcite{bertram}\sfcite{doody}, example \sfcite{gillies}
\end{document}


.bibentries - you can use e.g.biblatex-examples.bibwhich everyone with Biblatex has already. – cfr Aug 14 '15 at 00:13numerickind of style, whilegost-footnoteseems to be averbose-y style. So the commands there might be tailored to that specific situation. Have you tried Multiply cited reference in footnotes, which seems very similar, but is based onauthortitle. – moewe Aug 14 '15 at 06:35\!s in appropriate places and it seems to look normally. I'll update the question with the code when I will be able to. – Vladimir Matveev Aug 19 '15 at 08:35\!), please ask a new question including the new code . – moewe Aug 20 '15 at 05:07