4

question: I need the following entry in the bibliography

Doe John, Title of Book, Location Year.

or, if it's an article

Doe John, Title of Article, Journal Volume (Year) pages

I have the following code:

\renewbibmacro*{publisher+location+date}{%
        \iffieldundef{location}{%
            \printtext[parens]{%
                \printlist{year}\addspace%
                }}{%
            \printfield{location}\addspace%
            \printlist{year}\addspace%
        }
}

however the output for this is:

  1. Book:

Doe John, Title of Book, ( ).

  1. Article:

Doe John, Title of Article Volume (Year).

However, the book should be displayed as follows:

Doe John, Title of book, Location Year.

Any help appreciated.

MWE (complete):

\documentclass[10pt,twoside,headings=normal,headsepline=true,numbers=noenddot]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{helvet}
\usepackage{nomencl}
\usepackage{shorttoc}
\usepackage{tocloft}
\usepackage{hyperref}
\usepackage[left=4.5cm,right=4.5cm,top=5.5cm,bottom=5.5cm]{geometry}
\usepackage[backend=biber,sorting=nty,style=verbose,isbn=false,url=false,publisher=false]{biblatex}
\usepackage{nomencl}
\usepackage{makeidx}
\usepackage{filecontents}
\begin{filecontents}{MWE.bib}
@INCOLLECTION{Doe1999,
  author = {John Doe},
  title = {Title of Book},
  publisher = {Kluwer Law International},
  year = {1999},
  volume = {25},
  series = {Series},
  shortauthor = {Doe},
  shorttitle = {Title of Book}
}
\end{filecontents}
\renewcommand\thechapter{\arabic{chapter}.}
\renewcommand\thesection{§ \arabic{section}}
\renewcommand\thesubsection{\Roman{subsection}.}
\renewcommand\thesubsubsection{\arabic{subsubsection}.}
\renewcommand\theparagraph{\alph{paragraph})}
\renewcommand\thesubparagraph{\alph{paragraph}\alph{subparagraph})}
\newcommand\thesubsubparagraph{\alph{paragraph}\alph{subparagraph}\alph{subsubparagraph})}
\renewcommand{\mkbibnamelast}[1]{\textsc{#1}}
\renewcommand{\mkbibnamefirst}[1]{\textsc{#1}}
\renewcommand{\mkbibnameprefix}[1]{\textsc{#1}}
\renewcommand{\mkbibnameaffix}[1]{\textsc{#1}}
\renewcommand*{\revsdnamepunct}{}
\defbibheading{lit}{\chapter*{Lit}}
\defbibheading{mat}{\chapter*{Mat}}
\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished,shorttitle,journal]{title}{#1}
\renewbibmacro*{finentry}{
                \ifnameundef{shortauthor}
                {
                    \iffieldundef{shorttitle}{%
                    \adddot}{
                    \printtext[parens]{%
                    {cit.}\addspace
                    \printfield{shorttitle}%
                    }\adddot
                    }
                }
                {
                    \iffieldundef{shorttitle}
                    {
                        \printtext[parens]{%
                        {cit.}\addspace
                        \printnames{shortauthor}%
                        }\adddot
                    }
                    {
                        \printtext[parens]{%
                        {cit.}\addspace
                        \printnames{shortauthor}\addcomma\addspace
                        \printfield{shorttitle}%
                        }\adddot
                    }
                }
                }\finentry
\renewbibmacro*{publisher+location+date}{%
        \iffieldundef{location}{%
            \printtext[parens]{%
                \printlist{year}\addspace%
                }}{%
            \printlist{location}\addspace%
            \printlist{year}\addspace%
        }
}
\AtEveryBibitem{\clearfield{publisher}}
\renewcommand{\newunitpunct}{\addcomma\addspace}
\ifpunct{\renewcommand*{\nameyeardelim}{\addspace}}{}
\addbibresource{MWE.bib}
\let\abk\nomenclature%
\makenomenclature
\makeindex
\dedication{\hfill You really reading this shit?}
\author{XYZ}
\title{XYZ}
\setlength{\parindent}{0in}
\setlength\overfullrule{50pt}
\begin{document}
\frontmatter
\pagenumbering{Roman}
\maketitle
\dedication
\thispagestyle{empty}
\renewcommand*{\dictumauthorformat}[1]{#1}
\renewcommand*{\dictumrule}{}
\dictum[Winston Churchill]{If you're going through hell, keep going.}
\newpage
\addcontentsline{ubs}{chapter}{Preface}
\chapter*{Vorwort}
\input{Preface}
\newpage
\addcontentsline{ubs}{chapter}{Overview}
\shorttoc{Overview}{1}
\newpage
\addcontentsline{ubs}{chapter}{ToC}
\tableofcontents
\addcontentsline{ubs}{chapter}{Nomenclature}
\printnomenclature
\printbibliography[title={Lit},heading=lit,notkeyword=mat]
\printbibliography[title={Mat},heading=mat,keyword=mat]
\mainmatter
Lorem ipsum\footcite[p. 1]{Doe1999}.
\backmatter
\addcontentsline{ubs}{chapter}{Index}
\printindex
\end{document}

Also, I would be grateful if someone could advice on how to use only the text in the (cit. shortauthor, shorttitle) in the actual footnote..

3
  • Above all else, I would use different bibmacros for book and article entries.
    – jon
    Commented Jan 28, 2013 at 22:25
  • 2
    Please prepare a minimal working example (MWE) that shows what you have tried until now. Include a sample bib file with package filecontents. Do you use biblatex? Which document class? Other relevant packages for the bibliography?
    – Mensch
    Commented Jan 28, 2013 at 22:32
  • Welcome to TeX.sx! Usually, we don't put a greeting or a "thank you" in our posts. While this might seem strange at first, it is not a sign of lack of politeness, but rather part of our trying to keep everything very concise. Upvoting is the preferred way here to say "thank you" to users who helped you.
    – Guido
    Commented Jan 29, 2013 at 15:51

1 Answer 1

4

The verbose style and its variants follow an authortitle-style bibliography, which is closely based on the standard style defined in standard.bbx.

From this file you can see that the punctuation preceding publication dates are set by a few different bibliography macros, depending on the entry type: issue+date for @article, publisher+location+date for most books, institution+location+date for reports and theses, organization+location+date for @misc, and location+date for @booklet and @unpublished.

In issue+date publication dates are already set in parentheses. To remove punctuation before the page reference you can redefine the \bibpagespunct command from biblatex.def in your preamble:

\renewcommand*{\bibpagespunct}{%
  \ifentrytype{article}{\addspace}{\addcomma\space}}

To remove page prefixes (e.g. "p." and "pp.") add:

\DeclareFieldFormat{page}{#1}
\DeclareFieldFormat{pages}{#1}

The comma preceding the publication date in other entry types can originate from a few different places. For example in publisher+location+date:

\newbibmacro*{publisher+location+date}{%
  \printlist{location}%
  \iflistundef{publisher}
    {\setunit*{\addcomma\space}}% <- HERE
    {\setunit*{\addcolon\space}}%
  \printlist{publisher}%
  \setunit*{\addcomma\space}% <- OR HERE
  \usebibmacro{date}%
  \newunit}

Same goes for the other *location+date macros. To remove the commas change all relevant instances of \addcomma\space to \addspace in your redefinitions. Otherwise you can use the following dirty trick (at your own risk):

\renewbibmacro*{date}{\setunit{\addspace}\printdate}

In all these publications dates, if you are just wanting to print the publication year add the following to your preamble.

\AtEveryBibitem{%
  \clearfield{month}%
  \clearfield{day}}

\AtEveryCitekey{%
  \clearfield{month}%
  \clearfield{day}}

Your last request about use of shortauthor and shorttitle in citations would be better addressed as a new question. It needs to be clarified anyway.

2
  • Thanks very much Audrey! I dug into the bbx files (after finding where they are saved: "..\MiKTeX 2.9\tex\latex\biblatex") and with your help it's now working!
    – user19581
    Commented Feb 10, 2013 at 14:08
  • 1
    @user19581 No problem. You should avoid editing the source files. You can easily do this by redefining bibliography macros in your document preamble or the configuration file biblatex.cfg via \renewbibmacro or its starred variant \renewbibmacro*. These only work when the macro is defined. So when editing a style-specific macro <macro> (defined outside biblatex.def or standard.bbx), preface the redefinition in biblatex.cfg with \providebibmacro{<macro>}{} or \providebibmacro*{<macro>}{}.
    – Audrey
    Commented Feb 10, 2013 at 17:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .