I am trying to achieve citations and a bibliography, that look like this:
There’s a sentence, where a book of SCOTT (1991) is quoted. Then some text with STRATTON et al. 1981 in it.
Bibliography
SCOTT 1991: David A. Scott, Metallography and microstructure of ancient and historic metals, Los Angeles, 1991.
STRATTON et al. 1981: Carol Stratton und Miriam McNair Scott, The Art of Sukhothai. Thailand’s Golden Age, Oxford, New York, Melbourne, 1981.
With lockstep's solution of the original question "Adding an [AuthorYear] block at the beginning of bibliography entries" I got pretty close, but the uppercase letters and "et al." are not going well together. This is what I got so far:
\begin{filecontents}{Test.bib}
@book{Scott1991,
address = {Los Angeles},
author = {Scott, David A.},
publisher = {Archetype Books},
title = {{Metallography and microstructure of ancient and historic metals}},
year = {1991}
}
@book{Stratton1981,
address = {Oxford, New York, Melbourne},
author = {Stratton, Carol and {McNair Scott}, Miriam},
publisher = {Oxford University Press},
title = {{The Art of Sukhothai. Thailand's Golden Age}},
year = {1981}
}
\end{filecontents}
\documentclass[ngerman]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[%
citestyle=authoryear-comp,%
bibstyle=authortitle-comp,%
backend=bibtex]{biblatex}%
\ExecuteBibliographyOptions{%
maxcitenames=1,%
language=ngerman,%
punctfont=true,%
autopunct=false,%
sorting=nyt}
% -- Publisher, Location, Date
\renewbibmacro*{publisher+location+date}{%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit}
% -- Author-Year-Block at the beginning
\newcounter{mymaxcitenames}
\AtBeginDocument{%
\setcounter{mymaxcitenames}{\value{maxnames}}%
}
\renewbibmacro*{begentry}{%
\printtext[]{%
\begingroup
\defcounter{maxnames}{\value{mymaxcitenames}}%
\printnames{labelname}%
\setunit{\nameyeardelim}%
\usebibmacro{cite:labelyear+extrayear}%
\endgroup
}%
\addcolon\addspace
}
% -- Sorting, dots etc.
\DeclareNameAlias{sortname}{given-family}
% \DeclareNameFormat{labelname}{\MakeUppercase{#1}} % <--- Produces labels in Uppercase but also kills "et al."
\DeclareFieldFormat*{title}{#1\isdot}
\DeclareFieldFormat{parens}{#1}
\DeclareFieldFormat{booktitle}{#1\isdot}
\DefineBibliographyStrings{ngerman}{andothers = {et\addabbrvspace al\adddot}}
\renewcommand{\newunitpunct}{\addcomma\space}
\setlength{\bibitemsep}{\baselineskip}
\setlength{\bibhang}{0pt}
\bibliography{Test.bib}
\begin{document}
There's a sentence, where a book of \textcite{Scott1991} is quoted. Then some text with \cite{Stratton1981} in it.
\printbibliography
\end{document}
I'd love to be enlightened by you, magically producing uppercase names and lowercase "et al.". :)
^1 borrowed from here
%s in your code at the end of lines, this can potentially introduce unwanted space. There should be no need to redefine\newblockpunctif you already have\renewcommand{\newunitpunct}{\addcomma\space}. And you should probably useandothers = {et\addabbrvspace al\adddot}to not mess up the punctuation tracker. Withbiblatex>= 3.3\DeclareNameAlias{sortname}{first-last}would be\DeclareNameAlias{sortname}{given-family}.\DeclareFieldFormat{parens}{#1}looks a bit suspicious to me, too. – moewe Apr 10 '16 at 14:45\DeclareFieldFormat[article, book, inbook, incollection, inproceedings, patent, thesis, unpublished, misc]{title}{#1\isdot}can easily be replaced by\DeclareFieldFormat*{title}{#1\isdot}to reset the title format for all types. – moewe Apr 10 '16 at 14:46block=nbpar, just drop it. For%placement read this and linked questions (especially this one), you basically want it at all line ends except after a command without braces. So after\fooit is not necessary, but after\foo{or\foo{bar}you would need a%. Cf. also the modified version of my answer. – moewe Apr 10 '16 at 15:33