[Tex/LaTex] Has anybody implemented Society of Automotive Engineer (SAE) style bibliographies with a biblatex/biber solution

biberbiblatexpackage-writing

There already exists an SAE class on CTAN contributed by Axel Franke, which although it is 15 years old (last update 2000-11-14) is still workable with a few tweaks, I think. The problem I am facing is that there is no SAE bibliography style file that exists as far as I know (I was looking for an SAE.bst for traditional bibtex). I started down the road of creating a new bst file based on the ieeetr style (which itself is based on the plain style), but I found this was cumbersome and still difficult to get exactly what I needed to satisfy specific SAE publication requirements. I would like to modify the SAE class to bring it up to date, and provide a biblatex solution (similar to the package biblatex-phys).

SAE is unfortunately very MSWord-centric, and they only have template files in MSWord. Citations are currently handled by most people I know using Endnote/Word with a custom Endnote output style and reference type for SAE papers (mainly to include the text "SAE Technical Paper YYYY-01-NNNN" for the paper number as part of the citation).

I'm not sure that the biblatex-phys package would be the best place to start for this, or if anybody has done something similar for SAE papers in the past?

Best Answer

The formatting guidelines are missing some biblatex data types and seem a bit inconsistent.

The following should get you started. We modify the numeric standard style of biblatex, but you could take any other standard numeric-... style as basis.

\documentclass[american]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=numeric,firstinits=true]{biblatex}

\addbibresource{biblatex-examples.bib}

\renewcommand*{\newunitpunct}{\addcomma\space}

\DeclareFieldFormat{pages}{#1}
\renewcommand*{\bibpagespunct}{\addcolon\space}

\DeclareNameAlias{default}{last-first}

\DeclareFieldFormat*{title}{\mkbibquote{#1\isdot}}

\renewbibmacro*{in:}{}

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addcomma\space}%
  \usebibmacro{issue}%
  \newunit}

\DeclareFieldFormat[article,periodical]{number}{\mkbibparens{#1}}
\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  %\setunit*{\adddot}%
  \printfield{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}}

\renewbibmacro*{note+pages}{%
  \printfield{note}%
  \setunit{\bibpagespunct}%
  \printfield{pages}%
  \newunit
  \usebibmacro{date}}

\renewbibmacro*{publisher+location+date}{%
  \printtext[parens]{%
    \printlist{location}%
    \setunit*{\addcomma\space}%
    \printlist{publisher}%
    \setunit*{\addcomma\space}%
    \usebibmacro{date}}%
    \newunit}

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

\begin{document}
\cite{sigfridsson,kullback,geer,markey}

\printbibliography
\end{document}
Related Question