ネストされた脚注の場合の Biblatex \autocite

ネストされた脚注の場合の Biblatex \autocite

私は次のユーザーと同じ状況です: biblatex: ネストされた脚注の場合の \autocite の強化

\autocite内でを使用したいです。これにより、引用が括弧で囲まれます。内で使用されている\footnoteの動作を変更して、の単純な呼び出しのように、括弧なしで引用を印刷するようにします。\autocite\footnote\cite

\autocite内のの動作を変更するにはどうすればよいですか\footnote?

答え1

解決方法は引用スタイルによって異なります。authortitleverboseおよびそれらの各バリアント(および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}

ここに画像の説明を入力してください

関連情報