我想将文本中的引用改为小写。我在 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}
我想,我有合同义务确认,事情和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}