使用方括号或圆括号与 \cite

使用方括号或圆括号与 \cite

我希望能够在引用标注年份周围选择方括号或圆括号,因为我的老师希望只有当引用标注在括号内时才使用方括号,否则使用括号。

例如:“我们想在本章中引用 Hock (1986)、Antilla (1989) 和 Fox (1995)(以及 Rankin [2003] 和 Ringe [2013]),[...]”

有办法吗?

答案1

你的老师确实提出了一个奇怪的要求。我只能想到定义你自己的\cite命令,以便在括号内使用。

我假设您不太需要方形版本,因此我将一个默认round选项传递给natbib,然后定义相应的命令:\sqcitet\sqcitep只是用于(本地)更改引用样式的包装器。

\begin{filecontents}{\jobname.bib}
@ARTICLE{feyn54,
    title = {Testing},
    author = {R. P. Feynman},
    journal = {Phys. Rev.},
    year = {1954},
    volume = {94},
    pages = {262}
}
\end{filecontents}

\documentclass{article}
\usepackage[round]{natbib}

\makeatletter
\newcommand{\bianca}{\renewcommand\NAT@open{[}\renewcommand\NAT@close{]}}
\makeatother

\newcommand*\sqcitet[1]{{\bianca\citet{#1}}}
\newcommand*\sqcitep[1]{{\bianca\citep{#1}}}

\begin{document}    
    We would like to cite some in-line \citet{feyn54} and \citep{feyn54}, and of course in brackets as well:
    (with \sqcitet{feyn54} and \sqcitep{feyn54}) 

    We would like to cite some in-line \citet{feyn54} and \citep{feyn54}

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

在此处输入图片描述

补充说明

该文档提供了两种改变引用样式的方法,即(i)\setcitestyle{square}和(ii)创建一个新的\bibstyle@xxx并用 调用它\citestyle{xxx}

方法 (i) 很容易实现,而方法 (ii) 的实现可以在我之前对此答案的编辑中看到。但是……

第一种方法添加了虚假间距,而第二种方法全局设置了样式。(因此两者都不令人满意)。

因此,我暂时选择了使用 and 明确设置左括号和右括号\renewcommand\NAT@open{[}\renewcommand\NAT@close{]}

相关内容