Стиль библиографии «Интернет-ссылка» для статей SAE с использованием biblatex/biber

Стиль библиографии «Интернет-ссылка» для статей SAE с использованием biblatex/biber

Несмотря на отсутствие навыков LaTeX, с помощью форума я добился значительного прогресса в разработке обновленного класса SAE для написания статей SAE с помощью LaTeX. Далее: правильное форматирование "Интернет-ссылок" в библиографии.

Я использую biblatex/biber, и хотя кажется очевидным, что в использовании этой комбинации для библиографий есть много возможностей, мне неочевидно, как манипулировать форматированием. Поэтому я снова прошу помощи в этой области.

Давайте в качестве примера возьмем следующую запись в биб-записях:

@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, дата обращения 08.09.2015. Компания DOW Chemical Company, 2012,http://msdssearch.dow.com/PublishedLiteratureDOWCOM/dh_08ad/0901b803808ad68e.pdf?filepath=oxysolvents/pdfs/noreg/110-00619.pdf&fromPage=GetDoc, дата обращения 09/08/2015.

Мне нужно, чтобы это выглядело следующим образом:

Компания DOW Chemical, «Технический паспорт DOWANOL (TM) TPM»,http://msdssearch.dow.com/PublishedLiteratureDOWCOM/dh_08ad/0901b803808ad68e.pdf?filepath=oxysolvents/pdfs/noreg/110-00619.pdf&fromPage=GetDoc, доступ получен в сентябре 2015 г.

Поле urldate, возможно, не самое подходящее для использования Sep. 2015вместо 09/08/2015, я не уверен. Может быть, я могу получить доступ к месяцу/году из urldate?

Кроме того, я удалил курсив из заголовка, используя следующее:

\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}

О, и технически гиперссылка должна быть подчеркнута и синей... Я могу сделать ее синей, но у меня возникли проблемы с подчеркиванием. Особенно только для URL, которые являются частью типа "@online". URL для DOI журнальных статей должны быть подчеркнуты, но не синими (я могу рассмотреть это позже в отдельной теме, просто пытаюсь дать контекст для странного форматирования, которое я пытаюсь реализовать, чтобы соответствовать рекомендациям SAE).

решение1

В этом ответе я буду предполагать, что ваш документ использует код изРеализовал ли кто-нибудь библиографии в стиле Общества инженеров-автомобилестроителей (SAE) с помощью решения biblatex/biber?, поэтому нам не придется иметь дело с подробностями, которые там были рассмотрены.

Большую часть работы можно уже сделать, изменив .bibзапись. «The DOW Chemical Company» вполне может быть 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}

Связанный контент