私は次のユーザーと同じ状況です: biblatex: ネストされた脚注の場合の \autocite の強化
\autocite
内でを使用したいです。これにより、引用が括弧で囲まれます。内で使用されている\footnote
の動作を変更して、の単純な呼び出しのように、括弧なしで引用を印刷するようにします。\autocite
\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}