The biblatex
manual entry for shortjournal
says
A short version or an acronym of the journaltitle
. Not used by the
standard bibliography styles.
My reading of this is that it is is more something like an informal acronym ('JACS' for Journal of the American Chemical Society, for example) than a formal title. It certainly does not say that it's an ISO abbreviation for the journal title. As far as possible, biblatex-chem
follows the standard biblatex
styles, so uses the journal
field.
All chemistry bibliography styles use abbreviated titles of journals. So I simply store the abbreviations in my database. However, if you want a flexible approach one way to do this is to use a simple macro-based approach. I'd base this on journal CODENs. Something like
\makeatletter
\newcommand*{\CODEN}[1]{%
\ifcsname CODEN@#1\endcsname
\expandafter\@firstoftwo\csname CODEN@#1\expandafter\endcsname
\else
#1%
\fi
}
\newcommand*{\CODEN@JACSAT}
{{J. Am. Chem. Soc.}{Journal of the American Chemical Society}}
...
\makeatother
As written, this will print abbreviations, but if you swap \@firstoftwo
for \@secondoftwo
then it will print the full name. The idea is that you'd then use \CODEN{JACSAT}
in your journal
field: a bit like using BibTeX strings, but controllable from LaTeX.
(I did think about writing a package to do a similar job a few years ago, but at the time it did not seem worth it. If there is interest, I can wrap the above concept up into a package pretty easily: it's just a question of adding all of the CODENs.)
A second approach is to alter the appropriate macro
\renewbibmacro*{journal}{%
\iffieldundef{shortjournal}
{%
\iffieldundef{journaltitle}
{}
{%
\printtext[journaltitle]
{%
\printfield[titlecase]{journaltitle}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{journalsubtitle}%
}%
}%
}
{\printtext[journaltitle]{\printfield[titlecase]{shortjournal}}}%
}
This will use the shortjournal
field if available, and if not use the standard journaltitle
field.
Just apply the bibhyperref
format in the citation command:
\DeclareCiteCommand{\citeauthor}
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\ifciteindex
{\indexnames{labelname}}
{}%
\printtext[bibhyperref]{\printnames{labelname}}}
{\multicitedelim}
{\usebibmacro{postnote}}
Definitions for bibhyperref
and \citeauthor
can be found in biblatex.def
.
Best Answer
"et al." corresponds to the localization key
andothers
. In most styles it is set by the generic bibliography macroname:andothers
. You can redefine this macro to wrap\bibstring{andothers}
in\emph
.