使用 biblatex/biber 的 SAE 论文“互联网参考”书目样式

使用 biblatex/biber 的 SAE 论文“互联网参考”书目样式

尽管我缺乏 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}

相关内容