需要帮助获取 natbib 和自定义 bibtex 样式表以配合自定义论文类

需要帮助获取 natbib 和自定义 bibtex 样式表以配合自定义论文类

我正在编写一篇语言学硕士论文,必须使用论文办公室提供的自定义类。然后,我必须使用美国语言学会为引文和参考文献设置的样式。唯一的问题是,我对代码不够了解,不知道需要调整什么才能使所有内容很好地协同工作。

我必须用于我的论文的自定义论文类代码在这里:https://copy.com/qgo0XqdfrGOryQp2

自定义 bibtex 样式表(基于美国语言学会的样式指南)代码是 artstein dot org 网站上的 language.bst 文件(抱歉,我的声誉不足以发布两个以上的链接,在谷歌中很容易搜索到)。

基本上,我需要删除引文中作者姓名后面的逗号,这样它看起来就不像 APA 样式,而像 LSA 样式(我认为 language.bst 的作者基于 APAcite 代码编写代码,因此它仍然保留逗号。我如何根据代码将其删除?

在此处输入图片描述

最大的问题是该页面应该有“参考文献”,因为标题如下所示(这里的实际参考文献是正确的,我只需要删除附录 C、星号和参考书目,并且应该将“参考文献”置于页面顶部中央):

在此处输入图片描述

如果你需要知道,我在第一次运行 BibTeX 后出现此错误:

在此处输入图片描述

这是我的.bbl 文件代码:

\begin{thebibliography}{1}
\providecommand{\natexlab}[1]{#1}
\providecommand{\url}{\relax}
\providecommand{\urlprefix}{Online: }

\bibitem[{Levon(2007)}]{Levon07}
\textsc{Levon, Erez}. 2007.
\newblock {Sexuality in context}.
\newblock \emph{Language in Society} 36.533--554.

\end{thebibliography}

我已经束手无策了。我的部门不擅长使用 LaTeX,我找不到人帮我。论文办公室也帮不上忙,因为代码是某个 1994 年就退休的人给他们的。我是第一个尝试用 LaTeX 打字写论文的人。我不想不得不使用 Word。有没有人愿意接受挑战,愿意帮我?

提前谢谢您!

以下是 MWE 的链接:https://copy.com/AdfVqGIIWqR6ed1u您需要下载所有文件,否则将无法正常工作。只需打开 MyThesis.tex 文件。我将引文放在 abstract.tex 文件中。

答案1

thebibliography这个类有一个确实不推荐的定义(添加一个\usepackage{showframe}来了解我的意思),并且由于某种原因它没有被使用。但是,如果您添加以下内容:

\def\thebibliography#1{%
 \ifrawbibliography
 \else
  \newpage
  \thispagestyle{empty}%
  \addcontentsline{toc}{chapter}{REFERENCES}%
% Switch singlespace to after the heading gets printed.
  \mainheading{REFERENCES}%
  \par\removelastskip\singlespace\par\removelastskip% GBG Oct 1993
  \fixmainheadingSKIP
 \fi
  \list{[\arabic{enumi}]}%
  {\settowidth\labelwidth{[#1]}\leftmargin%
     \labelwidth\advance\leftmargin\labelsep\usecounter{enumi}}%
  \def\newblock{\hskip .11em plus .33em minus -.07em}%
  \sloppy\clubpenalty4000\widowpenalty4000%
  \sfcode`\.=1000\relax
}

到您的文档中,未定义的错误\newblock将消失。您可以像下面的示例一样将其添加到主文件中,或者将上述定义放入您自己的文件中.sty(例如,languagebstfix.sty)并使用加载它\usepackage

\documentclass[11pt,Chicago]{uuthesis}

% to make a self-contained example, we can use this package, which
% lets us create a bibliography file with the same name (except for
% the '.bib' extension) as the main file.
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Levon07,
author = {Levon, Erez},
title = {{Sexuality in context}},
journal = {Language in Society},
year = {2007},
volume = {36},
pages = {533--554},
}
\end{filecontents}

\usepackage{thesis}% required by .cls
\usepackage{natbib}

%%% TAKEN FROM uuthesis2e.cls
\def\thebibliography#1{%
 \ifrawbibliography
 \else
  \newpage
  \thispagestyle{empty}%
  \addcontentsline{toc}{chapter}{REFERENCES}%
% Switch singlespace to after the heading gets printed.
  \mainheading{REFERENCES}%
  \par\removelastskip\singlespace\par\removelastskip% GBG Oct 1993
  \fixmainheadingSKIP
 \fi
  \list{[\arabic{enumi}]}%
  {\settowidth\labelwidth{[#1]}\leftmargin%
     \labelwidth\advance\leftmargin\labelsep\usecounter{enumi}}%
  \def\newblock{\hskip .11em plus .33em minus -.07em}%
  \sloppy\clubpenalty4000\widowpenalty4000%
  \sfcode`\.=1000\relax
}

\begin{document}

A citation: \citep{Levon07}


\bibliographystyle{language}
\bibliography{\jobname}

\end{document}

还要注意的是,还有一个类似.clsuuthesis2e.cls。差异看起来很表面,但也许它代表了“首选”版本..?

至于这一点:---

基本上,我需要删除引文中作者姓名后面的撇号逗号,这样它看起来就不像 APA 样式,而像 LSA 样式(我认为 language.bst 的作者基于 APAcite 代码编写代码,因此它仍然保留了撇号。我该如何根据代码将其删除?

--- 使用最新版本natbib,并且如下面的更新答案所示,您可以简单地写道:

\setcitestyle{aysep={}} 
% with older versions (< version 8), you need to leave 
% the 5th argument of `\bibpunct` empty; e.g.,
% \bibpunct{(}{)}{;}{a}{}{;}

更新答案

鉴于该类对其环境使用的非常自定义的间距(本质上都是\list具有不同设置的本地化版本),我认为最好放弃类,\def\thebibliography使用基于类的间距report,但对其进行调整以用于uuthesis.cls (仍然不确定为什么还有一个uuthesis2e.cls——它们看起来至少大部分是相同的)。所以,下面是我如何做到的:

\documentclass[11pt,Chicago,twoside]{uuthesis2e}
\usepackage{showframe}
% to make a self-contained example, we can use this package, which
% lets us create a bibliography file with the same name (except for
% the '.bib' extension) as the main file.
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Levon07,
author = {Levon, Erez},
title = {{Sexuality in context context context context context context context context context context context context context context context}},
journal = {Language in Society},
year = {2007},
volume = {36},
pages = {533--554},
}
\end{filecontents}

\usepackage{thesis}% required by .cls
\newenvironment{thebibliography}{}{}% <-- keep natbib happy
\usepackage{natbib}
\setcitestyle{aysep={}}

%%% The following can be put into a .sty file and then loaded normally:
%%% FROM HERE:
% Set the 'hang' for the bibliography; length can be changed...
\newdimen\bibindent
\setlength\bibindent{1.5em}

% Set name for the 'thebibliography' environment
\renewcommand*{\bibname}{References}

\makeatletter % for the '@' in command names (not needed in a .sty file)

\newcommand\uuthesis@bibindent{% = \@openbib@code from natbib.sty
    \advance\leftmargin\bibindent
    \itemindent -\bibindent
    \listparindent \itemindent
    \parsep \z@
    }%
\def\newblock{\hskip .11em\@plus.33em\@minus.07em}

\renewenvironment{thebibliography}[1]
     {%
       \thispagestyle{empty}%
       \addcontentsline{toc}{chapter}{\bibname}% <-- prefix \MakeUpppercase for 'REFERENCES'
       \mainheading{\MakeUppercase\bibname}%   <-- uuthesis method
       \par\removelastskip\singlespace\par\removelastskip% GBG Oct 1993
       \fixmainheadingSKIP
       \list{}%
       {%
         \advance\leftmargin-\leftmargin
         \advance\leftmargin\bibindent
       }%
       \leftmargin\labelwidth
       \uuthesis@bibindent
       \sloppy
       \clubpenalty4000
       \@clubpenalty \clubpenalty
       \widowpenalty4000%
       \sfcode`\.\@m}
     {\def\@noitemerr
       {\@latex@warning{Empty `thebibliography' environment}}%
       \endlist}

\makeatother % make '@' inaccessible again (not needed in a .sty)
%%% TO HERE:

\begin{document}

\noindent
A citation: \citep{Levon07}


\bibliographystyle{language}
\bibliography{\jobname}

\end{document}

您可能需要考虑的一件事是,根据您对 TeX 世界的“了解程度”,创建自己的论文并遵守您所在大学的规定。您无需.cls以任何方式制作一个整体,通过这样做,您将更多地了解事物如何组合在一起。论文要求可能通常很苛刻,印刷上也存在问题,但它们通常很容易遵循。(困难往往在于设法让事情看起来不错尽管双倍行距的要求等等。危险在于,它可能成为一种有时有趣、有时令人沮丧的“浪费”时间的方式……)

相关内容