特定の引用コマンドの著者フォントを変更する

特定の引用コマンドの著者フォントを変更する

次のMWEを考えてみましょう

\documentclass{article}
\usepackage[style=authoryear-comp,backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\AtBeginDocument{%
  \renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}
}

\begin{document}
\textcite{knuth:ct:e}\\
\fullcite{salam}\\
Footcite\footfullcite{baez/article}
\printbibliography
\end{document}

これにより、文書内と参考文献の両方で、すべての cite コマンドの著者の姓が小文字で印刷されます。\textciteコマンドの場合のみ、姓 (例では Knuth) を小文字ではなく通常のフォントでテキストに印刷します。

編集: 2016年3月現在 (biblatex 3.3)、\mkbibnamefamily代わりに変更する必要があります。\mkbibnamelast

答え1

考えられる解決策としては、テキスト引用部内かどうかを判断するためのトグルを導入することです。次に、 の変更が\mkbibnamelastトグルに対してパラメータ化されます。この解決策では、xpatchパッケージを使用して bibmacro を変更しtextcite、マクロを実行する直前にトグルを true に設定し、マクロの実行textcite直後に false に設定します。textcite

\newtoggle{textcite}

\AtBeginDocument{
  \renewcommand*{\mkbibnamelast}[1]{%
    \iftoggle{textcite}{#1}{\textsc{#1}}}
}

\xpretobibmacro{textcite}{\toggletrue{textcite}}{}{}
\xapptobibmacro{textcite}{\togglefalse{textcite}}{}{}

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

答え2

\documentclass{article}
\usepackage[style=authoryear-comp,backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\AtBeginDocument{%
  \renewcommand*\mkbibnamelast[1]{\textsc{#1}}}
\let\TC\textcite
\renewcommand\textcite[1]{{\def\mkbibnamelast##1{##1}\TC{#1}}}% hold it local
%% If you need the optional argument of \textcite then we have to modify
%% the macro    

\begin{document}
\textcite{knuth:ct:e}\\
\fullcite{salam}\\
Footcite\footfullcite{baez/article}
\printbibliography
\end{document}

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

答え3

の最新バージョンでは、biblatex次のようなアプローチが使えます。グイド答えただし、引用コマンドにパッチを適用してフラグを設定する代わりに、区切り文字のコンテキストをテストします。

\documentclass{article}
\usepackage[style=authoryear-comp,backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}

\makeatletter
\renewcommand*{\mkbibnamefamily}{%
  \ifcsundef{mkbibnamefamily@\blx@delimcontext}
    {\textsc}
    {\csuse{mkbibnamefamily@\blx@delimcontext}}}

\newcommand*{\mkbibnamefamily@textcite}[1]{#1}
\makeatother


\begin{document}
\textcite{knuth:ct:e}

\fullcite{salam}

Footcite\footfullcite{sigfridsson}

\printbibliography
\end{document}

「Knuth (1986)」は小文字なし//「Abdus Salam (1968)」は小文字の「Salam」

関連情報