我必须用 MLA 格式撰写我的学士论文,我尝试了不同的方法,例如
Biblatex 和 mla-paper 制作奇怪的标题这。
问题是我需要使用两个书目,两个 .bib 文件。一个用于主要来源,另一个用于次要来源。我该怎么做?
它还在引用末尾显示“打印”一词。我想删除它。
现在我到了这里(到目前为止只有一个参考书目):
\documentclass[12pt]{scrartcl}
\usepackage{geometry}
\geometry{a4paper, top=25mm, left=35mm, right=35mm, bottom=25mm}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{epstopdf}
\usepackage[latin1]{inputenc}
\usepackage[american]{babel}
\usepackage[T1]{fontenc}
\usepackage{enumitem}
\usepackage{stmaryrd}
\usepackage{makeidx}
\makeindex
\usepackage{amsmath}
\numberwithin{equation}{section}
\usepackage{hyperref}
\usepackage{underlin}
\usepackage{qtree}
\usepackage{tipa}
\usepackage{natbib}
\usepackage{subfigure}
\usepackage{ifthen}
\setcitestyle{notesep={ }}
\usepackage{csquotes}
\usepackage[style=mla]{biblatex}
\usepackage{ifpdf}
\usepackage{mla}
\bibliography{prim}
\makeatletter
\renewcommand\@cite[2]{
({ #1\ifthenelse{\boolean{@tempswa}}{ \nolinebreak[3] #2}{}})
}
\makeatother
\usepackage{cite}
\pagestyle{headings}
\DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .tif`.png}
\tableofcontents
\newpage
\begin{document}
\newcommand{\attrib}[1]{\nopagebreak{\raggedleft\footnotesize #1\par}}
\begin{mla}{kim}{foo}{bar}{ha}{\today}{week}
\setcounter{page}{1}
\renewcommand{\baselinestretch}{1.50}\normalsize
\cite[23]{maggie}
\end{mla}
\printbibliography
\end{document}
答案1
在下面的例子中,我假设您的文档中需要两个不同的参考书目部分:主要来源和次要来源;我还假设您有两个数据库:bibl1.bib
和bibl2.bib
。
这个想法是使用keyword
过滤器。在下面的例子中,我选择了primary
、 和secondary
作为用于划分参考书目的单词。
要打印两个参考书目,您可以使用keyword =
选项\printbibliography
。例如,输入类似
\printbibliography[keyword=primary,...]
\printbibliography[keyword=secondary,...]
您还需要在文件keywords
中的每个条目中添加一个字段bib
,指示每个条目是否被视为“主要”还是“次要”。
代码:
\begin{filecontents*}{bibl1.bib}
@book{goossens93,
keywords = {primary},
author = "Michel Goossens and Frank Mittlebach",
title = "The {LaTeX} Companion",
year = "1993",
publisher = "Addison-Wesley",
address = "Reading, Massachusetts"
}
@book{knuth84,
keywords = {primary},
author = "Donald E. Knuth",
title= "The {TeX}book",
publisher = "Addison-Wesley",
year = 1984
}
\end{filecontents*}
\begin{filecontents*}{bibl2.bib}
@unpublished{patashnik88,
keywords = {secondary},
author = "Oren Patashnik",
title = "Using {BibTeX}",
note = "Documentation for general BibTeX users",
month = jan,
year = 1988
}
\end{filecontents*}
\documentclass{article}
\usepackage[style=mla,guessmedium=false]{biblatex}
\addbibresource{bibl1.bib}
\addbibresource{bibl2.bib}
\begin{document}
\cite{knuth84}, \cite{goossens93}, \cite{patashnik88}
\printbibliography[keyword=primary,heading=subbibliography,%
title={Primary Sources}]
\printbibliography[keyword=secondary,heading=subbibliography,%
title={Secondary Sources}]
\end{document}
我使用该guessmedium=false
选项来避免biblatex-mla
猜测出版媒介,从而避免在字段howpublished
未定义时打印“打印”(或“网络”),
答案2
bib
可以使用label
选项区分多个文件\addbibresource
。我们可以在两个单独的 中生成主要和次要参考书目refsection
,其中\printbibliography
仅限于通过 引用的作品category
。下面的代码演示了这种方法。
\documentclass{article}
\usepackage{ifpdf}
\usepackage{mla}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=mla,showmedium=false]{biblatex}
\DeclareBibliographyCategory{cited}
\AtEveryCitekey{\addtocategory{cited}{\thefield{entrykey}}}
\defbibheading{primary}{\newpage\centering Primary Works Cited}
\defbibheading{secondary}{\newpage\centering Secondary Works Cited}
% ----------
%
% Replace this part of the preamble with:
%
% \addbibresource[label=primary]{<primary>.bib}
% \addbibresource[label=secondary]{<secondary>.bib}
%
% where <primary> is your primary bib file name and
% <secondary> is your secondary bib file name
%
\addbibresource[label=primary]{biblatex-examples.bib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Book{adams,
title = {The Restaurant at the End of the Universe},
author = {Douglas Adams},
series = {The Hitchhiker's Guide to the Galaxy},
publisher = {Pan Macmillan},
year = {1980}}
\end{filecontents}
\addbibresource[label=secondary]{\jobname.bib}
%
% ----------
\begin{document}
\begin{mla}{Kim}{Vahnenbruck}{Professor's name}{Course}{\today}{Paper title}
\autocites{aristotle:poetics}{aristotle:rhetoric}
\autocite[10--15]{adams}
\begin{refsection}[primary]
\nocite{*}
\printbibliography[category=cited,heading=primary]
\end{refsection}
\begin{refsection}[secondary]
\nocite{*}
\printbibliography[category=cited,heading=secondary]
\end{refsection}
\end{mla}
\end{document}
第一页:
主要参考书目:
二级参考书目:
在您的代码中,有以下几行:
\usepackage{natbib}
\setcitestyle{notesep={ }}
\makeatletter
\renewcommand\@cite[2]{({ #1\ifthenelse{\boolean{@tempswa}}{ \nolinebreak[3] #2}{}})}
\makeatother
\usepackage{cite}
应从您的序言中删除。natbib
和均cite
与 不兼容biblatex
,但biblatex
/biblatex-mla
可以配置为模拟其任何功能。