尽管我缺乏 LaTeX 技能,但在论坛的帮助下,我在开发更新的 SAE 课程以使用 LaTeX 撰写 SAE 论文方面取得了很大进展。下一步:正确格式化参考书目中的“互联网参考”。
我正在使用 biblatex/biber,虽然这种组合在参考书目方面显然具有很大的功能,但我不清楚如何操作格式。因此,我再次寻求这方面的帮助。
我们以以下 bib-entry 为例:
@Online{Dowanol2012,
Title = {DOWANOL (TM) TPM Technical Data Sheet},
Url = {http://msdssearch.dow.com/PublishedLiteratureDOWCOM/dh_08ad/0901b803808ad68e.pdf?filepath=oxysolvents/pdfs/noreg/110-00619.pdf&fromPage=GetDoc},
Note = {Accessed 9/8/2015},
Organization = {The DOW Chemical Company},
Urldate = {2015-09-08},
Year = {2012},
}
通过我目前的尝试,我在我的参考书目中得到了以下条目:
DOWANOL (TM) TPM 技术数据表,访问日期:2015 年 9 月 8 日。陶氏化学公司,2012 年,http://msdssearch.dow.com/PublishedLiteratureDOWCOM/dh_08ad/0901b803808ad68e.pdf?filepath=oxysolvents/pdfs/noreg/110-00619.pdf&fromPage=GetDoc,2015 年 9 月 8 日访问。
我需要它看起来如下所示:
陶氏化学公司,《DOWANOL (TM) TPM 技术数据表》,http://msdssearch.dow.com/PublishedLiteratureDOWCOM/dh_08ad/0901b803808ad68e.pdf?filepath=oxysolvents/pdfs/noreg/110-00619.pdf&fromPage=GetDoc,2015 年 9 月访问。
我不确定,该urldate
字段可能不是最适合用来代替获取的Sep. 2015
。也许我可以从 urldate 访问月份/年份?09/08/2015
另外,我使用以下命令删除了标题上的斜体:
\DeclareFieldFormat[online]{title}{#1}
但在那之后,我不确定如何重新排序所有内容,摆脱 URL 日期的双重打印并进行所有格式化(即标题周围的引号等)。
这是当前的 MWE:
\documentclass[letterpaper]{article}
% This package allows for detailed control of urls within the document and in the bibliography.
\usepackage{filecontents}
\usepackage{url}
\usepackage{color}
\usepackage{xcolor}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=numeric-comp, maxbibnames=4, minbibnames=3, sorting=none,firstinits=true, url=false, doi=true, backend=biber]{biblatex}
% Change the font size of the references list
\renewcommand*{\bibfont}{\small}
% Fix the way URLs are displayed.
\DeclareFieldFormat{url}{\url{#1}}
\DeclareFieldFormat{urldate}{\bibstring{urlseen}\space#1}
\renewbibmacro*{url+urldate}{%
\usebibmacro{url}%
\iffieldundef{urlyear}
{}
{\setunit*{\addcomma\space}%
\usebibmacro{urldate}}}
% Print an access date on URLs.
\DefineBibliographyStrings{american}{urlseen = {accessed}}
% Typesets the URL (and DOI) in the same font as the document
\urlstyle{same}
% Print an access date on URLs.
\DefineBibliographyStrings{american}{urlseen = {accessed}}
% Remove the italics on the title (how do I get quotes around it)?
\DeclareFieldFormat[online]{title}{#1}
% This line defines which file(s) bibtex will look for your bib entries (i.e. the name of your *.bib file without the extension).
\bibliography{test}
\usepackage{hyperref}
\hypersetup{
pdfencoding = {auto},
pdfauthor = {Dr. Who},
pdftitle = {Title},
urlcolor = blue,
pdffitwindow=true,
pdfkeywords={LLFC}, % Keywords
pdfnewwindow=true, % links in new window
colorlinks=true, % false: boxed links; true: colored links
linkcolor=red, % Color of internal links (change box color with linkbordercolor)
linkbordercolor=red,
citecolor=green,
filecolor=magenta,
urlcolor=blue
}
\begin{filecontents}{test.bib}
@Online{Dowanol2012,
Title = {DOWANOL (TM) TPM Technical Data Sheet},
Url = {http://msdssearch.dow.com/PublishedLiteratureDOWCOM/dh_08ad/0901b803808ad68e.pdf?filepath=oxysolvents/pdfs/noreg/110-00619.pdf&fromPage=GetDoc},
Note = {Accessed 9/8/2015},
Organization = {The DOW Chemical Company},
Urldate = {2015-09-08},
Year = {2012},
}
\end{filecontents}
\begin{document}
This is a test document with one citation \cite{Dowanol2012}.
\renewcommand\refname{References}
\printbibliography
\end{document}
哦,从技术上讲,超链接应该带下划线并且是蓝色的...我可以把它弄成蓝色,但给它加下划线时遇到了麻烦。特别是对于属于“@online”bib 类型的 URL。期刊文章的 DOI 的 URL 应该带下划线,但不能是蓝色(不过,我可以稍后在单独的线程中解决这个问题,只是试图为我试图实现的奇怪格式提供背景,以符合 SAE 指南)。
答案1
在这个答案中,我假设你的文档使用的代码来自是否有人使用 biblatex/biber 解决方案实现了美国汽车工程师学会 (SAE) 风格的书目?,所以我们不必处理那里已经提到过的细节。
大多数工作已经可以通过更改条目来完成.bib
。“陶氏化学公司”可能是author
而不是organization
(另见在书目条目的“作者”字段中使用“公司作者”(完整拼写出姓名), 这biblatex
文档在§2.3.3 中有一段简短的文字公司作者和编辑,第 31 页)。note
由于信息已经在urldate
字段中,因此字段似乎也没有必要。因此,我会选择
@Online{Dowanol2012,
Title = {DOWANOL (TM) TPM Technical Data Sheet},
Url = {http://msdssearch.dow.com/PublishedLiteratureDOWCOM/dh_08ad/0901b803808ad68e.pdf?filepath=oxysolvents/pdfs/noreg/110-00619.pdf&fromPage=GetDoc},
author = {{The DOW Chemical Company}},
Urldate = {2015-09-08},
Year = {2012},
}
然后唯一需要改变的就是输出urldate
,只需选择urldate=long
,然后你可以使用
\DefineBibliographyExtras{english}{
\protected\def\mkbibdatelong#1#2#3{%
\iffieldundef{#2}
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
{\stripzeros{\thefield{#1}}}}}
平均能量损失
\documentclass[letterpaper]{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=numeric-comp, maxbibnames=4, minbibnames=3, sorting=none,firstinits=true, url=false, doi=true, backend=biber, urldate=long]{biblatex}
\renewcommand*{\bibfont}{\small}
\DeclareFieldFormat{url}{\url{#1}}
\DeclareFieldFormat{urldate}{\bibstring{urlseen}\space#1}
\renewbibmacro*{url+urldate}{%
\usebibmacro{url}%
\iffieldundef{urlyear}
{}
{\setunit*{\addcomma\space}%
\usebibmacro{urldate}}}
\DefineBibliographyStrings{american}{urlseen = {accessed}}
\urlstyle{same}
\DeclareFieldFormat[online]{title}{\mkbibquote{#1\isdot}}
\renewcommand*{\newunitpunct}{\addcomma\space}
\DefineBibliographyExtras{english}{
\protected\def\mkbibdatelong#1#2#3{%
\iffieldundef{#2}
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
{\stripzeros{\thefield{#1}}}}}
\usepackage{hyperref}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Online{Dowanol2012,
Title = {DOWANOL (TM) TPM Technical Data Sheet},
Url = {http://msdssearch.dow.com/PublishedLiteratureDOWCOM/dh_08ad/0901b803808ad68e.pdf?filepath=oxysolvents/pdfs/noreg/110-00619.pdf&fromPage=GetDoc},
author = {{The DOW Chemical Company}},
Urldate = {2015-09-08},
Year = {2012},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
This is a test document with one citation \cite{Dowanol2012}.
\printbibliography
\end{document}