我有两个问题。我试图使我的大学论文符合参考书目格式。我决定改用 biblatex+biber,因为 .bbl 格式的文件对我来说是个谜。
请注意,我的结果以逗号结尾。它应该是标点符号,如第一张图片所示。
institution
我使用的是 authoryear 样式,并尝试使用编辑格式\DeclareFieldFormat
。但无论我做什么似乎都无济于事。这不会影响机构字段及其尾随逗号的格式。
我注意到论文是standard.bbx
使用journal+location+date
宏格式化的。这会\addcomma\addspace
在机构后面添加一个。这解释了我的结果。(我想它期望在那之后有一个日期)
我的第一个问题是,当它后面没有日期时,如何将其更改为标点符号,而不影响任何其他实际上应该有逗号的类型?
我的第二个问题与这个例子有关。
biblatex 中定义了两种类型的论文:mathesis 和 phdthesis。在我的 bibfile 中,论文的类型是指定的,既在条目类型字段中(如 bibtex 中),也在条目的类型字段中。我怎样才能让 biblatex 检查它是哪种类型并为每个类型打印自定义文本?它应该是Diss.
针对 phd 和Masters thesis
另一个。还有第三种:Licentiate。我想如果我可以让 biblatex 检查类型字段,我也可以让它区分。但我该怎么做呢?现在它只是打印类型字段中的内容。
我的tex功底不是很深厚。
这是我用来创建参考书目的文件的 MWE:
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=authoryear,mincitenames=1,maxcitenam>es=2,maxbibnames=999,%
uniquename=false,uniquelist=false,firstinits=true,sorting=nyt,url=fa>lse,isbn=false,doi=false,%
dashed=false]{biblatex}
\DeclareNameAlias{sortname}{last-first}
\AtEveryBibitem{%
\clearfield{note}%
}
\renewcommand*{\bibinitdelim}{}
\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished]{title}{#1\isdot}
\DeclareFieldFormat
[thesis]
{title}{\mkbibemph{#1\isdot}}
\DeclareFieldFormat[thesis]{pages}{}
\addbibresource{test.bib}
\author{Minime}
\begin{document}
\parencite{Ahlgren2003LCAogras} MasterThesis
\printbibliography
\end{document}
这是test.bib
文件:
@Thesis{Ahlgren2003LCAogras,
Title = {Environmental impact of chemical and mechanical weed control in agriculture : a comparing study using life cycle assessment methodology},
Author = {Ahlgren, Serina},
School = {Swedish University of Agricultural Sciences, SLU},
Year = {2003},
Address = {Uppsala},
Type = {Masters thesis},
ISSN = {1101-0843},
Pages = {57},
Publisher = {Institutionen för lantbruksteknik},
Url = {http://www-mat21.slu.se/publikation/pdf/LCAogras.pdf},
Volume = {2003:05}
}
答案1
您的第一个问题来自于您使用
\DeclareFieldFormat[thesis]{pages}{}
删除该pages
字段。这会导致biblatex
不打印该pages
字段,但认为它确实打印了该字段,严重扰乱了标点符号跟踪,如您所见。
更好的解决方案是使用
\AtEveryBibitem{%
\clearfield{note}%
\ifentrytype{thesis}
{\clearfield{pages}}
{}
}
请注意,在您的示例中,问题在于您写了,Pages = {57},
但我确信您真正想要的是pagetotal = {57},
。
pagetotal
表示“作品的总页数”,而pages
表示“一个或多个页码或页码范围。如果作品是作为另一部作品的一部分出版的,例如期刊或合集中的文章,则此字段包含该另一部作品中的相关页码范围。它还可用于将引用限制为作品的特定部分(例如书中的章节)。”,第 21-22 页biblatex
文档
如果您决定在这里使用pagetotal
,并且想要摆脱所有类型的该字段,请使用
\AtEveryBibitem{%
\clearfield{note}%
\clearfield{pagetotal}%
}
如果你只希望清除它@thesis
,那么你需要
\AtEveryBibitem{%
\clearfield{note}%
\ifentrytype{thesis}
{\clearfield{pagetotal}}
{}
}
对于你的第二个问题。
您可以使用三个预定义的关键字(如第 216 页所述)
mathesis
与‘硕士论文’一词等同的表达。
phdthesis
“博士论文”、“博士论文”、“博士论文”等术语。
candthesis
与“候选论文”一词等同的表达方式。用于没有明确与硕士或博士水平相当的“候选”学位。
这些可以通过以下方式重新定义
\DefineBibliographyStrings{english}{
phdthesis= {Diss\adddot},
}
然后,您可以定义自己的关键字licentiate
(如果它不适合candthesis
),只需
\NewBibliographyString{licentiate}{
\DefineBibliographyStrings{english}{
licentiate = {Licentiate thesis},
}
如果biblatex
无法找到适合您输入字段的字符串type
,它只会打印您所写的内容。
平均能量损失
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=authoryear,mincitenames=1,maxcitenames=2,maxbibnames=999,%
uniquename=false,uniquelist=false,firstinits=true,sorting=nyt,url=false,isbn=false,doi=false,%
dashed=false]{biblatex}
\DeclareNameAlias{sortname}{last-first}
\renewcommand*{\bibinitdelim}{}
\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished]{title}{#1\isdot}
\DeclareFieldFormat
[thesis]
{title}{\mkbibemph{#1\isdot}}
\AtEveryBibitem{%
\clearfield{note}%
\clearfield{pagetotal}%
}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@Thesis{Ahlgren2003LCAogras,
Title = {Environmental impact of chemical and mechanical weed control in agriculture : a comparing study using life cycle assessment methodology},
Author = {Ahlgren, Serina},
School = {Swedish University of Agricultural Sciences, SLU},
Year = {2003},
Address = {Uppsala},
Type = {mathesis},
ISSN = {1101-0843},
pagetotal = {57},
Url = {http://www-mat21.slu.se/publikation/pdf/LCAogras.pdf},
}
@Thesis{fjae,
Title = {Unsteady simulations of the turbulent flow in the exhaust system of an {IC}-engine for optimal energy utilization},
Author = {Johan Fjällman},
School = {KTH Mechanics},
date = {2013-06},
Address = {Stockholm},
Type = {licentiate},
Url = {http://www.diva-portal.org/smash/get/diva2:624491/FULLTEXT01.pdf},
}
@thesis{geer,
author = {de Geer, Ingrid},
title = {Earl, Saint, Bishop, Skald~-- and Music},
type = {phdthesis},
institution = {Uppsala Universitet},
date = 1985,
subtitle = {The {Orkney Earldom} of the Twelfth Century. {A} Musicological
Study},
location = {Uppsala},
}
@Thesis{stap,
Title = {Debian Code Search},
Author = {Michael Stapelberg},
School = {Fakultät für Informatik, Hochschule Mannheim},
date = {2012-12-19},
Address = {Mannheim},
Type = {BSc Thesis},
Url = {https://codesearch.debian.net/research/bsc-thesis.pdf},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\NewBibliographyString{licentiate}{
\DefineBibliographyStrings{english}{
phdthesis= {Diss\adddot},
licentiate = {Licentiate thesis},
}
\begin{document}
\parencite{Ahlgren2003LCAogras,fjae,geer,stap}
\printbibliography
\end{document}
平均能量损失
这里