这是我在这里的第一篇文章,我是 LaTeX 的新手用户,所以请原谅我知识的缺乏。
我正在尝试使用剑桥大学论文 LaTeX 模板并对其进行调整以使用 Biblatex,但经过两天的努力和搜索现有信息后,我似乎陷入了困境。我(终于)设法让它运行起来,没有出现错误,但引用的风格完全乱了。
基本上,我只是在文本中使用简单干净的作者年份样式,例如“(作者,年份)”,参考书目显示为“作者,年份”。标题。位置:出版商。“。
参考书目按预期出现,但文内引用却奇怪地出现了参考文献的完整标题,但没有作者和年份,即使在序言中为 biblatex 激活了选项 style=authoryear。
.tex 文件如下所示
%input macros (i.e. write your own macros file called MacroFile1.tex)
%\include{Macros/MacroFile1}
\documentclass[oneside,12pt]{Classes/salfordthesis}
\usepackage[style=authoryear,hyperref=true,backref=true,backend=biber]{biblatex}
\addbibresource{References/references.bib}
\DefineBibliographyStrings{english}{%
bibliography = {References},% replace "references" with "bibliography" for `book`/`report`
}
\ifpdf
\pdfinfo { /Title (CUED PhD and MPhil Thesis Classes)
/Creator (TeX)
/Producer (pdfTeX)
/Author (Harish Bhanderi [email protected])
/CreationDate (D:20030101000000) %format D:YYYYMMDDhhmmss
/ModDate (D:20030815213532)
/Subject (Writing a PhD thesis in LaTeX)
/Keywords (PhD, Thesis)}
\pdfcatalog { /PageMode (/UseOutlines)
/OpenAction (fitbh) }
\fi
% Set URL hyperlinks to black
\hypersetup{urlcolor = black}
\title{Writing a PhD Thesis\\[1ex]
in \LaTeXe}
\ifpdf
\author{\href{mailto:[email protected]}{Harish Bhanderi}}
\collegeordept{\href{http://www.eng.cam.ac.uk}{Department of Engineering}}
\university{\href{http://www.cam.ac.uk}{University of Cambridge}}
% insert below the file name that contains the crest in-place of 'UnivShield'
\crest{\includegraphics[width=30mm]{UnivShield}}
\else
\author{Harish Bhanderi}
\collegeordept{Department of Engineering}
\school{school}
\university{University of Cambridge}
% insert below the file name that contains the crest in-place of 'UnivShield'
\crest{\includegraphics[bb = 0 0 292 336, width=30mm]{UnivShield}}
\fi
%\renewcommand{\submittedtext}{change the default text here if needed}
\degreetype{Type of degree}
\degree{Degree Title}
\degreedate{Date submitted\vspace{-3ex}}
% turn off those nasty overfull and underfull hboxes
\hbadness=10000
\hfuzz=50pt
% Put all the style files you want in the directory StyleFiles and usepackage like this:
\usepackage{StyleFiles/watermark}
% Comment out the next line to get single spacing
\onehalfspacing
% Reset URL hyperlinks to blue
\hypersetup{urlcolor = blue}
\begin{document}
%\language{english}
% A page with the abstract on including title and author etc may be
% required to be handed in separately. If this is not so, then comment
% the below 3 lines (between '\begin{abstractseparte}' and
% 'end{abstractseparate}'), normally like a declaration ... needs some more
% work, mind as environment abstracts creates a new page!
% \begin{abstractseparate}
% \input{Abstract/abstract}
% \end{abstractseparate}
\makeatletter
\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
%\huge\bfseries \@chapapp\space \thechapter
\Huge\bfseries \thechapter.\space%
%\par\nobreak
%\vskip 20\p@
\fi
\fi
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
% Using the watermark package which is in StyleFiles/
% and to remove DRAFT COPY ONLY appearing on the top of all pages comment out below line
\watermark{DRAFT COPY ONLY}
\maketitle
%set the number of sectioning levels that get numbered and appear in the contents
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\frontmatter % book mode only
\pagenumbering{roman}
\include{Dedication/dedication}
\include{Acknowledgement/acknowledgement}
\include{Abstract/abstract}
\tableofcontents
\listoffigures
\listoftables
\printnomenclature %% Print the nomenclature
\addcontentsline{toc}{chapter}{Nomenclature}
\mainmatter % book mode only
\include{Introduction/introduction}
\include{Chapter1/chapter1}
\include{Chapter2/chapter2}
\include{Chapter3/chapter3}
\include{Conclusions/conclusions}
\printbibliography
%\bibliographystyle{plainnat}
%\bibliographystyle{Classes/CUEDbiblio}
%\bibliographystyle{Classes/jmb}
%\bibliographystyle{Classes/jmb} % bibliography style
%\renewcommand{\bibname}{References} % changes default name Bibliography to References
%\bibliography{References/references} % References file
\backmatter % book mode only
\appendix
\include{Appendix1/appendix1}
\include{Appendix2/appendix2}
\end{document}
被调用的修改后的类文件如下所示:
%
% CUEDthesis v1.1
% By Harish Bhanderi <[email protected]
% Version 1.0 released 15/07/2002
% Version 1.1 released 14/07/2010
%-------------------------- identification ---------------------
%\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{salfordthesis}[2010/07/14 v1.1 CUED thesis class]
%-------------------------- initial code -----------------------
\newif\ifCU@bookmode
\CU@bookmodetrue
\DeclareOption{report}{\CU@bookmodefalse}
\DeclareOption{book}{\CU@bookmodetrue}
\ProcessOptions\relax%
\ifCU@bookmode
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}%
\ProcessOptions\relax%
\ifx\pdfoutput\undefined%
\LoadClass[dvips, a4paper]{book}%
\else%
\LoadClass[pdftex, a4paper]{book}%
\fi%
\else
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}%
\ProcessOptions\relax%
\ifx\pdfoutput\undefined%
\LoadClass[dvips, a4paper]{report}%
\else%
\LoadClass[pdftex, a4paper]{report}%
\fi%
%\renewcommand{\refname}{References}%
\fi
%\DeclareOption{book}{%
%}%
\usepackage{setspace}
\usepackage{tocbibind}
\usepackage{amsmath, amsthm, amssymb}
\usepackage{polynom}
\usepackage{bigstrut}
\usepackage{multirow}
%\usepackage{color}
\usepackage{float}
\usepackage{titlesec}
%\usepackage{hyperref}
\usepackage{setspace}
%\usepackage{fancyheadings}
\usepackage{booktabs}
%\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{eucal}
\usepackage[english]{babel}
\usepackage[usenames, dvipsnames]{color}
\usepackage[perpage]{footmisc}
\usepackage{ifthen}
\usepackage{ifpdf}
%Bibliography
%uncomment next line to change bibliography name to references for Book document class
%\renewcommand{\bibname}{References}
% note that this doesn't do much if you later define another bibliography style
% Nomenclature
\usepackage{nomencl}
\makenomenclature
\renewcommand\nomgroup[1]{%
\ifthenelse{\equal{#1}{A}}{%
\item[\textbf{Roman Symbols}] }{% A - Roman
\ifthenelse{\equal{#1}{G}}{%
\item[\textbf{Greek Symbols}]}{% G - Greek
\ifthenelse{\equal{#1}{R}}{%
\item[\textbf{Superscripts}]}{% R - Superscripts
\ifthenelse{\equal{#1}{S}}{%
\item[\textbf{Subscripts}]}{{% S - Subscripts
\ifthenelse{\equal{#1}{X}}{%
\item[\textbf{Other Symbols}]}{{% X - Other Symbols
\ifthenelse{\equal{#1}{Z}}{%
\item[\textbf{Acronyms}]}% Z - Acronyms
{{}}}}}}}}}}
\ifpdf
%-->
%--> Google.com search "hyperref options"
%-->
%--> http://www.ai.mit.edu/lab/sysadmin/latex/documentation/latex/hyperref/manual.pdf
%--> http://www.chemie.unibas.ch/~vogtp/LaTeX2PDFLaTeX.pdf
%--> http://www.uni-giessen.de/partosch/eurotex99/ oberdiek/print/sli4a4col.pdf
%--> http://me.in-berlin.de/~miwie/tex-refs/html/latex-packages.html
%-->
\usepackage[ pdftex, plainpages = false, pdfpagelabels,
pdfpagelayout = OneColumn, % display single page, advancing flips the page - Sasa Tomic
bookmarks,
bookmarksopen = true,
bookmarksnumbered = true,
breaklinks = true,
linktocpage,
colorlinks = true,
linkcolor = blue,
urlcolor = blue,
citecolor = red,
anchorcolor = green,
hyperindex = true,
hyperfigures
]{hyperref}
\usepackage[pdftex]{graphicx}
\DeclareGraphicsExtensions{.png, .jpg, .pdf}
\pdfcompresslevel=9
\graphicspath{{ThesisFigs/PNG/}{ThesisFigs/PDF/}{ThesisFigs/}}
\else
\usepackage[ dvips,
bookmarks,
bookmarksopen = true,
bookmarksnumbered = true,
breaklinks = true,
linktocpage,
colorlinks = true,
linkcolor = blue,
urlcolor = blue,
citecolor = red,
anchorcolor = green,
hyperindex = true,
hyperfigures
]{hyperref}
%\usepackage{epsfig}
\usepackage{graphicx}
\DeclareGraphicsExtensions{.eps, .ps}
\graphicspath{{ThesisFigs/EPS/}{ThesisFigs/}}
\fi
%define the page size including an offset for binding
%\setlength{\topmargin}{0.0in}
%\setlength{\oddsidemargin}{0in}
%\setlength{\evensidemargin}{0in}
%\setlength{\textheight}{700pt}
%\setlength{\textwidth}{500pt}
%A4 settings
\ifpdf
\pdfpageheight=297mm
\pdfpagewidth=210mm
\else
\setlength{\paperheight}{297mm}
\setlength{\paperwidth}{210mm}
\fi
\setlength{\hoffset}{0.00cm}
\setlength{\voffset}{0.00cm}
\setlength{\evensidemargin}{1.96cm}
%\setlength{\oddsidemargin}{-0.54cm}
\setlength{\topmargin}{1mm}
\setlength{\headheight}{1.36cm}
\setlength{\headsep}{1.00cm}
\setlength{\textheight}{20.84cm}
\setlength{\textwidth}{14.5cm}
\setlength{\marginparsep}{1mm}
\setlength{\marginparwidth}{3cm}
\setlength{\footskip}{2.36cm}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{\MakeUppercase{\thechapter. #1 }}{}}
\renewcommand{\sectionmark}[1]{}
\fancyhf{}
\fancyhead[RO]{\bfseries\rightmark}
\fancyhead[LE]{\bfseries\leftmark}
\fancyfoot[C]{\thepage}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt}
\fancypagestyle{plain}{
\fancyhead{}
\renewcommand{\headrulewidth}{0pt}
}
\newcommand{\submittedtext}{{A thesis submitted for the degree of}}
%
%
% DECLARATIONS
%
% These macros are used to declare arguments needed for the
% construction of the title page and other preamble.
% The year and term the degree will be officially conferred
\def\degreedate#1{\gdef\@degreedate{#1}}
% The type of degree
\def\degreetype#1{\gdef\@degreetype{#1}}
% The full (unabbreviated) name of the degree
\def\degree#1{\gdef\@degree{#1}}
% The name of your college or department(eg. Trinity, Pembroke, Maths, Physics)
\def\collegeordept#1{\gdef\@collegeordept{#1}}
% The name of your school
\def\school#1{\gdef\@school{#1}}
% The name of your University
\def\university#1{\gdef\@university{#1}}
% Defining the crest
\def\crest#1{\gdef\@crest{#1}}
% These macros define an environment for front matter that is always
% single column even in a double-column document.
\newenvironment{alwayssingle}{%
\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
\else\newpage\fi}
{\if@restonecol\twocolumn\else\newpage\fi}
%define title page layout
\renewcommand{\maketitle}{%
\pagenumbering{roman} % Sasa Tomic
\setcounter{page}{0} % Sasa Tomic
\begin{alwayssingle}
\renewcommand{\footnotesize}{\small}
\renewcommand{\footnoterule}{\relax}
\thispagestyle{empty}
% \null\vfill
\begin{center}
{ \Huge {\bfseries {\@title}} \par}
{\large \vspace*{35mm} {{\@crest} \par} \vspace*{25mm}}
{{\Large \@author} \par}
{\large \vspace*{1ex}
{{\@collegeordept} \par}
\vspace*{1ex}
{{\@school} \par}
\vspace*{1ex}
{{\@university} \par}
\vspace*{25mm}
{{\submittedtext} \par}
\vspace*{1ex}
{\it {\@degreetype} \par}
{\it {\@degree} \par}
\vspace*{2ex}
{\@degreedate}}
\end{center}
\null\vfill
\end{alwayssingle}}
% DEDICATION
%
% The dedication environment makes sure the dedication gets its
% own page and is set out in verse format.
\newenvironment{dedication}
{\begin{alwayssingle}
\pagestyle{empty}
\begin{center}
\vspace*{1.5cm}
{\LARGE }
\end{center}
\vspace{0.5cm}
\begin{quote} \begin{center}}
{\end{center} \end{quote} \end{alwayssingle}}
% ACKNOWLEDGEMENTS
%
% The acknowledgements environment puts a large, bold, centered
% "Acknowledgements" label at the top of the page. The acknowledgements
% themselves appear in a quote environment, i.e. tabbed in at both sides, and
% on its own page.
\newenvironment{acknowledgements}
{\pagestyle{empty}
\begin{alwayssingle}
\begin{center}
\vspace*{1.5cm}
{\Large \bfseries Acknowledgements}
\end{center}
\vspace{0.5cm}
\begin{quote}}
{\end{quote}\end{alwayssingle}}
% The acknowledgementslong environment puts a large, bold, centered
% "Acknowledgements" label at the top of the page. The acknowledgement itself
% does not appears in a quote environment so you can get more in.
\newenvironment{acknowledgementslong}
{\pagestyle{empty}
\begin{alwayssingle}
\begin{center}
\vspace*{1.5cm}
{\Large \bfseries Acknowledgements}
\end{center}
\vspace{0.5cm}\begin{quote}}
{\end{quote}\end{alwayssingle}}
%ABSTRACT
%
%The abstract environment puts a large, bold, centered "Abstract" label at
%the top of the page. The abstract itself appears in a quote environment,
%i.e. tabbed in at both sides, and on its own page.
\newenvironment{abstracts} {\begin{alwayssingle} \pagestyle{empty}
\begin{center}
\vspace*{1.5cm}
{\Large \bfseries Abstract}
\end{center}
\vspace{0.5cm}
\begin{quote}}
{\end{quote}\end{alwayssingle}}
%The abstractlong environment puts a large, bold, centered "Abstract" label at
%the top of the page. The abstract itself does not appears in a quote
%environment so you can get more in.
\newenvironment{abstractslong} {\begin{alwayssingle} \pagestyle{empty}
\begin{center}
\vspace*{1.5cm}
{\Large \bfseries Abstract}
\end{center}
\vspace{0.5cm} \begin{quote}}
{\end{quote}\end{alwayssingle}}
%The abstractseparate environment is for running of a page with the abstract
%on including title and author etc as required to be handed in separately
\newenvironment{abstractseparate} {\begin{alwayssingle} \pagestyle{empty}
\vspace*{-1in}
\begin{center}
{ \Large {\bfseries {\@title}} \par}
{{\large \vspace*{1ex} \@author} \par}
{\large \vspace*{1ex}
{{\@collegeordept} \par}
{{\@school} \par}
{{\@university} \par}
\vspace*{1ex}
{{\it \submittedtext} \par}
{\it {\@degreetype} \par}
{\it {\@degree} \par}
\vspace*{2ex}
{\@degreedate}}
\end{center}}
{\end{alwayssingle}}
%ROMANPAGES
%
% The romanpages environment set the page numbering to lowercase roman one
% for the contents and figures lists. It also resets
% page-numbering for the remainder of the dissertation (arabic, starting at 1).
\newenvironment{romanpages}
{\setcounter{page}{1}
\renewcommand{\thepage}{\roman{page}}}
{\newpage\renewcommand{\thepage}{\arabic{page}}}
%{\newpage\renewcommand{\thepage}{\arabic{page}}\setcounter{page}{1}}
我也尝试过使用 biblatex-apa 样式,但 Texmaker 拒绝编译声明“!未定义的控制序列。\DeclareLabeldate”和“!未定义的控制序列。\field”和“!未定义的控制序列。\literal”。我尝试使用通过以下方式找到的文件修改来修复此问题http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=709790但无济于事。
references.bib 文件仅包含几个示例参考文献,使用 Texmaker 的 biblatex 书目条目插入工具插入。章节中的文本引用仅使用 \cite{reference},因为我似乎无法再将 \citep 或 \citet 与 biblatex 一起使用。
问题:1. 有人能指出 biblatex 文内引用的问题在哪里吗?2. 我需要为此编写某种特殊的 .bst 文件吗?
我对 biblatex 已经束手无策了,它看起来太复杂了,本来应该简单的事情却要花好几天的时间去研究!
任何帮助都将不胜感激
更新:我在 TeX.se 上看到了这个讨论:意外的引用行为:biblatex 与 biber 和 authoryear
这可能是同样的问题,但我不知道如何在 Texmaker 中实现解决方案——有人可以提出一些建议吗?
更新:通过 MikTex 包管理器更新后,Texmaker 完全拒绝编译该文件。在更新过程中,我注意到包管理器已将 biblatex 标识为过时的包,并将被删除,我允许这样做,因为我认为它知道自己在做什么。自更新以来,该文件根本无法编译,并且我收到多个错误,如图所示:
但是,如果我现在转到 MikTeX 包管理器,biblatex 仍然被列为已安装。
我彻底不知所措了。
答案1
重新安装 biblatex 解决了这个问题,并解决了 MikTeX 更新后的多个错误,如MikTeX 更新导致编译问题(2013 年 10 月)。
谢谢您给予的帮助。