我正在编写一篇语言学硕士论文,必须使用论文办公室提供的自定义类。然后,我必须使用美国语言学会为引文和参考文献设置的样式。唯一的问题是,我对代码不够了解,不知道需要调整什么才能使所有内容很好地协同工作。
我必须用于我的论文的自定义论文类代码在这里: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}
还要注意的是,还有一个类似.cls
的uuthesis2e.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
以任何方式制作一个整体,通过这样做,您将更多地了解事物如何组合在一起。论文要求可能通常很苛刻,印刷上也存在问题,但它们通常很容易遵循。(困难往往在于设法让事情看起来不错尽管双倍行距的要求等等。危险在于,它可能成为一种有时有趣、有时令人沮丧的“浪费”时间的方式……)