我已经在互联网上搜索该主题很长时间了(包括这里),但找不到解决我的具体问题的方法。
然而,这是我的问题:我目前正在撰写论文,最后的参考书目中需要有一个特定的文献引用风格,它必须如下所示:
Tsikalas, F.、Faleide, JI、Eldholm, O.、Wilson, J.,2005 年。中挪威大陆边缘与东北格陵兰大陆边缘的晚中生代-新生代结构和地层对比,东北格陵兰大陆架的地质发展。收录于:Dore, AG、Vining, BA(编),《石油地质学:西北欧和全球视角——第六届石油地质学大会论文集》,第 2 卷。地质学会,伦敦,第 785-801 页。
意义:
姓氏、名字、年份、标题、期刊及卷数(中间没有逗号!)、页数
我在告诉 LaTeX 实现书籍章节时遇到了特别的问题,如上一个示例中的“In: Dore, AG, Vining, BA 等”。我正在使用 JabRef。您对此有什么想法或代码示例,以便 LaTeX 将 JabRef 的字段作为 @incollection 字段提出?
另一个问题是,一旦文本中提到三位或更多作者,我就需要写上“LASTNAME 等”。
你有什么想法?
这是我迄今为止的代码(忽略了其他未考虑引用的内容):
%--------------------------------------------------------------------------
% PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
%--------------------------------------------------------------------------
\documentclass[
12pt, % The default document font size, options: 10pt, 11pt, 12pt
oneside, % Two side (alternating margins) for binding by default, uncomment to switch to one side
english,ngerman % ngerman for German
onehalfspacing, % Single line spacing, alternatives: onehalfspacing or doublespacing
%draft, % Uncomment to enable draft mode (no pictures, no links, overfull hboxes indicated)
nolistspacing, % If the document is onehalfspacing or doublespacing, uncomment this to set spacing in lists to single
liststotoc, % Uncomment to add the list of figures/tables/etc to the table of contents
toctotoc, % Uncomment to add the main table of contents to the table of contents
%parskip, % Uncomment to add space between paragraphs
nohyperref, % Uncomment to not load the hyperref package
headsepline, % Uncomment to get a line under the header
%chapterinoneline, % Uncomment to place the chapter title next to the number on one line
%consistentlayout, % Uncomment to change the layout of the declaration, abstract and acknowledgements pages to match the default layout
]{MastersDoctoralThesis} % The class file specifying the document structure
\usepackage[utf8]{inputenc} % Required for inputting international characters
\usepackage[T1]{fontenc} % Output font encoding for international characters
\usepackage{datetime}
\usepackage{float}
\usepackage{palatino} % Use the Palatino font by default
%\renewcommand*\rmdefault{ppl}
\usepackage{siunitx}
\usepackage{newunicodechar}
\newunicodechar{°}{\degree}
\usepackage{graphicx,wrapfig}
\usepackage[backend=bibtex,style=authoryear,firstinits=true,
doi=false,isbn=false,url=false,maxbibnames=3,natbib=true]%
{biblatex} % Use the bibtex backend with the authoryear citation style (which resembles APA)
\usepackage[nottoc]{tocbibind}
\DeclareNameAlias{sortname}{last-first}
\newrobustcmd*{\parentexttrack}[1]{%
\begingroup
\blx@blxinit
\blx@setsfcodes
\blx@bibopenparen#1\blx@bibcloseparen
\endgroup}
\AtEveryCite{%
\let\parentext=\parentexttrack%
\let\bibopenparen=\bibopenbracket%
\let\bibcloseparen=\bibclosebracket}
\newdateformat{monthyeardate}{\monthname[\THEMONTH], \THEYEAR}
\addbibresource{jabref.bib} % The filename of the bibliography
\usepackage[autostyle=true]{csquotes} % Required to generate language-dependent quotes in the bibliography
\DeclareFieldFormat[inbook,inproceedings,article,misc]{citetitle}{#1}
\DeclareFieldFormat[inbook,inproceedings,article,misc]{title}{#1}
非常感谢您的帮助!
一切顺利,
最大限度
答案1
标准样式将 放在之后editor
。您可以使用以下解决方案之一booktitle
@incollection
在 biblatex 中将编辑姓名后跟 (Ed./Eds.) 和标题前的逗号或者你可以尝试我的风格biblatex-ext
bundle.biblatex-ext
有一个选项innamebeforetitle
,可以将名称移到editor
之前booktitle
。该样式还提供了一个简单的界面,用于删除参考书目中年份周围的括号和引文中的方括号。请查看文档biblatex-ext
了解更多信息。
如果您在以下位置搜索修改后的项目,则很容易理解这些修改biblatex
文档和biblatex-ext
文档。
\documentclass[british]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathpazo}
\usepackage{babel}
\usepackage[autostyle=true]{csquotes}
\usepackage[backend=biber, style=ext-authoryear,
giveninits=true, uniquename=init, maxbibnames=999, maxcitenames=3,
doi=false, isbn=false, url=false,
innamebeforetitle=true, articlein=false,
natbib=true,
]{biblatex}
\DeclareOuterCiteDelims{parencite}{\bibopenbracket}{\bibclosebracket}
\DeclareNameAlias{default}{family-given}
\DeclareNameAlias{sortname}{default}
\DeclareDelimAlias{finalnamedelim}{multinamedelim}
\renewrobustcmd*{\bibinitdelim}{}
\DeclareDelimFormat{editortypedelim}{\addspace}
\DeclareDelimFormat{translatortypedelim}{\addspace}
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareFieldFormat{translatortype}{\mkbibparens{#1}}
\DeclareDelimFormat[bib,biblist]{nameyeardelim}{\addcomma\space}
\DeclareFieldFormat{biblabeldate}{#1}
\DeclareFieldFormat*{citetitle}{#1}
\DeclareFieldFormat*{title}{#1}
\DeclareFieldFormat*{booktitle}{#1}
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareDelimFormat[bib,biblist]{innametitledelim}{\addcomma\space}
\renewbibmacro*{pubinstorg+location+date}[1]{%
\printlist{#1}%
\setunit*{\publocdelim}%
\printlist{location}%
\setunit*{\locdatedelim}%
\usebibmacro{date}%
\newunit}
\DeclareFieldFormat[article,periodical]{pages}{#1}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@inproceedings{tsikalas,
author = {Tsikalas, F. and Faleide, J. I. and Eldholm, O. and Wilson, J.},
title = {Late {Mesozoic--Cenozoic} structural and stratigraphic correlations between the conjugate {mid-Norway} and {NE} {Greenland} continental margins},
editor = {Doré, A. G. and Vining, B. A.},
booktitle = {Petroleum Geology: {North-West} {Europe} and Global Perspectives},
booktitleaddon = {Proceedings of the 6th Petroleum Geology Conference},
volume = {2},
pages = {785--801},
year = {2005},
doi = {10.1144/0060785},
publisher = {Geological Society},
location = {London},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\autocite{sigfridsson,westfahl:space,pines,moraux,tsikalas}
\printbibliography
\end{document}
编辑:biblatex-ext
v0.4 更改了一些宏的名称. 使用新名称。
答案2
如果您可以使用natbib
基于 BibTeX/ 的解决方案,则elsarticle-harv
参考书目样式非常接近您的格式要求。
我能轻易发现的您所述的格式要求与 产生的结果之间唯一显著的差异elsarticle-harv
是elsarticle-harv
在相邻的名字首字母之间插入空格。如果您想“修复”这个微小的差异,我建议您按以下步骤操作:
在您的 TeX 发行版中找到该文件
elsarticle-harv.bst
。复制此文件并将副本命名为 。elsarticle-harv-mod.bst
(您可以随意选择一个更时髦的名字……)不要直接编辑 TeX 发行版的原始文件。在文本编辑器中打开该文件
elsarticle-harv-mod.bst
(你用来编辑 tex 文件的编辑器就可以了),然后找到函数format.names
。(在我的文件副本中,该函数从第 377 行开始。)在此函数中,找到以下行:
"{vv~}{ll}{, jj}{, f.}" format.name$
将其更改为
"{vv~}{ll}{, jj}{, f{.}.}" format.name$
注意额外的
{.}
粒子。选修的:如果您希望抑制类型条目中的问题编号
@article
,您应该找到该函数format.vol.num.pages
(它从我的 bst 文件副本中的第 799 行开始)并注释掉(或直接删除...)以下 10 行代码(文件中的第 809 行至 818 行):number empty$ 'skip$ { "~(" number * ")" * * volume empty$ { "there's a number but no volume in " cite$ * warning$ } 'skip$ if$ } if$
将文件保存
elsarticle-harv-mod.bst
在主 tex 文件所在的目录中或 BibTeX 搜索的目录中。如果选择后一种方法,请确保适当更新 TeX 发行版的文件名数据库。在主 tex 文件中,
natbib
使用选项 加载包authoryear
。这样做可确保当条目有三位或更多作者(或编辑)时,引用标注将被格式化为“FirstAuthor et al”。
@article
和类型的条目如下所示@incollection
:
\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@incollection{uuu,
author = "Tsikalas, Filippos and Faleide, Jan Inge
and Eldholm, Olav and Wilson, Jonas",
editor = "Anthony G. Dor{\'e} and Bernie A. Vining",
title = "Late {Mesozoic--Cenozoic} structural and
stratigraphic correlations between the
conjugate mid-{Norway} and {NE
Greenland} continental margins,
geological development of the northeast
{Greenland} shelf",
booktitle = "Petroleum Geology: North-West Europe and
Global Perspectives---Proceedings of
the 6th Petroleum Geology Conference",
year = 2005,
publisher = "Geological Society",
address = "London",
volume = 2,
pages = "785--801",
}
@article{vvv,
author = "Anna Maria Author and Brenda Michelle
Buthor and Carla Miranda Cuthor",
title = "Thoughts",
year = 3001,
journal = "Circularity Today",
volume = 1,
number = 2,
pages = "3--4",
}
\end{filecontents}
\documentclass{article}
\usepackage{geometry}
\usepackage{newpxtext,newpxmath} % Palatino text and math font
\usepackage[authoryear]{natbib}
\setlength{\bibhang}{0pt}
\bibliographystyle{elsarticle-harv-mod}
\begin{document}
\citep{uuu}, \citet{vvv}
\bibliography{mybib}
\end{document}