Natbib:小写字母引用

Natbib:小写字母引用

我想将文本中的引用改为小写。我在 overleaf 上工作并使用 natbib。我知道人们会告诉我改用 biblatex,但我使用的是我大学的草稿,我担心当我尝试切换到 biblatex 时一切都会崩溃和改变。在某个地方,我找到了使用以下代码的解决方案。结果看起来和我想要的完全一样。

\newcommand*{\citepold}{}
\let\citepold\citep
\renewcommand*{\citep}[1]{\textsc{\citepold{#1}}}

在此处输入图片描述

除非我想在来源前使用“eg”(USC02 是我给予来源的 bibtex 密钥),如下所示:

\citep[e.g.][]{USC02}

在此处输入图片描述

有什么方法可以解决这个问题吗?我猜这个问题已经从我使用小写字母的实现开始,但由于我是 LaTeX 新手,我不知道如何处理这个问题。

编辑

我的书目风格是\bibliographystyle{apalike2}

我在草案中发现的其他选项:

\def\bibfont{\small}
\renewcommand{\bibsep}{5pt}
\bibpunct{(}{)}{;}{a}{}{,}

我使用以下方法更改了引文的颜色:

\usepackage[hidelinks, breaklinks, colorlinks=true, citecolor=dark gray]{hyperref}

答案1

natbib使用内部命令\NAT@nmfmt排版引文中的名称。其默认定义是\def\NAT@nmfmt#1{{\NAT@up#1}},但我们可以将 a 强行\scshape塞入其中以用于小写字母。

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

\usepackage{natbib}

\makeatletter
\def\NAT@nmfmt#1{{\scshape\NAT@up#1}}
\makeatother

\begin{filecontents}{\jobname.bib}
@book{elk,
  author    = {Anne Elk and Humphrey Appleby},
  title     = {A Theory on Brontosauruses},
  year      = {1972},
  publisher = {Monthy \& Co.},
}
\end{filecontents}


\begin{document}
Lorem \citep{elk}

\bibliographystyle{apalike2}
\bibliography{\jobname}
\end{document}

“Lorem (Elk & Appleby, 1972)” 小写字母“Elk & Appleby”


我想,我有合同义务确认,事情和biblatex

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

\usepackage[backend=biber, style=authoryear]{biblatex}

\renewcommand*{\mkbibnamefamily}{\textsc}

\begin{filecontents}{\jobname.bib}
@book{elk,
  author    = {Anne Elk},
  title     = {A Theory on Brontosauruses},
  year      = {1972},
  publisher = {Monthy \& Co.},
  location  = {London},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite{sigfridsson,elk}

\printbibliography
\end{document}

相关内容