更改 \cite 的字体大小而不影响 \textcite

更改 \cite 的字体大小而不影响 \textcite

我使用以下命令来减小\cite文中使用括号之间的引用编号的字体大小:

\renewcommand*{\citesetup}{%
  \biburlsetup
  \tiny
\frenchspacing
}

当我使用时,这确实使得像 [1] 这样的引用变得更小\cite

但是,当我使用时\textcite,例如A. Uthor [1] 向你问好。,它还会使作者姓名变小,这在句子的其余部分看起来很奇怪。在使用时,我怎样才能保留\normalsizeA. Uthor 和[1] ?\small\textcite

仅供参考,我将 biblatex 与 biber 和 natbib 一起使用:

\usepackage[
  autocite     = plain,
  backend      = biber,
  style        = alphabetic,
  natbib       = true,   
  ]{biblatex}

答案1

这有点麻烦,因为括号内的引用标签是由引用命令的不同位排版的(特别是括号是由不同的宏生成的),所有这些都需要进行调整。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=alphabetic, autocite=plain,]{biblatex}

\newcommand*{\mkbibsmallbrackets}[1]{%
  {\small\mkbibbrackets{#1}}}
\DeclareCiteCommand{\cite}[\mkbibsmallbrackets]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\parencite}[\mkbibsmallbrackets]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareFieldFormat{small}{\small#1}
\makeatletter
\renewbibmacro*{textcite}{%
  \iffieldequals{namehash}{\cbx@lasthash}
    {\setunit{\multicitedelim}}
    {\ifnameundef{labelname}
       {\printfield[citetitle]{labeltitle}}
       {\printnames{labelname}}%
     \setunit{%
       \global\booltrue{cbx:parens}%
       \printdelim{namelabeldelim}%
       \small\bibopenbracket}%
     \stepcounter{textcitecount}%
     \savefield{namehash}{\cbx@lasthash}}%
  \ifnumequal{\value{citecount}}{1}
    {\usebibmacro{prenote}}
    {}%
  \printtext[small]{\usebibmacro{cite}}%
  \setunit{%
    \ifbool{cbx:parens}
      {\small\bibclosebracket
       \global\boolfalse{cbx:parens}}
      {}%
    \textcitedelim}}

\renewbibmacro*{textcite:postnote}{%
  \usebibmacro{postnote}%
  \ifthenelse{\value{multicitecount}=\value{multicitetotal}}
    {\setunit{}%
     \printtext{%
       \ifbool{cbx:parens}
         {\small\bibclosebracket
          \global\boolfalse{cbx:parens}}
         {}}}
    {\setunit{%
       \ifbool{cbx:parens}
         {\small\bibclosebracket
          \global\boolfalse{cbx:parens}}
         {}%
       \textcitedelim}}}
\makeatother

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite{sigfridsson}
ipsum \textcite{sigfridsson}

\printbibliography
\end{document}

Lorem [SR98] ipsum Sigfridsson 和 Ryde [SR98]

相关内容