参考书目:仅在引用中使用圆括号

参考书目:仅在引用中使用圆括号

在此示例中,我希望只有引用处的括号是圆的,参考文献的开头是方的。我该如何实现这一点?

使用 round withnatbib不起作用,因为我到处都是圆括号,而且在参考文献的开头没有写作者姓名和年份,而这正是我真正想要的

我想要参考:

[作者,年份] 作者,年份,标题...

正文如下:

...(作者,年份)

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@Book{Batty:2007,
author    = {Michael Batty},
title     = {Cities and Complexity},
publisher = {MIT Press},
year      = 2007}
\end{filecontents*}

\makeatletter
\let\@internalcite\cite
\def\cite{\def\citeauthoryear##1##2{##1, ##2}\@internalcite}
\def\shortcite{\def\citeauthoryear##1##2{##2}\@internalcite}
\def\@biblabel#1{\def\citeauthoryear##1##2{##1, ##2}[#1]\hfill}
\makeatother

\begin{document}

This a citation \cite{Batty:2007}

\bibliographystyle{apalike}
\bibliography{\jobname}

\end{document} 

答案1

为了改变 BibTeX 中的某些内容,最好先查看驯服野兽。在第 4.5 点,他们写了如何将括号改为圆括号。这是针对引用和参考文献分别进行的,因此我们可以省略第一步。所以我们必须重新定义\@cite

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@Book{Batty:2007,
author    = {Michael Batty},
title     = {Cities and Complexity},
publisher = {MIT Press},
year      = 2007}
\end{filecontents*}

\makeatletter
\def\@cite#1#2{({#1\if@tempswa , #2\fi})}
\let\@internalcite\cite
\def\cite{\def\citeauthoryear##1##2{##1, ##2}\@internalcite}
\def\shortcite{\def\citeauthoryear##1##2{##2}\@internalcite}
\def\@biblabel#1{\def\citeauthoryear##1##2{##1, ##2}[#1]\hfill}
\makeatother

\begin{document}

This a citation \cite{Batty:2007}

\bibliographystyle{apalike}
\bibliography{\jobname}

\end{document} 

相关内容