Суперполный текст со стилем=алфавитный

Суперполный текст со стилем=алфавитный

Я использую \superfullcite{}объясненныйздесь. Насколько я понимаю (боюсь, что это не так уж много), это в основном , \footfullcite{}который появляется только один раз в качестве сноски, даже если цитируется несколько раз. Мне это очень нравится, так как это позволяет мне (используя \AtEveryCiteKey{\clearfield{...}}) помещать (небольшие) цитаты в нижний колонтитул (или поле для tufte) и иметь (полную, длинную) цитату в конце.

Однако он использует numeric-comp, и я бы предпочел, чтобы ссылки на мои цитаты были [XYZ99]такими, (я думаю, это было бы alphabetic) Таким образом, не существует подразумеваемого числового порядка, который сбивается при сортировке по алфавиту. Но если человек читает только библиографию.

Я не совсем уверен, как это сделать. По сути, не хватает только смены этикеток, однако я не уверен, как это сделать.

  • Продолжать использовать numeric-compи sorting=trueкак-то изменять метки?
  • Начать использовать alphabeticи попытаться приступить \superfullcite{}к работе?

MWE будет вот этим

% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
%\documentclass[a4paper, nobib, notoc, symmetric, marginals=raggedouter, justified]{tufte-book} % 
%\morefloats
%\morefloats
\documentclass{article}
\usepackage{csquotes}
\usepackage{hyphenat} 
\usepackage[american]{babel}


\usepackage[block=nbpar, firstinits=false, backref=true, maxcitenames=1, maxbibnames=99,  isbn=false, doi=false, url=false, eprint=false, style=numeric-comp, backend=biber, sorting=none, citetracker=true, defernumbers=true]{biblatex}

\bibliography{biblatex-examples}
%%=====
\makeatletter
\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}}.}}}


% Declare superfullcite and remap it to cite
\DeclareCiteCommand{\superfullcite}[\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

%\renewcommand{\cite}[1]{\superfullcite{#1}} %remap \superfullcite to \cite



\begin{document}
Some filler text \notefullcite{cotton}, then some more text
\notefullcite{hammond}. Perhaps some more text and the same
citation again \notefullcite{hammond}. Yet another one
\notefullcite{knuth:ct:a}. Now all again
\notefullcite{cotton,hammond,knuth:ct:a}.

Some filler text,\superfullcite{augustine} then some more
text.\superfullcite{companion} Perhaps some more text and the
same citation again.\superfullcite{companion} Yet another
one.\superfullcite{kastenholz} Now all
again.\superfullcite{augustine,companion,kastenholz}
\printbibliography

\end{document}

Как видите, я использую, sorting=noneно не могу изменить стиль на алфавитный, так как cite:initи подобные макросы не работают. Может кто-нибудь объяснить, что они делают? Поиск в документации biblatex не дал результатов.

решение1

Мы можем определить новую команду \sfcite, которая печатает стандартную ссылку и добавляет \footfullciteсноску с полной библиографической записью при первом появлении ссылки.

\DeclareCiteCommand{\sfcite}[\mkbibbrackets]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}%
   \ifciteseen
     {}
     {\footfullcite{\thefield{entrykey}}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

(Определение выше предназначено для работы с alphabetic, но если вы удалите , [\mkbibbrackets]оно будет работать со многими другими стандартными стилями. Основная идея заключается в добавлении \ifciteseen{}{\footfullcite{\thefield{entrykey}}}блока после \usebibmacro{cite}определения.)

МВЭ

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[style=alphabetic,backend=biber,citetracker=constrict]{biblatex}
\usepackage[colorlinks=true]{hyperref}

\addbibresource{biblatex-examples.bib}

\DeclareCiteCommand{\sfcite}[\mkbibbrackets]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}%
   \ifciteseen
     {}
     {\footfullcite{\thefield{entrykey}}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\begin{document}
Lorem \sfcite{wilde} ipsum \sfcite{cicero} dolor \sfcite{wilde} sit
\sfcite{geer} amet \sfcite{knuth:ct:a,knuth:ct:b}.

Cite again \sfcite{geer} and \sfcite{cicero}.
\end{document}

введите описание изображения здесь

Связанный контент