在 natbib 文内引用(“\citet”)中使用“and”代替“&”

在 natbib 文内引用(“\citet”)中使用“and”代替“&”

我的参考书目编排得很好,但对于文内引用的多位作者,会显示“&”,而不是必需的“and”。到目前为止,我在这个网站上找到的所有解决方案都失败了。我更喜欢保留现有的软件包;例如,不是 Biblatex。

我的大学遵循 APA 格式的要求。因此,多位作者的引用应仅在参考书目和括号引用中显示“&”;在正文引用中使用“and”。

对于我的论文文档,我使用 Github 上的“Dissertate”类模板https://github.com/suchow/Dissertate

我的书目风格定义为 apalike2,使用包 natbib。NB:我使用最新版本 (1.6.12) 的 Texpad 作为排版工具。

我对 TeX 还不太熟悉,但在这里我尝试给出一个 MWE:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{Dissertate}[2014/01/24 v1.0 Dissertate Class]
\LoadClass[12pt, oneside, letterpaper]{book}
\RequirePackage{hyperref}

\RequirePackage{Harvard}
\renewcommand{\bibnumfmt}[1]{[#1]}
\renewcommand\bibname{References}

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode

\documentclass[School=Harvard]{Dissertate}

@article{YeoM2012,
title={Complex problem solving through Action Learning: Implications for HR development},    
journal={International Journal of Human Resources Development and Management},
volume={12},
number={4},
pages={258-273},
author={Marquardt, Michael and Yeo, Roland},
year={2012},
}
\begin{document}

\citet{YeoM2012}

\end{document}

答案1

我不确定你为什么认为apacite不能正确处理&/and切换(指你的评论)。

这是一个基本的例子apacite,展示了文内引用、括号引用和参考列表本身之间的区别:

代码

\documentclass{article}
\usepackage{apacite}
\usepackage{filecontents}

\begin{filecontents}{refs.bib}
@BOOK{SmJo03,
  AUTHOR         = {A. Smith and B. Jones},
  TITLE          = {Title},
  YEAR           = {2003},
}
\end{filecontents}

\begin{document}
\citeA{SmJo03} found that in-text citations of 
their work appeared with `\&' rather than `and'.

It was also discovered that parenthetical citations are 
printed with `\&' as required by the APA \cite{SmJo03}.

\bibliographystyle{apacite}
\bibliography{refs}
\end{document}

输出

在此处输入图片描述

如果这对你来说不起作用,那么你系统上一定存在一些其他交互。社区需要一个合适的最小工作示例(MWE)去诊断。

答案2

根据 Paul 使用 apacite 包的建议,我得出的结论是 natbib 可能与 apacite 结合使用时引起冲突。我寻求并找到了一个可行的解决方案,即放入\RequirePackage[natbibapa]{apacite}我的样式文件(序言)和 \bibliographystyle={apacite}我的 .tex 文件中。这很完美;技术解释可以在 apacite 包手册的第 7 页(包选项)和第 15/16 页中找到:http://texdoc.net/texmf-dist/doc/bibtex/apacite/apacite.pdf。NB 为了与我的 GUI Texpad 一起使用,我首先必须手动将所有 natbib 引用命令\citep和分别\citet定义为 natbibapa 命令\citeauthorp\citeauthort。编译后,我再次手动放回原始 natbib 命令。

答案3

我想对这个问题给出自己的答案,以防它对任何人有帮助,尽管 OP 已经发布了他们自己的答案(仍在等待被他们自己接受)。

此解决方案不需要apacite使用包。但是,可能需要调整 BST 文件(包含要应用的书目样式的文件)或可以使用 获得 BST 的 DBJ 文件custom-bib

我的“食谱”是这样的:

\begin{document}(1)在文档的任何部分之后或\begin{frontmatter}之前添加这一段代码,“和”是必须的:

%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\BIBand}{and}
%%%%%%%%%%%%%%%%%%%%%%%%%

如果编译时出现错误,则将其替换为:

%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand{\BIBand}{and}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

(2)就在参考文献列表出现的章节之前(或者就在任何地方“&”是必须出现),请包含这一段代码:

%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand{\BIBand}{\&}
%%%%%%%%%%%%%%%%%%%%%%%%%%

如果以上操作对您的最终文档没有任何影响,则需要编辑 BST 文件。怎么做?请按照以下说明操作:

(1)用纯文本编辑器打开BST文件。

(2)查找类似“FUNCTION {bbl.and}”的内容。通常,类似这样的内容会出现在你的 BST 文件中:

FUNCTION {bbl.and}
{ "and"}

(3)将那段代码替换为如下代码:

FUNCTION {bbl.and}
{ "\protect\BIBand{}"}

(4)如果原始BST名为mystyle.bst,则将编辑后的文件另存为mystyleBIBand.bst,例如 。

(5)在你的 TEX 文档中,用 替换\bibliographystyle{mystyle}\bibliographystyle{mystyleBIBand}现在尝试再次编译文档(你可能需要“清理”它并重新编译几次)。它应该可以工作。

相关内容