环境:macOS 10.13.4、完整 2018 MacTeX 发行版、TeXworks v0.6.2。
我的MWE
% arara: pdflatex
% arara: bibtex: { files: [ mbib, web ] }
% arara: pdflatex
% arara: pdflatex
\RequirePackage{filecontents}
\begin{filecontents}{biblio.bib}
@incollection{Akallabeth,
author = "Tolkien, John Ronald Reuel",
title = "Akallabeth---The Downfall of Numenor",
year = 2014,
editor = "Tolkien, Christopher",
booktitle = "The Silmarillion",
publisher = "Mariner Books",
address = "New York, USA",
tags = "MasterThesis",
}
\end{filecontents}
\begin{filecontents}{web.bib}
@misc{wikiicd10,
author = "Wikipedia",
title = "{ICD-10}",
year = 2015,
url = "https://en.wikipedia.org/wiki/ICD-10",
tags = "master",
}
\end{filecontents}
\documentclass[a4paper,12pt,titlepage,twoside,openright,fleqn]{book}
\usepackage[italian,english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{url}
\usepackage[colorlinks,allcolors=blue]{hyperref}
\usepackage{bookmark}
\usepackage[numbers,square,sort&compress]{natbib}
\usepackage[resetlabels]{multibib}
\newcites{web}{Useful websites}
\begin{document}
\tableofcontents
\bigskip
\hrule
\bigskip\noindent
% Generate two citation callouts
\citet{Akallabeth},
\citeweb{wikiicd10}
\cleardoublepage
\addcontentsline{toc}{chapter}{\bibname}
\bibliographystyle{plainnat}
\bibliography{biblio}
\cleardoublepage
\addcontentsline{toc}{chapter}{Useful websites}
\bibliographystyleweb{unsrtnat}
\bibliographyweb{web}
\end{document}
这有效,但我希望第二个参考书目(所有 Web URL)使用字母前缀。换句话说,呈现的引用如“...如所述 [W1]...”,链接参考编号为“W1”,而不是更常见的“1”。
我看过带前缀标签的 Natbib-Multibib 问题和引用未使用 multibib 定义的自定义前缀,两者都让我认为这可能是不可能的。我实际上正在使用 ACMstyling(通过 ACM-Reference-Format.bst),尽管链接的文章让我认为这是 natbib/multibib 问题。
我正在arara
通过 TexWorks 编译多个 bibtex 传递,因为每次调用都需要不同的目标 bib 文件。
现在我已经让 arara 工作了,如果它能给我所需的输出,我很乐意尝试使用 biblatex/biber,尽管我想我必须自己编写所有样式,因为 ACM 的样式文档尚不兼容 Biblatex(截至 2018 年 6 月)。
答案1
有了biblatex
它,将参考书目一分为二并不困难。您甚至不需要使用两个单独的.bib
文件(尽管您可以这样做)。
在这里,我们使用这两个.bib
文件将添加keyword
web
到所有源中\jobname-web.bib
(参见biblatex:按不同的 .bib 文件分类的多个参考书目)。您可以照常引用所有来源,但当我们按 进行筛选时,参考书目会被拆分keyword
。要获取我们需要的 Web 参考书目的前缀\newrefcontext[labelprefix=W]
(请参阅在 biblatex 中为博士论文和硕士论文提供单独的参考书目)。
您需要在这里运行 Biber 而不是 BibTeX,Biblatex 与 Biber:配置我的编辑器以避免未定义的引用(当然 arara 也可以为您做到这一点)。
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{Akallabeth,
author = "Tolkien, John Ronald Reuel",
title = "Akallabeth---The Downfall of Numenor",
year = 2014,
editor = "Tolkien, Christopher",
booktitle = "The Silmarillion",
publisher = "Mariner Books",
address = "New York, USA",
tags = "MasterThesis",
}
\end{filecontents}
\begin{filecontents}{\jobname-web.bib}
@misc{wikiicd10,
author = "Wikipedia",
title = "{ICD-10}",
year = 2015,
url = "https://en.wikipedia.org/wiki/ICD-10",
tags = "master",
}
\end{filecontents}
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[italian,english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage[backend=biber, style=numeric, sorting=none, defernumbers]{biblatex}
\addbibresource{\jobname.bib}
\addbibresource{\jobname-web.bib}
\DeclareSourcemap{
\maps[datatype=bibtex, overwrite]{
\map{
\perdatasource{\jobname-web.bib}
\step[fieldset=keywords, fieldvalue=web, append]
}
}
}
\begin{document}
\cite{Akallabeth} and
\cite{wikiicd10}
\printbibliography[notkeyword=web]
\newrefcontext[labelprefix=W]
\printbibliography[keyword=web, title={Web references}]
\end{document}
既然您在问题中提到了 ACM,我必须指出,只有极少数(如果有的话)出版商可以接受biblatex
投稿。出版商的内部工作流程通常无法真正处理biblatex
书目与 BibTeX 书目之间的差异(一个区别是 BibTeX 书目本质上是预先生成的可排版的 LaTeX 源,仅带有通常的\emph
, ... 标记;而biblatex
BibTeX 则从原始数据格式动态生成书目输出)。请参阅Biblatex:向期刊投稿。如果您只需要提交 PDF,那就没问题了。但是当他们要求 BibTeX 时,请不要忽略提交指南,并仔细检查他们是否可以接受biblatex
。如果您模板预加载,natbib
我认为您使用提交的可能性很小biblatex
。