Biblatex \autocite в случае возможных вложенных сносок

Biblatex \autocite в случае возможных вложенных сносок

У меня такая же ситуация, как у следующего пользователя: biblatex: Улучшение \autocite в случае потенциально вложенных сносок

Я хочу использовать \autociteвнутри \footnote. Это приводит к тому, что цитата оказывается заключенной в скобки. Я хочу изменить поведение \autociteused within \footnoteдля вывода цитаты без скобок, как это \citeсделал бы простой вызов .

Как я могу изменить поведение \autociteвнутри \footnote?

решение1

Решение зависит от стиля цитирования. Для стилей вроде authortitle, verboseи их соответствующих вариантов (а также для biblatex-juradiss), которые выполняют autocite=footnote, нам нужно только переопределить базовый \smartciteмакрос так, чтобы он не добавлял скобки в сносках (заменив \mkbibparensна \textnormal).

\documentclass{article}

\usepackage[style=authortitle]{biblatex}

\DeclareCiteCommand{\smartcite}[\iffootnote\textnormal\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareMultiCiteCommand{\smartcites}
    [\iffootnote\textnormal\mkbibfootnote]{\smartcite}{\multicitedelim}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\null\vfill% just for the example

Some text \autocite{A01}.

Some text.\footnote{A footnote \autocite{A01}.}

\printbibliography

\end{document}

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

Для стилей, подобных authoryearтому, который выполняется по умолчанию autocite=inline(использует \parencite), нам нужно объявить новое autociteзначение параметра (например, inlineplainfootnote), которое указывает на новый базовый макрос (например, \mysmartcite), который делает то, что вам нужно (добавляет скобки в обычный текст, не добавляйте их в сноски).

\documentclass{article}

\usepackage[style=authoryear]{biblatex}

\DeclareAutoCiteCommand{inlineplainfootnote}{\mysmartcite}{\mysmartcites}

\DeclareCiteCommand{\mysmartcite}[\iffootnote\textnormal\mkbibparens]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareMultiCiteCommand{\mysmartcites}
    [\iffootnote\textnormal\mkbibparens]{\mysmartcite}{\multicitedelim}

\ExecuteBibliographyOptions{autocite=inlineplainfootnote}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\null\vfill% just for the example

Some text \autocite{A01}.

Some text.\footnote{A footnote \autocite{A01}.}

\printbibliography

\end{document}

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

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